org.objectweb.easybeans.enhancer.injection
Class InjectionClassAdapter

java.lang.Object
  extended by org.objectweb.asm.ClassAdapter
      extended by org.objectweb.easybeans.enhancer.injection.InjectionClassAdapter
All Implemented Interfaces:
org.objectweb.asm.ClassVisitor, org.objectweb.asm.Opcodes

public class InjectionClassAdapter
extends org.objectweb.asm.ClassAdapter
implements org.objectweb.asm.Opcodes

This class adds methods which will inject resources in the bean class.

Author:
Florent Benoit

Field Summary
private  ClassAnnotationMetadata classAnnotationMetadata
          Metadata available by this adapter for a class.
private  JLog logger
          Logger.
 
Fields inherited from class org.objectweb.asm.ClassAdapter
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, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, 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, 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, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, 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, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6
 
Constructor Summary
InjectionClassAdapter(ClassAnnotationMetadata classAnnotationMetadata, org.objectweb.asm.ClassVisitor cv)
          Constructor.
 
Method Summary
private  void addInjectedMethod()
          Generates the injectedByEasyBeans() method on the current class.
private  void generateBodyInjectedMethod(org.objectweb.asm.MethodVisitor mv)
          Generates the body of the injectedByEasyBeans() method if any.
Else, do nothing.
 void visitEnd()
          Visits the end of the class.
 
Methods inherited from class org.objectweb.asm.ClassAdapter
visit, visitAnnotation, visitAttribute, visitField, visitInnerClass, visitMethod, visitOuterClass, visitSource
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

logger

private JLog logger
Logger.


classAnnotationMetadata

private ClassAnnotationMetadata classAnnotationMetadata
Metadata available by this adapter for a class.

Constructor Detail

InjectionClassAdapter

public InjectionClassAdapter(ClassAnnotationMetadata classAnnotationMetadata,
                             org.objectweb.asm.ClassVisitor cv)
Constructor.

Parameters:
classAnnotationMetadata - object containing all attributes of the class
cv - the class visitor to which this adapter must delegate calls.
Method Detail

visitEnd

public void visitEnd()
Visits the end of the class. This method, which is the last one to be called, is used to inform the visitor that all the fields and methods of the class have been visited.

Specified by:
visitEnd in interface org.objectweb.asm.ClassVisitor
Overrides:
visitEnd in class org.objectweb.asm.ClassAdapter

addInjectedMethod

private void addInjectedMethod()
Generates the injectedByEasyBeans() method on the current class.


generateBodyInjectedMethod

private void generateBodyInjectedMethod(org.objectweb.asm.MethodVisitor mv)
Generates the body of the injectedByEasyBeans() method if any.
Else, do nothing.

Parameters:
mv - the method visitor object used to add some code.