org.apache.felix.ipojo.manipulation
Class ConstructorCodeAdapter

java.lang.Object
  extended by org.objectweb.asm.MethodAdapter
      extended by org.objectweb.asm.commons.LocalVariablesSorter
          extended by org.objectweb.asm.commons.GeneratorAdapter
              extended by org.apache.felix.ipojo.manipulation.ConstructorCodeAdapter
All Implemented Interfaces:
org.objectweb.asm.MethodVisitor, org.objectweb.asm.Opcodes

public class ConstructorCodeAdapter
extends org.objectweb.asm.commons.GeneratorAdapter
implements org.objectweb.asm.Opcodes

Constructor Adapter : add a component manager argument inside a constructor.

Author:
Felix Project Team

Field Summary
 
Fields inherited from class org.objectweb.asm.commons.GeneratorAdapter
ADD, AND, DIV, EQ, GE, GT, LE, LT, MUL, NE, NEG, OR, REM, SHL, SHR, SUB, USHR, XOR
 
Fields inherited from class org.objectweb.asm.commons.LocalVariablesSorter
firstLocal, nextLocal
 
Fields inherited from class org.objectweb.asm.MethodAdapter
mv
 
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, 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, 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, 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
 
Constructor Summary
ConstructorCodeAdapter(org.objectweb.asm.MethodVisitor mv, java.lang.String owner, java.util.Set fields, int access, java.lang.String name, java.lang.String desc)
          PropertyCodeAdapter constructor.
 
Method Summary
 void visitFieldInsn(int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc)
          Visit Method for Field instance (GETFIELD).
 void visitIincInsn(int var, int increment)
          Visit an increment instruction.
 void visitLocalVariable(java.lang.String name, java.lang.String desc, java.lang.String signature, org.objectweb.asm.Label start, org.objectweb.asm.Label end, int index)
          Visit a local variable.
 void visitMaxs(int maxStack, int maxLocals)
          Visit max method.
 void visitMethodInsn(int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc)
          Visit a method invocation instruction.
 void visitVarInsn(int opcode, int var)
          Visit an instruction implying a variable.
 
Methods inherited from class org.objectweb.asm.commons.GeneratorAdapter
arrayLength, arrayLoad, arrayStore, box, cast, catchException, checkCast, dup, dup2, dup2X1, dup2X2, dupX1, dupX2, endMethod, getField, getLocalType, getStatic, goTo, ifCmp, ifICmp, ifNonNull, ifNull, ifZCmp, iinc, instanceOf, invokeConstructor, invokeInterface, invokeStatic, invokeVirtual, loadArg, loadArgArray, loadArgs, loadArgs, loadLocal, loadLocal, loadThis, mark, mark, math, monitorEnter, monitorExit, newArray, newInstance, newLabel, not, pop, pop2, push, push, push, push, push, push, push, putField, putStatic, ret, returnValue, setLocalType, storeArg, storeLocal, storeLocal, swap, swap, tableSwitch, tableSwitch, throwException, throwException, unbox
 
Methods inherited from class org.objectweb.asm.commons.LocalVariablesSorter
newLocal, newLocalMapping, visitFrame
 
Methods inherited from class org.objectweb.asm.MethodAdapter
visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitInsn, visitIntInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLookupSwitchInsn, visitMultiANewArrayInsn, visitParameterAnnotation, visitTableSwitchInsn, visitTryCatchBlock, visitTypeInsn
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConstructorCodeAdapter

public ConstructorCodeAdapter(org.objectweb.asm.MethodVisitor mv,
                              java.lang.String owner,
                              java.util.Set fields,
                              int access,
                              java.lang.String name,
                              java.lang.String desc)
PropertyCodeAdapter constructor. A new FiledCodeAdapter should be create for each method visit.

Parameters:
mv - MethodVisitor
owner - Name of the class
fields - List of contained fields
access - Access
desc - : constructor descriptor
name - : name
Method Detail

visitFieldInsn

public void visitFieldInsn(int opcode,
                           java.lang.String owner,
                           java.lang.String name,
                           java.lang.String desc)
Visit Method for Field instance (GETFIELD).

Specified by:
visitFieldInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitFieldInsn in class org.objectweb.asm.MethodAdapter
Parameters:
opcode - : visited operation code
owner - : owner of the field
name - : name of the field
desc - : descriptor of the field
See Also:
MethodVisitor.visitFieldInsn(int, String, String, String)

visitMethodInsn

public void visitMethodInsn(int opcode,
                            java.lang.String owner,
                            java.lang.String name,
                            java.lang.String desc)
Visit a method invocation instruction. After the super constructor invocation, insert the _setComponentManager invocation.

Specified by:
visitMethodInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitMethodInsn in class org.objectweb.asm.MethodAdapter
Parameters:
opcode - : opcode
owner - : method owning class
name - : method name
desc - : method descriptor
See Also:
MethodAdapter.visitMethodInsn(int, java.lang.String, java.lang.String, java.lang.String)

visitVarInsn

public void visitVarInsn(int opcode,
                         int var)
Visit an instruction implying a variable. For all non-this variable, increment the variable index.

Specified by:
visitVarInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitVarInsn in class org.objectweb.asm.commons.LocalVariablesSorter
Parameters:
opcode - : opcode
var - : variable index
See Also:
MethodAdapter.visitVarInsn(int, int)

visitIincInsn

public void visitIincInsn(int var,
                          int increment)
Visit an increment instruction. If incrementing a variable, increment the variable index.

Specified by:
visitIincInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitIincInsn in class org.objectweb.asm.commons.LocalVariablesSorter
Parameters:
var - : variable index
increment - : increment
See Also:
MethodAdapter.visitIincInsn(int, int)

visitLocalVariable

public void visitLocalVariable(java.lang.String name,
                               java.lang.String desc,
                               java.lang.String signature,
                               org.objectweb.asm.Label start,
                               org.objectweb.asm.Label end,
                               int index)
Visit a local variable. Add _manager and increment variable index.

Specified by:
visitLocalVariable in interface org.objectweb.asm.MethodVisitor
Overrides:
visitLocalVariable in class org.objectweb.asm.commons.LocalVariablesSorter
Parameters:
name - : variable name
desc - : variable descriptor
signature - : variable signature
start - : beginning label
end - : ending label
index - :variable index
See Also:
MethodAdapter.visitLocalVariable(java.lang.String, java.lang.String, java.lang.String, org.objectweb.asm.Label, org.objectweb.asm.Label, int)

visitMaxs

public void visitMaxs(int maxStack,
                      int maxLocals)
Visit max method.

Specified by:
visitMaxs in interface org.objectweb.asm.MethodVisitor
Overrides:
visitMaxs in class org.objectweb.asm.commons.LocalVariablesSorter
Parameters:
maxStack - : stack size.
maxLocals - : local number.
See Also:
MethodAdapter.visitMaxs(int, int)