/** * */ package net.conselldemallorca.helium.jbpm3.command; import java.util.Collection; import org.jbpm.JbpmContext; import org.jbpm.command.AbstractGetObjectBaseCommand; import org.jbpm.graph.exe.Token; import org.jbpm.taskmgmt.exe.TaskInstance; /** * Command per a cercar instancies de tasca actives que * pertanyen a la mateixa tasca. * * @author Limit Tecnologies <limit@limit.es> */ public class FindTaskInstanceForTokenAndTaskCommand extends AbstractGetObjectBaseCommand { private static final long serialVersionUID = -1908847549444051495L; private long tokenId; private String taskName; public FindTaskInstanceForTokenAndTaskCommand(long tokenId, String taskName){ super(); this.tokenId = tokenId; this.taskName = taskName; } public Object execute(JbpmContext jbpmContext) throws Exception { Token token = jbpmContext.getToken(tokenId); Collection<TaskInstance> unfinishedTasks = jbpmContext.getProcessInstance(token.getProcessInstance().getId()).getTaskMgmtInstance().getUnfinishedTasks(token); for (TaskInstance task: unfinishedTasks) { if (task.getTask().getName().equals(taskName)) return task; } return null; } public long getTokenId() { return tokenId; } public void setTokenId(long tokenId) { this.tokenId = tokenId; } public String getTaskName() { return taskName; } public void setTaskName(String taskName) { this.taskName = taskName; } @Override public String getAdditionalToStringInformation() { return "tokenId=" + tokenId + ", taskName=" + taskName; } }