java.lang.Object
Compil3r.BytecodeAnalysis.Bytecodes.Instruction
Compil3r.BytecodeAnalysis.Bytecodes.CPInstruction
Compil3r.BytecodeAnalysis.Bytecodes.FieldOrMethod
Compil3r.BytecodeAnalysis.Bytecodes.InvokeInstruction
- All Implemented Interfaces:
- Bytecodes.ExceptionThrower, Bytecodes.LoadClass, Bytecodes.StackConsumer, Bytecodes.StackProducer, Bytecodes.TypedInstruction, java.lang.Cloneable, java.io.Serializable
- Direct Known Subclasses:
- Bytecodes.INVOKEINTERFACE, Bytecodes.INVOKESPECIAL, Bytecodes.INVOKESTATIC, Bytecodes.INVOKEVIRTUAL
- Enclosing class:
- Bytecodes
- public abstract static class Bytecodes.InvokeInstruction
- extends Bytecodes.FieldOrMethod
- implements Bytecodes.ExceptionThrower, Bytecodes.TypedInstruction, Bytecodes.StackConsumer, Bytecodes.StackProducer
Bytecodes.InvokeInstruction
Bytecodes.InvokeInstruction()
- Empty constructor needed for the Class.newInstance() statement in
Instruction.readInstruction(). Not to be used otherwise.
Bytecodes.InvokeInstruction
protected Bytecodes.InvokeInstruction(short opcode,
Clazz.jq_Method f)
toString
public java.lang.String toString()
- Description copied from class:
java.lang.Object
- Convert this Object to a human-readable String.
There are no limits placed on how long this String
should be or what it should contain. We suggest you
make it as intuitive as possible to be able to place
it into System.out.println() 55
and such.
It is typical, but not required, to ensure that this method
never completes abruptly with a java.lang.RuntimeException.
This method will be called when performing string
concatenation with this object. If the result is
null, string concatenation will instead
use "null".
The default implementation returns
getClass().getName() + "@" +
Integer.toHexString(hashCode()).
- Overrides:
toString in class Bytecodes.CPInstruction
getMethod
public Clazz.jq_Method getMethod()
consumeStack
public int consumeStack()
- Also works for instructions whose stack effect depends on the
constant pool entry they reference.
- Specified by:
consumeStack in interface Bytecodes.StackConsumer- Overrides:
consumeStack in class Bytecodes.Instruction
produceStack
public int produceStack()
- Also works for instructions whose stack effect depends on the
constant pool entry they reference.
- Specified by:
produceStack in interface Bytecodes.StackProducer- Overrides:
produceStack in class Bytecodes.Instruction
getType
public Clazz.jq_Type getType()
- Description copied from interface:
Bytecodes.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 an ANEWARRAY instruction that creates
an int[][].
- Specified by:
getType in interface Bytecodes.TypedInstruction- Overrides:
getType in class Bytecodes.CPInstruction
getMethodName
public java.lang.String getMethodName()
getReturnType
public Clazz.jq_Type getReturnType()
getArgumentTypes
public Clazz.jq_Type[] getArgumentTypes()