org.apache.bcel.generic

## 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 org.apache.bcel.generic.BranchInstruction

      `index, position, target`

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

      `length, opcode`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `GOTO(InstructionHandle target)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and 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 org.apache.bcel.generic.BranchInstruction

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

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

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

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

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

- - ### Constructor Detail

    - #### GOTO

          public GOTO(InstructionHandle target)

  - ### Method Detail

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

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