Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. package com.matteopelucco.workflow;
  2.  
  3. import info.magnolia.context.Context;
  4. import info.magnolia.module.workflow.api.WorkflowConstants;
  5. import info.magnolia.module.workflow.jbpm.humantask.HumanTask;
  6. import info.magnolia.module.workflow.jbpm.humantask.definition.PublicationTaskDefinition;
  7. import info.magnolia.module.workflow.jbpm.humantask.parameter.PublicationTaskParameterResolver;
  8.  
  9. import java.text.ParseException;
  10. import java.util.Date;
  11. import java.util.HashMap;
  12. import java.util.List;
  13. import java.util.Map;
  14.  
  15. import org.apache.commons.lang3.StringUtils;
  16. import org.kie.api.runtime.process.WorkItem;
  17. import org.slf4j.Logger;
  18. import org.slf4j.LoggerFactory;
  19.  
  20. public class ExtendedPublicationTaskParameterResolver extends PublicationTaskParameterResolver {
  21.  
  22.   private static final Logger log = LoggerFactory.getLogger(ExtendedPublicationTaskParameterResolver.class);
  23.   protected static final String ATTRIBUTE_ALERT = "alert";
  24.  
  25.   public ExtendedPublicationTaskParameterResolver(PublicationTaskDefinition definition) {
  26.     super(definition);
  27.   }
  28.  
  29.   @Override
  30.   public void setTaskParameters(HumanTask task, WorkItem workItem) {
  31.     String taskName = (String) workItem.getParameter(TASK_NAME);
  32.     task.setName(taskName);
  33.     task.setActorIds(getDefinition().getActors());
  34.     task.setGroupIds(getDefinition().getGroups());
  35.  
  36.     Map<String, Object> content = (Map<String, Object>) workItem.getParameter(WorkflowConstants.VARIABLE_DATA);
  37.     if (content != null) {
  38.       task.setComment((String) content.get(Context.ATTRIBUTE_COMMENT));
  39.       task.setRequestor((String) content.get(Context.ATTRIBUTE_REQUESTOR));
  40.  
  41.       setTaskContent(task, content);
  42.     }
  43.   }
  44.  
  45.   private void setTaskContent(HumanTask task, final Map<String, Object> content) {
  46.     Map<String, Object> taskContent = new HashMap<String, Object>() {
  47.       {
  48.         put(Context.ATTRIBUTE_REPOSITORY, content.get(Context.ATTRIBUTE_REPOSITORY));
  49.         put(Context.ATTRIBUTE_PATH, content.get(Context.ATTRIBUTE_PATH));
  50.         put(Context.ATTRIBUTE_UUID, content.get(Context.ATTRIBUTE_UUID));
  51.         put(Context.ATTRIBUTE_RECURSIVE, content.get(Context.ATTRIBUTE_RECURSIVE));
  52.         put(Context.ATTRIBUTE_COMMENT, content.get(Context.ATTRIBUTE_COMMENT));
  53.         put(WorkflowConstants.ATTRIBUTE_REQUESTOR, content.get(WorkflowConstants.ATTRIBUTE_REQUESTOR));
  54.         put(WorkflowConstants.PUBLICATION_DATE, getDate(content.get(WorkflowConstants.PUBLICATION_DATE)));
  55.  
  56.         // additional parameters
  57.         put(ATTRIBUTE_ALERT, content.get(ATTRIBUTE_ALERT));
  58.       }
  59.     };
  60.  
  61.     task.setContent(taskContent);
  62.  
  63.   }
  64.  
  65.   private Date getDate(Object dateString) {
  66.     // nothing changed here
  67.   }
  68. }