package com.mossle.bpm.cmd; import java.util.HashMap; import java.util.Map; import org.activiti.engine.impl.context.Context; import org.activiti.engine.impl.interceptor.Command; import org.activiti.engine.impl.interceptor.CommandContext; import org.activiti.engine.impl.persistence.entity.ExecutionEntity; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.pvm.process.ProcessDefinitionImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class ListActivityCmd implements Command<Map<String, String>> { private static Logger logger = LoggerFactory .getLogger(ListActivityCmd.class); private String executionId; public ListActivityCmd(String executionId) { this.executionId = executionId; } public Map<String, String> execute(CommandContext commandContext) { ExecutionEntity executionEntity = Context.getCommandContext() .getExecutionEntityManager().findExecutionById(executionId); ProcessDefinitionImpl processDefinition = executionEntity .getProcessDefinition(); Map<String, String> map = new HashMap<String, String>(); for (ActivityImpl activity : processDefinition.getActivities()) { logger.info("{}", activity.getProperties()); if ("userTask".equals(activity.getProperty("type"))) { map.put(activity.getId(), (String) activity.getProperty("name")); } } return map; } }