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());