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 boolean
true
if the exception table callback was already triggered.Fields inherited from class org.objectweb.asm.MethodVisitor
api, mv
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
ExceptionTableSensitiveMethodVisitor
(int api, org.objectweb.asm.MethodVisitor methodVisitor) Creates an exception table sensitive method visitor. -
Method Summary
Modifier and TypeMethodDescriptionprivate void
Considers if the end of the exception table was reached.protected abstract void
Invoked after the exception table was visited.protected void
onVisitFieldInsn
(int opcode, String owner, String name, String descriptor) Visits a field instruction.protected void
onVisitFrame
(int type, int localVariableLength, Object[] localVariable, int stackSize, Object[] stack) Visits a stack map frame.protected void
onVisitIincInsn
(int offset, int increment) Visits an increment instruction.protected void
onVisitInsn
(int opcode) Visits a simple instruction.protected void
onVisitIntInsn
(int opcode, int operand) Visits an integer opcode.protected void
onVisitInvokeDynamicInsn
(String name, String descriptor, org.objectweb.asm.Handle handle, Object... argument) Visits an invoke dynamic instruction.protected void
onVisitJumpInsn
(int opcode, org.objectweb.asm.Label label) Visits a jump instruction.protected void
onVisitLabel
(org.objectweb.asm.Label label) Visits a label.protected void
onVisitLdcInsn
(Object constant) Visits a constant pool access instruction.protected void
onVisitLookupSwitchInsn
(org.objectweb.asm.Label defaultTarget, int[] key, org.objectweb.asm.Label[] label) Visits a lookup switch instruction.protected void
onVisitMethodInsn
(int opcode, String owner, String name, String descriptor) Deprecated.protected void
onVisitMethodInsn
(int opcode, String owner, String name, String descriptor, boolean isInterface) Visits a method instruction.protected void
onVisitMultiANewArrayInsn
(String descriptor, int dimensions) Visits an instruction for creating a multidimensional array.protected void
onVisitTableSwitchInsn
(int minimum, int maximum, org.objectweb.asm.Label defaultTarget, org.objectweb.asm.Label... label) Visits a table switch instruction.protected void
onVisitTypeInsn
(int opcode, String type) Visits a type instruction.protected void
onVisitVarInsn
(int opcode, int offset) Visits an variable instruction.final void
visitFieldInsn
(int opcode, String owner, String name, String descriptor) final void
visitFrame
(int type, int localVariableLength, Object[] localVariable, int stackSize, Object[] stack) final void
visitIincInsn
(int offset, int increment) final void
visitInsn
(int opcode) final void
visitIntInsn
(int opcode, int operand) final void
visitInvokeDynamicInsn
(String name, String descriptor, org.objectweb.asm.Handle handle, Object... argument) final void
visitJumpInsn
(int opcode, org.objectweb.asm.Label label) final void
visitLabel
(org.objectweb.asm.Label label) final void
visitLdcInsn
(Object constant) final void
visitLookupSwitchInsn
(org.objectweb.asm.Label dflt, int[] key, org.objectweb.asm.Label[] label) final void
visitMethodInsn
(int opcode, String owner, String name, String descriptor) final void
visitMethodInsn
(int opcode, String owner, String name, String descriptor, boolean isInterface) final void
visitMultiANewArrayInsn
(String descriptor, int dimensions) final void
visitTableSwitchInsn
(int minimum, int maximum, org.objectweb.asm.Label defaultTarget, org.objectweb.asm.Label... label) final void
visitTypeInsn
(int opcode, String type) final void
visitVarInsn
(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 triggertrue
if 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:
visitFrame
in 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:
visitLabel
in 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:
visitIntInsn
in 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:
visitVarInsn
in 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:
visitTypeInsn
in classorg.objectweb.asm.MethodVisitor
-
onVisitTypeInsn
Visits a type instruction.- Parameters:
opcode
- The visited opcode.type
- The type name.
-
visitFieldInsn
- Overrides:
visitFieldInsn
in 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:
visitMethodInsn
in 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:
visitMethodInsn
in 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
-true
if the method belongs to an interface.
-
visitInvokeDynamicInsn
public final void visitInvokeDynamicInsn(String name, String descriptor, org.objectweb.asm.Handle handle, Object... argument) - Overrides:
visitInvokeDynamicInsn
in 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:
visitJumpInsn
in 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:
visitLdcInsn
in 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:
visitIincInsn
in 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:
visitTableSwitchInsn
in 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:
visitLookupSwitchInsn
in 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:
visitMultiANewArrayInsn
in 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:
visitInsn
in 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.