org.apache.bcel.generic

## Class JSR

- java.lang.Object
- - org.apache.bcel.generic.Instruction
  - - org.apache.bcel.generic.BranchInstruction
    - - org.apache.bcel.generic.JsrInstruction
      - - org.apache.bcel.generic.JSR

- All Implemented Interfaces:
    Cloneable, InstructionTargeter, StackProducer, TypedInstruction, UnconditionalBranch, VariableLengthInstruction

      public class JSR
      extends JsrInstruction
      implements VariableLengthInstruction

  JSR - Jump to subroutine

- - ### 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
    `JSR(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 by InstructionList.setPositions when setting the position for every instruction.

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

      `getType, physicalSuccessor`

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

    - ### Methods inherited from interface org.apache.bcel.generic.StackProducer

      `produceStack`

- - ### Constructor Detail

    - #### JSR

          public JSR(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)

      Description copied from class: `BranchInstruction`
      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 `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.