private Object getValue(Object o) { if (o instanceof ScriptObjectMirror) { ScriptObjectMirror mirror = (ScriptObjectMirror) o; if (mirror.isFunction()) { return o.toString(); } else if (mirror.isArray()) { return mirror.values().stream() .map(e -> getValue(e)) .collect(Collectors.toList()); } else { return mirror.entrySet().stream() .collect(Collectors.toMap(e -> e.getKey().toString(), e -> getValue(e.getValue()))); } } return o; }
Iterator<Object> iterator = mirror.values().iterator(); NewField next = getValue(iterator.next());
private static Object toArray(ScriptObjectMirror mirror) { return mirror.values(); }
public boolean anyOf(ScriptObjectMirror som) { for (String s : removeTagPrefix(som.values())) { if (tags.contains(s)) { return true; } } return false; }
@Override public List<ScriptValue> getArray() { final List<ScriptValue> result = Lists.newArrayList(); for ( final Object item : this.value.values() ) { final ScriptValue wrapped = this.factory.newValue( item ); if ( wrapped != null ) { result.add( wrapped ); } } return result; }
public boolean allOf(ScriptObjectMirror som) { return tags.containsAll(removeTagPrefix(som.values())); }
private static List<Object> toList( final ScriptObjectMirror source ) { final List<Object> result = Lists.newArrayList(); for ( final Object item : source.values() ) { final Object converted = toObject( item ); if ( converted != null ) { result.add( converted ); } } return result; }
/** * @since 8.4 */ public static List<Object> unwrapList(ScriptObjectMirror jso) { if (!jso.isArray()) { throw new IllegalArgumentException("JavaScript input is not an Array!"); } List<Object> l = new ArrayList<>(); for (Object o : jso.values()) { if (o instanceof ScriptObjectMirror) { l.add(unwrap((ScriptObjectMirror) o)); } else { l.add(o); } } return l; }
public List getAsList() { switch (type) { case JS_ARRAY: ScriptObjectMirror som = (ScriptObjectMirror) value; return new ArrayList(som.values()); case LIST: return getValue(List.class); case JSON: DocumentContext doc = (DocumentContext) value; return doc.json(); default: throw new RuntimeException("cannot convert to list: " + this); } }
double[] output = {}; try { ScriptEngineManager factory = new ScriptEngineManager(); ScriptEngine engine = factory.getEngineByName("nashorn"); String locationTemp = "D:/test.js"; engine.eval("load(\"" + locationTemp + "\");"); Invocable invocable = (Invocable) engine; ScriptObjectMirror obj = (ScriptObjectMirror) invocable.invokeFunction("avg", input, period); Collection<Object> values = obj.values(); if (values.size() == 0) { return output; } output = new double[values.size()]; int i = 0; for (Iterator<Object> iterator = values.iterator(); iterator.hasNext();) { Object value = iterator.next(); if (value instanceof Double) { Double object = (Double) iterator.next(); output[i] = object; } } } catch (NullPointerException | NoSuchMethodException | ScriptException ex) { log.error(ex.getLocalizedMessage()); }
@Override public OResultSet transform(ScriptObjectMirror value) { if (value.isArray()) { return OScriptResultSets.singleton(value.values(), transformer); } else { Map<String, Object> object = new LinkedHashMap<>(); value.forEach((key, val) -> { object.put(key, val); }); OScriptResultSets.singleton(object, transformer); } return OScriptResultSets.empty(); } }
convertedValue = scriptObjectMirror .values() .stream() .map(this::convertNashornValue)
@Override public <E extends ScriptObjectMirror> void writeJSONString(E value, Appendable out, JSONStyle compression) throws IOException { if (value.isArray()) { Object[] array = value.values().toArray(); JsonWriter.arrayWriter.writeJSONString(array, out, compression); } else if (value.isFunction()) { JsonWriter.toStringWriter.writeJSONString("\"#function\"", out, compression); } else { // JSON JsonWriter.JSONMapWriter.writeJSONString(value, out, compression); } }
ScriptObjectMirror m = (ScriptObjectMirror) val; if (m.isArray()) { List<Object> list = new ArrayList<>(m.values()); return convertToJsonElement(engine, list); } else {
} else if (scriptObjectMirror.isArray()) { List<Serializable> arrayItems = new ArrayList<>(scriptObjectMirror.size()); scriptObjectMirror.values().forEach(v -> { Object serializedObj = toJsSerializable(v); if (serializedObj instanceof Serializable) {
} else if (scriptObjectMirror.isArray()) { List<Serializable> arrayItems = new ArrayList<>(scriptObjectMirror.size()); scriptObjectMirror.values().forEach(v -> { Object serializedObj = toJsSerializable(v); if (serializedObj instanceof Serializable) {
List values = (List) m.values(); for (int i = 0;i < values.size();i++) { try {
public void createUser(final LdapConnection connection, final String dn, final String passwordAttribute, final String clearPassword, final Map<String, Object> attrs) throws LdapException { connection.bind(); final Entry entry = new DefaultEntry(dn + ", " + baseDn); if (clearPassword != null) entry.add(passwordAttribute, getShaPassword(clearPassword)); if (attrs != null) { for (Map.Entry<String, Object> attr : attrs.entrySet()) { final String key = attr.getKey(); final Object value = attr.getValue(); if (value instanceof String) { entry.add(key, (String) value); } else if (value instanceof ScriptObjectMirror) { final ScriptObjectMirror som = (ScriptObjectMirror) value; if (som.isArray()) { for (Object obj : som.values()) entry.add(key, obj.toString()); } else throw new LdapException("Unsupported hash: " + som); } else throw new LdapException("Unsupported type: " + value.getClass()); } } connection.add(entry); }
public DocumentContext getAsJsonDocument() { switch (type) { case JSON: return getValue(DocumentContext.class); case JS_ARRAY: // happens for json resulting from nashorn ScriptObjectMirror som = getValue(ScriptObjectMirror.class); return JsonPath.parse(som.values()); case JS_OBJECT: // is a map-like object, happens for json resulting from nashorn case MAP: // this happens because some jsonpath operations result in Map Map<String, Object> map = getValue(Map.class); return JsonPath.parse(map); case LIST: // this also happens because some jsonpath operations result in List List list = getValue(List.class); return JsonPath.parse(list); default: throw new RuntimeException("cannot convert to json: " + this); } }
case JS_ARRAY: ScriptObjectMirror som = getValue(ScriptObjectMirror.class); return new ScriptValue(new ArrayList(som.values())); case LIST: List list = getValue(List.class);