Class InvokeInstruction
java.lang.Object
org.apache.bcel.generic.Instruction
org.apache.bcel.generic.CPInstruction
org.apache.bcel.generic.FieldOrMethod
org.apache.bcel.generic.InvokeInstruction
- All Implemented Interfaces:
Cloneable, ExceptionThrower, IndexedInstruction, LoadClass, StackConsumer, StackProducer, TypedInstruction
- Direct Known Subclasses:
INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL
public abstract class InvokeInstruction
extends FieldOrMethod
implements ExceptionThrower, StackConsumer, StackProducer
Superclass for the INVOKExxx family of instructions.
-
Field Summary
Fields inherited from class CPInstruction
indexModifier and TypeFieldDescriptionprotected intDeprecated.(since 6.0) will be made private; do not access directly, use getter/setterFields inherited from class Instruction
length, opcode -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedInvokeInstruction(short opcode, int index) Constructs an InvokeInstruction. -
Method Summary
Modifier and TypeMethodDescriptionintAlso works for instructions whose stack effect depends on the constant pool entry they reference.Type[]Gets the argument types of referenced method.Gets the name of the referenced class or interface.Gets the name of referenced method.Gets the return type of referenced method.getType(ConstantPoolGen cpg) Gets the return type of referenced method.intAlso works for instructions whose stack effect depends on the constant pool entry they reference.toString(ConstantPool cp) Gets the mnemonic for instruction with symbolic references resolved.Methods inherited from class FieldOrMethod
getClassType, getLoadClassType, getName, getReferenceType, getSignatureModifier and TypeMethodDescriptionDeprecated.If the instruction references an array class, the ObjectType returned will be invalid.Gets the ObjectType of the method return or field.getName(ConstantPoolGen cpg) Gets the name of referenced method or field.Gets the reference type representing the class, interface, or array class referenced by the instruction.Gets the signature of referenced method or field.Methods inherited from class CPInstruction
dump, getIndex, initFromFile, setIndex, toStringModifier and TypeMethodDescriptionvoiddump(DataOutputStream out) Dumps instruction as byte code to stream out.final intgetIndex()Gets the constant pool index referred to by this instruction.protected voidinitFromFile(ByteSequence bytes, boolean wide) Reads needed data (that is, index) from file.voidsetIndex(int index) Sets the index to constant pool.toString(boolean verbose) Long output format: <name of opcode> "["<opcode number>"]" "("<length of instruction>")" "<"< constant pool index>">"Methods inherited from class Instruction
accept, copy, equals, getComparator, getLength, getName, getOpcode, hashCode, isValidByte, isValidShort, readInstruction, setComparator, toStringModifier and TypeMethodDescriptionabstract voidCall corresponding visitor method(s).copy()Use with caution, since 'BranchInstruction's have a 'target' reference which is not copied correctly (only basic types are).booleanTests for equality, delegated to comparatorstatic InstructionComparatorDeprecated.(6.0) use the built in comparator, or wrap this class in another object that implements these methodsintGets the length (in bytes) of instruction.getName()Gets the name of instruction, that is, opcode name.shortGets this instruction's opcode.inthashCode()Gets the hashCode of this object.static booleanisValidByte(int value) Tests if the value can fit in a byte (signed).static booleanisValidShort(int value) Tests if the value can fit in a short (signed).static InstructionreadInstruction(ByteSequence bytes) Reads an instruction from (byte code) input stream and return the appropriate object.static voidDeprecated.(6.0) use the built in comparator, or wrap this class in another object that implements these methodstoString()Methods inherited from interface ExceptionThrower
getExceptionsModifier and TypeMethodDescriptionClass<?>[]Gets the exceptions that may be thrown by this instruction.
-
Constructor Details
-
InvokeInstruction
Constructs an InvokeInstruction.- Parameters:
opcode- The opcode.index- to constant pool.
-
-
Method Details
-
consumeStack
Also works for instructions whose stack effect depends on the constant pool entry they reference.- Specified by:
consumeStackin interfaceStackConsumer- Overrides:
consumeStackin classInstruction- Parameters:
cpg- The constant pool generator.- Returns:
- Number of words consumed from stack by this instruction.
-
getArgumentTypes
Gets the argument types of referenced method.- Parameters:
cpg- The constant pool generator.- Returns:
- argument types of referenced method.
-
getClassName
Gets the name of the referenced class or interface.This overrides the deprecated version as we know here that the referenced class may legally be an array.
- Overrides:
getClassNamein classFieldOrMethod- Parameters:
cpg- The constant pool generator.- Returns:
- name of the referenced class/interface.
- Throws:
IllegalArgumentException- Thrown if the referenced class is an array (this should not happen)
-
getMethodName
Gets the name of referenced method.- Parameters:
cpg- The constant pool generator.- Returns:
- name of referenced method.
-
getReturnType
Gets the return type of referenced method.- Parameters:
cpg- The constant pool generator.- Returns:
- return type of referenced method.
-
getType
Gets the return type of referenced method.- Specified by:
getTypein interfaceLoadClass- Specified by:
getTypein interfaceTypedInstruction- Overrides:
getTypein classCPInstruction- Parameters:
cpg- The constant pool generator.- Returns:
- return type of referenced method.
- See Also:
-
produceStack
Also works for instructions whose stack effect depends on the constant pool entry they reference.- Specified by:
produceStackin interfaceStackProducer- Overrides:
produceStackin classInstruction- Parameters:
cpg- The constant pool generator.- Returns:
- Number of words produced onto stack by this instruction.
-
toString
Description copied from class:InstructionGets the mnemonic for instruction with symbolic references resolved.- Overrides:
toStringin classCPInstruction- Parameters:
cp- The constant pool.- Returns:
- mnemonic for instruction with symbolic references resolved.
-