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 Details

    • index

      @Deprecated protected int index
      Deprecated.
      (since 6.0) will be made private; do not access directly, use getter/setter
  • Constructor Details

    • CPInstruction

      protected CPInstruction(short opcode, int index)
      Constructs a CPInstruction.
      Parameters:
      opcode - The opcode.
      index - to constant pool.
  • Method Details

    • dump

      public void dump(DataOutputStream out) throws IOException
      Dumps instruction as byte code to stream out.
      Overrides:
      dump in class Instruction
      Parameters:
      out - Output stream.
      Throws:
      IOException - Thrown when an I/O exception of some sort has occurred.
    • getIndex

      public final int getIndex()
      Gets the constant pool index referred to by this instruction.
      Specified by:
      getIndex in interface IndexedInstruction
      Returns:
      index in constant pool referred by this instruction.
    • getType

      Gets the type associated with this instruction.
      Specified by:
      getType in interface TypedInstruction
      Parameters:
      cpg - The constant pool generator.
      Returns:
      type related with this instruction.
    • initFromFile

      protected void initFromFile(ByteSequence bytes, boolean wide) throws IOException
      Reads needed data (that is, index) from file.
      Overrides:
      initFromFile in class Instruction
      Parameters:
      bytes - input stream.
      wide - wide prefix?.
      Throws:
      IOException - Thrown if the implementation needs to read data from the file
    • setIndex

      public void setIndex(int index)
      Sets the index to constant pool.
      Specified by:
      setIndex in interface IndexedInstruction
      Parameters:
      index - in constant pool.
      Throws:
      ClassGenException - Thrown if index is out of bounds.
    • toString

      public String toString(boolean verbose)
      Long output format: <name of opcode> "["<opcode number>"]" "("<length of instruction>")" "<"< constant pool index>">"
      Overrides:
      toString in class Instruction
      Parameters:
      verbose - long/short format switch.
      Returns:
      mnemonic for instruction.
    • toString

      Description copied from class: Instruction
      Gets the mnemonic for instruction with symbolic references resolved.
      Overrides:
      toString in class Instruction
      Parameters:
      cp - The constant pool.
      Returns:
      mnemonic for instruction with symbolic references resolved.