List of usage examples for jdk.nashorn.internal.runtime ScriptObject propertyIterator
public Iterator<String> propertyIterator()
From source file:com.pivotal.cf.mobile.ats.json.ScriptObjectSerializer.java
License:Open Source License
@Override public void serialize(ScriptObject value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException { if (value instanceof NativeDate) { if (dateSerializer == null) { dateSerializer = (StdDelegatingSerializer) new StdDelegatingSerializer(ScriptObject.class, new StdConverter<ScriptObject, String>() { @Override public String convert(ScriptObject value) { return NativeDate.toJSON(value, null).toString(); }/*w ww .j av a 2 s.com*/ }).createContextual(provider, null); } dateSerializer.serialize(value, jgen, provider); } else if (value instanceof ScriptFunction) { if (functionSerializer == null) { functionSerializer = (StdDelegatingSerializer) new StdDelegatingSerializer(ScriptObject.class, new StdConverter<ScriptObject, Object>() { @Override public Object convert(ScriptObject value) { return null; } }).createContextual(provider, null); } functionSerializer.serialize(value, jgen, provider); } else if (value.isArray()) { if (arraySerializer == null) { arraySerializer = (StdDelegatingSerializer) new StdDelegatingSerializer(ScriptObject.class, new StdConverter<ScriptObject, Collection<Object>>() { @Override public Collection<Object> convert(ScriptObject value) { return value.values(); } }).createContextual(provider, null); } arraySerializer.serialize(value, jgen, provider); } else { if (objectSerializer == null) { objectSerializer = (StdDelegatingSerializer) new StdDelegatingSerializer(ScriptObject.class, new StdConverter<ScriptObject, Map<String, Object>>() { @Override public Map<String, Object> convert(ScriptObject value) { Map<String, Object> convertedMap = new LinkedHashMap<String, Object>(); value.propertyIterator().forEachRemaining(k -> convertedMap.put(k, value.get(k))); return convertedMap; } }).createContextual(provider, null); } objectSerializer.serialize(value, jgen, provider); } }
From source file:io.lightlink.test.LightLinkFileTester.java
License:Open Source License
public String runAction(String actionName, Object params) throws IOException { executionNumber++;//w w w . ja v a 2 s . c om Map<String, Object> inputParams = new HashMap<String, Object>(); if (params instanceof Map) { inputParams.putAll((Map<String, Object>) params); } else if (params instanceof ScriptObject) { ScriptObject so = (ScriptObject) params; Iterator<String> iterator = so.propertyIterator(); while (iterator.hasNext()) { String property = iterator.next(); inputParams.put(property, so.get(property)); } } JSONStringBufferResponseStream bufferResponseStream = new JSONStringBufferResponseStream(); ScriptRunner scriptRunner = new ScriptRunner(rootPackage); scriptRunner.setRequest(TestRequest.getInstance()); scriptRunner.execute(actionName, "TEST", inputParams, bufferResponseStream); String resJson = bufferResponseStream.getBuffer(); if (file.exists()) { String fName = file.getAbsolutePath() + ".result" + executionNumber + ".json"; FileOutputStream fos = new FileOutputStream(fName); fos.write(resJson.getBytes("UTF-8")); fos.close(); LOG.info("Resulting JSON is saved for debugging purpose in " + fName); } return resJson; }