PTiffRenditionImpl.java 4.79 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.adobe.cq.dam.dm.process.api.PTiffMetadata
 *  com.adobe.cq.dam.dm.process.api.PTiffRendition
 *  com.adobe.granite.asset.api.Rendition
 *  com.day.cq.dam.api.Asset
 *  com.day.cq.dam.commons.util.DamUtil
 *  com.scene7.is.util.collections.CollectionUtil
 *  org.apache.sling.api.resource.Resource
 *  org.apache.sling.api.resource.ResourceWrapper
 *  org.apache.sling.api.resource.ValueMap
 *  org.apache.sling.api.wrappers.ValueMapDecorator
 *  org.jetbrains.annotations.NotNull
 *  org.jetbrains.annotations.Nullable
 */
package com.adobe.cq.dam.dm.process.image;

import com.adobe.cq.dam.dm.process.api.PTiffMetadata;
import com.adobe.cq.dam.dm.process.api.PTiffRendition;
import com.adobe.cq.dam.dm.process.image.FileFormatDetect;
import com.adobe.cq.dam.dm.process.image.PTiffMetadataImpl;
import com.adobe.granite.asset.api.Rendition;
import com.day.cq.dam.api.Asset;
import com.day.cq.dam.commons.util.DamUtil;
import com.scene7.is.util.collections.CollectionUtil;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceWrapper;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.api.wrappers.ValueMapDecorator;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;

class PTiffRenditionImpl
extends ResourceWrapper
implements PTiffRendition {
    private final Rendition delegate;
    private final ValueMap props;
    private final PTiffMetadata metadata;

    @Nullable
    public static PTiffRendition getPTiffRendition(@NotNull Resource resource) {
        if (!DamUtil.isRendition((Resource)resource)) {
            return null;
        }
        if (!resource.getName().equals("cqdam.pyramid.tiff")) {
            return null;
        }
        Rendition delegate = (Rendition)resource.adaptTo(Rendition.class);
        if (delegate == null) {
            return null;
        }
        Resource content = resource.getChild("jcr:content");
        if (content == null) {
            return null;
        }
        ValueMap props = content.getValueMap();
        if (props == null) {
            return null;
        }
        PTiffMetadata metadata = PTiffRenditionImpl.readPTiffMetadata(content);
        if (metadata == null) {
            return null;
        }
        return new PTiffRenditionImpl(resource, delegate, props, metadata);
    }

    @NotNull
    public PTiffMetadata getMetadata() {
        return this.metadata;
    }

    public String getMimeType() {
        return this.delegate.getMimeType();
    }

    public long getSize() {
        return this.delegate.getSize();
    }

    public InputStream getStream() {
        return this.delegate.getStream();
    }

    public ValueMap getProperties() {
        return this.props;
    }

    public Asset getAsset() {
        return DamUtil.resolveToAsset((Resource)this.getResource());
    }

    public <AdapterType> AdapterType adaptTo(Class<AdapterType> type) {
        if (type == Resource.class) {
            return (AdapterType)this.getResource();
        }
        if (type == PTiffRendition.class) {
            return (AdapterType)((Object)this);
        }
        return (AdapterType)super.adaptTo(type);
    }

    private PTiffRenditionImpl(@NotNull Resource resource, @NotNull Rendition delegate, @NotNull ValueMap props, @NotNull PTiffMetadata metadata) {
        super(resource);
        this.delegate = delegate;
        this.props = props;
        this.metadata = metadata;
    }

    @Nullable
    private static PTiffMetadata readPTiffMetadata(@NotNull Resource content) {
        ValueMap map;
        Resource renditionMetadata = content.getChild("metadata");
        if (renditionMetadata != null && PTiffMetadataImpl.isPTiffMetadata(map = renditionMetadata.getValueMap())) {
            return PTiffMetadataImpl.createPTiffMetadata(map);
        }
        Asset asset = DamUtil.resolveToAsset((Resource)content);
        if (asset == null) {
            return null;
        }
        String assetMimeType = asset.getMimeType();
        if (assetMimeType == null) {
            return null;
        }
        ValueMapDecorator assetMetadata = new ValueMapDecorator(asset.getMetadata());
        HashMap map2 = CollectionUtil.hashMap();
        map2.put("ptiff.original", FileFormatDetect.detectImageFormat(assetMimeType).isDefined());
        if (assetMetadata.containsKey((Object)"tiff:ImageWidth")) {
            map2.put("ptiff.width", assetMetadata.get("tiff:ImageWidth", Integer.class));
        }
        if (assetMetadata.containsKey((Object)"tiff:ImageLength")) {
            map2.put("ptiff.height", assetMetadata.get("tiff:ImageLength", Integer.class));
        }
        return PTiffMetadataImpl.createPTiffMetadata(map2);
    }
}