org.unitils.mock.argumentmatcher
Class ArgumentMatcherPositionFinder.MethodAnalyzer

java.lang.Object
  extended by org.objectweb.asm.tree.analysis.Analyzer
      extended by org.unitils.mock.argumentmatcher.ArgumentMatcherPositionFinder.MethodAnalyzer
All Implemented Interfaces:
org.objectweb.asm.Opcodes
Enclosing class:
ArgumentMatcherPositionFinder

protected static class ArgumentMatcherPositionFinder.MethodAnalyzer
extends org.objectweb.asm.tree.analysis.Analyzer

Analyzer that passes the line nrs to the given interpreter. By default an analyzer filters out the line number instructions. This analyzer intercepts these instructions and sets the current line nr on the interpreter.


Field Summary
protected  ArgumentMatcherPositionFinder.MethodInterpreter methodInterpreter
           
protected  org.objectweb.asm.tree.MethodNode methodNode
           
 
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
ArgumentMatcherPositionFinder.MethodAnalyzer(org.objectweb.asm.tree.MethodNode methodNode, ArgumentMatcherPositionFinder.MethodInterpreter methodInterpreter)
          Creates an analyzer.
 
Method Summary
protected  void newControlFlowEdge(int instructionIndex, int nextInstructionIndex)
          Overridden to handle the line number instructions.
 
Methods inherited from class org.objectweb.asm.tree.analysis.Analyzer
analyze, getFrames, getHandlers, newControlFlowExceptionEdge, newFrame, newFrame
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

methodNode

protected org.objectweb.asm.tree.MethodNode methodNode

methodInterpreter

protected ArgumentMatcherPositionFinder.MethodInterpreter methodInterpreter
Constructor Detail

ArgumentMatcherPositionFinder.MethodAnalyzer

public ArgumentMatcherPositionFinder.MethodAnalyzer(org.objectweb.asm.tree.MethodNode methodNode,
                                                    ArgumentMatcherPositionFinder.MethodInterpreter methodInterpreter)
Creates an analyzer.

Parameters:
methodNode - The method to analyze, not null
methodInterpreter - The interpreter to use during the analysis, not null
Method Detail

newControlFlowEdge

protected void newControlFlowEdge(int instructionIndex,
                                  int nextInstructionIndex)
Overridden to handle the line number instructions.

Overrides:
newControlFlowEdge in class org.objectweb.asm.tree.analysis.Analyzer
Parameters:
instructionIndex - The current index
nextInstructionIndex - The next index


Copyright © 2011. All Rights Reserved.