Refine search
protected Object evaluateExpression(Object expression, Map<String, Object> parameters) { try { Object result = null; StringWriter writer = new StringWriter(); ScriptContext context = new SimpleScriptContext(); for (Map.Entry<String, Object> property : engineProperties.entrySet()) { context.setAttribute(property.getKey(), property.getValue(), ScriptContext.ENGINE_SCOPE); } Bindings bindings = context.getBindings(ScriptContext.ENGINE_SCOPE); bindings.putAll(parameters); context.setBindings(bindings, ScriptContext.ENGINE_SCOPE); context.setWriter(writer); if (expression instanceof CompiledScript) { logger.debug("About to evaluate compiled expression {} with bindings {} on engine", expression, parameters, scriptEngine); result = ((CompiledScript) expression).eval(context); } else { logger.debug("About to evaluate expression {} with bindings {} on engine", expression, parameters, scriptEngine); result = scriptEngine.eval(expression.toString(), context); } if (result == null) { result = writer.toString(); } return result; } catch (ScriptException e) { throw new RuntimeException("Error when evaluating script", e); } }
private static void test3() throws ScriptException { NashornScriptEngine engine = createEngine(); ScriptContext defaultContext = engine.getContext(); Bindings defaultBindings = defaultContext.getBindings(ScriptContext.ENGINE_SCOPE); SimpleScriptContext context = new SimpleScriptContext(); context.setBindings(defaultBindings, ScriptContext.ENGINE_SCOPE); engine.eval("function foo() { print('bar') };", context); engine.eval("foo();", context); Bindings bindings = context.getBindings(ScriptContext.ENGINE_SCOPE); System.out.println(bindings.get("foo")); System.out.println(context.getAttribute("foo")); }
public ScriptBindings(List<Resolver> scriptResolvers, VariableScope variableScope) { this.scriptResolvers = scriptResolvers; this.variableScope = variableScope; this.defaultBindings = new SimpleScriptContext().getBindings(SimpleScriptContext.ENGINE_SCOPE); }
private static void test5() throws ScriptException { NashornScriptEngine engine = createEngine(); engine.eval("var obj = { foo: 'foo' };"); engine.eval("function printFoo() { print(obj.foo) };"); ScriptContext defaultContext = engine.getContext(); Bindings defaultBindings = defaultContext.getBindings(ScriptContext.ENGINE_SCOPE); SimpleScriptContext context1 = new SimpleScriptContext(); context1.setBindings(defaultBindings, ScriptContext.ENGINE_SCOPE); SimpleScriptContext context2 = new SimpleScriptContext(); context2.setBindings(defaultBindings, ScriptContext.ENGINE_SCOPE); engine.eval("obj.foo = 'bar';", context1); engine.eval("printFoo();", context1); engine.eval("printFoo();", context2); }
public static void main(String[] args) throws Exception { if (args.length == 0) { System.out.println("No file specified"); return; } InputStreamReader r = new InputStreamReader(new FileInputStream(args[0])); ScriptEngine engine = new EmbeddedRhinoScriptEngine(); SimpleScriptContext context = new SimpleScriptContext(); engine.put(ScriptEngine.FILENAME, args[0]); engine.eval(r, context); context.getWriter().flush(); } }
ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("nashorn"); ScriptContext ctx = new SimpleScriptContext(); ctx.setBindings(engine.createBindings(), ScriptContext.ENGINE_SCOPE); engine.eval("function hello() { return 'Hello!'; }", ctx); engine.setContext(ctx); ((Invocable) engine).invokeFunction("hello");
public static void runScript(Network network, Reader reader, Writer out) { ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine jsEngine = mgr.getEngineByName("js"); try { ScriptContext context = new SimpleScriptContext(); context.setAttribute("network", network, ScriptContext.ENGINE_SCOPE); if (out != null) { context.setWriter(out); } jsEngine.eval(reader, context); } catch (ScriptException e) { throw new PowsyblException(e); } }
/** * @native ts * var print = console.log; * return eval(this._script); */ private boolean callScript(Node node, TaskContext context) { ScriptContext scriptCtx = new SimpleScriptContext(); scriptCtx.setAttribute("node", node, ScriptContext.ENGINE_SCOPE); scriptCtx.setAttribute("context", context, ScriptContext.ENGINE_SCOPE); try { return (boolean) TaskHelper.SCRIPT_ENGINE.eval(_script, scriptCtx); } catch (ScriptException | ClassCastException e) { throw new RuntimeException(e); } }
protected ScriptContext getScriptContext(Bindings bindings) { if (bindings == null) { throw new NullPointerException("null bindings in engine scope"); } ScriptContext newContext = new SimpleScriptContext(); newContext.setBindings(bindings, ScriptContext.ENGINE_SCOPE); Bindings global = getBindings(ScriptContext.GLOBAL_SCOPE); if (global != null) { newContext.setBindings(global, ScriptContext.GLOBAL_SCOPE); } newContext.setReader(context.getReader()); newContext.setWriter(context.getWriter()); newContext.setErrorWriter(context.getErrorWriter()); return newContext; }
public Serializable evalExpr(String expr, Map<String, ? extends Serializable> context) { ScriptContext scriptContext = new SimpleScriptContext(); for(Map.Entry<String, ? extends Serializable> entry:context.entrySet()){ scriptContext.setAttribute(entry.getKey(), entry.getValue(), ScriptContext.ENGINE_SCOPE); } if(scriptContext.getAttribute(TRUE) == null) scriptContext.setAttribute(TRUE, Boolean.TRUE, ScriptContext.ENGINE_SCOPE); if(scriptContext.getAttribute(FALSE) == null) scriptContext.setAttribute(FALSE, Boolean.FALSE, ScriptContext.ENGINE_SCOPE); try { return (Serializable) engine.eval(expr,scriptContext); } catch (ScriptException e) { ScriptException scriptException = new ScriptException(e); throw new RuntimeException( "Error in running script expression or variable reference, for expression: '" + expr + "', Script exception is: \n" + scriptException.getMessage(), scriptException); } }
import javax.script.ScriptContext; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; import javax.script.SimpleScriptContext; public class Jsr223Binding { private Jsr223Binding() throws ScriptException { System.setProperty("org.jruby.embed.localvariable.behavior", "transient"); ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("jruby"); ScriptContext ctx1 = new SimpleScriptContext(); ScriptContext ctx2 = new SimpleScriptContext(); engine.eval("$foo = 5\nputs $foo", ctx1); engine.eval("puts $foo", ctx2); } public static void main(String[] args) throws ScriptException { new Jsr223Binding(); } }
public static void main(String[] args) throws ScriptException, IOException { StringWriter writer = new StringWriter(); //ouput will be stored here ScriptEngineManager manager = new ScriptEngineManager(); ScriptContext context = new SimpleScriptContext(); context.setWriter(writer); //configures output redirection ScriptEngine engine = manager.getEngineByName("python"); engine.eval(new FileReader("numbers.py"), context); System.out.println(writer.toString()); }
ScriptContext ctx = new SimpleScriptContext(); Bindings b = engine.getBindings(ScriptContext.ENGINE_SCOPE); putConnector(b, shellState.getAccumuloClient()); b.put("client", shellState.getAccumuloClient()); ctx.setBindings(b, ScriptContext.ENGINE_SCOPE); Object[] argArray = argValues.toArray(new Object[argValues.size()]); File f = new File(cl.getOptionValue(out.getOpt())); writer = new FileWriter(f); ctx.setWriter(writer); engine.eval(reader, ctx); if (invoke) { this.invokeFunctionOrMethod(shellState, engine, cl, argArray); engine.eval(inlineScript, ctx); if (invoke) { this.invokeFunctionOrMethod(shellState, engine, cl, argArray);
@Override public void setup(OperatorContext context) { this.scriptContext.setBindings(scriptBindings, ScriptContext.ENGINE_SCOPE); engine.setContext(this.scriptContext); try { if (setupScript != null) { engine.eval(setupScript, this.scriptContext); } } catch (ScriptException ex) { LOG.error("script \"{}\" has error", setupScript); throw new RuntimeException(ex); } }
ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine engine = manager.getEngineByName("nashorn"); ScriptContext context = new SimpleScriptContext(); int scope = context.getScopes().get(0); context.setAttribute("japan", 100, scope); context.setAttribute("london", 10, scope); context.setAttribute("jhon", -10, scope); context.setAttribute("last", 1000, scope); String str = "usa_newyork= japan / london * 44 + jhon < last - 987"; Object usa_newyork = engine.eval(str, context); System.out.println(usa_newyork);
ScriptContext context = new SimpleScriptContext(); context.setWriter(writer); ScriptEngine engine = manager.getEngineByName("python"); // CHANGE: Set the context in the engine, so that invoking functions // is done in the same scope as evaluating the script. engine.setContext(context); engine.eval(new FileReader("test.py")); Invocable inv = (Invocable)engine; inv.invokeFunction("func_name", param1, param2);
public void run(String code, String extension, Map<String, Object> vars) throws ScriptException { ScriptEngine engine = loadEngine(extension); if (engine == null) throw new ScriptException("Couldn't load engine with extension " + extension); ScriptContext context = new SimpleScriptContext(); if (vars != null) { context.setBindings(new SimpleBindings(vars), ScriptContext.ENGINE_SCOPE); } engine.eval(extension, context); }
private ScriptEngine getJsEngine(Writer output) throws IOException, ScriptException { ScriptEngine ret = null; if (jsEngine != null) { ret = jsEngine.get(); } if (ret == null) { ret = new ScriptEngineManager().getEngineByName("javascript"); ScriptContext ctx = new SimpleScriptContext(); Bindings globalScope = ret.createBindings(); ctx.setBindings(globalScope, ScriptContext.GLOBAL_SCOPE); initTv4(ret, globalScope); ret.setContext(ctx); jsEngine = new WeakReference<>(ret); } ret.getContext().setWriter(output); ret.getContext().setErrorWriter(output); return ret; }
public void testScriptFilename() { ScriptEngineManager manager = new ScriptEngineManager(); ScriptEngine pythonEngine = manager.getEngineByName("python"); SimpleScriptContext scriptContext = new SimpleScriptContext(); scriptContext.setAttribute(ScriptEngine.FILENAME, "sample.py", ScriptContext.ENGINE_SCOPE); try { pythonEngine.eval("foo", scriptContext); } catch (ScriptException e) { assertEquals("sample.py", e.getFileName()); return; } assertTrue("Expected a ScriptException", false); }
private void configureEngine() { ScriptContext context = new SimpleScriptContext(); context.setWriter(output); context.setErrorWriter(output); engine.setContext(context); engine.put("out", output); engine.put("err", output); output.println(MessageFormat.format("Script language set to {0}.", engine.getFactory().getLanguageName())); final URL url = findInitScript(); if (url != null) { output.println(MessageFormat.format("Loading initialisation script ''{0}''...", url)); execute0(url, new Observer() { @Override public void onSuccess(Object value) { } @Override public void onFailure(Throwable throwable) { output.println("Failed to load initialisation script. " + "BEAM-specific language extensions are disabled."); throwable.printStackTrace(output); } }); output.println("Initialisation script loaded. BEAM-specific language extensions are enabled."); } else { output.println("No initialisation script found. " + "BEAM-specific language extensions are disabled."); } }