/**
*
*/
package net.conselldemallorca.helium.jbpm3.command;
import java.util.ArrayList;
import java.util.List;
import org.jbpm.JbpmContext;
import org.jbpm.command.AbstractGetObjectBaseCommand;
import org.jbpm.graph.def.ProcessDefinition;
/**
* Command per obtenir la definició de procés de jBPM 3 donat el seu id
*
* @author Limit Tecnologies <limit@limit.es>
*/
public class GetParentProcessDefinitionsCommand extends AbstractGetObjectBaseCommand {
private static final long serialVersionUID = -1908847549444051495L;
private long id;
public GetParentProcessDefinitionsCommand() {}
public GetParentProcessDefinitionsCommand(long id){
super();
this.id = id;
}
@SuppressWarnings("unchecked")
public Object execute(JbpmContext jbpmContext) throws Exception {
List<ProcessDefinition> parents = new ArrayList<ProcessDefinition>();
ProcessDefinition rootProcessDefinition = jbpmContext.getGraphSession().getProcessDefinition(id);
if (rootProcessDefinition != null) {
for (ProcessDefinition pd: (List<ProcessDefinition>)rootProcessDefinition.getParents()) {
parents.add(retrieveProcessDefinition(pd));
}
}
return parents;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@Override
public String getAdditionalToStringInformation() {
return "id=" + id;
}
//methods for fluent programming
public GetParentProcessDefinitionsCommand id(long id) {
setId(id);
return this;
}
}