Example usage for jdk.nashorn.api.scripting JSObject keySet

List of usage examples for jdk.nashorn.api.scripting JSObject keySet

Introduction

In this page you can find the example usage for jdk.nashorn.api.scripting JSObject keySet.

Prototype

public Set<String> keySet();

Source Link

Document

Returns the set of all property names of this object.

Usage

From source file:game.engine.game.JavascriptConsole.java

License:Open Source License

/**
 * /*from   www. java2s  .com*/
 */
private void dump(Object o, StringBuilder builder) {

    // handle known types
    if (o == null) {
        builder.append("null");
        return;
    } else if (o instanceof String) {
        builder.append('"').append(o).append('"');
        return;
    }

    // try to wrap JS values and dump them, or fall back to toString()
    o = jdk.nashorn.api.scripting.ScriptUtils.wrap(o);
    if (o instanceof JSObject) {
        JSObject object = (JSObject) o;
        if (object.isArray()) {
            builder.append('[');
            boolean first = true;
            for (Object element : object.values()) {
                if (first) {
                    first = false;
                } else {
                    builder.append(", ");
                }
                dump(element, builder);
            }
            builder.append("]");
        } else if (object.isFunction()) {
            builder.append("function");
        } else {
            builder.append('{');
            boolean first = true;
            for (Object key : object.keySet()) {
                if (first) {
                    first = false;
                } else {
                    builder.append(", ");
                }
                dump(key, builder);
                builder.append(": ");
                dump(object.getMember(key.toString()), builder);
            }
            builder.append("}");
        }
    } else {
        builder.append(o);
    }

}

From source file:io.lightlink.output.JSONResponseStream.java

License:Open Source License

@Override
public synchronized void writeFullObjectToArray(Object value) {
    beginIfNeeded();// w  w  w  .  ja  v  a2 s. c om

    comma();

    if (value != null && value instanceof jdk.nashorn.internal.runtime.ScriptObject) {
        ScriptObject so = (ScriptObject) value;
        if (so.isArray()) {
            writeArrayStart();
            int length = ((Number) so.get("length")).intValue();
            for (int i = 0; i < length; i++) {
                writeFullObjectToArray(genericDateConvert(so.get(i)));
            }
            writeArrayEnd();
        } else {
            writeObjectStart();
            for (Object key : so.keySet()) {
                writeProperty("" + key, genericDateConvert(so.get(key)));
            }
            writeObjectEnd();
        }
        return;

    } else if (value != null && value instanceof jdk.nashorn.api.scripting.JSObject) {
        JSObject jsObject = (JSObject) value;
        if (jsObject.isArray()) {
            writeArrayStart();
            int length = ((Number) jsObject.getMember("length")).intValue();
            for (int i = 0; i < length; i++) {
                writeFullObjectToArray(genericDateConvert(jsObject.getSlot(i)));
            }
            writeArrayEnd();
        } else {
            writeObjectStart();
            for (String key : jsObject.keySet()) {
                writeProperty(key, genericDateConvert(jsObject.getMember(key)));
            }
            writeObjectEnd();
        }
        return;
    } else if (value != null && value instanceof jdk.nashorn.internal.objects.NativeArray) {
        NativeArray array = (NativeArray) value;
        value = array.asObjectArray();
    }

    List list = new ArrayList();
    value = handlePrimitiveArrays(value, list);
    if (value instanceof Map) {
        writeObjectStart();
        Map<Object, Object> map = (Map<Object, Object>) value;
        if (value instanceof BeanMap) {
            for (Map.Entry<Object, Object> entry : map.entrySet()) {
                if (!"class".equals(entry.getKey())) {
                    writeProperty(entry.getKey() + "", entry.getValue());
                }
            }
        } else {
            for (Map.Entry<Object, Object> entry : map.entrySet()) {
                writeProperty(entry.getKey() + "", entry.getValue());
            }
        }
        writeObjectEnd();
    } else if (value instanceof List) {
        writeArrayStart();
        for (Object o : (List) value) {
            writeFullObjectToArray(o);
        }
        writePropertyArrayEnd();
    } else if (value instanceof InputStream) {
        writeInputStream((InputStream) value);
    } else if (value instanceof Reader) {
        writeFromReader((Reader) value);
    } else if (value instanceof Object[]) {
        writeArrayStart();
        for (Object o : (Object[]) value) {
            writeFullObjectToArray(o);
        }
        writeArrayEnd();
    } else if (value instanceof Date) {
        String dateFormat;
        if (getRunnerContext() != null && getRunnerContext().getTypesFacade().getCustomDatePattern() != null) {
            TypesFacade tf = getRunnerContext().getTypesFacade();
            dateFormat = tf.getCustomDatePattern();
        } else
            dateFormat = DateConverter.UNIVERSAL_DATE_FORMAT;

        writeString(new SimpleDateFormat(dateFormat).format(value));

    } else if (value == null) {

        writeUnquoted("null");

    } else if (value instanceof Number || value instanceof Boolean) {

        writeUnquoted(value);

    } else {

        writeString(value.toString());

    }

    commaNeeded = true;

}

From source file:io.lightlink.servlet.JsMethodsDefinitionServlet.java

License:Open Source License

private Map<String, String> getCustomServices() throws IOException {
    // list custom services
    Map<String, String> customServices = new LinkedHashMap<String, String>();

    Script customServicesScript = configManager.getScript("#customServices.js", false);

    if (customServicesScript != null) {
        ScriptEngine engine = ConfigManager.getScriptEngine();

        try {//from   w  ww  . j a v a  2 s  . co  m
            Object result = engine.eval(customServicesScript.getContent());
            if (result instanceof JSObject) {
                JSObject jsObject = (JSObject) result;
                Set<String> keys = jsObject.keySet();
                for (String key : keys) {
                    customServices.put(key, "" + jsObject.getMember(key));
                }
            }
        } catch (ScriptException e) {
            LogUtils.error(getClass(), e);
        }

    }

    return customServices;

}

From source file:io.stallion.utils.json.JSObjectSerializer.java

License:Open Source License

@Override
public void serialize(JSObject value, JsonGenerator jgen, SerializerProvider provider)
        throws IOException, JsonProcessingException {
    if (value.isArray()) {
        jgen.writeStartArray();/*from   ww  w .j  a v a 2  s.c  om*/
        int i = -1;
        for (;;) {
            if (value.hasSlot(++i)) {
                jgen.writeObject(value.getSlot(i));
            } else {
                break;
            }
        }
        jgen.writeEndArray();
    } else {
        jgen.writeStartObject();
        for (String key : value.keySet()) {
            jgen.writeObjectField(key, value.getMember(key));
        }
        jgen.writeEndObject();
    }
}