org.apache.bcel.generic

## Class BranchHandle

- java.lang.Object
- - org.apache.bcel.generic.InstructionHandle
  - - org.apache.bcel.generic.BranchHandle

-     public final class BranchHandle
      extends InstructionHandle

  BranchHandle is returned by specialized InstructionList.append() whenever a BranchInstruction is appended. This is useful when the target of this instruction is not known at time of creation and must be set later via setTarget().
  See Also:
    `InstructionHandle`, `Instruction`, `InstructionList`

- - ### Field Summary

    - ### Fields inherited from class org.apache.bcel.generic.InstructionHandle

      `EMPTY_ARRAY, i_position`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `getPosition()`
    `InstructionHandle` | `getTarget()`
    `void` | `setInstruction(Instruction i)` Set new contents.
    `void` | `setTarget(InstructionHandle ih)` Pass new target to instruction.
    `protected int` | `updatePosition(int offset, int maxOffset)` Called by InstructionList.setPositions when setting the position for every instruction.
    `void` | `updateTarget(InstructionHandle oldIh, InstructionHandle newIh)` Update target of instruction.

    - ### Methods inherited from class org.apache.bcel.generic.InstructionHandle

      `accept, addAttribute, addHandle, addTargeter, getAttribute, getAttributes, getInstruction, getNext, getPrev, getTargeters, hasTargeters, removeAllTargeters, removeAttribute, removeTargeter, swapInstruction, toString, toString`

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

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

- - ### Method Detail

    - #### getPosition

          public int getPosition()

      Overrides:
        `getPosition` in class `InstructionHandle`
      Returns:
        the position, i.e., the byte code offset of the contained instruction. This is accurate only after InstructionList.setPositions() has been called.

    - #### getTarget

          public InstructionHandle getTarget()

      Returns:
        target of instruction.

    - #### setInstruction

          public void setInstruction(Instruction i)

      Set new contents. Old instruction is disposed and may not be used anymore.
      Overrides:
        `setInstruction` in class `InstructionHandle`

    - #### setTarget

          public void setTarget(InstructionHandle ih)

      Pass new target to instruction.

    - #### updatePosition

          protected int updatePosition(int offset,
                                       int maxOffset)

      Description copied from class: `InstructionHandle`
      Called by InstructionList.setPositions when setting the position for every instruction. In the presence of variable length instructions 'setPositions()' performs multiple passes over the instruction list to calculate the correct (byte) positions and offsets by calling this function.
      Overrides:
        `updatePosition` in class `InstructionHandle`
      Parameters:
        `offset` - additional offset caused by preceding (variable length) instructions
        `maxOffset` - the maximum offset that may be caused by these instructions
      Returns:
        additional offset caused by possible change of this instruction's length

    - #### updateTarget

          public void updateTarget(InstructionHandle oldIh,
                                   InstructionHandle newIh)

      Update target of instruction.

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