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
GOTO - Branch always (to relative offset, not absolute address)
-
Field Summary
Fields inherited from class BranchInstruction
index, position, targetModifier and TypeFieldDescriptionprotected intDeprecated.(since 6.0) will be made private; do not access directly, use getter/setterprotected intDeprecated.(since 6.0) will be made private; do not access directly, use getter/setterprotected InstructionHandleDeprecated.(since 6.0) will be made private; do not access directly, use getter/setterFields inherited from class Instruction
length, opcode -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidCall corresponding visitor method(s).voiddump(DataOutputStream out) Dumps instruction as byte code to stream out.protected intupdatePosition(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, updateTargetModifier and TypeMethodDescriptionbooleanTests whether this targeter targets the specified instruction handle.final intgetIndex()Gets the target offset in byte code.protected intGets the position.Gets the target of branch instruction.protected intGets the offset to this instruction's target.protected intgetTargetOffset(InstructionHandle target) Gets the offset to target relative to this instruction.protected voidinitFromFile(ByteSequence bytes, boolean wide) Reads needed data (for example index) from file.protected voidsetIndex(int index) Sets the index.protected voidsetPosition(int position) Sets the position.voidsetTarget(InstructionHandle target) Sets branch target.toString(boolean verbose) Long output format: <position in byte code> <name of opcode> "["<opcode number>"]" "("<length of instruction>")" "<"<target instruction>">" "@"<branch target offset>voidupdateTarget(InstructionHandle oldIh, InstructionHandle newIh) Replaces the target of this targeter from this old handle to the new handle.Methods inherited from class Instruction
consumeStack, copy, equals, getComparator, getLength, getName, getOpcode, hashCode, isValidByte, isValidShort, produceStack, readInstruction, setComparator, toString, toStringModifier and TypeMethodDescriptionintThis method also gives right results for instructions whose effect on the stack depends on the constant pool entry they reference.copy()Use with caution, since 'BranchInstruction's have a 'target' reference which is not copied correctly (only basic types are).booleanTests for equality, delegated to comparatorstatic InstructionComparatorDeprecated.(6.0) use the built in comparator, or wrap this class in another object that implements these methodsintGets the length (in bytes) of instruction.getName()Gets the name of instruction, that is, opcode name.shortGets this instruction's opcode.inthashCode()Gets the hashCode of this object.static booleanisValidByte(int value) Tests if the value can fit in a byte (signed).static booleanisValidShort(int value) Tests if the value can fit in a short (signed).intThis method also gives right results for instructions whose effect on the stack depends on the constant pool entry they reference.static InstructionreadInstruction(ByteSequence bytes) Reads an instruction from (byte code) input stream and return the appropriate object.static voidDeprecated.(6.0) use the built in comparator, or wrap this class in another object that implements these methodstoString()toString(ConstantPool cp) Gets the mnemonic for instruction with symbolic references resolved.
-
Constructor Details
-
GOTO
Constructs a GOTO instruction.- Parameters:
target- The target instruction.
-
-
Method Details
-
accept
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, that is, the most specific visitXXX() call comes last.- Specified by:
acceptin classInstruction- Parameters:
v- Visitor object.
-
dump
Dumps instruction as byte code to stream out.- Overrides:
dumpin classBranchInstruction- Parameters:
out- Output stream.- Throws:
IOException- Thrown when an I/O exception of some sort has occurred.
-
updatePosition
Called in pass 2 of InstructionList.setPositions() in order to update the branch target, that may shift due to variable length instructions.- Overrides:
updatePositionin classBranchInstruction- 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.
-