List of usage examples for jdk.nashorn.internal.runtime ScriptObject getOwnKeys
public final String[] getOwnKeys(final boolean all)
From source file:com.threecrickets.jvm.json.nashorn.ScriptObjectEncoder.java
License:Mozilla Public License
public void encode(Object object, JsonContext context) throws IOException { ScriptObject scriptObject = (ScriptObject) object; context.out.append('{'); String[] keys = scriptObject.getOwnKeys(true); int length = keys.length; if (length > 0) { context.newline();/*from w w w .j av a 2 s. co m*/ for (int i = 0; i < length; i++) { String key = keys[i]; Object value = scriptObject.get(key); context.indentNested(); context.quoted(key); context.colon(); context.nest().encode(value); if (i < length - 1) context.comma(); } context.newline(); context.indent(); } context.out.append('}'); }
From source file:io.lightlink.utils.Utils.java
License:Open Source License
public static Object tryConvertToJavaCollections(Object value) { if (value instanceof Object[]) { value = Arrays.asList((Object[]) value); } else if (value instanceof int[]) { List<Object> res = new ArrayList<Object>(); for (int i = 0; i < ((int[]) value).length; i++) { res.add(((int[]) value)[i]); }/* w ww.j a v a 2 s . co m*/ return res; } else if (value instanceof double[]) { List<Object> res = new ArrayList<Object>(); for (int i = 0; i < ((double[]) value).length; i++) { res.add(((double[]) value)[i]); } return res; } else if (value instanceof float[]) { List<Object> res = new ArrayList<Object>(); for (int i = 0; i < ((float[]) value).length; i++) { res.add(((float[]) value)[i]); } return res; } else if (value instanceof ScriptObjectMirror && "Date".equalsIgnoreCase(((ScriptObjectMirror) value).getClassName())) { Double time = (Double) ((ScriptObjectMirror) value).callMember("getTime"); return new Date(time.longValue()); } else if (value instanceof ScriptObject) { ScriptObject scriptObject = (ScriptObject) value; if (scriptObject.isArray()) { String[] ownKeys = scriptObject.getOwnKeys(false); List<Object> res = new ArrayList<Object>(); for (String key : ownKeys) { Object propertyValue = scriptObject.get(key); propertyValue = tryConvertToJavaCollections(propertyValue); res.add(propertyValue); } return res; } else { String[] ownKeys = scriptObject.getOwnKeys(true); Map<String, Object> res = new LinkedHashMap<String, Object>(); for (String key : ownKeys) { Object propertyValue = scriptObject.get(key); propertyValue = tryConvertToJavaCollections(propertyValue); res.put(key, propertyValue); } return res; } } else if (value instanceof ScriptObjectMirror) { ScriptObjectMirror ScriptObjectMirror = (ScriptObjectMirror) value; if (ScriptObjectMirror.isArray()) { String[] ownKeys = ScriptObjectMirror.getOwnKeys(false); List<Object> res = new ArrayList<Object>(); for (String key : ownKeys) { Object propertyValue = ScriptObjectMirror.get(key); propertyValue = tryConvertToJavaCollections(propertyValue); res.add(propertyValue); } return res; } else { String[] ownKeys = ScriptObjectMirror.getOwnKeys(true); Map<String, Object> res = new LinkedHashMap<String, Object>(); for (String key : ownKeys) { Object propertyValue = ScriptObjectMirror.get(key); propertyValue = tryConvertToJavaCollections(propertyValue); res.put(key, propertyValue); } return res; } } return value; }
From source file:org.bson.jvm.nashorn.ScriptObjectCodec.java
License:Apache License
public void encode(BsonWriter writer, Object object, EncoderContext encoderContext) { ScriptObject scriptObject = (ScriptObject) object; writer.writeStartDocument();/*from w w w .ja va 2s. co m*/ for (String key : scriptObject.getOwnKeys(true)) { Object value = scriptObject.get(key); writer.writeName(key); BsonUtil.writeChild(value, writer, encoderContext, codecRegistry); } writer.writeEndDocument(); }
From source file:org.siphon.common.js.JsTypeUtil.java
License:Open Source License
private static Object jsObjectToJava(ScriptObject object) throws UnsupportedConversionException { if (object.containsKey("_d2js_type")) { String type = object.get("_d2js_type").toString(); Object value = object.get("value"); return jsObjectToJava(type, value); }/* w ww . j a v a2 s . c o m*/ if (object instanceof NativeDate) { return jsObjectToJava((NativeDate) object); } if (object instanceof NativeArray) { return jsObjectToJava((NativeArray) object); } if (object instanceof NativeRegExp) { return jsObjectToJava((NativeRegExp) object); } if (object instanceof ScriptFunction) { return jsObjectToJava((ScriptFunction) object); } if (object instanceof NativeString) { return jsObjectToJava((NativeString) object); } Map<String, Object> result = new HashMap<>(); String[] names = object.getOwnKeys(false); for (int i = 0; i < names.length; i++) { String name = names[i]; Object value = object.get(name); result.put(name, jsObjectToJava(value)); } return result; }
From source file:org.siphon.jsmongo.MongoExecutor.java
License:Open Source License
public Document jsObjectToDocument(ScriptObject object) throws SqlExecutorException { Document document = new Document(); String[] names = object.getOwnKeys(false); for (int i = 0; i < names.length; i++) { String name = names[i];//from w ww. jav a2 s.c o m Object value = object.get(name); document.append(name, jsValueToBson(value)); } return document; }
From source file:org.siphon.jsmongo.MongoExecutor.java
License:Open Source License
private BsonDocument jsObjectToBsonDocument(ScriptObject object) throws SqlExecutorException { BsonDocument document = new BsonDocument(); String[] names = object.getOwnKeys(false); for (int i = 0; i < names.length; i++) { String name = names[i];/*from w ww . j a va2s . co m*/ Object value = object.get(name); document.append(name, jsValueToBson(value)); } return document; }
From source file:org.xbib.elasticsearch.script.nashorn.NashornUnwrapper.java
License:Apache License
/** * Convert an object from a script wrapper value to a serializable value valid outside * of the Nashorn script processor context. * * This includes converting Array objects to Lists of valid objects. * * @param value the value to convert from script wrapper object to external object value * @return unwrapped and converted value *//*from w w w. ja v a2 s. c o m*/ public static Object unwrapValue(Object value) { if (value == null) { return null; } if (value instanceof NativeArray) { NativeArray nativeArray = (NativeArray) value; ArrayData data = nativeArray.getArray(); int length = (int) data.length(); ArrayList<Object> list = new ArrayList<Object>(length); for (int i = 0; i < length; i++) { list.add(unwrapValue(data.getObject(i))); } return list; } else if (value instanceof Map) { Map map = (Map) value; Map<Object, Object> result = new LinkedHashMap<Object, Object>(); for (Object key : map.keySet()) { result.put(key, unwrapValue(map.get(key))); } return result; } else if (value instanceof ScriptObject) { ScriptObject object = (ScriptObject) value; Map<Object, Object> result = new LinkedHashMap<Object, Object>(); for (Object key : object.getOwnKeys(true)) { result.put(key, unwrapValue(object.get(key))); } return result; } else if (value instanceof Undefined) { return null; } else if (value instanceof ConsString) { return value.toString(); } else { return value; } }