Class CPInstruction
java.lang.Object
org.apache.bcel.generic.Instruction
org.apache.bcel.generic.CPInstruction
- All Implemented Interfaces:
Cloneable, IndexedInstruction, TypedInstruction
- Direct Known Subclasses:
ANEWARRAY, CHECKCAST, FieldOrMethod, INSTANCEOF, LDC, LDC2_W, MULTIANEWARRAY, NameSignatureInstruction, NEW
public abstract class CPInstruction
extends Instruction
implements TypedInstruction, IndexedInstruction
Abstract superclass for instructions that use an index into the constant pool such as LDC, INVOKEVIRTUAL, and so on.
- See Also:
-
Field Summary
FieldsModifier 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
ConstructorsModifierConstructorDescriptionprotectedCPInstruction(short opcode, int index) Constructs a CPInstruction. -
Method Summary
Modifier and TypeMethodDescriptionvoiddump(DataOutputStream out) Dumps instruction as byte code to stream out.final intgetIndex()Gets the constant pool index referred to by this instruction.getType(ConstantPoolGen cpg) Gets the type associated with 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>">"toString(ConstantPool cp) Gets the mnemonic for instruction with symbolic references resolved.Methods inherited from class Instruction
accept, consumeStack, copy, equals, getComparator, getLength, getName, getOpcode, hashCode, isValidByte, isValidShort, produceStack, readInstruction, setComparator, toStringModifier and TypeMethodDescriptionabstract voidCall corresponding visitor method(s).intThis method also gives right results for instructions whose effect on the stack depends on the constant pool entry they reference.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).intThis method also gives right results for instructions whose effect on the stack depends on the constant pool entry they reference.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()
-
Field Details
-
index
Deprecated.(since 6.0) will be made private; do not access directly, use getter/setter
-
-
Constructor Details
-
CPInstruction
Constructs a CPInstruction.- Parameters:
opcode- The opcode.index- to constant pool.
-
-
Method Details
-
dump
Dumps instruction as byte code to stream out.- Overrides:
dumpin classInstruction- Parameters:
out- Output stream.- Throws:
IOException- Thrown when an I/O exception of some sort has occurred.
-
getIndex
Gets the constant pool index referred to by this instruction.- Specified by:
getIndexin interfaceIndexedInstruction- Returns:
- index in constant pool referred by this instruction.
-
getType
Gets the type associated with this instruction.- Specified by:
getTypein interfaceTypedInstruction- Parameters:
cpg- The constant pool generator.- Returns:
- type related with this instruction.
-
initFromFile
Reads needed data (that is, index) from file.- Overrides:
initFromFilein classInstruction- Parameters:
bytes- input stream.wide- wide prefix?.- Throws:
IOException- Thrown if the implementation needs to read data from the file
-
setIndex
Sets the index to constant pool.- Specified by:
setIndexin interfaceIndexedInstruction- Parameters:
index- in constant pool.- Throws:
ClassGenException- Thrown if index is out of bounds.
-
toString
Long output format: <name of opcode> "["<opcode number>"]" "("<length of instruction>")" "<"< constant pool index>">"- Overrides:
toStringin classInstruction- Parameters:
verbose- long/short format switch.- Returns:
- mnemonic for instruction.
-
toString
Description copied from class:InstructionGets the mnemonic for instruction with symbolic references resolved.- Overrides:
toStringin classInstruction- Parameters:
cp- The constant pool.- Returns:
- mnemonic for instruction with symbolic references resolved.
-