This document contains quick code snippets for common script embedding operations. The idea for this section came from the paper Embedding APIs of Java-Based Scripting Engines available at: http://pnuts.org/~tomatsu/embedding.html
ScriptEnvironment env = script.getScriptEnvironment();
Scalar value = env.evaluateExpression("3 * (10 / 2)");
ScriptEnvironment env = script.getScriptEnvironment();
Scalar value = env.evaluateExpression("3 * (10 / 2)");
ScriptLoader loader = new ScriptLoader();
ScriptInstance script = loader.loadScript("name", inputStream);
script.runScript();
public class Watchdog implements RuntimeWarningWatcher
{
public void processScriptWarning(ScriptWarning warning)
{
String message = warning.getMessage();
int lineNo = warning.getLineNumber();
String script = warning.getNameShort(); // name of script
}
}
script.addWarningWatcher(new Watchdog());
try
{
ScriptInstance script;
script = loader.loadScript("name", inputStream);
}
catch (YourCodeSucksException ex)
{
Iterator i = ex.getErrors().iterator();
while (i.hasNext())
{
SyntaxError error = (SyntaxError)i.next();
String description = error.getDescription();
String code = error.getCodeSnippet();
int lineNumber = error.getLineNumber();
}
}
script.getScriptVariables().putScalar("$var", SleepUtils.getScalar("value"));
Scalar value = script.getScriptVariables().getScalar("$var");
script.callFunction("&functionName", new Stack());