public class MethodAnalyzer extends Object implements IMethodProbesVisitor
IMethodProbesVisitor
that analyzes which statements and branches of
a method has been executed based on given probe data.Constructor and Description |
---|
MethodAnalyzer(String name,
String desc,
String signature,
boolean[] executionData)
New Method analyzer for the given probe data.
|
Modifier and Type | Method and Description |
---|---|
IMethodCoverage |
getCoverage()
Returns the coverage data for this method after this visitor has been
processed.
|
org.objectweb.asm.AnnotationVisitor |
visitAnnotation(String desc,
boolean visible) |
org.objectweb.asm.AnnotationVisitor |
visitAnnotationDefault() |
void |
visitAttribute(org.objectweb.asm.Attribute attr) |
void |
visitCode() |
void |
visitEnd() |
void |
visitFieldInsn(int opcode,
String owner,
String name,
String desc) |
void |
visitFrame(int type,
int nLocal,
Object[] local,
int nStack,
Object[] stack) |
void |
visitIincInsn(int var,
int increment) |
void |
visitInsn(int opcode) |
void |
visitInsnWithProbe(int opcode,
int probeId)
Visits a zero operand instruction with a probe.
|
void |
visitIntInsn(int opcode,
int operand) |
void |
visitJumpInsn(int opcode,
org.objectweb.asm.Label label) |
void |
visitJumpInsnWithProbe(int opcode,
org.objectweb.asm.Label label,
int probeId)
Visits a jump instruction.
|
void |
visitLabel(org.objectweb.asm.Label label) |
void |
visitLdcInsn(Object cst) |
void |
visitLineNumber(int line,
org.objectweb.asm.Label start) |
void |
visitLocalVariable(String name,
String desc,
String signature,
org.objectweb.asm.Label start,
org.objectweb.asm.Label end,
int index) |
void |
visitLookupSwitchInsn(org.objectweb.asm.Label dflt,
int[] keys,
org.objectweb.asm.Label[] labels) |
void |
visitLookupSwitchInsnWithProbes(org.objectweb.asm.Label dflt,
int[] keys,
org.objectweb.asm.Label[] labels)
Visits a LOOKUPSWITCH instruction with optional probes for each target
label.
|
void |
visitMaxs(int maxStack,
int maxLocals) |
void |
visitMethodInsn(int opcode,
String owner,
String name,
String desc) |
void |
visitMultiANewArrayInsn(String desc,
int dims) |
org.objectweb.asm.AnnotationVisitor |
visitParameterAnnotation(int parameter,
String desc,
boolean visible) |
void |
visitProbe(int probeId)
Visits an unconditional probe that should be inserted at the current
position.
|
void |
visitTableSwitchInsn(int min,
int max,
org.objectweb.asm.Label dflt,
org.objectweb.asm.Label[] labels) |
void |
visitTableSwitchInsnWithProbes(int min,
int max,
org.objectweb.asm.Label dflt,
org.objectweb.asm.Label[] labels)
Visits a TABLESWITCH instruction with optional probes for each target
label.
|
void |
visitTryCatchBlock(org.objectweb.asm.Label start,
org.objectweb.asm.Label end,
org.objectweb.asm.Label handler,
String type) |
void |
visitTypeInsn(int opcode,
String type) |
void |
visitVarInsn(int opcode,
int var) |
public MethodAnalyzer(String name, String desc, String signature, boolean[] executionData)
name
- method namedesc
- description of the methodsignature
- optional parameterized signatureexecutionData
- recorded probe date of the containing class or
null
if the class is not executed at allpublic IMethodCoverage getCoverage()
public void visitLabel(org.objectweb.asm.Label label)
visitLabel
in interface org.objectweb.asm.MethodVisitor
public void visitLineNumber(int line, org.objectweb.asm.Label start)
visitLineNumber
in interface org.objectweb.asm.MethodVisitor
public void visitInsn(int opcode)
visitInsn
in interface org.objectweb.asm.MethodVisitor
public void visitIntInsn(int opcode, int operand)
visitIntInsn
in interface org.objectweb.asm.MethodVisitor
public void visitVarInsn(int opcode, int var)
visitVarInsn
in interface org.objectweb.asm.MethodVisitor
public void visitTypeInsn(int opcode, String type)
visitTypeInsn
in interface org.objectweb.asm.MethodVisitor
public void visitFieldInsn(int opcode, String owner, String name, String desc)
visitFieldInsn
in interface org.objectweb.asm.MethodVisitor
public void visitMethodInsn(int opcode, String owner, String name, String desc)
visitMethodInsn
in interface org.objectweb.asm.MethodVisitor
public void visitJumpInsn(int opcode, org.objectweb.asm.Label label)
visitJumpInsn
in interface org.objectweb.asm.MethodVisitor
public void visitLdcInsn(Object cst)
visitLdcInsn
in interface org.objectweb.asm.MethodVisitor
public void visitIincInsn(int var, int increment)
visitIincInsn
in interface org.objectweb.asm.MethodVisitor
public void visitTableSwitchInsn(int min, int max, org.objectweb.asm.Label dflt, org.objectweb.asm.Label[] labels)
visitTableSwitchInsn
in interface org.objectweb.asm.MethodVisitor
public void visitLookupSwitchInsn(org.objectweb.asm.Label dflt, int[] keys, org.objectweb.asm.Label[] labels)
visitLookupSwitchInsn
in interface org.objectweb.asm.MethodVisitor
public void visitMultiANewArrayInsn(String desc, int dims)
visitMultiANewArrayInsn
in interface org.objectweb.asm.MethodVisitor
public void visitProbe(int probeId)
IMethodProbesVisitor
visitProbe
in interface IMethodProbesVisitor
probeId
- id of the probe to insertpublic void visitJumpInsnWithProbe(int opcode, org.objectweb.asm.Label label, int probeId)
IMethodProbesVisitor
visitJumpInsnWithProbe
in interface IMethodProbesVisitor
opcode
- the opcode of the type instruction to be visited. This opcode
is either IFEQ, IFNE, IFLT, IFGE, IFGT, IFLE, IF_ICMPEQ,
IF_ICMPNE, IF_ICMPLT, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE,
IF_ACMPEQ, IF_ACMPNE, GOTO, IFNULL or IFNONNULL.label
- the operand of the instruction to be visited. This operand is
a label that designates the instruction to which the jump
instruction may jump.probeId
- id of the probeMethodVisitor.visitJumpInsn(int, Label)
public void visitInsnWithProbe(int opcode, int probeId)
IMethodProbesVisitor
visitInsnWithProbe
in interface IMethodProbesVisitor
opcode
- the opcode of the instruction to be visited. This opcode is
either IRETURN, LRETURN, FRETURN, DRETURN, ARETURN, RETURN or
ATHROW.probeId
- id of the probeMethodVisitor.visitInsn(int)
public void visitTableSwitchInsnWithProbes(int min, int max, org.objectweb.asm.Label dflt, org.objectweb.asm.Label[] labels)
IMethodProbesVisitor
LabelInfo.getProbeId(Label)
.visitTableSwitchInsnWithProbes
in interface IMethodProbesVisitor
min
- the minimum key value.max
- the maximum key value.dflt
- beginning of the default handler block.labels
- beginnings of the handler blocks. labels[i]
is
the beginning of the handler block for the
min + i
key.MethodVisitor.visitTableSwitchInsn(int, int, Label, Label[])
public void visitLookupSwitchInsnWithProbes(org.objectweb.asm.Label dflt, int[] keys, org.objectweb.asm.Label[] labels)
IMethodProbesVisitor
LabelInfo.getProbeId(Label)
.visitLookupSwitchInsnWithProbes
in interface IMethodProbesVisitor
dflt
- beginning of the default handler block.keys
- the values of the keys.labels
- beginnings of the handler blocks. labels[i]
is
the beginning of the handler block for the
keys[i]
key.MethodVisitor.visitLookupSwitchInsn(Label, int[], Label[])
public void visitEnd()
visitEnd
in interface org.objectweb.asm.MethodVisitor
public org.objectweb.asm.AnnotationVisitor visitAnnotationDefault()
visitAnnotationDefault
in interface org.objectweb.asm.MethodVisitor
public org.objectweb.asm.AnnotationVisitor visitAnnotation(String desc, boolean visible)
visitAnnotation
in interface org.objectweb.asm.MethodVisitor
public org.objectweb.asm.AnnotationVisitor visitParameterAnnotation(int parameter, String desc, boolean visible)
visitParameterAnnotation
in interface org.objectweb.asm.MethodVisitor
public void visitAttribute(org.objectweb.asm.Attribute attr)
visitAttribute
in interface org.objectweb.asm.MethodVisitor
public void visitCode()
visitCode
in interface org.objectweb.asm.MethodVisitor
public void visitTryCatchBlock(org.objectweb.asm.Label start, org.objectweb.asm.Label end, org.objectweb.asm.Label handler, String type)
visitTryCatchBlock
in interface org.objectweb.asm.MethodVisitor
public void visitFrame(int type, int nLocal, Object[] local, int nStack, Object[] stack)
visitFrame
in interface org.objectweb.asm.MethodVisitor
public void visitLocalVariable(String name, String desc, String signature, org.objectweb.asm.Label start, org.objectweb.asm.Label end, int index)
visitLocalVariable
in interface org.objectweb.asm.MethodVisitor
public void visitMaxs(int maxStack, int maxLocals)
visitMaxs
in interface org.objectweb.asm.MethodVisitor
Copyright © 2009-2012 Mountainminds GmbH & Co. KG. All Rights Reserved.