Package jst

Source Code of jst.EnhancedWrapFactory

package jst;

import org.mozilla.javascript.Context;
import org.mozilla.javascript.NativeJavaObject;
import org.mozilla.javascript.Scriptable;
import org.mozilla.javascript.WrapFactory;

import java.util.List;
import java.util.Map;

/**
* This class wraps Java java.util.Maps and java.util.Lists such that they
* behave just like Javascript's associative arrays and arrays respectively.
* This allows you to treat java.util.Maps and java.util.Lists as either native
* Javascript objects, or use Java's methods.
*/
public class EnhancedWrapFactory extends WrapFactory {

    private boolean scriptableJavaObjects = false;

    public EnhancedWrapFactory() {
        setJavaPrimitiveWrap(false);
    }

    public EnhancedWrapFactory( boolean scriptableJavaObjects ) {
        this();
        this.scriptableJavaObjects = scriptableJavaObjects;
    }

    public Scriptable wrapAsJavaObject(Context cx, Scriptable scope, Object javaObject, Class staticType) {
        if (javaObject instanceof Map) {
            return new NativeMapAdapter(cx, scope, javaObject, staticType);
        } else if (javaObject instanceof List) {
            return new NativeListAdapter(cx, scope, javaObject, staticType);
        } else if( scriptableJavaObjects ) {
            return new ScriptableNativeJavaObject(scope,javaObject,staticType);
        } else {
            return new NativeJavaObject(scope, javaObject, staticType);
        }
    }
}
TOP

Related Classes of jst.EnhancedWrapFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.