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 Detail

      • _mappings

        private static final java.lang.Class[][] _mappings
      • _code

        private int _code
    • Constructor Detail

      • NewArrayInstruction

        NewArrayInstruction​(Code owner)
    • Method Detail

      • 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 java.lang.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​(java.lang.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​(java.io.DataInput in)
           throws java.io.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:
        java.io.IOException
      • write

        void write​(java.io.DataOutput out)
            throws java.io.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:
        java.io.IOException