Class CodeAttribute

    • Field Detail

      • tag

        public static final java.lang.String tag
        The name of this attribute "Code".
        See Also:
        Constant Field Values
    • Constructor Detail

      • CodeAttribute

        public CodeAttribute​(ConstPool cp,
                             int stack,
                             int locals,
                             byte[] code,
                             ExceptionTable etable)
        Constructs a Code_attribute.
        Parameters:
        cp - constant pool table
        stack - max_stack
        locals - max_locals
        code - code[]
        etable - exception_table[]
    • Method Detail

      • copy

        public AttributeInfo copy​(ConstPool newCp,
                                  java.util.Map<java.lang.String,​java.lang.String> classnames)
                           throws CodeAttribute.RuntimeCopyException
        Makes a copy. Class names are replaced according to the given Map object.
        Overrides:
        copy in class AttributeInfo
        Parameters:
        newCp - the constant pool table used by the new copy.
        classnames - pairs of replaced and substituted class names.
        Returns:
        CodeAttribute object.
        Throws:
        CodeAttribute.RuntimeCopyException - if a BadBytecode exception is thrown, it is converted into RuntimeCopyException.
      • length

        public int length()
        Returns the length of this attribute_info structure. The returned value is attribute_length + 6.
        Overrides:
        length in class AttributeInfo
      • get

        public byte[] get()
        This method is not available.
        Overrides:
        get in class AttributeInfo
        Throws:
        java.lang.UnsupportedOperationException - always thrown.
      • set

        public void set​(byte[] newinfo)
        This method is not available.
        Overrides:
        set in class AttributeInfo
        Throws:
        java.lang.UnsupportedOperationException - always thrown.
      • getDeclaringClass

        public java.lang.String getDeclaringClass()
        Returns the name of the class declaring the method including this code attribute.
      • getMaxStack

        public int getMaxStack()
        Returns max_stack.
      • setMaxStack

        public void setMaxStack​(int value)
        Sets max_stack.
      • computeMaxStack

        public int computeMaxStack()
                            throws BadBytecode
        Computes the maximum stack size and sets max_stack to the computed size.
        Returns:
        the newly computed value of max_stack
        Throws:
        BadBytecode - if this method fails in computing.
      • getMaxLocals

        public int getMaxLocals()
        Returns max_locals.
      • setMaxLocals

        public void setMaxLocals​(int value)
        Sets max_locals.
      • getCodeLength

        public int getCodeLength()
        Returns code_length.
      • getCode

        public byte[] getCode()
        Returns code[].
      • iterator

        public CodeIterator iterator()
        Makes a new iterator for reading this code attribute.
      • getExceptionTable

        public ExceptionTable getExceptionTable()
        Returns exception_table[].
      • getAttributes

        public java.util.List<AttributeInfo> getAttributes()
        Returns attributes[]. It returns a list of AttributeInfo. A new element can be added to the returned list and an existing element can be removed from the list.
        See Also:
        AttributeInfo
      • getAttribute

        public AttributeInfo getAttribute​(java.lang.String name)
        Returns the attribute with the specified name. If it is not found, this method returns null.
        Parameters:
        name - attribute name
        Returns:
        an AttributeInfo object or null.
      • setAttribute

        public void setAttribute​(StackMapTable smt)
        Adds a stack map table. If another copy of stack map table is already contained, the old one is removed.
        Parameters:
        smt - the stack map table added to this code attribute. If it is null, a new stack map is not added. Only the old stack map is removed.
      • setAttribute

        public void setAttribute​(StackMap sm)
        Adds a stack map table for J2ME (CLDC). If another copy of stack map table is already contained, the old one is removed.
        Parameters:
        sm - the stack map table added to this code attribute. If it is null, a new stack map is not added. Only the old stack map is removed.
        Since:
        3.12