org.apache.aries.proxy.impl.interfaces
Class InterfaceProxyGenerator

java.lang.Object
  extended by org.objectweb.asm.ClassVisitor
      extended by org.apache.aries.proxy.impl.interfaces.InterfaceProxyGenerator
All Implemented Interfaces:
org.objectweb.asm.Opcodes

public final class InterfaceProxyGenerator
extends org.objectweb.asm.ClassVisitor
implements org.objectweb.asm.Opcodes

This class is used to aggregate several interfaces into a real class which implements all of them It also allows you specify a superclass that the class should implement - this will add delegating method overrides for any abstract methods in the hierarchy, but not override any non-abstract methods. To be safely used as a supertype the superclass should be a WovenProxy.


Field Summary
 
Fields inherited from class org.objectweb.asm.ClassVisitor
api, cv
 
Fields inherited from interface org.objectweb.asm.Opcodes
AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_NATIVE, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, UNINITIALIZED_THIS, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7
 
Constructor Summary
InterfaceProxyGenerator()
           
 
Method Summary
static Object getProxyInstance(org.osgi.framework.Bundle client, Class<?> superclass, Collection<Class<?>> ifaces, Callable<Object> dispatcher, org.apache.aries.proxy.InvocationListener listener)
          Generate a new proxy instance implementing the supplied interfaces and using the supplied dispatcher and listener
 
Methods inherited from class org.objectweb.asm.ClassVisitor
visit, visitAnnotation, visitAttribute, visitEnd, visitField, visitInnerClass, visitMethod, visitOuterClass, visitSource
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InterfaceProxyGenerator

public InterfaceProxyGenerator()
Method Detail

getProxyInstance

public static final Object getProxyInstance(org.osgi.framework.Bundle client,
                                            Class<?> superclass,
                                            Collection<Class<?>> ifaces,
                                            Callable<Object> dispatcher,
                                            org.apache.aries.proxy.InvocationListener listener)
                                     throws org.apache.aries.proxy.UnableToProxyException
Generate a new proxy instance implementing the supplied interfaces and using the supplied dispatcher and listener

Parameters:
client - the bundle that is trying to generate this proxy (can be null)
superclass - The superclass to use (or null for Object)
ifaces - The set of interfaces to implement (may be empty if superclass is non null)
dispatcher -
listener -
Returns:
Throws:
org.apache.aries.proxy.UnableToProxyException


Copyright © 2009-2012 The Apache Software Foundation. All Rights Reserved.