package org.joget.workflow.shark;
import org.enhydra.shark.api.client.wfmc.wapi.WMSessionHandle;
import org.enhydra.shark.api.internal.scripting.Evaluator;
import org.enhydra.shark.api.internal.working.CallbackUtilities;
import org.enhydra.shark.scripting.BshEvaluator;
import org.enhydra.shark.scripting.PythonEvaluator;
import org.enhydra.shark.scripting.StandardScriptingManager;
public class WorkflowScriptingManager extends StandardScriptingManager {
public static final String PYTHON_SCRIPT = "text/pythonscript";
public static final String JAVA_LANGUAGE_SCRIPT = "text/java";
public static final String JAVA_SCRIPT = "text/javascript";
private BshEvaluator bshEvaluator;
private PythonEvaluator pythonEvaluator;
private WorkflowJavaScriptEvaluator jsEvaluator;
private CallbackUtilities cus;
public void configure(CallbackUtilities cus) throws Exception {
this.cus = cus;
bshEvaluator = new BshEvaluator();
bshEvaluator.configure(cus);
pythonEvaluator = new PythonEvaluator();
pythonEvaluator.configure(cus);
jsEvaluator = new WorkflowJavaScriptEvaluator();
jsEvaluator.configure(cus);
}
public Evaluator getEvaluator(WMSessionHandle shandle, String name) throws Exception {
if (name == null) {
return null;
}
Evaluator eval = null;
if (name.equals(PYTHON_SCRIPT)) {
eval = pythonEvaluator;
} else if (name.equals(JAVA_LANGUAGE_SCRIPT)) {
eval = bshEvaluator;
} else if (name.equals(JAVA_SCRIPT)) {
eval = jsEvaluator;
}
return eval;
}
}