Package org.apache.bcel.generic
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
Super class for the INVOKExxx family of instructions.
-
Field Summary
Fields inherited from class org.apache.bcel.generic.CPInstruction
index
Fields inherited from class org.apache.bcel.generic.Instruction
length, opcode
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionint
Also works for instructions whose stack effect depends on the constant pool entry they reference.Type[]
This overrides the deprecated version as we know here that the referenced class may legally be an array.getType
(ConstantPoolGen cpg) Returns the type associated with this instruction.int
Also works for instructions whose stack effect depends on the constant pool entry they reference.toString
(ConstantPool cp) Methods inherited from class org.apache.bcel.generic.FieldOrMethod
getClassType, getLoadClassType, getName, getReferenceType, getSignature
Methods inherited from class org.apache.bcel.generic.CPInstruction
dump, getIndex, initFromFile, setIndex, toString
Methods inherited from class org.apache.bcel.generic.Instruction
accept, copy, equals, getComparator, getLength, getName, getOpcode, hashCode, isValidByte, isValidShort, readInstruction, setComparator, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.apache.bcel.generic.ExceptionThrower
getExceptions
-
Constructor Details
-
InvokeInstruction
- Parameters:
index
- to constant pool
-
-
Method Details
-
consumeStack
Also works for instructions whose stack effect depends on the constant pool entry they reference.- Specified by:
consumeStack
in interfaceStackConsumer
- Overrides:
consumeStack
in classInstruction
- Returns:
- Number of words consumed from stack by this instruction
-
getArgumentTypes
- Returns:
- argument types of referenced method.
-
getClassName
This overrides the deprecated version as we know here that the referenced class may legally be an array.- Overrides:
getClassName
in classFieldOrMethod
- Returns:
- name of the referenced class/interface
- Throws:
IllegalArgumentException
- if the referenced class is an array (this should not happen)
-
getMethodName
- Returns:
- name of referenced method.
-
getReturnType
- Returns:
- return type of referenced method.
-
getType
Description copied from interface:LoadClass
Returns the type associated with this instruction. LoadClass instances are always typed, but this type does not always refer to the type of the class or interface that it possibly forces to load. For example,GETFIELD
would return the type of the field and not the type of the class where the field is defined. If no class is forced to be loaded,null
is returned. An example for this is anNEWARRAY
instruction that creates anint[][]
.- Specified by:
getType
in interfaceLoadClass
- Specified by:
getType
in interfaceTypedInstruction
- Overrides:
getType
in classCPInstruction
- Parameters:
cpg
- A ConstantPoolGen- 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:
produceStack
in interfaceStackProducer
- Overrides:
produceStack
in classInstruction
- Returns:
- Number of words produced onto stack by this instruction
-
toString
- Overrides:
toString
in classCPInstruction
- Returns:
- mnemonic for instruction with symbolic references resolved
-