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

## Class ReferenceForm

- java.lang.Object
- - org.apache.commons.compress.harmony.unpack200.bytecode.forms.ByteCodeForm
  - - org.apache.commons.compress.harmony.unpack200.bytecode.forms.ReferenceForm

- Direct Known Subclasses:
    ClassRefForm, ClassSpecificReferenceForm, DoubleForm, FieldRefForm, IMethodRefForm, LongForm, MethodRefForm, SingleByteReferenceForm

      public abstract class ReferenceForm
      extends ByteCodeForm

  Abstract class of all ByteCodeForms which add a nested entry from the globalConstantPool.

- - ### Field Summary

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

      `byteCodeArray, byteCodesByName, WIDENED`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ReferenceForm(int opcode, String name, int[] rewrite)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected abstract int` | `getOffset(OperandManager operandManager)`
    `protected abstract int` | `getPoolID()`
    `void` | `setByteCodeOperands(ByteCode byteCode, OperandManager operandManager, int codeLength)` When passed a byteCode, an OperandTable and a SegmentConstantPool, this method will set the rewrite of the byteCode appropriately.
    `protected void` | `setNestedEntries(ByteCode byteCode, OperandManager operandManager, int offset)`

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

      `calculateOperandPosition, firstOperandIndex, fixUpByteCodeTargets, get, getName, getOpcode, getRewrite, getRewriteCopy, hasMultipleByteCodes, hasNoOperand, nestedMustStartClassPool, operandLength, toString`

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

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

- - ### Constructor Detail

    - #### ReferenceForm

          public ReferenceForm(int opcode,
                               String name,
                               int[] rewrite)

  - ### Method Detail

    - #### getOffset

          protected abstract int getOffset(OperandManager operandManager)

    - #### getPoolID

          protected abstract int getPoolID()

    - #### setByteCodeOperands

          public void setByteCodeOperands(ByteCode byteCode,
                                          OperandManager operandManager,
                                          int codeLength)

      Description copied from class: `ByteCodeForm`
      When passed a byteCode, an OperandTable and a SegmentConstantPool, this method will set the rewrite of the byteCode appropriately.
      Specified by:
        `setByteCodeOperands` in class `ByteCodeForm`
      Parameters:
        `byteCode` - ByteCode to be updated (!)
        `operandManager` - OperandTable from which to draw info
        `codeLength` - Length of bytes (excluding this bytecode) from the beginning of the method. Used in calculating padding for some variable-length bytecodes (such as lookupswitch, tableswitch).

    - #### setNestedEntries

          protected void setNestedEntries(ByteCode byteCode,
                                          OperandManager operandManager,
                                          int offset)
                                   throws Pack200Exception

      Throws:
        `Pack200Exception`

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