org.apache.commons.compress.harmony.unpack200.bytecode

## Class CodeAttribute

- java.lang.Object
- - org.apache.commons.compress.harmony.unpack200.bytecode.ClassFileEntry
  - - org.apache.commons.compress.harmony.unpack200.bytecode.Attribute
    - - org.apache.commons.compress.harmony.unpack200.bytecode.BCIRenumberedAttribute
      - - org.apache.commons.compress.harmony.unpack200.bytecode.CodeAttribute

-     public class CodeAttribute
      extends BCIRenumberedAttribute

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `List<Attribute>` | `attributes`
    `List<Integer>` | `byteCodeOffsets`
    `List<ByteCode>` | `byteCodes`
    `int` | `codeLength`
    `List<ExceptionTableEntry>` | `exceptionTable`
    `int` | `maxLocals`
    `int` | `maxStack`

    - ### Fields inherited from class org.apache.commons.compress.harmony.unpack200.bytecode.BCIRenumberedAttribute

      `renumbered`

    - ### Fields inherited from class org.apache.commons.compress.harmony.unpack200.bytecode.ClassFileEntry

      `NONE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CodeAttribute(int maxStack, int maxLocals, byte[] codePacked, Segment segment, OperandManager operandManager, List<ExceptionTableEntry> exceptionTable)`

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addAttribute(Attribute attribute)`
    `protected int` | `getLength()`
    `protected ClassFileEntry[]` | `getNestedClassFileEntries()`
    `protected int[]` | `getStartPCs()`
    `void` | `renumber(List<Integer> byteCodeOffsets)` In Pack200, line number tables are BCI renumbered.
    `protected void` | `resolve(ClassConstantPool pool)` Allows the constant pool entries to resolve their nested entries.
    `static void` | `setAttributeName(CPUTF8 attributeName)`
    `String` | `toString()`
    `protected void` | `writeBody(DataOutputStream dos)`

    - ### Methods inherited from class org.apache.commons.compress.harmony.unpack200.bytecode.BCIRenumberedAttribute

      `hasBCIRenumbering`

    - ### Methods inherited from class org.apache.commons.compress.harmony.unpack200.bytecode.Attribute

      `doWrite, equals, getAttributeName, getLengthIncludingHeader, hashCode, isSourceFileAttribute`

    - ### Methods inherited from class org.apache.commons.compress.harmony.unpack200.bytecode.ClassFileEntry

      `objectHashCode, write`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### attributes

          public List<Attribute> attributes

    - #### byteCodeOffsets

          public List<Integer> byteCodeOffsets

    - #### byteCodes

          public List<ByteCode> byteCodes

    - #### codeLength

          public int codeLength

    - #### exceptionTable

          public List<ExceptionTableEntry> exceptionTable

    - #### maxLocals

          public int maxLocals

    - #### maxStack

          public int maxStack

  - ### Constructor Detail

    - #### CodeAttribute

          public CodeAttribute(int maxStack,
                               int maxLocals,
                               byte[] codePacked,
                               Segment segment,
                               OperandManager operandManager,
                               List<ExceptionTableEntry> exceptionTable)

  - ### Method Detail

    - #### setAttributeName

          public static void setAttributeName(CPUTF8 attributeName)

    - #### addAttribute

          public void addAttribute(Attribute attribute)

    - #### getLength

          protected int getLength()

      Specified by:
        `getLength` in class `BCIRenumberedAttribute`

    - #### getNestedClassFileEntries

          protected ClassFileEntry[] getNestedClassFileEntries()

      Overrides:
        `getNestedClassFileEntries` in class `Attribute`

    - #### getStartPCs

          protected int[] getStartPCs()

      Specified by:
        `getStartPCs` in class `BCIRenumberedAttribute`

    - #### renumber

          public void renumber(List<Integer> byteCodeOffsets)

      Description copied from class: `BCIRenumberedAttribute`
      In Pack200, line number tables are BCI renumbered. This method takes the byteCodeOffsets (which is a List of Integers specifying the offset in the byte code array of each instruction) and updates the start_pcs so that it points to the instruction index itself, not the BCI renumbering of the instruction.
      Overrides:
        `renumber` in class `BCIRenumberedAttribute`
      Parameters:
        `byteCodeOffsets` - List of Integer offsets of the bytecode array

    - #### resolve

          protected void resolve(ClassConstantPool pool)

      Description copied from class: `ClassFileEntry`
      Allows the constant pool entries to resolve their nested entries.
      Overrides:
        `resolve` in class `Attribute`
      Parameters:
        `pool` - TODO

    - #### toString

          public String toString()

      Specified by:
        `toString` in class `BCIRenumberedAttribute`

    - #### writeBody

          protected void writeBody(DataOutputStream dos)
                            throws IOException

      Specified by:
        `writeBody` in class `BCIRenumberedAttribute`
      Throws:
        `IOException`

Copyright © 2002–2022 The Apache Software Foundation. All rights reserved.