public JsonObject unwrapJsonObject(ScriptObjectMirror obj) { JsonObject unwrapped = new JsonObject(); for (String key : obj.getOwnKeys(true)) { Object value = obj.get(key); if (value instanceof ScriptObjectMirror) { value = unwrapJsonElement((ScriptObjectMirror) value); } unwrapped.put(key, value); } return unwrapped; }
public static void main(String[] args) throws Exception { ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn"); engine.eval("load('java8-nashorn/src/main/resources/nashorn6.js')"); Invocable invocable = (Invocable) engine; Product product = new Product(); product.setName("Rubber"); product.setPrice(1.99); product.setStock(1337); ScriptObjectMirror result = (ScriptObjectMirror) invocable.invokeFunction("calculate", product); System.out.println(result.get("name") + ": " + result.get("valueOfGoods")); }
private static int length(Object value) { if (!(value instanceof ScriptObjectMirror)) { return -1; } final ScriptObjectMirror mirror = (ScriptObjectMirror) value; final Number length = (Number) mirror.get("length"); if (length == null) { return -1; } return length.intValue(); }
private static int length(Object value) { if (!(value instanceof ScriptObjectMirror)) { return -1; } final ScriptObjectMirror mirror = (ScriptObjectMirror) value; final Number length = (Number) mirror.get("length"); if (length == null) { return -1; } return length.intValue(); }
private static int length(Object value) { if (!(value instanceof ScriptObjectMirror)) { return -1; } final ScriptObjectMirror mirror = (ScriptObjectMirror) value; final Number length = (Number) mirror.get("length"); if (length == null) { return -1; } return length.intValue(); }
args = new Object[arguments.size()]; for (Integer n = 0; n < arguments.size(); n++) { args[n] = arguments.get(n.toString());
private static String logMessageSimple(StringBuilder out, ScriptObjectMirror values, int start, int end) { for (int i = start; i < end; i++) { if (out.length() != 0) { out.append(' '); } out.append(values.get(int2str(i))); } return out.toString(); }
private static String logMessageSimple(StringBuilder out, ScriptObjectMirror values, int start, int end) { for (int i = start; i < end; i++) { if (out.length() != 0) { out.append(' '); } out.append(values.get(int2str(i))); } return out.toString(); }
public static Object getStaticProp( ScriptEngine engine, String className, String property ) { ScriptObjectMirror classObject = getClassObject( engine, className ); return classObject.get( property ); }
boolean hasFunction(String funcName) { final Object member = plugin.get(funcName); if (!(member instanceof JSObject)) { return false; } return ((JSObject) member).isFunction(); }
boolean hasFunction(String funcName) { final Object member = plugin.get(funcName); if (!(member instanceof JSObject)) { return false; } return ((JSObject) member).isFunction(); }
boolean hasFunction(String funcName) { final Object member = plugin.get(funcName); if (!(member instanceof JSObject)) { return false; } return ((JSObject) member).isFunction(); }
private static String logMessage(ScriptObjectMirror mirror, int length) { final Object first = mirror.get("0"); if (first instanceof String) { final String format = (String) first; if (SUBSTITUTIONS.matcher(format).find()) { // The first element is a string and it contains substitution(s). return logMessageFormat(format, mirror, length); } } // The first element does not contain substitution(s). return logMessageSimple(new StringBuilder(64), mirror, 0, length); }
private static String logMessage(ScriptObjectMirror mirror, int length) { final Object first = mirror.get("0"); if (first instanceof String) { final String format = (String) first; if (SUBSTITUTIONS.matcher(format).find()) { // The first element is a string and it contains substitution(s). return logMessageFormat(format, mirror, length); } } // The first element does not contain substitution(s). return logMessageSimple(new StringBuilder(64), mirror, 0, length); }
private static String logMessage(ScriptObjectMirror mirror, int length) { final Object first = mirror.get("0"); if (first instanceof String) { final String format = (String) first; if (SUBSTITUTIONS.matcher(format).find()) { // The first element is a string and it contains substitution(s). return logMessageFormat(format, mirror, length); } } // The first element does not contain substitution(s). return logMessageSimple(new StringBuilder(64), mirror, 0, length); }
public static Throwable exception(Object err) { if (err instanceof ScriptObjectMirror) { final ScriptObjectMirror mirror = (ScriptObjectMirror) err; final Object exception = mirror.get("nashornException"); if (exception instanceof Throwable) { return new PluginException((Throwable) exception); } } return new PluginException(String.valueOf(err)); }
public static Throwable exception(Object err) { if (err instanceof ScriptObjectMirror) { final ScriptObjectMirror mirror = (ScriptObjectMirror) err; final Object exception = mirror.get("nashornException"); if (exception instanceof Throwable) { return new PluginException((Throwable) exception); } } return new PluginException(String.valueOf(err)); }
public JsonArray unwrapJsonArray(ScriptObjectMirror obj) { JsonArray unwrapped = new JsonArray(); long len = (long) obj.size(); for (int i = 0;i < len;i++) { Object value = obj.get("" + i); if (value instanceof ScriptObjectMirror) { value = unwrapJsonElement((ScriptObjectMirror) value); } unwrapped.add(value); } return unwrapped; }
@Test public void jsInContract_execParams() throws Exception { Contract contract = new Contract(TestKeys.privateKey(0)); String js = ""; js += "print('jsApiParams.length: ' + jsApiParams.length);"; js += "result = [jsApiParams.length, jsApiParams[0], jsApiParams[1]];"; contract.getDefinition().setJS(js.getBytes(), "client script.js", new JSApiScriptParameters()); contract.seal(); ScriptObjectMirror res = (ScriptObjectMirror) contract.execJS(js.getBytes(), "prm1", "prm2"); assertEquals(2, res.get("0")); assertEquals("prm1", res.get("1")); assertEquals("prm2", res.get("2")); }