## org.apache.bcel.generic
Class BranchHandle

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

All Implemented Interfaces:
  java.io.Serializable

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().

Version:
  $Id: BranchHandle.java,v 1.1.1.1 2001/10/29 20:00:06 jvanzyl Exp $
Author:
  M. Dahm
See Also:
  `InstructionHandle`, `Instruction`, `InstructionList`, Serialized Form

Field Summary

Fields inherited from class org.apache.bcel.generic.InstructionHandle
`i_position`

Method Summary
`protected void` `addHandle()` Handle adds itself to the list of resuable handles.
`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 max_offset)` Called by InstructionList.setPositions when setting the position for every instruction.
`void` `updateTarget(InstructionHandle old_ih, InstructionHandle new_ih)` Update target of instruction.

Methods inherited from class org.apache.bcel.generic.InstructionHandle
`accept, addAttribute, 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

### addHandle

    protected void addHandle()

  Handle adds itself to the list of resuable handles.

  Overrides:
    `addHandle` in class `InstructionHandle`

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

### updatePosition

    protected int updatePosition(int offset,
                                 int max_offset)

  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
    `max_offset` - the maximum offset that may be caused by these instructions
  Returns:
    additional offset caused by possible change of this instruction's length

### setTarget

    public void setTarget(InstructionHandle ih)

  Pass new target to instruction.

### updateTarget

    public void updateTarget(InstructionHandle old_ih,
                             InstructionHandle new_ih)

  Update target of instruction.

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

Copyright © 2002-2003 Apache Software Foundation. All Rights Reserved.