AbstractWCMTranslationProcess.java 4.15 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.day.cq.workflow.WorkflowException
 *  com.day.cq.workflow.WorkflowSession
 *  com.day.cq.workflow.exec.WorkItem
 *  com.day.cq.workflow.exec.Workflow
 *  com.day.cq.workflow.exec.WorkflowData
 *  com.day.cq.workflow.exec.WorkflowProcess
 *  com.day.cq.workflow.metadata.MetaDataMap
 *  com.day.cq.workflow.model.WorkflowModel
 */
package com.adobe.cq.wcm.translation.impl.process;

import com.day.cq.workflow.WorkflowException;
import com.day.cq.workflow.WorkflowSession;
import com.day.cq.workflow.exec.WorkItem;
import com.day.cq.workflow.exec.Workflow;
import com.day.cq.workflow.exec.WorkflowData;
import com.day.cq.workflow.exec.WorkflowProcess;
import com.day.cq.workflow.metadata.MetaDataMap;
import com.day.cq.workflow.model.WorkflowModel;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public abstract class AbstractWCMTranslationProcess
implements WorkflowProcess {
    protected static final String PAYLOAD_TYPE_JCR = "JCR_PATH";
    protected static final String META_DEEP = "deep";
    protected static final String META_TRANSLATION_MODEL_ID = "translationWorkflowModel";
    protected static final String META_LAUNCH_PATH = "launchRootResourcePath";
    protected static final String META_PROJECT_FOLDER_PATH = "projectFolderPath";
    protected static final String PARAM_ADD_STRUCTURE_ONLY = "add_structure_only";

    protected String getPayloadPath(WorkflowData wfData) {
        String payloadPath = null;
        if (wfData.getPayloadType().equals("JCR_PATH") && wfData.getPayload() != null) {
            payloadPath = (String)wfData.getPayload();
        }
        return payloadPath;
    }

    protected void updateWorkflowData(WorkItem item, WorkflowSession wfSession, String key, String value) throws WorkflowException {
        WorkflowData data = item.getWorkflowData();
        MetaDataMap metaData = data.getMetaDataMap();
        metaData.put((Object)key, (Object)value);
        wfSession.updateWorkflowData(item.getWorkflow(), data);
    }

    protected void startTranslationWorkflow(String translationWorkflowModel, String strProjectFolderPath, WorkItem item, WorkflowSession wfSession, String contentPath, String strSourcePath, MetaDataMap metaDataMap) throws WorkflowException {
        HashMap<String, String> wfMetaData = new HashMap<String, String>();
        String strProjectType = (String)metaDataMap.get("projectType", String.class);
        wfMetaData.put("projectTitle", (String)metaDataMap.get("projectTitle", String.class));
        wfMetaData.put("projectType", strProjectType);
        wfMetaData.put("projectFolderPath", strProjectFolderPath);
        wfMetaData.put("projectPath", (String)metaDataMap.get("projectPath", String.class));
        wfMetaData.put("projectFolderLanguageRefCount", (String)metaDataMap.get("projectFolderLanguageRefCount", String.class));
        wfMetaData.put("language", (String)metaDataMap.get("language", String.class));
        wfMetaData.put("initiatorUserId", item.getWorkflow().getInitiator());
        wfMetaData.put("projectSourcePath", strSourcePath);
        if (!"add_structure_only".equals(strProjectType)) {
            if (translationWorkflowModel == null) {
                throw new WorkflowException("Failed to load translation workflow model id from payload.");
            }
            this.startWorkflow(translationWorkflowModel, item, wfSession, contentPath, wfMetaData);
        }
    }

    protected void startWorkflow(String modelId, WorkItem item, WorkflowSession wfSession, String contentPath, Map<String, String> inputMetaData) throws WorkflowException {
        WorkflowData data = wfSession.newWorkflowData("JCR_PATH", (Object)contentPath);
        WorkflowModel model = wfSession.getModel(modelId);
        MetaDataMap wfMetaData = data.getMetaDataMap();
        if (inputMetaData != null && wfMetaData != null) {
            for (String strKey : inputMetaData.keySet()) {
                String strValue = inputMetaData.get(strKey);
                if (strValue == null) continue;
                wfMetaData.put((Object)strKey, (Object)strValue);
            }
        }
        wfSession.startWorkflow(model, data);
    }
}