Top Description Fields Constructors Methods
org.easymock.bytebuddy.jar.asm

pack-priv final Class MethodWriter

extends MethodVisitor
Class Inheritance

A MethodVisitor that generates a corresponding 'method_info' structure, as defined in the Java Virtual Machine Specification (JVMS).
Authors
Eric Bruneton, Eugene Kuleshov
See Also
JVMS 4.6

Field Summary

Modifier and TypeField and Description
private final int
accessFlags

The access_flags field of the method_info JVMS structure.

private final ByteVector
code

The 'code' field of the Code attribute.

private final int
compute

Indicates what must be computed.

pack-priv static final int
COMPUTE_ALL_FRAMES

Indicates that all the stack map frames must be computed.

pack-priv static final int
COMPUTE_INSERTED_FRAMES

Indicates that the stack map frames of type F_INSERT must be computed.

pack-priv static final int
COMPUTE_MAX_STACK_AND_LOCAL

Indicates that the maximum stack size and the maximum number of local variables must be computed, from scratch.

pack-priv static final int
COMPUTE_MAX_STACK_AND_LOCAL_FROM_FRAMES

Indicates that the maximum stack size and the maximum number of local variables must be computed, from the existing stack map frames.

pack-priv static final int
COMPUTE_NOTHING

Indicates that nothing must be computed.

private Label
currentBasicBlock

The current basic block, i.e. the basic block of the last visited instruction.

private int[]
currentFrame

The current stack map frame.

private int
currentLocals

The number of local variables in the last visited stack map frame.

private ByteVector
defaultValue

The default_value field of the AnnotationDefault attribute, or null.

private final String
descriptor

The descriptor of this method.

private final int
descriptorIndex

The descriptor_index field of the method_info JVMS structure.

private final int[]
exceptionIndexTable

The exception_index_table array of the Exceptions attribute, or null.

private Attribute
firstAttribute

The first non standard attribute of this method.

private Label
firstBasicBlock

The first basic block of the method.

private Attribute
firstCodeAttribute

The first non standard attribute of the Code attribute.

private Handler
firstHandler

The first element in the exception handler list (used to generate the exception_table of the Code attribute).

private boolean
hasAsmInstructions

Whether the bytecode of this method contains ASM specific instructions.

private boolean
hasSubroutines

Whether this method contains subroutines.

private int
invisibleAnnotableParameterCount

The number of method parameters that can have runtime visible annotations, or 0.

private Label
lastBasicBlock

The last basic block of the method (in bytecode offset order).

private int
lastBytecodeOffset

The start offset of the last visited instruction.

private AnnotationWriter
lastCodeRuntimeInvisibleTypeAnnotation

The last runtime invisible type annotation of the Code attribute.

private AnnotationWriter
lastCodeRuntimeVisibleTypeAnnotation

The last runtime visible type annotation of the Code attribute.

private Handler
lastHandler

The last element in the exception handler list (used to generate the exception_table of the Code attribute).

private AnnotationWriter
lastRuntimeInvisibleAnnotation

The last runtime invisible annotation of this method.

private AnnotationWriter[]
lastRuntimeInvisibleParameterAnnotations

The runtime invisible parameter annotations of this method.

private AnnotationWriter
lastRuntimeInvisibleTypeAnnotation

The last runtime invisible type annotation of this method.

private AnnotationWriter
lastRuntimeVisibleAnnotation

The last runtime visible annotation of this method.

private AnnotationWriter[]
lastRuntimeVisibleParameterAnnotations

The runtime visible parameter annotations of this method.

private AnnotationWriter
lastRuntimeVisibleTypeAnnotation

The last runtime visible type annotation of this method.

private ByteVector
lineNumberTable

The line_number_table array of the LineNumberTable code attribute, or null.

private int
lineNumberTableLength

The line_number_table_length field of the LineNumberTable code attribute.

private ByteVector
localVariableTable

The local_variable_table array of the LocalVariableTable code attribute, or null.

private int
localVariableTableLength

The local_variable_table_length field of the LocalVariableTable code attribute.

private ByteVector
localVariableTypeTable

The local_variable_type_table array of the LocalVariableTypeTable code attribute, or null.

private int
localVariableTypeTableLength

The local_variable_type_table_length field of the LocalVariableTypeTable code attribute.

private int
maxLocals

The max_locals field of the Code attribute.

private int
maxRelativeStackSize

The maximum relative stack size after the last visited instruction.

private int
maxStack

The max_stack field of the Code attribute.

private static final int
NA

Indicates that STACK_SIZE_DELTA is not applicable (not constant or never used).

private final String
name

The name of this method.

private final int
nameIndex

The name_index field of the method_info JVMS structure.

private final int
numberOfExceptions

The number_of_exceptions field of the Exceptions attribute.

private ByteVector
parameters

The 'parameters' array of the MethodParameters attribute, or null.

private int
parametersCount

The parameters_count field of the MethodParameters attribute.

private int[]
previousFrame

The last frame that was written in stackMapTableEntries.

private int
previousFrameOffset

The bytecode offset of the last frame that was written in stackMapTableEntries.

private int
relativeStackSize

The relative stack size after the last visited instruction.

private final int
signatureIndex

The signature_index field of the Signature attribute.

private int
sourceLength

The length in bytes in SymbolTable#getSource which must be copied to get the method_info for this method (excluding its first 6 bytes for access_flags, name_index and descriptor_index).

private int
sourceOffset

The offset in bytes in SymbolTable#getSource from which the method_info for this method (excluding its first 6 bytes) must be copied, or 0.

private static final int[]
STACK_SIZE_DELTA

The stack size variation corresponding to each JVM opcode.

private ByteVector
stackMapTableEntries

The 'entries' array of the StackMapTable code attribute.

private int
stackMapTableNumberOfEntries

The number_of_entries field of the StackMapTable code attribute.

private final SymbolTable
symbolTable

Where the constants used in this MethodWriter must be stored.

private int
visibleAnnotableParameterCount

The number of method parameters that can have runtime visible annotations, or 0.

Inherited from org.easymock.bytebuddy.jar.asm.MethodVisitor:
apimv

Constructor Summary

AccessConstructor and Description
pack-priv
MethodWriter(final SymbolTable
where the constants used in this AnnotationWriter must be stored.
symbolTable
,
final int
the method's access flags (see Opcodes).
access
,
final String
the method's name.
name
,
final String
the method's descriptor (see Type).
descriptor
,
final String
the method's signature. May be null.
signature
,
final String[]
the internal names of the method's exceptions. May be null.
exceptions
,
final int
indicates what must be computed (see #compute).
compute
)

Constructs a new MethodWriter.

Method Summary

Modifier and TypeMethod and Description
private void
addSuccessorToCurrentBasicBlock(final int
information about the control flow edge to be added.
info
,
final Label
the successor block to be added to the current basic block.
successor
)

Adds a successor to currentBasicBlock in the control flow graph.

pack-priv boolean

Returns:

whether the attributes of this method can be copied from the attributes of the method_info JVMS structure in 'source.b', between 'methodInfoOffset' and 'methodInfoOffset' + 'methodInfoLength'.
canCopyMethodAttributes
(final ClassReader
the source ClassReader from which the attributes of this method might be copied.
source
,
final boolean
whether the method_info JVMS structure from which the attributes of this method might be copied contains a Synthetic attribute.
hasSyntheticAttribute
,
final boolean
whether the method_info JVMS structure from which the attributes of this method might be copied contains a Deprecated attribute.
hasDeprecatedAttribute
,
final int
the descriptor_index field of the method_info JVMS structure from which the attributes of this method might be copied.
descriptorIndex
,
final int
the constant pool index contained in the Signature attribute of the method_info JVMS structure from which the attributes of this method might be copied, or 0.
signatureIndex
,
final int
the offset in 'source.b' of the Exceptions attribute of the method_info JVMS structure from which the attributes of this method might be copied, or 0.
exceptionsOffset
)

Returns whether the attributes of this method can be copied from the attributes of the given method (assuming there is no method visitor between the given ClassReader and this MethodWriter).

pack-priv final void
collectAttributePrototypes(final Attribute.Set
a set of attribute prototypes.
attributePrototypes
)

Collects the attributes of this method into the given set of attribute prototypes.

private void
computeAllFrames()

Computes all the stack map frames of the method, from scratch.

private void
computeMaxStackAndLocal()

Computes the maximum stack size of the method.

pack-priv int

Returns:

the size in bytes of the method_info JVMS structure.
computeMethodInfoSize
()

Returns the size of the method_info JVMS structure generated by this MethodWriter.

private void
endCurrentBasicBlockWithNoSuccessor()

Ends the current basic block.

pack-priv boolean
pack-priv boolean
private void
putAbstractTypes(final int
index of the first type in currentFrame to write.
start
,
final int
index of last type in currentFrame to write (exclusive).
end
)

Puts some abstract types of currentFrame in stackMapTableEntries , using the JVMS verification_type_info format used in StackMapTable attributes.

private void
putFrame()

Compresses and writes currentFrame in a new StackMapTable entry.

private void
putFrameType(final Object
a frame element type described using the same format as in MethodVisitor#visitFrame, i.e. either Opcodes#TOP, Opcodes#INTEGER, Opcodes#FLOAT, Opcodes#LONG, Opcodes#DOUBLE, Opcodes#NULL, or Opcodes#UNINITIALIZED_THIS, or the internal name of a class, or a Label designating a NEW instruction (for uninitialized types).
type
)

Puts the given public API frame element type in stackMapTableEntries , using the JVMS verification_type_info format used in StackMapTable attributes.

pack-priv void
putMethodInfo(final ByteVector
where the method_info structure must be put.
output
)

Puts the content of the method_info JVMS structure generated by this MethodWriter into the given ByteVector.

pack-priv void
setMethodAttributesSource(final int
the offset in 'symbolTable.getSource()' of the method_info JVMS structure from which the attributes of this method will be copied.
methodInfoOffset
,
final int
the length in 'symbolTable.getSource()' of the method_info JVMS structure from which the attributes of this method will be copied.
methodInfoLength
)

Sets the source from which the attributes of this method will be copied.

pack-priv void
visitAbstractType(final int
the index of the element to be set in currentFrame.
frameIndex
,
final int
an abstract type.
abstractType
)

Sets an abstract type in currentFrame.

public void
visitAnnotableParameterCount(final int
the number of method parameters than can have annotations. This number must be less or equal than the number of parameter types in the method descriptor. It can be strictly less when a method has synthetic parameters and when these parameters are ignored when computing parameter indices for the purpose of parameter annotations (see https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.7.18).
parameterCount
,
final boolean
true to define the number of method parameters that can have annotations visible at runtime, false to define the number of method parameters that can have annotations invisible at runtime.
visible
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitAnnotableParameterCount.

Visits the number of method parameters that can have annotations.
public AnnotationVisitor
visitAnnotation(final String
the class descriptor of the annotation class.
descriptor
,
final boolean
true if the annotation is visible at runtime.
visible
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitAnnotation.

Visits an annotation of this method.
public AnnotationVisitor
visitAnnotationDefault()

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitAnnotationDefault.

Visits the default value of this annotation interface method.
public void
visitAttribute(final Attribute
an attribute.
attribute
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitAttribute.

Visits a non standard attribute of this method.
public void
visitCode()

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitCode.

Starts the visit of the method's code, if any (i.e. non abstract method).
public void
visitEnd()

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitEnd.

Visits the end of the method.
public void
visitFieldInsn(final int
the opcode of the type instruction to be visited. This opcode is either GETSTATIC, PUTSTATIC, GETFIELD or PUTFIELD.
opcode
,
final String
the internal name of the field's owner class (see Type#getInternalName()).
owner
,
final String
the field's name.
name
,
final String
the field's descriptor (see Type).
descriptor
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitFieldInsn.

Visits a field instruction.
public void
visitFrame(final int
the type of this stack map frame. Must be Opcodes#F_NEW for expanded frames, or Opcodes#F_FULL, Opcodes#F_APPEND, Opcodes#F_CHOP, Opcodes#F_SAME or Opcodes#F_APPEND, Opcodes#F_SAME1 for compressed frames.
type
,
final int
the number of local variables in the visited frame. Long and double values count for one variable.
numLocal
,
final Object[]
the local variable types in this frame. This array must not be modified. Primitive types are represented by Opcodes#TOP, Opcodes#INTEGER, Opcodes#FLOAT, Opcodes#LONG, Opcodes#DOUBLE, Opcodes#NULL or Opcodes#UNINITIALIZED_THIS (long and double are represented by a single element). Reference types are represented by String objects (representing internal names, see Type#getInternalName()), and uninitialized types by Label objects (this label designates the NEW instruction that created this uninitialized value).
local
,
final int
the number of operand stack elements in the visited frame. Long and double values count for one stack element.
numStack
,
final Object[]
the operand stack types in this frame. This array must not be modified. Its content has the same format as the "local" array.
stack
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitFrame.

Visits the current state of the local variables and operand stack elements.
pack-priv void
visitFrameEnd()

Ends the visit of currentFrame by writing it in the StackMapTable entries and by updating the StackMapTable number_of_entries (except if the current frame is the first one, which is implicit in StackMapTable).

pack-priv int

Returns:

the index of the next element to be written in this frame.
visitFrameStart
(final int
the bytecode offset of the instruction to which the frame corresponds.
offset
,
final int
the number of local variables in the frame.
numLocal
,
final int
the number of stack elements in the frame.
numStack
)

Starts the visit of a new stack map frame, stored in currentFrame.

public void
visitIincInsn(final int
index of the local variable to be incremented.
varIndex
,
final int
amount to increment the local variable by.
increment
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitIincInsn.

Visits an IINC instruction.
public void
visitInsn(final int
the opcode of the instruction to be visited. This opcode is either NOP, ACONST_NULL, ICONST_M1, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, LCONST_0, LCONST_1, FCONST_0, FCONST_1, FCONST_2, DCONST_0, DCONST_1, IALOAD, LALOAD, FALOAD, DALOAD, AALOAD, BALOAD, CALOAD, SALOAD, IASTORE, LASTORE, FASTORE, DASTORE, AASTORE, BASTORE, CASTORE, SASTORE, POP, POP2, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, SWAP, IADD, LADD, FADD, DADD, ISUB, LSUB, FSUB, DSUB, IMUL, LMUL, FMUL, DMUL, IDIV, LDIV, FDIV, DDIV, IREM, LREM, FREM, DREM, INEG, LNEG, FNEG, DNEG, ISHL, LSHL, ISHR, LSHR, IUSHR, LUSHR, IAND, LAND, IOR, LOR, IXOR, LXOR, I2L, I2F, I2D, L2I, L2F, L2D, F2I, F2L, F2D, D2I, D2L, D2F, I2B, I2C, I2S, LCMP, FCMPL, FCMPG, DCMPL, DCMPG, IRETURN, LRETURN, FRETURN, DRETURN, ARETURN, RETURN, ARRAYLENGTH, ATHROW, MONITORENTER, or MONITOREXIT.
opcode
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitInsn.

Visits a zero operand instruction.
public AnnotationVisitor
visitInsnAnnotation(final int typeRef, final TypePath
the path to the annotated type argument, wildcard bound, array element type, or static inner type within 'typeRef'. May be null if the annotation targets 'typeRef' as a whole.
typePath
,
final String
the class descriptor of the annotation class.
descriptor
,
final boolean
true if the annotation is visible at runtime.
visible
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitInsnAnnotation.

Visits an annotation on an instruction.
public void
visitIntInsn(final int
the opcode of the instruction to be visited. This opcode is either BIPUSH, SIPUSH or NEWARRAY.
opcode
,
final int
the operand of the instruction to be visited.
When opcode is BIPUSH, operand value should be between Byte.MIN_VALUE and Byte.MAX_VALUE.
When opcode is SIPUSH, operand value should be between Short.MIN_VALUE and Short.MAX_VALUE.
When opcode is NEWARRAY, operand value should be one of Opcodes#T_BOOLEAN, Opcodes#T_CHAR, Opcodes#T_FLOAT, Opcodes#T_DOUBLE, Opcodes#T_BYTE, Opcodes#T_SHORT, Opcodes#T_INT or Opcodes#T_LONG.
operand
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitIntInsn.

Visits an instruction with a single int operand.
public void
visitInvokeDynamicInsn(final String
the method's name.
name
,
final String
the method's descriptor (see Type).
descriptor
,
final Handle
the bootstrap method.
bootstrapMethodHandle
,
final Object...
the bootstrap method constant arguments. Each argument must be an Integer, Float, Long, Double, String, Type, Handle or ConstantDynamic value. This method is allowed to modify the content of the array so a caller should expect that this array may change.
bootstrapMethodArguments
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitInvokeDynamicInsn.

Visits an invokedynamic instruction.
public void
visitJumpInsn(final int
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, JSR, IFNULL or IFNONNULL.
opcode
,
final 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.
label
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitJumpInsn.

Visits a jump instruction.
public void
visitLabel(final Label
a Label object.
label
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitLabel.

Visits a label.
public void
visitLdcInsn(final Object
the constant to be loaded on the stack. This parameter must be a non null Integer, a Float, a Long, a Double, a String, a Type of OBJECT or ARRAY sort for .class constants, for classes whose version is 49, a Type of METHOD sort for MethodType, a Handle for MethodHandle constants, for classes whose version is 51 or a ConstantDynamic for a constant dynamic for classes whose version is 55.
value
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitLdcInsn.

Visits a LDC instruction.
public void
visitLineNumber(final int
a line number. This number refers to the source file from which the class was compiled.
line
,
final Label
the first instruction corresponding to this line number.
start
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitLineNumber.

Visits a line number declaration.
public void
visitLocalVariable(final String
the name of a local variable.
name
,
final String
the type descriptor of this local variable.
descriptor
,
final String
the type signature of this local variable. May be null if the local variable type does not use generic types.
signature
,
final Label
the first instruction corresponding to the scope of this local variable (inclusive).
start
,
final Label
the last instruction corresponding to the scope of this local variable (exclusive).
end
,
final int
the local variable's index.
index
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitLocalVariable.

Visits a local variable declaration.
public AnnotationVisitor
visitLocalVariableAnnotation(final int
a reference to the annotated type. The sort of this type reference must be TypeReference#LOCAL_VARIABLE or TypeReference#RESOURCE_VARIABLE. See TypeReference.
typeRef
,
final TypePath
the path to the annotated type argument, wildcard bound, array element type, or static inner type within 'typeRef'. May be null if the annotation targets 'typeRef' as a whole.
typePath
,
final Label[]
the fist instructions corresponding to the continuous ranges that make the scope of this local variable (inclusive).
start
,
final Label[]
the last instructions corresponding to the continuous ranges that make the scope of this local variable (exclusive). This array must have the same size as the 'start' array.
end
,
final int[]
the local variable's index in each range. This array must have the same size as the 'start' array.
index
,
final String
the class descriptor of the annotation class.
descriptor
,
final boolean
true if the annotation is visible at runtime.
visible
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitLocalVariableAnnotation.

Visits an annotation on a local variable type.
public void
visitLookupSwitchInsn(final Label
beginning of the default handler block.
dflt
,
final int[]
the values of the keys.
keys
,
final Label[]
beginnings of the handler blocks. labels[i] is the beginning of the handler block for the keys[i] key.
labels
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitLookupSwitchInsn.

Visits a LOOKUPSWITCH instruction.
public void
visitMaxs(final int
maximum stack size of the method.
maxStack
,
final int
maximum number of local variables for the method.
maxLocals
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitMaxs.

Visits the maximum stack size and the maximum number of local variables of the method.
public void
visitMethodInsn(final int
the opcode of the type instruction to be visited. This opcode is either INVOKEVIRTUAL, INVOKESPECIAL, INVOKESTATIC or INVOKEINTERFACE.
opcode
,
final String
the internal name of the method's owner class (see Type#getInternalName()).
owner
,
final String
the method's name.
name
,
final String
the method's descriptor (see Type).
descriptor
,
final boolean
if the method's owner class is an interface.
isInterface
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitMethodInsn.

Visits a method instruction.
public void
visitMultiANewArrayInsn(final String
an array type descriptor (see Type).
descriptor
,
final int
the number of dimensions of the array to allocate.
numDimensions
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitMultiANewArrayInsn.

Visits a MULTIANEWARRAY instruction.
public void
visitParameter(final String
parameter name or null if none is provided.
name
,
final int
the parameter's access flags, only ACC_FINAL, ACC_SYNTHETIC or/and ACC_MANDATED are allowed (see Opcodes).
access
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitParameter.

Visits a parameter of this method.
public AnnotationVisitor
visitParameterAnnotation(final int
the parameter index. This index must be strictly smaller than the number of parameters in the method descriptor, and strictly smaller than the parameter count specified in visitAnnotableParameterCount.

Important Note

a parameter index i is not required to correspond to the i'th parameter descriptor in the method descriptor, in particular in case of synthetic parameters (see https://docs.oracle.com/javase/specs/jvms/se9/html/jvms-4.html#jvms-4.7.18).

parameter
,
final String
the class descriptor of the annotation class.
annotationDescriptor
,
final boolean
true if the annotation is visible at runtime.
visible
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitParameterAnnotation.

Visits an annotation of a parameter this method.
private void
visitSwitchInsn(final Label dflt, final Label[] labels)

public void
visitTableSwitchInsn(final int
the minimum key value.
min
,
final int
the maximum key value.
max
,
final Label
beginning of the default handler block.
dflt
,
final Label...
beginnings of the handler blocks. labels[i] is the beginning of the handler block for the min + i key.
labels
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitTableSwitchInsn.

Visits a TABLESWITCH instruction.
public AnnotationVisitor
visitTryCatchAnnotation(final int
a reference to the annotated type. The sort of this type reference must be TypeReference#EXCEPTION_PARAMETER. See TypeReference.
typeRef
,
final TypePath
the path to the annotated type argument, wildcard bound, array element type, or static inner type within 'typeRef'. May be null if the annotation targets 'typeRef' as a whole.
typePath
,
final String
the class descriptor of the annotation class.
descriptor
,
final boolean
true if the annotation is visible at runtime.
visible
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitTryCatchAnnotation.

Visits an annotation on an exception handler type.
public void
visitTryCatchBlock(final Label
the beginning of the exception handler's scope (inclusive).
start
,
final Label
the end of the exception handler's scope (exclusive).
end
,
final Label
the beginning of the exception handler's code.
handler
,
final String
the internal name of the type of exceptions handled by the handler (see Type#getInternalName()), or null to catch any exceptions (for "finally" blocks).
type
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitTryCatchBlock.

Visits a try catch block.
public AnnotationVisitor
visitTypeAnnotation(final int typeRef, final TypePath
the path to the annotated type argument, wildcard bound, array element type, or static inner type within 'typeRef'. May be null if the annotation targets 'typeRef' as a whole.
typePath
,
final String
the class descriptor of the annotation class.
descriptor
,
final boolean
true if the annotation is visible at runtime.
visible
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitTypeAnnotation.

Visits an annotation on a type in the method signature.
public void
visitTypeInsn(final int
the opcode of the type instruction to be visited. This opcode is either NEW, ANEWARRAY, CHECKCAST or INSTANCEOF.
opcode
,
final String
the operand of the instruction to be visited. This operand must be the internal name of an object or array class (see Type#getInternalName()).
type
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitTypeInsn.

Visits a type instruction.
public void
visitVarInsn(final int
the opcode of the local variable instruction to be visited. This opcode is either ILOAD, LLOAD, FLOAD, DLOAD, ALOAD, ISTORE, LSTORE, FSTORE, DSTORE, ASTORE or RET.
opcode
,
final int
the operand of the instruction to be visited. This operand is the index of a local variable.
varIndex
)

Overrides org.easymock.bytebuddy.jar.asm.MethodVisitor.visitVarInsn.

Visits a local variable instruction.
Inherited from org.easymock.bytebuddy.jar.asm.MethodVisitor:
getDelegatevisitMethodInsn