Package serp.bytecode.lowlevel
Class MethodHandleEntry
java.lang.Object
serp.bytecode.lowlevel.Entry
serp.bytecode.lowlevel.MethodHandleEntry
- All Implemented Interfaces:
VisitAcceptor
MethodHandle
u1 tag
u1 reference_kind
u2 reference_index
-
Field Summary
FieldsFields inherited from class serp.bytecode.lowlevel.Entry
CLASS, DOUBLE, FIELD, FLOAT, INT, INTERFACEMETHOD, INVOKEDYNAMIC, LONG, METHOD, METHODHANDLE, METHODTYPE, NAMEANDTYPE, STRING, UTF8
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
acceptVisit
(BCVisitor visitor) Accept a visit from aBCVisitor
, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this one.The Entry Type depends on both the reference kind and the Class Version (CV).int
int
getType()
Return the type code for this entry type.(package private) void
This method is called after reading the entry type from bytecode.void
setReference
(int referenceIndex) void
setReferenceKind
(int referenceKind) (package private) void
writeData
(DataOutput out) This method is called after writing the entry type to bytecode.
-
Field Details
-
_reference_kind
private int _reference_kind -
_reference_index
private int _reference_index
-
-
Constructor Details
-
MethodHandleEntry
public MethodHandleEntry() -
MethodHandleEntry
public MethodHandleEntry(int _reference_kind, int _reference_index)
-
-
Method Details
-
acceptVisit
Description copied from interface:VisitAcceptor
Accept a visit from aBCVisitor
, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this one. -
getType
public int getType()Description copied from class:Entry
Return the type code for this entry type. -
readData
Description copied from class:Entry
This method is called after reading the entry type from bytecode. It should read all the data for this entry from the given stream.- Specified by:
readData
in classEntry
- Throws:
IOException
-
writeData
Description copied from class:Entry
This method is called after writing the entry type to bytecode. It should write all data for this entry to the given stream.- Specified by:
writeData
in classEntry
- Throws:
IOException
-
getReferenceKind
public int getReferenceKind() -
setReferenceKind
- Throws:
IllegalArgumentException
-
getReference
The Entry Type depends on both the reference kind and the Class Version (CV). 1 (REF_getField), 2 (REF_getStatic), 3 (REF_putField), or 4 (REF_putStatic) - CONSTANT_Fieldref_info 5 (REF_invokeVirtual) or 8 (REF_newInvokeSpecial) - CONSTANT_Methodref_info 6 (REF_invokeStatic) or 7 (REF_invokeSpecial) - If CV invalid input: '<' 52: CONSTANT_Methodref_info - if CV >= 52: CONSTANT_Methodref_info or CONSTANT_InterfaceMethodref_info 9 (REF_invokeInterface) - CONSTANT_InterfaceMethodref_info- Returns:
-
setReference
public void setReference(int referenceIndex)
-