Package jadex.bytecode
Class Proxy
- java.lang.Object
 - 
- jadex.bytecode.Proxy
 
 
- 
public class Proxy extends java.lang.ObjectProxy class allows for generating proxy objects for interfaces and/or one class. Both sides are optional. Uses the InvocationHandler from standard Java interface proxy mechanism. 
- 
- 
Field Summary
Fields Modifier and Type Field Description static java.util.Map<Tuple2<java.lang.ClassLoader,java.util.Set<java.lang.Class<?>>>,java.lang.Class<?>>CLASSCACHEstatic java.util.concurrent.atomic.AtomicIntegerCOUNTERstatic java.util.Set<java.lang.String>OBJECTMETHODS 
- 
Constructor Summary
Constructors Constructor Description Proxy() 
- 
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description protected static org.objectweb.asm.tree.MethodNodegenrateInvocationCode(org.objectweb.asm.tree.MethodNode m, java.lang.String classname, java.lang.Class<?> iface, java.lang.ClassLoader loader)Generate the code for delegating the call to the invocation handler.static java.lang.reflect.InvocationHandlergetInvocationHandler(java.lang.Object proxy)Get the invocation handler of a proxy.static voidmain(java.lang.String[] args)Main for testing.static java.lang.ObjectnewProxyInstance(java.lang.ClassLoader loader, java.lang.Class<?>[] ifaces, java.lang.reflect.InvocationHandler handler)Generate a proxy for an existing class.static java.lang.ObjectnewProxyInstance(java.lang.ClassLoader loader, java.lang.Class<?> clazz, java.lang.Class<?>[] ifaces, java.lang.reflect.InvocationHandler handler)Generate a proxy for an existing class. 
 - 
 
- 
- 
Field Detail
- 
OBJECTMETHODS
public static final java.util.Set<java.lang.String> OBJECTMETHODS
 
- 
COUNTER
public static final java.util.concurrent.atomic.AtomicInteger COUNTER
 
- 
CLASSCACHE
public static final java.util.Map<Tuple2<java.lang.ClassLoader,java.util.Set<java.lang.Class<?>>>,java.lang.Class<?>> CLASSCACHE
 
 - 
 
- 
Method Detail
- 
getInvocationHandler
public static java.lang.reflect.InvocationHandler getInvocationHandler(java.lang.Object proxy)
Get the invocation handler of a proxy.- Parameters:
 proxy-- Returns:
 - The handler
 
 
- 
newProxyInstance
public static java.lang.Object newProxyInstance(java.lang.ClassLoader loader, java.lang.Class<?>[] ifaces, java.lang.reflect.InvocationHandler handler)Generate a proxy for an existing class.- Parameters:
 loader- The class loader.ifaces- The interfaces (may contain one clazz).handler- The invocation handler.- Returns:
 - The new proxy extending the clazz and implementing all interfaces.
 
 
- 
newProxyInstance
public static java.lang.Object newProxyInstance(java.lang.ClassLoader loader, java.lang.Class<?> clazz, java.lang.Class<?>[] ifaces, java.lang.reflect.InvocationHandler handler)Generate a proxy for an existing class.- Parameters:
 loader- The class loader.clazz- The clazz.ifaces- The interfaces.handler- The invocation handler.- Returns:
 - The new proxy extending the clazz and implementing all interfaces.
 
 
- 
genrateInvocationCode
protected static org.objectweb.asm.tree.MethodNode genrateInvocationCode(org.objectweb.asm.tree.MethodNode m, java.lang.String classname, java.lang.Class<?> iface, java.lang.ClassLoader loader) throws java.lang.ExceptionGenerate the code for delegating the call to the invocation handler.- Parameters:
 m- The methodnode.classname- The class name.iface- The interface (null means the class is owner of the method)- Returns:
 - The new method node (or null).
 - Throws:
 java.lang.Exception
 
- 
main
public static void main(java.lang.String[] args) throws java.lang.ExceptionMain for testing.- Throws:
 java.lang.Exception
 
 - 
 
 -