List of usage examples for jdk.nashorn.api.scripting ScriptUtils convert
public static Object convert(final Object obj, final Object type)
From source file:com.qwazr.library.xml.XMLTool.java
License:Apache License
/** * Parse an XML stream and call the JS functions * * @param jsObject any Javascript receiving the events * @param input the stream/*from w w w . java 2 s.c om*/ * @throws ParserConfigurationException if any XML error occurs * @throws SAXException if any XML error occurs * @throws IOException if any I/O error occurs */ public void parseStream(ScriptObjectMirror jsObject, InputStream input) throws ParserConfigurationException, SAXException, IOException { DefaultHandler defaultHandler = (DefaultHandler) ScriptUtils.convert(jsObject, DefaultHandler.class); SAXParser saxParser = saxParserFactory.newSAXParser(); saxParser.parse(input, defaultHandler); }
From source file:de.axelfaust.alfresco.nashorn.repo.utils.NativeLogMessageArgumentWrapper.java
License:Open Source License
@Override public String toString() { final Object converted = ScriptUtils.convert(this.scriptObject, String.class); final String result = String.valueOf(converted); return result; }
From source file:org.eclairjs.nashorn.JSBaseFunction.java
License:Apache License
static Object castDataType(Object x, Encoder encoder) { if (encoder == null) return x; String cls = encoder.clsTag().toString(); switch (cls) { case "java.lang.Integer": return ScriptUtils.convert(x, Integer.class); case "java.lang.Float": return ScriptUtils.convert(x, Float.class); case "java.lang.Double": return ScriptUtils.convert(x, Double.class); case "java.lang.String": return ScriptUtils.convert(x, String.class); case "java.lang.Long": return ScriptUtils.convert(x, Long.class); case "java.lang.Boolean": return ScriptUtils.convert(x, Boolean.class); }/*from www . ja v a 2 s . c o m*/ return x; }
From source file:org.eclairjs.nashorn.Utils.java
License:Apache License
public static Object jsToJava(Object o) { if (o != null && !(o instanceof Undefined)) { logger.debug("jsToJava" + o.getClass().getName()); } else {//from ww w.jav a 2 s . com return o; } if (o instanceof jdk.nashorn.internal.objects.NativeArray) { Object array[] = ((NativeArray) o).asObjectArray(); ArrayList al = new ArrayList(); for (int i = 0; i < array.length; i++) { al.add(jsToJava(array[i])); } return al.toArray(); } if (o.getClass().isPrimitive()) return o; String packageName = o.getClass().getCanonicalName(); switch (packageName) { case "java.lang.String": case "java.lang.Integer": case "java.lang.Float": case "java.lang.Double": case "java.lang.Boolean": case "java.lang.Long": case "org.json.simple.JSONObject": case "java.lang.Object[]": case "java.lang.String[]": case "scala.Tuple2": case "scala.Tuple3": case "scala.Tuple4": return o; } if (packageName.startsWith("org.apache.spark")) return o; if (o instanceof WrappedClass) return ((WrappedClass) o).getJavaObject(); if (o instanceof ScriptObjectMirror) { ScriptObjectMirror m = (ScriptObjectMirror) o; if (m.hasMember("getJavaObject")) { return m.callMember("getJavaObject"); } if (m.isArray()) { try { if (m.containsKey("0")) { Object v = m.get("0"); if (v instanceof Double) { double[] doubleArray = (double[]) ScriptUtils.convert(m, double[].class); return doubleArray; } else if (v instanceof Integer) { int[] intArray = (int[]) ScriptUtils.convert(m, int[].class); return intArray; } else { Object[] objectArray = (Object[]) ScriptUtils.convert(m, Object[].class); return objectArray; } } } catch (ClassCastException e) { /* If the array contains ScriptObjectMirror the above conversions throws exception so we have to convert the contents of the array as well. */ ArrayList list = new ArrayList(); for (Object item : m.values()) { list.add(jsToJava(item)); } Object x = list.toArray(); return x; } } else { // throw new RuntimeException("js2java IMPLEMENT"+o); Object obj = ScriptObjectMirror.wrapAsJSONCompatible(o, null); String j = JSONValue.toJSONString(obj); return JSONValue.parse(j); } } else if (o instanceof jdk.nashorn.internal.runtime.ScriptObject) { ScriptObjectMirror jsObj = ScriptUtils.wrap((jdk.nashorn.internal.runtime.ScriptObject) o); if (jsObj.hasMember("getJavaObject")) { return jsObj.callMember("getJavaObject"); } } else if (o instanceof java.util.ArrayList) { ArrayList list = (ArrayList) o; int size = list.size(); for (int i = 0; i < size; i++) list.set(i, jsToJava(list.get(i))); return list; } else if (o instanceof StaticClass) { return o; } logger.warn("js2java NOT HANDLED " + packageName); return o; // Just return the Java object, it might user created like java.net.Socket //new RuntimeException().printStackTrace(); //throw new RuntimeException("js2java NOT HANDLED "+packageName); }
From source file:org.eclairjs.nashorn.Utils.java
License:Apache License
public static Object[] convertBindArgs(Object bindArgs, SparkContext sc) { if (bindArgs != null) { boolean inJar = true; Object[] bindArr = (Object[]) ScriptUtils.convert(bindArgs, Object[].class); for (int i = 0; i < bindArr.length; i++) { if (ModuleUtils.isModule(bindArr[i])) { ScriptObjectMirror som = ModuleUtils.getRequiredFile(bindArr[i]); // som=(ScriptObjectMirror)ScriptObjectMirror.wrapAsJSONCompatible(som,null); // String j = JSONValue.toJSONString(som); String j = toJSON(som); JSONObject json = null;/*from w ww . ja v a 2 s. c o m*/ try { json = (JSONObject) new JSONParser().parse(j); } catch (ParseException e) { e.printStackTrace(); } Object v = json.get("core"); if (v instanceof Boolean && ((Boolean) v).booleanValue()) { } else inJar = false; bindArr[i] = json; } else { bindArr[i] = Utils.jsToJava(bindArr[i]); } } if (!inJar && !sc.isLocal()) { ModuleUtils.addCustomFiles(sc); } return bindArr; } return null; }
From source file:org.eclairjs.nashorn.Utils.java
License:Apache License
public static int[] toIntArray(Object arr) { if (arr instanceof NativeArray) arr = ScriptUtils.wrap((NativeArray) arr); if (arr instanceof ScriptObjectMirror) { ScriptObjectMirror m = (ScriptObjectMirror) arr; if (m.isArray()) { try { int[] intArray = (int[]) ScriptUtils.convert(m, int[].class); return intArray; } catch (ClassCastException e) { /*//from w ww .ja v a 2s.co m If the array contains ScriptObjectMirror the above conversions throws exception so we have to convert the contents of the array as well. */ ArrayList list = new ArrayList(); for (Object item : m.values()) { list.add(jsToJava(item)); } Object x = list.toArray(); return (int[]) x; } } } throw new RuntimeException("expecting array, got " + arr); }
From source file:org.eclairjs.nashorn.Utils.java
License:Apache License
public static double[] toDoubleArray(Object arr) { if (arr instanceof NativeArray) arr = ScriptUtils.wrap((NativeArray) arr); if (arr instanceof ScriptObjectMirror) { ScriptObjectMirror m = (ScriptObjectMirror) arr; if (m.isArray()) { try { double[] doubleArray = (double[]) ScriptUtils.convert(m, double[].class); return doubleArray; } catch (ClassCastException e) { /*// w ww . j a va2 s .c o m If the array contains ScriptObjectMirror the above conversions throws exception so we have to convert the contents of the array as well. */ return (double[]) smToArray(m); } } } throw new RuntimeException("expecting array, got " + arr); }
From source file:org.eclairjs.nashorn.Utils.java
License:Apache License
public static Object[] toObjectArray(Object arr) { if (arr instanceof ScriptObjectMirror) { ScriptObjectMirror m = (ScriptObjectMirror) arr; if (m.isArray()) { try { Object[] objectArray = (Object[]) ScriptUtils.convert(m, Object[].class); Object[] uwArray = new Object[objectArray.length]; for (int i = 0; i < objectArray.length; i++) uwArray[i] = jsToJava(objectArray[i]); return uwArray; } catch (ClassCastException e) { /*/*from ww w.j av a2 s .c om*/ If the array contains ScriptObjectMirror the above conversions throws exception so we have to convert the contents of the array as well. */ return (Object[]) smToArray(m); } } } else if (arr instanceof jdk.nashorn.internal.objects.NativeArray) { Object array[] = ((NativeArray) arr).asObjectArray(); ArrayList al = new ArrayList(); for (int i = 0; i < array.length; i++) { al.add(jsToJava(array[i])); } return al.toArray(); } else { if (arr.getClass().isArray()) { Object[] o = (Object[]) arr; Object[] newArr = new Object[o.length]; for (int i = 0; i < o.length; i++) { newArr[i] = jsToJava(o[i]); } return newArr; } } throw new RuntimeException("expecting array, got " + arr); }