AbstractCampaignProcess.java 3.9 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.day.cq.wcm.api.Page
 *  com.day.cq.wcm.api.PageManager
 *  com.day.cq.wcm.webservicesupport.Configuration
 *  com.day.cq.workflow.WorkflowSession
 *  com.day.cq.workflow.exec.WorkItem
 *  com.day.cq.workflow.exec.WorkflowData
 *  com.day.cq.workflow.exec.WorkflowProcess
 *  javax.jcr.Session
 *  org.apache.sling.api.resource.LoginException
 *  org.apache.sling.api.resource.ModifiableValueMap
 *  org.apache.sling.api.resource.Resource
 *  org.apache.sling.api.resource.ResourceResolver
 *  org.apache.sling.api.resource.ResourceResolverFactory
 *  org.apache.sling.api.resource.ValueMap
 */
package com.day.cq.mcm.campaign.impl;

import com.day.cq.mcm.campaign.ACConnectorException;
import com.day.cq.mcm.campaign.CampaignConnector;
import com.day.cq.mcm.campaign.CampaignCredentials;
import com.day.cq.mcm.campaign.ConfigurationException;
import com.day.cq.wcm.api.Page;
import com.day.cq.wcm.api.PageManager;
import com.day.cq.wcm.webservicesupport.Configuration;
import com.day.cq.workflow.WorkflowSession;
import com.day.cq.workflow.exec.WorkItem;
import com.day.cq.workflow.exec.WorkflowData;
import com.day.cq.workflow.exec.WorkflowProcess;
import java.util.HashMap;
import java.util.Map;
import javax.jcr.Session;
import org.apache.sling.api.resource.LoginException;
import org.apache.sling.api.resource.ModifiableValueMap;
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.api.resource.ValueMap;

abstract class AbstractCampaignProcess
implements WorkflowProcess {
    AbstractCampaignProcess() {
    }

    protected ResourceResolver getResourceResolver(ResourceResolverFactory factory, WorkflowSession session) {
        try {
            Session jcrSession = session.getSession();
            HashMap<String, Session> authInfo = new HashMap<String, Session>();
            authInfo.put("user.jcr.session", jcrSession);
            return factory.getResourceResolver(authInfo);
        }
        catch (LoginException le) {
            return null;
        }
    }

    protected Page getPage(ResourceResolver resolver, WorkItem item) {
        String payloadPath = (String)item.getWorkflowData().getPayload();
        PageManager pageManager = (PageManager)resolver.adaptTo(PageManager.class);
        return pageManager.getPage(payloadPath);
    }

    protected CampaignCredentials getCredentials(Configuration config, CampaignConnector connector) throws ACConnectorException {
        return connector.retrieveCredentials(config);
    }

    protected Configuration getWebserviceConfig(Page page, CampaignConnector connector) throws ACConnectorException {
        Resource rsc = page.getContentResource();
        return connector.getWebserviceConfig(rsc);
    }

    protected String getTemplate(Page page) throws ACConnectorException {
        ValueMap values = page.getProperties();
        String templateId = (String)values.get("acTemplateId", String.class);
        if (templateId == null) {
            throw new ConfigurationException("Missing template ID on newsletter.");
        }
        return templateId;
    }

    protected String getStatus(ResourceResolver resolver, WorkItem item) {
        Page page = this.getPage(resolver, item);
        Resource pageContent = page.getContentResource();
        ModifiableValueMap props = (ModifiableValueMap)pageContent.adaptTo(ModifiableValueMap.class);
        return (String)props.get("acPublishState", String.class);
    }

    protected void setStatus(ResourceResolver resolver, WorkItem item, String status) {
        Page page = this.getPage(resolver, item);
        Resource pageContent = page.getContentResource();
        ModifiableValueMap props = (ModifiableValueMap)pageContent.adaptTo(ModifiableValueMap.class);
        props.put((Object)"acPublishState", (Object)status);
    }
}