org.mozilla.javascript.jdk13
Class VMBridge_jdk13

java.lang.Object
  extended by org.mozilla.javascript.VMBridge
      extended by org.mozilla.javascript.jdk13.VMBridge_jdk13
Direct Known Subclasses:
VMBridge_jdk15

public class VMBridge_jdk13
extends VMBridge


Constructor Summary
VMBridge_jdk13()
           
 
Method Summary
protected  Context getContext(java.lang.Object contextHelper)
          Get Context instance associated with the current thread or null if none.
protected  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.
protected  java.lang.Object getThreadContextHelper()
          Return a helper object to optimize Context access.
protected  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  void setContext(java.lang.Object contextHelper, Context cx)
          Associate Context instance with the current thread or remove the current association if cx is null.
protected  boolean tryToMakeAccessible(java.lang.Object accessibleObject)
          In many JVMSs, public methods in private classes are not accessible by default (Sun Bug #4071593).
 
Methods inherited from class org.mozilla.javascript.VMBridge
getJavaIterator
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VMBridge_jdk13

public VMBridge_jdk13()
Method Detail

getThreadContextHelper

protected java.lang.Object getThreadContextHelper()
Description copied from class: VMBridge
Return a helper object to optimize Context access.

The runtime will pass the resulting helper object to the subsequent calls to VMBridge.getContext(Object contextHelper) and VMBridge.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.

Specified by:
getThreadContextHelper in class VMBridge

getContext

protected Context getContext(java.lang.Object contextHelper)
Description copied from class: VMBridge
Get Context instance associated with the current thread or null if none.

Specified by:
getContext in class VMBridge
Parameters:
contextHelper - The result of VMBridge.getThreadContextHelper() called from the current thread.

setContext

protected void setContext(java.lang.Object contextHelper,
                          Context cx)
Description copied from class: VMBridge
Associate Context instance with the current thread or remove the current association if cx is null.

Specified by:
setContext in class VMBridge
Parameters:
contextHelper - The result of VMBridge.getThreadContextHelper() called from the current thread.

getCurrentThreadClassLoader

protected java.lang.ClassLoader getCurrentThreadClassLoader()
Description copied from class: VMBridge
Return the ClassLoader instance associated with the current thread.

Specified by:
getCurrentThreadClassLoader in class VMBridge

tryToMakeAccessible

protected boolean tryToMakeAccessible(java.lang.Object accessibleObject)
Description copied from class: VMBridge
In many JVMSs, public methods in private classes are not accessible by default (Sun Bug #4071593). VMBridge instance should try to workaround that via, for example, calling method.setAccessible(true) when it is available. The implementation is responsible to catch all possible exceptions like SecurityException if the workaround is not available.

Specified by:
tryToMakeAccessible in class VMBridge
Returns:
true if it was possible to make method accessible or false otherwise.

getInterfaceProxyHelper

protected java.lang.Object getInterfaceProxyHelper(ContextFactory cf,
                                                   java.lang.Class<?>[] interfaces)
Description copied from class: VMBridge
Create helper object to create later proxies implementing the specified interfaces later. Under JDK 1.3 the implementation can look like:
 return java.lang.reflect.Proxy.getProxyClass(..., interfaces).
     getConstructor(new Class[] {
         java.lang.reflect.InvocationHandler.class });
 

Overrides:
getInterfaceProxyHelper in class VMBridge
interfaces - Array with one or more interface class objects.

newInterfaceProxy

protected java.lang.Object newInterfaceProxy(java.lang.Object proxyHelper,
                                             ContextFactory cf,
                                             InterfaceAdapter adapter,
                                             java.lang.Object target,
                                             Scriptable topScope)
Description copied from class: VMBridge
Create proxy object for InterfaceAdapter. The proxy should call InterfaceAdapter#invoke(ContextFactory cf, Object target, Scriptable topScope, Method method, Object[] args) as implementation of interface methods associated with proxyHelper.

Overrides:
newInterfaceProxy in class VMBridge
Parameters:
proxyHelper - The result of the previous call to VMBridge.getInterfaceProxyHelper(ContextFactory, Class[]).

isVarArgs

protected boolean isVarArgs(java.lang.reflect.Member member)
Description copied from class: VMBridge
Returns whether or not a given member (method or constructor) has variable arguments. Variable argument methods have only been supported in Java since JDK 1.5.

Specified by:
isVarArgs in class VMBridge