Package net.bytebuddy.utility.visitor
Class ExceptionTableSensitiveMethodVisitor
java.lang.Object
org.objectweb.asm.MethodVisitor
net.bytebuddy.utility.visitor.ExceptionTableSensitiveMethodVisitor
- Direct Known Subclasses:
Advice.AdviceVisitor,LineNumberPrependingMethodVisitor
public abstract class ExceptionTableSensitiveMethodVisitor
extends org.objectweb.asm.MethodVisitor
A
MethodVisitor that adds a callback after visiting the exception table of a method.-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleantrueif the exception table callback was already triggered.Fields inherited from class org.objectweb.asm.MethodVisitor
api, mv -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedExceptionTableSensitiveMethodVisitor(int api, org.objectweb.asm.MethodVisitor methodVisitor) Creates an exception table sensitive method visitor. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidConsiders if the end of the exception table was reached.protected abstract voidInvoked after the exception table was visited.protected voidonVisitFieldInsn(int opcode, String owner, String name, String descriptor) Visits a field instruction.protected voidonVisitFrame(int type, int localVariableLength, Object[] localVariable, int stackSize, Object[] stack) Visits a stack map frame.protected voidonVisitIincInsn(int offset, int increment) Visits an increment instruction.protected voidonVisitInsn(int opcode) Visits a simple instruction.protected voidonVisitIntInsn(int opcode, int operand) Visits an integer opcode.protected voidonVisitInvokeDynamicInsn(String name, String descriptor, org.objectweb.asm.Handle handle, Object... argument) Visits an invoke dynamic instruction.protected voidonVisitJumpInsn(int opcode, org.objectweb.asm.Label label) Visits a jump instruction.protected voidonVisitLabel(org.objectweb.asm.Label label) Visits a label.protected voidonVisitLdcInsn(Object constant) Visits a constant pool access instruction.protected voidonVisitLookupSwitchInsn(org.objectweb.asm.Label defaultTarget, int[] key, org.objectweb.asm.Label[] label) Visits a lookup switch instruction.protected voidonVisitMethodInsn(int opcode, String owner, String name, String descriptor) Deprecated.protected voidonVisitMethodInsn(int opcode, String owner, String name, String descriptor, boolean isInterface) Visits a method instruction.protected voidonVisitMultiANewArrayInsn(String descriptor, int dimensions) Visits an instruction for creating a multidimensional array.protected voidonVisitTableSwitchInsn(int minimum, int maximum, org.objectweb.asm.Label defaultTarget, org.objectweb.asm.Label... label) Visits a table switch instruction.protected voidonVisitTypeInsn(int opcode, String type) Visits a type instruction.protected voidonVisitVarInsn(int opcode, int offset) Visits an variable instruction.final voidvisitFieldInsn(int opcode, String owner, String name, String descriptor) final voidvisitFrame(int type, int localVariableLength, Object[] localVariable, int stackSize, Object[] stack) final voidvisitIincInsn(int offset, int increment) final voidvisitInsn(int opcode) final voidvisitIntInsn(int opcode, int operand) final voidvisitInvokeDynamicInsn(String name, String descriptor, org.objectweb.asm.Handle handle, Object... argument) final voidvisitJumpInsn(int opcode, org.objectweb.asm.Label label) final voidvisitLabel(org.objectweb.asm.Label label) final voidvisitLdcInsn(Object constant) final voidvisitLookupSwitchInsn(org.objectweb.asm.Label dflt, int[] key, org.objectweb.asm.Label[] label) final voidvisitMethodInsn(int opcode, String owner, String name, String descriptor) final voidvisitMethodInsn(int opcode, String owner, String name, String descriptor, boolean isInterface) final voidvisitMultiANewArrayInsn(String descriptor, int dimensions) final voidvisitTableSwitchInsn(int minimum, int maximum, org.objectweb.asm.Label defaultTarget, org.objectweb.asm.Label... label) final voidvisitTypeInsn(int opcode, String type) final voidvisitVarInsn(int opcode, int offset) Methods inherited from class org.objectweb.asm.MethodVisitor
getDelegate, visitAnnotableParameterCount, visitAnnotation, visitAnnotationDefault, visitAttribute, visitCode, visitEnd, visitInsnAnnotation, visitLineNumber, visitLocalVariable, visitLocalVariableAnnotation, visitMaxs, visitParameter, visitParameterAnnotation, visitTryCatchAnnotation, visitTryCatchBlock, visitTypeAnnotation
-
Field Details
-
trigger
private boolean triggertrueif the exception table callback was already triggered.
-
-
Constructor Details
-
ExceptionTableSensitiveMethodVisitor
protected ExceptionTableSensitiveMethodVisitor(int api, org.objectweb.asm.MethodVisitor methodVisitor) Creates an exception table sensitive method visitor.- Parameters:
api- The ASM API version.methodVisitor- The delegating method visitor.
-
-
Method Details
-
considerEndOfExceptionTable
private void considerEndOfExceptionTable()Considers if the end of the exception table was reached. -
onAfterExceptionTable
protected abstract void onAfterExceptionTable()Invoked after the exception table was visited. Typically, the exception table is visited by ASM at the beginning of a method. It is however possible that a user adds exception table entries at a later point. Normally, this is however not meaningful use of ASM. -
visitFrame
public final void visitFrame(int type, int localVariableLength, Object[] localVariable, int stackSize, Object[] stack) - Overrides:
visitFramein classorg.objectweb.asm.MethodVisitor
-
onVisitFrame
protected void onVisitFrame(int type, int localVariableLength, Object[] localVariable, int stackSize, Object[] stack) Visits a stack map frame.- Parameters:
type- The type of stack map frame.localVariableLength- The length of the local variable array.localVariable- An array containing type symbols for all values in the local variable array.stackSize- The size of the operand stack.stack- An array containing type symbols for all values on the operand stack.
-
visitLabel
public final void visitLabel(org.objectweb.asm.Label label) - Overrides:
visitLabelin classorg.objectweb.asm.MethodVisitor
-
onVisitLabel
protected void onVisitLabel(org.objectweb.asm.Label label) Visits a label.- Parameters:
label- The visited label.- See Also:
-
visitIntInsn
public final void visitIntInsn(int opcode, int operand) - Overrides:
visitIntInsnin classorg.objectweb.asm.MethodVisitor
-
onVisitIntInsn
protected void onVisitIntInsn(int opcode, int operand) Visits an integer opcode.- Parameters:
opcode- The visited opcode.operand- The visited operand.
-
visitVarInsn
public final void visitVarInsn(int opcode, int offset) - Overrides:
visitVarInsnin classorg.objectweb.asm.MethodVisitor
-
onVisitVarInsn
protected void onVisitVarInsn(int opcode, int offset) Visits an variable instruction.- Parameters:
opcode- The visited opcode.offset- The visited offset.
-
visitTypeInsn
- Overrides:
visitTypeInsnin classorg.objectweb.asm.MethodVisitor
-
onVisitTypeInsn
Visits a type instruction.- Parameters:
opcode- The visited opcode.type- The type name.
-
visitFieldInsn
- Overrides:
visitFieldInsnin classorg.objectweb.asm.MethodVisitor
-
onVisitFieldInsn
Visits a field instruction.- Parameters:
opcode- The visited opcode.owner- The field's owner.name- The field's name.descriptor- The field's descriptor.
-
visitMethodInsn
- Overrides:
visitMethodInsnin classorg.objectweb.asm.MethodVisitor
-
onVisitMethodInsn
@Deprecated protected void onVisitMethodInsn(int opcode, String owner, String name, String descriptor) Deprecated.Visits a method instruction.- Parameters:
opcode- The visited opcode.owner- The method's owner.name- The method's internal name.descriptor- The method's descriptor.
-
visitMethodInsn
public final void visitMethodInsn(int opcode, String owner, String name, String descriptor, boolean isInterface) - Overrides:
visitMethodInsnin classorg.objectweb.asm.MethodVisitor
-
onVisitMethodInsn
protected void onVisitMethodInsn(int opcode, String owner, String name, String descriptor, boolean isInterface) Visits a method instruction.- Parameters:
opcode- The visited opcode.owner- The method's owner.name- The method's internal name.descriptor- The method's descriptor.isInterface-trueif the method belongs to an interface.
-
visitInvokeDynamicInsn
public final void visitInvokeDynamicInsn(String name, String descriptor, org.objectweb.asm.Handle handle, Object... argument) - Overrides:
visitInvokeDynamicInsnin classorg.objectweb.asm.MethodVisitor
-
onVisitInvokeDynamicInsn
protected void onVisitInvokeDynamicInsn(String name, String descriptor, org.objectweb.asm.Handle handle, Object... argument) Visits an invoke dynamic instruction.- Parameters:
name- The name of the method.descriptor- The descriptor of the method.handle- The bootstrap method handle.argument- The bootstrap method arguments.
-
visitJumpInsn
public final void visitJumpInsn(int opcode, org.objectweb.asm.Label label) - Overrides:
visitJumpInsnin classorg.objectweb.asm.MethodVisitor
-
onVisitJumpInsn
protected void onVisitJumpInsn(int opcode, org.objectweb.asm.Label label) Visits a jump instruction.- Parameters:
opcode- The visited opcode.label- The visited label.
-
visitLdcInsn
- Overrides:
visitLdcInsnin classorg.objectweb.asm.MethodVisitor
-
onVisitLdcInsn
Visits a constant pool access instruction.- Parameters:
constant- The constant pool value.
-
visitIincInsn
public final void visitIincInsn(int offset, int increment) - Overrides:
visitIincInsnin classorg.objectweb.asm.MethodVisitor
-
onVisitIincInsn
protected void onVisitIincInsn(int offset, int increment) Visits an increment instruction.- Parameters:
offset- The offset of the accessed variable.increment- The value with which to increment.
-
visitTableSwitchInsn
public final void visitTableSwitchInsn(int minimum, int maximum, org.objectweb.asm.Label defaultTarget, org.objectweb.asm.Label... label) - Overrides:
visitTableSwitchInsnin classorg.objectweb.asm.MethodVisitor
-
onVisitTableSwitchInsn
protected void onVisitTableSwitchInsn(int minimum, int maximum, org.objectweb.asm.Label defaultTarget, org.objectweb.asm.Label... label) Visits a table switch instruction.- Parameters:
minimum- The minimum index.maximum- The maximum index.defaultTarget- A label indicating the default value.label- Labels indicating the jump targets.
-
visitLookupSwitchInsn
public final void visitLookupSwitchInsn(org.objectweb.asm.Label dflt, int[] key, org.objectweb.asm.Label[] label) - Overrides:
visitLookupSwitchInsnin classorg.objectweb.asm.MethodVisitor
-
onVisitLookupSwitchInsn
protected void onVisitLookupSwitchInsn(org.objectweb.asm.Label defaultTarget, int[] key, org.objectweb.asm.Label[] label) Visits a lookup switch instruction.- Parameters:
defaultTarget- The default option.key- The key values.label- The targets for each key.
-
visitMultiANewArrayInsn
- Overrides:
visitMultiANewArrayInsnin classorg.objectweb.asm.MethodVisitor
-
onVisitMultiANewArrayInsn
Visits an instruction for creating a multidimensional array.- Parameters:
descriptor- The type descriptor of the array's component type.dimensions- The dimensions of the array.
-
visitInsn
public final void visitInsn(int opcode) - Overrides:
visitInsnin classorg.objectweb.asm.MethodVisitor
-
onVisitInsn
protected void onVisitInsn(int opcode) Visits a simple instruction.- Parameters:
opcode- The opcode of the instruction.
-
onVisitMethodInsn(int, String, String, String, boolean)instead.