package spimedb.util.js; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; import javax.script.SimpleBindings; import java.io.*; /** * Created by me on 7/19/15. */ public class JSScript extends SimpleBindings { protected final ScriptEngine engine; public JSScript(ScriptEngine engine) { this.engine = engine; } public JSScript() { this(new ScriptEngineManager().getEngineByName("nashorn")); } public JSScript with(String key, Object value) { put(key, value); return this; } public void run(File file) throws ScriptException, FileNotFoundException { run(new FileReader(file)); } public void run(String jsCode) throws ScriptException { run(new StringReader(jsCode)); } public void run(Reader reader) throws ScriptException { engine.eval(reader, this); } }