Package serp.bytecode

Class NewArrayInstruction

All Implemented Interfaces:
BCEntity, VisitAcceptor

public class NewArrayInstruction extends TypedInstruction
The newarray instruction, which is used to create new arrays of primitive types.
  • Field Details

    • _mappings

      private static final Class[][] _mappings
    • _code

      private int _code
  • Constructor Details

    • NewArrayInstruction

      NewArrayInstruction(Code owner)
  • Method Details

    • getLength

      int getLength()
      Description copied from class: Instruction
      Return the length in bytes of this opcode, including all arguments. For many opcodes this method relies on an up-to-date byte index.
      Overrides:
      getLength in class Instruction
    • getTypeName

      public String getTypeName()
      Description copied from class: TypedInstruction
      Return the type name for this instruction. If the type has not been set, this method will return null.
      Specified by:
      getTypeName in class TypedInstruction
    • setType

      public TypedInstruction setType(String type)
      Description copied from class: TypedInstruction
      Set the type of this instruction. Types that have no direct support will be converted accordingly.
      Specified by:
      setType in class TypedInstruction
      Returns:
      this instruction, for method chaining
    • getTypeCode

      public int getTypeCode()
      Return the array code used in the lowlevel bytecode, or -1 if unset.
    • setTypeCode

      public NewArrayInstruction setTypeCode(int code)
      Set the array code used in the lowlevel bytecode.
      Returns:
      this instruction, for method chaining
    • equalsInstruction

      public boolean equalsInstruction(Instruction other)
      NewArray instructions are equal if the array type is the same, of if the array type of either is unset.
      Overrides:
      equalsInstruction in class Instruction
    • acceptVisit

      public void acceptVisit(BCVisitor visit)
      Description copied from interface: VisitAcceptor
      Accept a visit from a BCVisitor, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this one.
      Specified by:
      acceptVisit in interface VisitAcceptor
      Overrides:
      acceptVisit in class Instruction
    • read

      void read(Instruction orig)
      Description copied from class: Instruction
      Copy the given instruction data.
      Overrides:
      read in class Instruction
    • read

      void read(DataInput in) throws IOException
      Description copied from class: Instruction
      Read the arguments for this opcode from the given stream. This method should be overridden by opcodes that take arguments.
      Overrides:
      read in class Instruction
      Throws:
      IOException
    • write

      void write(DataOutput out) throws IOException
      Description copied from class: Instruction
      Write the arguments for this opcode to the given stream. This method should be overridden by opcodes that take arguments.
      Overrides:
      write in class Instruction
      Throws:
      IOException