/** * */ package net.conselldemallorca.helium.jbpm3.command; import java.util.Set; import org.jbpm.JbpmContext; import org.jbpm.command.AbstractBaseCommand; import org.jbpm.graph.action.Script; import org.jbpm.graph.exe.ExecutionContext; import org.jbpm.graph.exe.ProcessInstance; /** * Command per evaluar un script a dins una instància de procés jBPM * * @author Limit Tecnologies <limit@limit.es> */ public class EvaluateScriptCommand extends AbstractBaseCommand { private static final long serialVersionUID = -1908847549444051495L; private long id; private String script; private Set<String> outputNames; public EvaluateScriptCommand( long id, String script, Set<String> outputNames) { super(); this.id = id; this.script = script; this.outputNames = outputNames; } public Object execute(JbpmContext jbpmContext) throws Exception { ProcessInstance pi = jbpmContext.getProcessInstance(id); Script scr = new Script(); scr.setExpression(script); return scr.eval( scr.createInputMap(new ExecutionContext(pi.getRootToken())), outputNames); } public long getId() { return id; } public void setId(long id) { this.id = id; } public String getScript() { return script; } public void setScript(String script) { this.script = script; } public Set<String> getOutputNames() { return outputNames; } public void setOutputNames(Set<String> outputNames) { this.outputNames = outputNames; } @Override public String getAdditionalToStringInformation() { return "id=" + id; } //methods for fluent programming public EvaluateScriptCommand id(long id) { setId(id); return this; } }