public Object adapt()

in src/main/java/org/apache/sling/scripting/sightly/js/impl/rhino/JsValueAdapter.java [60:90]


    public Object adapt(Object jsValue) {
        if (jsValue == null || jsValue == Context.getUndefinedValue() || jsValue == ScriptableObject.NOT_FOUND) {
            return null;
        }
        if (jsValue instanceof Wrapper) {
            return adapt(((Wrapper) jsValue).unwrap());
        }
        if (asyncExtractor.isPromise(jsValue)) {
            return adapt(forceAsync(jsValue));
        }
        if (jsValue instanceof ScriptableObject) {
            return extractScriptable((ScriptableObject) jsValue);
        }
        if (jsValue instanceof CharSequence) {
            // convert any string-like type to plain java strings
            return jsValue.toString();
        }
        if (jsValue instanceof Map) {
            return convertMap((Map) jsValue);
        }
        if (jsValue instanceof Iterable) {
            return convertIterable((Iterable) jsValue);
        }
        if (jsValue instanceof Number) {
            return convertNumber((Number) jsValue);
        }
        if (jsValue instanceof Object[]) {
            return convertIterable(Arrays.asList((Object[]) jsValue));
        }
        return jsValue;
    }