org.jacoco.core.internal.flow
Interface IMethodProbesVisitor

All Superinterfaces:
org.objectweb.asm.MethodVisitor
All Known Implementing Classes:
MethodAnalyzer

public interface IMethodProbesVisitor
extends org.objectweb.asm.MethodVisitor

A MethodVisitor with additional methods to get probe insertion information.


Method Summary
 void visitInsnWithProbe(int opcode, int probeId)
          Visits a zero operand instruction with a probe.
 void visitJumpInsnWithProbe(int opcode, org.objectweb.asm.Label label, int probeId)
          Visits a jump instruction.
 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 visitProbe(int probeId)
          Visits an unconditional probe that should be inserted at the current position.
 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.
 
Methods inherited from interface org.objectweb.asm.MethodVisitor
visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitFieldInsn, visitFrame, visitIincInsn, visitInsn, visitIntInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLineNumber, visitLocalVariable, visitLookupSwitchInsn, visitMaxs, visitMethodInsn, visitMultiANewArrayInsn, visitParameterAnnotation, visitTableSwitchInsn, visitTryCatchBlock, visitTypeInsn, visitVarInsn
 

Method Detail

visitProbe

void visitProbe(int probeId)
Visits an unconditional probe that should be inserted at the current position.

Parameters:
probeId - id of the probe to insert

visitJumpInsnWithProbe

void visitJumpInsnWithProbe(int opcode,
                            org.objectweb.asm.Label label,
                            int probeId)
Visits a jump instruction. A probe with the given id should be inserted in a way that it is executed only when the jump to the given label is executed.

Parameters:
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 probe
See Also:
MethodVisitor.visitJumpInsn(int, Label)

visitInsnWithProbe

void visitInsnWithProbe(int opcode,
                        int probeId)
Visits a zero operand instruction with a probe. This event is used only for instructions that terminate the method. Therefore the probe must be inserted before the actual instruction.

Parameters:
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 probe
See Also:
MethodVisitor.visitInsn(int)

visitTableSwitchInsnWithProbes

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. Implementations can be optimized based on the fact that the same target labels will always have the same probe id within a call to this method. The probe id for each label can be obtained with LabelInfo.getProbeId(Label).

Parameters:
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.
See Also:
MethodVisitor.visitTableSwitchInsn(int, int, Label, Label[])

visitLookupSwitchInsnWithProbes

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. Implementations can be optimized based on the fact that the same target labels will always have the same probe id within a call to this method. The probe id for each label can be obtained with LabelInfo.getProbeId(Label).

Parameters:
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.
See Also:
MethodVisitor.visitLookupSwitchInsn(Label, int[], Label[])


Copyright © 2009-2012 Mountainminds GmbH & Co. KG. All Rights Reserved.