@Override public Object run(Map<String, Object> variables) { container.clear(); if (variables != null) { for (Entry<String, Object> entry : variables.entrySet()) { container.put(entry.getKey(), entry.getValue()); } } return unit.run(); } }
@Override public final String transform(HttpServletRewrite event, String input) { ScriptingContainer container = getContainer(event.getServletContext()); try { Object result = null; // 'input' will be the string to transform container.put("input", input); // execute the script returned by the implementation result = runScript(container); // the result must be a string return result != null ? result.toString() : null; } finally { if (container != null) container.clear(); } }
@Override public void process(Map<String, Object> tuple) { try { if (type == Type.EVAL) { for (Map.Entry<String, Object> entry : tuple.entrySet()) { sc.put(entry.getKey(), entry.getValue()); } evalResult = unit.run(); } else { Object[] args = new Object[tuple.size()]; int index = 0; for (Map.Entry<String, Object> entry : tuple.entrySet()) { args[index++] = entry.getValue(); } evalResult = sc.callMethod(evalResult, script, args); } if (isPassThru && result.isConnected()) { result.emit(evalResult); } if (isPassThru && outBindings.isConnected()) { outBindings.emit(getBindings()); } sc.clear(); } catch (Exception ex) { throw new RuntimeException(ex); } }
@Override public void process(Map<String, Object> tuple) { try { if(type == Type.EVAL) { for (Map.Entry<String, Object> entry : tuple.entrySet()) { sc.put(entry.getKey(), entry.getValue()); } evalResult = unit.run(); } else { Object[] args = new Object[tuple.size()]; int index = 0; for (Map.Entry<String, Object> entry : tuple.entrySet()) { args[index++] = entry.getValue(); } evalResult = sc.callMethod(evalResult, script, args); } if (isPassThru && result.isConnected()) { result.emit(evalResult); } if (isPassThru && outBindings.isConnected()) { outBindings.emit(getBindings()); } sc.clear(); } catch (Exception ex) { throw new RuntimeException(ex); } }
@Override public ScriptExecutionResult execute(GameScript<EmbedEvalUnit> s, ScriptBindings bindings, boolean returnResult) throws Exception { PerThreadGameScript<EmbedEvalUnit> script = (PerThreadGameScript<EmbedEvalUnit>) s; ScriptingContainer scriptingContainer = executorPool.getLocalScriptingContainer(); scriptingContainer.getVarMap().putAll(bindings); if (!script.hasScript()) { script.setScript(scriptingContainer.parse(script.getContent())); } try { EmbedEvalUnit embedEvalUnit = script.getScript(); embedEvalUnit.run(); } catch (Exception e) { if(e.getCause() instanceof ScriptSkippedException) { throw new ScriptSkippedException(); } else { throw e; } } if (!returnResult) { scriptingContainer.clear(); return null; } ScriptExecutionResult executionResult = new ScriptExecutionResult(scriptingContainer.getVarMap().getMap()); scriptingContainer.clear(); return executionResult; }
public Object eval(Reader reader, ScriptContext context) throws ScriptException { if (reader == null || context == null) { throw new NullPointerException("either reader or context is null"); } String filename = Utils.getFilename(context); try { if (Utils.isClearVariablesOn(context)) { container.clear(); } Utils.preEval(container, context); EmbedEvalUnit unit = container.parse(reader, filename, Utils.getLineNumber(context)); IRubyObject ret = unit.run(); return JavaEmbedUtils.rubyToJava(ret); } catch (Exception e) { throw wrapException(e); } finally { Utils.postEval(container, context); boolean termination = Utils.isTerminationOn(context); if (termination) { container.terminate(); } } }
public Object eval(ScriptContext context) throws ScriptException { try { if (Utils.isClearVariablesOn(context)) { container.clear(); } Utils.preEval(container, context); IRubyObject ret = unit.run(); if (!(ret instanceof RubyNil)) { return JavaEmbedUtils.rubyToJava(ret); } return null; } catch (Exception e) { throw wrapException(e); } finally { Utils.postEval(container, context); boolean termination = Utils.isTerminationOn(context); if (termination) { container.terminate(); } } }
public Object eval(ScriptContext context) throws ScriptException { try { if (Utils.isClearVariablesOn(context)) { container.clear(); } Utils.preEval(container, context); IRubyObject ret = unit.run(); if (!(ret instanceof RubyNil)) { return JavaEmbedUtils.rubyToJava(ret); } return null; } catch (Exception e) { throw wrapException(e); } finally { Utils.postEval(container, context); boolean termination = Utils.isTerminationOn(context); if (termination) { container.terminate(); } } }
public Object eval(Reader reader, ScriptContext context) throws ScriptException { if (reader == null || context == null) { throw new NullPointerException("either reader or context is null"); } String filename = Utils.getFilename(context); try { if (Utils.isClearVariablesOn(context)) { container.clear(); } Utils.preEval(container, context); EmbedEvalUnit unit = container.parse(reader, filename, Utils.getLineNumber(context)); IRubyObject ret = unit.run(); return JavaEmbedUtils.rubyToJava(ret); } catch (Exception e) { throw wrapException(e); } finally { Utils.postEval(container, context); boolean termination = Utils.isTerminationOn(context); if (termination) { container.terminate(); } } }
public Object eval(Reader reader, ScriptContext context) throws ScriptException { if (reader == null || context == null) { throw new NullPointerException("either reader or context is null"); } String filename = Utils.getFilename(context); try { if (Utils.isClearVariablesOn(context)) { container.clear(); } Utils.preEval(container, context); EmbedEvalUnit unit = container.parse(reader, filename, Utils.getLineNumber(context)); IRubyObject ret = unit.run(); return JavaEmbedUtils.rubyToJava(ret); } catch (Exception e) { throw wrapException(e); } finally { Utils.postEval(container, context); boolean termination = Utils.isTerminationOn(context); if (termination) { container.terminate(); } } }
public Object eval(ScriptContext context) throws ScriptException { try { if (Utils.isClearVariablesOn(context)) { container.clear(); } Utils.preEval(container, context); IRubyObject ret = unit.run(); if (!(ret instanceof RubyNil)) { return JavaEmbedUtils.rubyToJava(ret); } return null; } catch (Exception e) { throw wrapException(e); } finally { Utils.postEval(container, context); boolean termination = Utils.isTerminationOn(context); if (termination) { container.terminate(); } } }
public Object eval(Reader reader, ScriptContext context) throws ScriptException { if (reader == null || context == null) { throw new NullPointerException("either reader or context is null"); } String filename = Utils.getFilename(context); try { if (Utils.isClearVariablesOn(context)) { container.clear(); } Utils.preEval(container, context); EmbedEvalUnit unit = container.parse(reader, filename, Utils.getLineNumber(context)); IRubyObject ret = unit.run(); return JavaEmbedUtils.rubyToJava(ret); } catch (Exception e) { throw wrapException(e); } finally { Utils.postEval(container, context); boolean termination = Utils.isTerminationOn(context); if (termination) { container.terminate(); } } }
public Object eval(ScriptContext context) throws ScriptException { try { if (Utils.isClearVariablesOn(context)) { container.clear(); } Utils.preEval(container, context); IRubyObject ret = unit.run(); if (!(ret instanceof RubyNil)) { return JavaEmbedUtils.rubyToJava(ret); } return null; } catch (Exception e) { throw wrapException(e); } finally { Utils.postEval(container, context); boolean termination = Utils.isTerminationOn(context); if (termination) { container.terminate(); } } }
public Object eval(String script, ScriptContext context) throws ScriptException { if (script == null || context == null) { throw new NullPointerException("either script or context is null"); } container.setScriptFilename(Utils.getFilename(context)); try { if (Utils.isClearVariablesOn(context)) { container.clear(); } Utils.preEval(container, context); EmbedEvalUnit unit = container.parse(script, Utils.getLineNumber(context)); IRubyObject ret = unit.run(); return JavaEmbedUtils.rubyToJava(ret); } catch (Exception e) { throw wrapException(e); } finally { Utils.postEval(container, context); boolean termination = Utils.isTerminationOn(context); if (termination) { container.terminate(); } } }
public Object eval(String script, ScriptContext context) throws ScriptException { if (script == null || context == null) { throw new NullPointerException("either script or context is null"); } container.setScriptFilename(Utils.getFilename(context)); try { if (Utils.isClearVariablesOn(context)) { container.clear(); } Utils.preEval(container, context); EmbedEvalUnit unit = container.parse(script, Utils.getLineNumber(context)); IRubyObject ret = unit.run(); return JavaEmbedUtils.rubyToJava(ret); } catch (Exception e) { throw wrapException(e); } finally { Utils.postEval(container, context); boolean termination = Utils.isTerminationOn(context); if (termination) { container.terminate(); } } }
public Object eval(String script, ScriptContext context) throws ScriptException { if (script == null || context == null) { throw new NullPointerException("either script or context is null"); } container.setScriptFilename(Utils.getFilename(context)); try { if (Utils.isClearVariablesOn(context)) { container.clear(); } Utils.preEval(container, context); EmbedEvalUnit unit = container.parse(script, Utils.getLineNumber(context)); IRubyObject ret = unit.run(); return JavaEmbedUtils.rubyToJava(ret); } catch (Exception e) { throw wrapException(e); } finally { Utils.postEval(container, context); boolean termination = Utils.isTerminationOn(context); if (termination) { container.terminate(); } } }
public Object eval(String script, ScriptContext context) throws ScriptException { if (script == null || context == null) { throw new NullPointerException("either script or context is null"); } container.setScriptFilename(Utils.getFilename(context)); try { if (Utils.isClearVariablesOn(context)) { container.clear(); } Utils.preEval(container, context); EmbedEvalUnit unit = container.parse(script, Utils.getLineNumber(context)); IRubyObject ret = unit.run(); return JavaEmbedUtils.rubyToJava(ret); } catch (Exception e) { throw wrapException(e); } finally { Utils.postEval(container, context); boolean termination = Utils.isTerminationOn(context); if (termination) { container.terminate(); } } }