AbstractDPSEntityImpl.java 6.71 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.day.cq.wcm.api.Page
 *  org.apache.sling.api.resource.Resource
 *  org.apache.sling.api.resource.ValueMap
 *  org.slf4j.Logger
 *  org.slf4j.LoggerFactory
 */
package com.adobe.cq.mobile.dps.impl.metadata;

import com.adobe.cq.mobile.dps.DPSEntity;
import com.adobe.cq.mobile.dps.DPSProject;
import com.adobe.cq.mobile.dps.Importance;
import com.adobe.cq.mobile.dps.impl.metadata.AbstractDPSObjectImpl;
import com.adobe.cq.mobile.dps.impl.metadata.DPSProjectImpl;
import com.adobe.cq.mobile.dps.impl.utils.DPSUtil;
import com.day.cq.wcm.api.Page;
import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.LinkedHashSet;
import java.util.Set;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ValueMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public abstract class AbstractDPSEntityImpl
extends AbstractDPSObjectImpl
implements DPSEntity {
    private static final Logger LOGGER = LoggerFactory.getLogger(AbstractDPSEntityImpl.class);

    protected AbstractDPSEntityImpl(Page page) {
        super(page);
    }

    @Override
    public String getName() {
        return this.page.getName();
    }

    @Override
    public String getEntityName() {
        String nameOverride = (String)this.page.getProperties().get("dps-entityName", null);
        if (nameOverride != null) {
            LOGGER.debug("Overriding name " + this.getName() + " with " + nameOverride);
        }
        return nameOverride == null ? this.getName() : nameOverride;
    }

    @Override
    public String getId() {
        String id;
        try {
            id = (String)this.page.getProperties().get("dps-id", null);
            if (id != null && id.isEmpty()) {
                id = null;
            }
        }
        catch (Exception ex) {
            id = null;
        }
        return id;
    }

    @Override
    public DPSProject getProject() {
        DPSProjectImpl project = null;
        Page projectPage = this.getProject((Resource)this.page.adaptTo(Resource.class));
        if (projectPage != null) {
            project = new DPSProjectImpl(projectPage);
        }
        return project;
    }

    @Override
    public String getProjectId() {
        String publicationId = null;
        DPSProject parentProject = this.getProject();
        if (parentProject != null) {
            publicationId = parentProject.getProjectId();
        }
        return publicationId;
    }

    @Override
    public String getTitle() {
        String title = (String)this.page.getProperties().get("dps-title", String.class);
        return title == null ? this.page.getTitle() : title;
    }

    @Override
    public String getShortTitle() {
        return (String)this.page.getProperties().get("dps-shortTitle", String.class);
    }

    @Override
    public String getAbstract() {
        return (String)this.page.getProperties().get("dps-abstract", String.class);
    }

    @Override
    public String getShortAbstract() {
        return (String)this.page.getProperties().get("dps-shortAbstract", String.class);
    }

    @Override
    public String getDepartment() {
        String dept = (String)this.page.getProperties().get("dps-department", String.class);
        if (dept == null) {
            dept = (String)this.page.getProperties().get("dps-kicker", String.class);
        }
        return dept;
    }

    @Override
    public String getCategory() {
        String category = (String)this.page.getProperties().get("dps-category", String.class);
        if (category == null) {
            category = (String)this.page.getProperties().get("dps-section", String.class);
        }
        return category;
    }

    @Override
    public Set<String> getKeywords() {
        return this.getArrayPropAsSet("dps-keywords");
    }

    @Override
    public Set<String> getInternalKeywords() {
        return this.getArrayPropAsSet("dps-internalKeywords");
    }

    private Set<String> getArrayPropAsSet(String key) {
        LinkedHashSet<String> keywordsSet = new LinkedHashSet<String>();
        String[] keywords = (String[])this.page.getProperties().get(key, String[].class);
        if (keywords != null) {
            keywordsSet.addAll(Arrays.asList(keywords));
        }
        return keywordsSet;
    }

    @Override
    public Importance getImportance() {
        return Importance.getImportance((String)this.page.getProperties().get("dps-importance", String.class));
    }

    @Override
    public String getImagePath() {
        if (this.thumbnailHasSlingResourceType()) {
            return this.getImagePath("./image");
        }
        return this.getTOCImagePathORG();
    }

    private boolean thumbnailHasSlingResourceType() {
        Resource imageResourceImage = this.page.getContentResource("./image");
        return imageResourceImage == null ? false : imageResourceImage.getValueMap().containsKey((Object)"sling:resourceType");
    }

    private String getTOCImagePathORG() {
        Resource contentResource;
        String path = null;
        Resource imageResourceImage = this.page.getContentResource("./image");
        if (DPSUtil.isImageSet(imageResourceImage) && (contentResource = this.page.getContentResource()) != null) {
            path = this.getImageRenderURI(contentResource);
        }
        return path;
    }

    @Override
    public String getTOCImagePath() {
        return this.getImagePath();
    }

    @Override
    public Date getLastDPSUpload() {
        return (Date)this.page.getProperties().get("dps-lastUploaded", Date.class);
    }

    @Override
    public String getLastDPSUploadBy() {
        return (String)this.page.getProperties().get("dps-lastUploadedBy", String.class);
    }

    @Override
    public Date getLastDPSPublished() {
        return (Date)this.page.getProperties().get("dps-lastPublished", Date.class);
    }

    @Override
    public String getLastDPSPublishedBy() {
        return (String)this.page.getProperties().get("dps-lastPublishedBy", String.class);
    }

    @Override
    public Date getLastDPSSynced() {
        return (Date)this.page.getProperties().get("dps-lastSynced", Date.class);
    }

    @Override
    public boolean isImported() {
        return ((String)this.page.getProperties().get("dps-source", (Object)"AEM")).equals("DPS");
    }

    private Page getProject(Resource pageResource) {
        if (pageResource == null) {
            return null;
        }
        Page page = (Page)pageResource.adaptTo(Page.class);
        if (page == null) {
            return this.getProject(pageResource.getParent());
        }
        if (DPSUtil.getDPSResourceType(page).equals("dps:Project")) {
            return page;
        }
        return this.getProject(pageResource.getParent());
    }
}