Class BytecodeInstruction
- java.lang.Object
-
- org.eolang.jeo.representation.bytecode.BytecodeInstruction
-
- All Implemented Interfaces:
BytecodeEntry
public final class BytecodeInstruction extends Object implements BytecodeEntry
Bytecode instruction.- Since:
- 0.1
- Suppressed Checkstyle violations:
- FileLengthCheck (2000 lines)
-
-
Constructor Summary
Constructors Constructor Description BytecodeInstruction(int opcode, Object... args)Constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Iterable<org.xembly.Directive>directives(boolean counting)Convert entry to directives.intimpact()Impact of each instruction on the stack.booleanisIf()Is this instruction a conditional branch instruction?booleanisJump()Is this instruction a jump instruction? Is it a goto or jsr?booleanisLabel()Is this instruction a label?booleanisOpcode()Is this instruction a regular opcode?booleanisReturn()Is this instruction a return instruction?booleanisSwitch()Is this instruction a switch instruction?booleanisThrow()Is this instruction a throw statement?List<BytecodeLabel>jumps()Jump to a label.Stringview()Human-readable representation.voidwriteTo(org.objectweb.asm.MethodVisitor visitor, AsmLabels labels)Write instruction to the method visitor.
-
-
-
Constructor Detail
-
BytecodeInstruction
public BytecodeInstruction(int opcode, Object... args)Constructor.- Parameters:
opcode- Opcode.args- Arguments.
-
-
Method Detail
-
writeTo
public void writeTo(org.objectweb.asm.MethodVisitor visitor, AsmLabels labels)Description copied from interface:BytecodeEntryWrite instruction to the method visitor.- Specified by:
writeToin interfaceBytecodeEntry- Parameters:
visitor- Method visitor.labels- Method labels.
-
directives
public Iterable<org.xembly.Directive> directives(boolean counting)
Description copied from interface:BytecodeEntryConvert entry to directives.- Specified by:
directivesin interfaceBytecodeEntry- Parameters:
counting- Do we need to add numbers to entry names?- Returns:
- Directives.
-
isLabel
public boolean isLabel()
Description copied from interface:BytecodeEntryIs this instruction a label?- Specified by:
isLabelin interfaceBytecodeEntry- Returns:
- True if it is.
-
isOpcode
public boolean isOpcode()
Description copied from interface:BytecodeEntryIs this instruction a regular opcode?- Specified by:
isOpcodein interfaceBytecodeEntry- Returns:
- True if it is.
-
impact
public int impact()
Impact of each instruction on the stack.- Specified by:
impactin interfaceBytecodeEntry- Returns:
- Stack impact.
- Suppressed Checkstyle violations:
- CyclomaticComplexityCheck (350 lines), MethodLengthCheck (350 lines), JavaNCSSCheck (350 lines), AvoidNestedBlocksCheck (350 lines)
-
isJump
public boolean isJump()
Is this instruction a jump instruction? Is it a goto or jsr?- Specified by:
isJumpin interfaceBytecodeEntry- Returns:
- True if it is.
-
isIf
public boolean isIf()
Is this instruction a conditional branch instruction?- Specified by:
isIfin interfaceBytecodeEntry- Returns:
- True if it is.
- Suppressed Checkstyle violations:
- CyclomaticComplexityCheck (100 lines)
-
isSwitch
public boolean isSwitch()
Is this instruction a switch instruction?- Specified by:
isSwitchin interfaceBytecodeEntry- Returns:
- True if it is.
-
isReturn
public boolean isReturn()
Is this instruction a return instruction?- Specified by:
isReturnin interfaceBytecodeEntry- Returns:
- True if it is.
-
jumps
public List<BytecodeLabel> jumps()
Jump to a label. Where to jump.- Specified by:
jumpsin interfaceBytecodeEntry- Returns:
- Jump label.
- Suppressed Checkstyle violations:
- CyclomaticComplexityCheck (100 lines)
-
view
public String view()
Description copied from interface:BytecodeEntryHuman-readable representation.- Specified by:
viewin interfaceBytecodeEntry- Returns:
- Text.
-
isThrow
public boolean isThrow()
Description copied from interface:BytecodeEntryIs this instruction a throw statement?- Specified by:
isThrowin interfaceBytecodeEntry- Returns:
- True if it is.
-
-