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 max_offset)` 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`

    - #### updatePosition

          protected int updatePosition(int offset,
                                       int max_offset)

      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
        `max_offset` - 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.