# Class GOTO

java.lang.Object
org.apache.bcel.generic.Instruction
org.apache.bcel.generic.BranchInstruction
org.apache.bcel.generic.GotoInstruction
org.apache.bcel.generic.GOTO

All Implemented Interfaces:
  `Cloneable, InstructionTargeter, UnconditionalBranch, VariableLengthInstruction`

public class GOTO extends GotoInstruction implements VariableLengthInstruction
GOTO - Branch always (to relative offset, not absolute address)

- ## Field Summary

  ### Fields inherited from class BranchInstruction

  `index, position, target`

  ### Fields inherited from class Instruction

  `length, opcode`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `GOTO(InstructionHandle target)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `accept(Visitor v)`
  Call corresponding visitor method(s).
  `void`
  `dump(DataOutputStream out)`
  Dump instruction as byte code to stream out.
  `protected int`
  `updatePosition(int offset, int maxOffset)`
  Called in pass 2 of InstructionList.setPositions() in order to update the branch target, that may shift due to variable length instructions.

  ### Methods inherited from class BranchInstruction

  `containsTarget, getIndex, getPosition, getTarget, getTargetOffset, getTargetOffset, initFromFile, setIndex, setPosition, setTarget, toString, updateTarget`

  ### Methods inherited from class Instruction

  `consumeStack, copy, equals, getComparator, getLength, getName, getOpcode, hashCode, isValidByte, isValidShort, produceStack, readInstruction, setComparator, toString, toString`

  ### Methods inherited from class Object

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

- ## Constructor Details

  - ### GOTO

    public GOTO(InstructionHandle target)

- ## Method Details

  - ### accept

    public void accept(Visitor v)
    Call corresponding visitor method(s). The order is: Call visitor methods of implemented interfaces first, then call methods according to the class hierarchy in descending order, i.e., the most specific visitXXX() call comes last.
    Specified by:
      `accept` in class `Instruction`
    Parameters:
      `v` - Visitor object

  - ### dump

    public void dump(DataOutputStream out) throws IOException
    Dump instruction as byte code to stream out.
    Overrides:
      `dump` in class `BranchInstruction`
    Parameters:
      `out` - Output stream
    Throws:
      `IOException` - Thrown when an I/O exception of some sort has occurred.

  - ### updatePosition

    protected int updatePosition(int offset, int maxOffset)
    Called in pass 2 of InstructionList.setPositions() in order to update the branch target, that may shift due to variable length instructions.
    Overrides:
      `updatePosition` in class `BranchInstruction`
    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