Package 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
  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
  Description
  `CodeAttribute(int maxStack, int maxLocals, byte[] codePacked, Segment segment, OperandManager operandManager, List<ExceptionTableEntry> exceptionTable)`

- ## Method Summary

  Modifier and Type
  Method
  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 Details

  - ### 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 Details

  - ### CodeAttribute

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

- ## Method Details

  - ### 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`