net.sourceforge.cobertura.instrument
Class FirstPassMethodInstrumenter

java.lang.Object
  extended by org.objectweb.asm.MethodAdapter
      extended by net.sourceforge.cobertura.instrument.FirstPassMethodInstrumenter
All Implemented Interfaces:
org.objectweb.asm.MethodVisitor, org.objectweb.asm.Opcodes

public class FirstPassMethodInstrumenter
extends org.objectweb.asm.MethodAdapter
implements org.objectweb.asm.Opcodes


Field Summary
private  ClassData classData
           
private  int currentJump
           
private  int currentLine
           
private  int currentSwitch
           
private  java.util.Collection ignoreBranchesRegexs
           
private  java.util.Collection ignoreRegexs
           
private  java.util.Map jumpTargetLabels
           
private  java.util.Map lineLabels
           
private  org.objectweb.asm.tree.MethodNode methodNode
           
private  int myAccess
           
private  java.lang.String myDescriptor
           
private  java.lang.String myName
           
private  java.lang.String ownerClass
           
private  java.util.Map switchTargetLabels
           
private  org.objectweb.asm.MethodVisitor writerMethodVisitor
           
 
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, 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
FirstPassMethodInstrumenter(ClassData classData, org.objectweb.asm.MethodVisitor mv, java.lang.String owner, int access, java.lang.String name, java.lang.String desc, java.lang.String signature, java.lang.String[] exceptions, java.util.Collection ignoreRegexs, java.util.Collection ignoreBranchesRegexs)
           
 
Method Summary
protected  java.util.Collection getIgnoreRegexs()
           
protected  java.util.Map getJumpTargetLabels()
           
protected  java.util.Map getLineLabels()
           
protected  int getMyAccess()
           
protected  java.lang.String getMyDescriptor()
           
protected  java.lang.String getMyName()
           
protected  java.lang.String getOwnerClass()
           
protected  java.util.Map getSwitchTargetLabels()
           
protected  org.objectweb.asm.MethodVisitor getWriterMethodVisitor()
           
protected  void removeLine(int lineNumber)
           
 void visitEnd()
           
 void visitJumpInsn(int opcode, org.objectweb.asm.Label label)
           
 void visitLineNumber(int line, org.objectweb.asm.Label start)
           
 void visitLookupSwitchInsn(org.objectweb.asm.Label dflt, int[] keys, org.objectweb.asm.Label[] labels)
           
 void visitMethodInsn(int opcode, java.lang.String owner, java.lang.String name, java.lang.String desc)
           
 void visitTableSwitchInsn(int min, int max, org.objectweb.asm.Label dflt, org.objectweb.asm.Label[] labels)
           
 
Methods inherited from class org.objectweb.asm.MethodAdapter
visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitFieldInsn, visitIincInsn, visitInsn, visitIntInsn, visitLabel, visitLdcInsn, visitLocalVariable, visitMaxs, visitMultiANewArrayInsn, visitParameterAnnotation, visitTryCatchBlock, visitTypeInsn, visitVarInsn
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ownerClass

private final java.lang.String ownerClass

myName

private java.lang.String myName

myDescriptor

private java.lang.String myDescriptor

myAccess

private int myAccess

ignoreRegexs

private java.util.Collection ignoreRegexs

ignoreBranchesRegexs

private java.util.Collection ignoreBranchesRegexs

classData

private ClassData classData

currentLine

private int currentLine

currentJump

private int currentJump

currentSwitch

private int currentSwitch

jumpTargetLabels

private java.util.Map jumpTargetLabels

switchTargetLabels

private java.util.Map switchTargetLabels

lineLabels

private java.util.Map lineLabels

writerMethodVisitor

private org.objectweb.asm.MethodVisitor writerMethodVisitor

methodNode

private org.objectweb.asm.tree.MethodNode methodNode
Constructor Detail

FirstPassMethodInstrumenter

public FirstPassMethodInstrumenter(ClassData classData,
                                   org.objectweb.asm.MethodVisitor mv,
                                   java.lang.String owner,
                                   int access,
                                   java.lang.String name,
                                   java.lang.String desc,
                                   java.lang.String signature,
                                   java.lang.String[] exceptions,
                                   java.util.Collection ignoreRegexs,
                                   java.util.Collection ignoreBranchesRegexs)
Method Detail

visitEnd

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

visitJumpInsn

public void visitJumpInsn(int opcode,
                          org.objectweb.asm.Label label)
Specified by:
visitJumpInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitJumpInsn in class org.objectweb.asm.MethodAdapter

visitLineNumber

public void visitLineNumber(int line,
                            org.objectweb.asm.Label start)
Specified by:
visitLineNumber in interface org.objectweb.asm.MethodVisitor
Overrides:
visitLineNumber in class org.objectweb.asm.MethodAdapter

visitMethodInsn

public void visitMethodInsn(int opcode,
                            java.lang.String owner,
                            java.lang.String name,
                            java.lang.String desc)
Specified by:
visitMethodInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitMethodInsn in class org.objectweb.asm.MethodAdapter

visitLookupSwitchInsn

public void visitLookupSwitchInsn(org.objectweb.asm.Label dflt,
                                  int[] keys,
                                  org.objectweb.asm.Label[] labels)
Specified by:
visitLookupSwitchInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitLookupSwitchInsn in class org.objectweb.asm.MethodAdapter

visitTableSwitchInsn

public void visitTableSwitchInsn(int min,
                                 int max,
                                 org.objectweb.asm.Label dflt,
                                 org.objectweb.asm.Label[] labels)
Specified by:
visitTableSwitchInsn in interface org.objectweb.asm.MethodVisitor
Overrides:
visitTableSwitchInsn in class org.objectweb.asm.MethodAdapter

removeLine

protected void removeLine(int lineNumber)

getWriterMethodVisitor

protected org.objectweb.asm.MethodVisitor getWriterMethodVisitor()

getIgnoreRegexs

protected java.util.Collection getIgnoreRegexs()

getJumpTargetLabels

protected java.util.Map getJumpTargetLabels()

getSwitchTargetLabels

protected java.util.Map getSwitchTargetLabels()

getMyAccess

protected int getMyAccess()

getMyDescriptor

protected java.lang.String getMyDescriptor()

getMyName

protected java.lang.String getMyName()

getOwnerClass

protected java.lang.String getOwnerClass()

getLineLabels

protected java.util.Map getLineLabels()