Example usage for jdk.nashorn.internal.runtime ScriptObject propertyIterator

List of usage examples for jdk.nashorn.internal.runtime ScriptObject propertyIterator

Introduction

In this page you can find the example usage for jdk.nashorn.internal.runtime ScriptObject propertyIterator.

Prototype

public Iterator<String> propertyIterator() 

Source Link

Document

Return a property iterator.

Usage

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;
}