public abstract class VMBridge
extends java.lang.Object
| Constructor and Description | 
|---|
| VMBridge() | 
| Modifier and Type | Method and Description | 
|---|---|
| protected abstract Context | getContext(java.lang.Object contextHelper)Get  Contextinstance associated with the current thread
 or null if none. | 
| protected abstract java.lang.ClassLoader | getCurrentThreadClassLoader()Return the ClassLoader instance associated with the current thread. | 
| protected java.lang.Object | getInterfaceProxyHelper(ContextFactory cf,
                       java.lang.Class<?>[] interfaces)Create helper object to create later proxies implementing the specified
 interfaces later. | 
| java.util.Iterator<?> | getJavaIterator(Context cx,
               Scriptable scope,
               java.lang.Object obj)If "obj" is a java.util.Iterator or a java.lang.Iterable, return a
 wrapping as a JavaScript Iterator. | 
| protected abstract java.lang.Object | getThreadContextHelper()Return a helper object to optimize  Contextaccess. | 
| protected abstract boolean | isVarArgs(java.lang.reflect.Member member)Returns whether or not a given member (method or constructor)
 has variable arguments. | 
| protected java.lang.Object | newInterfaceProxy(java.lang.Object proxyHelper,
                 ContextFactory cf,
                 InterfaceAdapter adapter,
                 java.lang.Object target,
                 Scriptable topScope)Create proxy object for  InterfaceAdapter. | 
| protected abstract void | setContext(java.lang.Object contextHelper,
          Context cx)Associate  Contextinstance with the current thread or remove
 the current association if cx is null. | 
| protected abstract boolean | tryToMakeAccessible(java.lang.Object accessibleObject)In many JVMSs, public methods in private
 classes are not accessible by default (Sun Bug #4071593). | 
protected abstract java.lang.Object getThreadContextHelper()
Context access.
 
 The runtime will pass the resulting helper object to the subsequent
 calls to getContext(Object contextHelper) and
 setContext(Object contextHelper, Context cx) methods.
 In this way the implementation can use the helper to cache
 information about current thread to make Context access faster.
protected abstract Context getContext(java.lang.Object contextHelper)
Context instance associated with the current thread
 or null if none.contextHelper - The result of getThreadContextHelper()
                      called from the current thread.protected abstract void setContext(java.lang.Object contextHelper,
                                   Context cx)
Context instance with the current thread or remove
 the current association if cx is null.contextHelper - The result of getThreadContextHelper()
                      called from the current thread.protected abstract java.lang.ClassLoader getCurrentThreadClassLoader()
protected abstract boolean tryToMakeAccessible(java.lang.Object accessibleObject)
protected java.lang.Object getInterfaceProxyHelper(ContextFactory cf, java.lang.Class<?>[] interfaces)
 return java.lang.reflect.Proxy.getProxyClass(..., interfaces).
     getConstructor(new Class[] {
         java.lang.reflect.InvocationHandler.class });
 interfaces - Array with one or more interface class objects.protected java.lang.Object newInterfaceProxy(java.lang.Object proxyHelper,
                                             ContextFactory cf,
                                             InterfaceAdapter adapter,
                                             java.lang.Object target,
                                             Scriptable topScope)
InterfaceAdapter. The proxy should call
 InterfaceAdapter#invoke(ContextFactory, Object, Scriptable,
                                Method, Object[])
 as implementation of interface methods associated with
 proxyHelper. MethodproxyHelper - The result of the previous call to
        getInterfaceProxyHelper(ContextFactory, Class[]).protected abstract boolean isVarArgs(java.lang.reflect.Member member)
public java.util.Iterator<?> getJavaIterator(Context cx, Scriptable scope, java.lang.Object obj)