org.bsf.smartValueObject.tools
Class ASMInstrumentor.SVOClassAdapter

java.lang.Object
  |
  +--org.objectweb.asm.ClassAdapter
        |
        +--org.bsf.smartValueObject.tools.ASMInstrumentor.SVOClassAdapter
All Implemented Interfaces:
org.objectweb.asm.ClassVisitor, org.objectweb.asm.Constants
Enclosing class:
ASMInstrumentor

private class ASMInstrumentor.SVOClassAdapter
extends org.objectweb.asm.ClassAdapter
implements org.objectweb.asm.Constants

Adapter to change class informations with ASM.


Field Summary
private  java.lang.String internalName
           
private  java.util.Set methods
           
private  boolean methodsCreated
           
 
Fields inherited from class org.objectweb.asm.ClassAdapter
cv
 
Fields inherited from interface org.objectweb.asm.Constants
AALOAD, AASTORE, ACC_ABSTRACT, ACC_DEPRECATED, 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_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
 
Constructor Summary
ASMInstrumentor.SVOClassAdapter(java.lang.String className, org.objectweb.asm.ClassVisitor cv)
           
 
Method Summary
 void addMethod(ASMInstrumentor.MyMethod m)
           
private  void createContainerTrap(ASMInstrumentor.MyMethod m, org.objectweb.asm.CodeVisitor cv)
           
private  void createTrapMethod(ASMInstrumentor.MyMethod m, org.objectweb.asm.CodeVisitor cv)
           
private  void createTrapMethods()
           
private  void createVersionableField(org.objectweb.asm.ClassVisitor cv)
           
private  void createVersionableMethods(java.lang.Class clazz, java.lang.String field)
           
 java.lang.String getInternalName()
           
 void visit(int access, java.lang.String name, java.lang.String superName, java.lang.String[] interfaces, java.lang.String srcfile)
           
 void visitAttribute(org.objectweb.asm.Attribute attribute)
           
 void visitEnd()
           
 void visitInnerClass(java.lang.String s, java.lang.String s1, java.lang.String s2, int i)
           
 org.objectweb.asm.CodeVisitor visitMethod(int i, java.lang.String s, java.lang.String s1, java.lang.String[] strings, org.objectweb.asm.Attribute attribute)
           
 
Methods inherited from class org.objectweb.asm.ClassAdapter
visitField
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

methods

private java.util.Set methods

methodsCreated

private boolean methodsCreated

internalName

private java.lang.String internalName
Constructor Detail

ASMInstrumentor.SVOClassAdapter

public ASMInstrumentor.SVOClassAdapter(java.lang.String className,
                                       org.objectweb.asm.ClassVisitor cv)
Method Detail

visit

public void visit(int access,
                  java.lang.String name,
                  java.lang.String superName,
                  java.lang.String[] interfaces,
                  java.lang.String srcfile)
Specified by:
visit in interface org.objectweb.asm.ClassVisitor
Overrides:
visit in class org.objectweb.asm.ClassAdapter

visitMethod

public org.objectweb.asm.CodeVisitor visitMethod(int i,
                                                 java.lang.String s,
                                                 java.lang.String s1,
                                                 java.lang.String[] strings,
                                                 org.objectweb.asm.Attribute attribute)
Specified by:
visitMethod in interface org.objectweb.asm.ClassVisitor
Overrides:
visitMethod in class org.objectweb.asm.ClassAdapter

visitInnerClass

public void visitInnerClass(java.lang.String s,
                            java.lang.String s1,
                            java.lang.String s2,
                            int i)
Specified by:
visitInnerClass in interface org.objectweb.asm.ClassVisitor
Overrides:
visitInnerClass in class org.objectweb.asm.ClassAdapter

visitAttribute

public void visitAttribute(org.objectweb.asm.Attribute attribute)
Specified by:
visitAttribute in interface org.objectweb.asm.ClassVisitor
Overrides:
visitAttribute in class org.objectweb.asm.ClassAdapter

visitEnd

public void visitEnd()
Specified by:
visitEnd in interface org.objectweb.asm.ClassVisitor
Overrides:
visitEnd in class org.objectweb.asm.ClassAdapter

addMethod

public void addMethod(ASMInstrumentor.MyMethod m)

getInternalName

public java.lang.String getInternalName()

createTrapMethods

private void createTrapMethods()

createTrapMethod

private void createTrapMethod(ASMInstrumentor.MyMethod m,
                              org.objectweb.asm.CodeVisitor cv)

createContainerTrap

private void createContainerTrap(ASMInstrumentor.MyMethod m,
                                 org.objectweb.asm.CodeVisitor cv)

createVersionableField

private void createVersionableField(org.objectweb.asm.ClassVisitor cv)

createVersionableMethods

private void createVersionableMethods(java.lang.Class clazz,
                                      java.lang.String field)