/* Compile a script as provided by the script url */ private CompiledScript loadFileScript(String scriptFilePath) throws IOException, ScriptException { if (scriptFilePath.startsWith("http://") || scriptFilePath.startsWith("https://")) { // Looks like we got ourselves an absolute url URLConnection connection = new URL(scriptFilePath).openConnection(); InputStream stream = connection.getInputStream(); return engine.compile(new InputStreamReader(stream)); } else if (scriptFilePath.startsWith("/")) { File file = new File(documentRoot, scriptFilePath); return engine.compile(new FileReader(file)); } else { File file = new File(basePath, scriptFilePath); return engine.compile(new FileReader(file)); } }
void initSpaceGlobal() { Bindings bindings = engine.createBindings(); scriptContext.setBindings(bindings, ScriptContext.ENGINE_SCOPE); bindings.put("space", this); try { Scripts.LocalContext ctx = Scripts.createContext(Scripts.Space.this); Scripts.setContext(ctx); try { scriptContext.setAttribute( ScriptEngine.FILENAME, PLATYPUS_JS_FILENAME, ScriptContext.ENGINE_SCOPE); engine.eval(new URLReader(platypusJsUrl), scriptContext); } finally { Scripts.setContext(null); } } catch (ScriptException ex) { Logger.getLogger(Scripts.class.getName()).log(Level.SEVERE, null, ex); } }
/* Compile a script as a text element provided as a text node or a cdata section or a combination */ private CompiledScript loadTextScript(HTMLElement scriptElement) throws ScriptException { StringBuilder scriptText = new StringBuilder(); for (HTMLNode node : scriptElement.getChildNodes()) { // only allowed are text nodes or cdata section assert (node.isText() || node.isCdataSection()); scriptText.append(node.getNodeValue()); } return engine.compile(scriptText.toString()); }
public Object exec(String aSource) throws ScriptException, URISyntaxException { assert scriptContext != null : SCRIPT_NOT_INITIALIZED; return engine.eval(aSource, scriptContext); }
public Object exec(String aSourceName, URL aSourcePlace) throws ScriptException, URISyntaxException { scriptContext.setAttribute(ScriptEngine.FILENAME, aSourceName, ScriptContext.ENGINE_SCOPE); return engine.eval(new URLReader(aSourcePlace), scriptContext); }