org.objectweb.speedo.generation.enhancer
Class ClassAccessorModifier

java.lang.Object
  extended byorg.objectweb.asm.ClassAdapter
      extended byorg.objectweb.speedo.generation.enhancer.LoggedClassAdapter
          extended byorg.objectweb.speedo.generation.enhancer.ClassAccessorModifier
All Implemented Interfaces:
org.objectweb.asm.ClassVisitor, org.objectweb.asm.Constants

public class ClassAccessorModifier
extends LoggedClassAdapter

Replaces field accesses by calls to getter and setter methods. Adapted from modifyMethods and replaceInstruction in EnhancerTool.


Field Summary
 
Fields inherited from class org.objectweb.speedo.generation.enhancer.LoggedClassAdapter
debug, logger
 
Fields inherited from class org.objectweb.asm.ClassAdapter
cv
 
Fields inherited from interface org.objectweb.asm.Constants
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
 
Constructor Summary
ClassAccessorModifier(org.objectweb.asm.ClassVisitor cv, java.util.Collection xmlDescriptors, org.objectweb.util.monolog.api.Logger logger)
          Constructs a new ClassAccessorModifier.
 
Method Summary
 void visit(int version, int access, java.lang.String name, java.lang.String superName, java.lang.String[] interfaces, java.lang.String sourceFile)
           
 org.objectweb.asm.CodeVisitor visitMethod(int access, java.lang.String name, java.lang.String desc, java.lang.String[] exceptions, org.objectweb.asm.Attribute attrs)
           
 
Methods inherited from class org.objectweb.speedo.generation.enhancer.LoggedClassAdapter
getLogger, setLogger
 
Methods inherited from class org.objectweb.asm.ClassAdapter
visitAttribute, visitEnd, visitField, visitInnerClass
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ClassAccessorModifier

public ClassAccessorModifier(org.objectweb.asm.ClassVisitor cv,
                             java.util.Collection xmlDescriptors,
                             org.objectweb.util.monolog.api.Logger logger)
Constructs a new ClassAccessorModifier.

Parameters:
cv - the class visitor to be used to generate the modified class
xmlDescriptors - the JDO Model describing known JDO Instances.
Method Detail

visit

public void visit(int version,
                  int access,
                  java.lang.String name,
                  java.lang.String superName,
                  java.lang.String[] interfaces,
                  java.lang.String sourceFile)

visitMethod

public org.objectweb.asm.CodeVisitor visitMethod(int access,
                                                 java.lang.String name,
                                                 java.lang.String desc,
                                                 java.lang.String[] exceptions,
                                                 org.objectweb.asm.Attribute attrs)