AbstractWCMTranslationProcess.java
4.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*
* 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);
}
}