public void invoke(RowMap row) { if ( row instanceof HeartbeatRowMap && processHeartbeatFunc != null ) processHeartbeatFunc.call(null, new WrappedHeartbeatMap((HeartbeatRowMap) row)); else if ( row instanceof DDLMap && processDDLFunc != null ) processDDLFunc.call(null, new WrappedDDLMap((DDLMap) row)); else if ( row instanceof RowMap && processRowFunc != null ) processRowFunc.call(null, new WrappedRowMap(row)); }
public static void showcase(Object... args) { Element eShowcase = new Element(); eShowcase.setName("SHOWCASE"); for (Object arg : args) { log.trace("arg: %s", arg); if (((ScriptObjectMirror) arg).isFunction()) { ((ScriptObjectMirror) arg).call(arg, eShowcase); } } } }
String beautifyJs(final String js) { return (String) jsBeautify.call("beautify", js, BEAUTIFY_OPTIONS); }
String beautifyJs(final String js) { return (String) jsBeautify.call("beautify", js, BEAUTIFY_OPTIONS); }
Object thiz = engine.eval("this"); // get you global object ScriptObjectMirror func = engine.eval("function() { print('hello'); }"); func.call(thiz); // pass global object as "this" for the function
/** * Checks rule event condition by evaluating the defined knowledge base rule method. * * @param rule rule. * @param event event. * @return {@code true} if this condition is met. */ @Override public boolean condition(Rule rule, Event event) { Object result = function.call(null, rule, event); if (!(result instanceof Boolean)) { throw new IllegalArgumentException("Condition method must return boolean value"); } return (Boolean) result; } }
public void forEach(Map<String, Object> map, ScriptObjectMirror som) { if (map == null) { return; } if (!som.isFunction()) { throw new RuntimeException("not a JS function: " + som); } AtomicInteger i = new AtomicInteger(); map.forEach((k, v) -> som.call(som, k, v, i.getAndIncrement())); }
public void forEach(List list, ScriptObjectMirror som) { if (list == null) { return; } if (!som.isFunction()) { throw new RuntimeException("not a JS function: " + som); } for (int i = 0; i < list.size(); i++) { som.call(som, list.get(i), i); } }
private static Function<Object[], Object> toFunction( final ScriptObjectMirror source ) { return arg -> toObject( source.call( null, arg ) ); } }
@Test(dataProvider = "validReferenceNumbers", timeOut = 3000) public final void testValidReferenceNumber(String referenceNumber) throws ScriptException { Map<String, String> parameters = new HashMap<>(); parameters.put("referenceNumber", referenceNumber); Bindings bindings = engine.createBindings(); script.eval(bindings); ScriptObjectMirror scriptObjectMirror = (ScriptObjectMirror) bindings.get("validate"); Object result = scriptObjectMirror.call(null, parameters); /* insert result assertions here */ }
public Object map(List list, ScriptObjectMirror som) { if (list == null) { return new ArrayList(); } if (!som.isFunction()) { throw new RuntimeException("not a JS function: " + som); } List res = new ArrayList(list.size()); for (int i = 0; i < list.size(); i++) { Object y = som.call(som, list.get(i), i); res.add(y); } return res; }
@Override public String compile(String filename, SourceFactory sourceFactory) throws IOException { ScriptEngine e = getEngine(); ScriptObjectMirror o = (ScriptObjectMirror)e.get("compileTypescript"); return (String)o.call(null, filename, sourceFactory); } }
public Object filter(List list, ScriptObjectMirror som) { if (list == null) { return new ArrayList(); } if (!som.isFunction()) { throw new RuntimeException("not a JS function: " + som); } List res = new ArrayList(); for (int i = 0; i < list.size(); i++) { Object x = list.get(i); Object y = som.call(som, x, i); if (y instanceof Boolean) { if ((Boolean) y) { res.add(x); } } else if (y instanceof Number) { // support truthy numbers as a convenience String exp = y + " == 0"; ScriptValue sv = Script.evalJsExpression(exp, null); if (!sv.isBooleanTrue()) { res.add(x); } } } return res; }
public static ScriptValue evalFunctionCall(ScriptObjectMirror som, Object callArg, ScenarioContext context) { // injects the 'karate' variable into the js function body // also ensure that things like 'karate.get' operate on the latest variable state som.setMember(ScriptBindings.KARATE, context.bindings.bridge); Object result; try { if (callArg != null) { result = som.call(som, callArg); } else { result = som.call(som); } return new ScriptValue(result); } catch (Exception e) { String message = "javascript function call failed: " + e.getMessage(); context.logger.error(message); context.logger.error("failed function body: " + som); throw new KarateException(message); } }
public boolean isEach(ScriptObjectMirror som) { if (!som.isFunction()) { return false; } for (String s : values) { Object o = som.call(som, s); ScriptValue sv = new ScriptValue(o); if (!sv.isBooleanTrue()) { return false; } } return true; }
@Override public ScriptValue call( final Object... args ) { try { final Object[] jsArray = convertArgs( args ); final Object result = this.value.call( this.scope, jsArray ); return this.factory.newValue( result ); } catch ( final Exception e ) { throw ErrorHelper.INSTANCE.handleError( e ); } }
engine.eval( "(function (exports, require, module, __filename, __dirname) {" + code + "\n})"); function.call(created, created.exports, created, created.module, filename, dirname); } finally { engine.put(ScriptEngine.FILENAME, previousFilename);
engine.eval( "(function (exports, require, module, __filename, __dirname) {" + code + "\n})"); function.call(created, created.exports, created, created.module, filename, dirname); } finally { engine.put(ScriptEngine.FILENAME, previousFilename);
private Object executeRequire( final ResourceKey script, final ScriptObjectMirror func ) { try { final ResolveFunction resolve = new ResolveFunction( script ); final RequireFunction require = new RequireFunction( script, this ); final ScriptLogger logger = new ScriptLogger( script ); final ExecuteFunction execute = new ExecuteFunction( script, this.invoker ); final ModuleScriptInfo moduleInfo = new ModuleScriptInfo( script ); return func.call( moduleInfo, script, logger, execute, require, resolve ); } catch ( final Exception e ) { throw ErrorHelper.handleError( e ); } }
private Object executeRequire( final ResourcePath script, final ScriptObjectMirror func ) { try { final ScriptObjectMirror exports = this.nashornRuntime.newJsObject(); final ScriptObjectMirror module = this.nashornRuntime.newJsObject(); module.put( "id", script.toString() ); module.put( "exports", exports ); final ExecutionContextImpl context = new ExecutionContextImpl( this, script ); final Function<String, Object> requireFunc = context::require; final Function<String, ResourcePath> resolveFunc = context::resolve; func.call( exports, context, requireFunc, resolveFunc, context.getLogger(), exports, module ); return module.get( "exports" ); } catch ( final Exception e ) { throw ErrorHelper.INSTANCE.handleError( e ); } }