This package contains the "generic" part of the Byte Code Engineering Library, i.e., classes to dynamically modify class objects and byte code instructions.
| Modifier and Type | Interface and Description |
|---|---|
| public interface | AllocationInstruction
Denote family of instructions that allocates space in the heap. |
| public interface | ClassObserver
Implement this interface if you're interested in changes to a ClassGen object and register yourself with addObserver(). |
| public interface | CompoundInstruction
Wrapper class for 'compound' operations, virtual instructions that don't exist as byte code, but give a useful meaning. |
| public interface | ConstantPushInstruction
Denotes a push instruction that produces a literal on the stack such as SIPUSH, BIPUSH, ICONST, etc. |
| public interface | ExceptionThrower
Denote an instruction that may throw a run-time or a linking exception (or both) during execution. |
| public interface | FieldObserver
Imnplement this interface if you're interested in changes to a FieldGen object and register yourself with addObserver(). |
| public interface | IndexedInstruction
Denote entity that refers to an index, e.g. local variable instructions, RET, CPInstruction, etc. |
| public interface | InstructionComparator
Equality of instructions isn't clearly to be defined. |
| public interface | InstructionListObserver
Implement this interface if you're interested in changes to an InstructionList object and register yourself with addObserver(). |
| public interface | InstructionTargeter
Denotes that a class targets InstructionHandles within an InstructionList. |
| public interface | LoadClass
Denotes that an instruction may start the process of loading and resolving the referenced class in the Virtual Machine. |
| public interface | MethodObserver
Implement this interface if you're interested in changes to a MethodGen object and register yourself with addObserver(). |
| public interface | NamedAndTyped
Denote entity that has both name and type. |
| public interface | PopInstruction
Denotes an unparameterized instruction to pop a value on top from the stack, such as ISTORE, POP, PUTSTATIC. |
| public interface | PushInstruction
Denotes an unparameterized instruction to produce a value on top of the stack, such as ILOAD, LDC, SIPUSH, DUP, ICONST, etc. |
| public interface | StackConsumer
Denote an instruction that may consume a value from the stack. |
| public interface | StackProducer
Denotes an instruction that may produce a value on top of the stack (this excludes DUP_X1, e.g.) |
| public interface | TypedInstruction
Gets the type associated with an instruction, int for ILOAD, or the type of the field of a PUTFIELD instruction, e.g.. |
| public interface | UnconditionalBranch
Denotes an instruction to perform an unconditional branch, i.e., GOTO, JSR. |
| public interface | VariableLengthInstruction
Denotes an instruction to be a variable length instruction, such as GOTO, JSR, LOOKUPSWITCH and TABLESWITCH. |
| public interface | Visitor
Interface implementing the Visitor pattern programming style. |
| Modifier and Type | Class and Description |
|---|---|
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public abstract class | ArithmeticInstruction
Super class for the family of arithmetic instructions. |
| public class | |
| public abstract class | ArrayInstruction
Super class for instructions dealing with array access such as IALOAD. |
| public class | |
| public class | ArrayType
Denotes array type, such as int[][] |
| public class | |
| public class | |
| public class | |
| public class | BasicType
Denotes basic type such as int. |
| public class | |
| public class | |
| public class | BranchHandle
BranchHandle is returned by specialized InstructionList.append() whenever a BranchInstruction is appended. |
| public abstract class | BranchInstruction
Abstract super class for branching instructions like GOTO, IFEQ, etc.. |
| public class | BREAKPOINT
BREAKPOINT, JVM dependent, ignored by default |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | ClassGen
Template class for building up a java class. |
| public class | ClassGenException
Thrown on internal exceptions. |
| public class | CodeExceptionGen
This class represents an exception handler, i.e., specifies the region where a handler is active and an instruction where the actual handling is done. |
| public class | ConstantPoolGen
This class is used to build up a constant pool. |
| public abstract class | ConversionInstruction
Super class for the x2y family of instructions. |
| public abstract class | CPInstruction
Abstract super class for instructions that use an index into the constant pool such as LDC, INVOKEVIRTUAL, etc. |
| public class | |
| public class | |
| public class | D2L
D2L - Convert double to long Stack: ..., value.word1, value.word2 -> ..., result.word1, result.word2 |
| public class | |
| public class | DALOAD
DALOAD - Load double from array Stack: ..., arrayref, index -> ..., result.word1, result.word2 |
| public class | DASTORE
DASTORE - Store into double array Stack: ..., arrayref, index, value.word1, value.word2 -> ... |
| public class | DCMPG
DCMPG - Compare doubles: value1 > value2 Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -> ..., result |
| public class | DCMPL
DCMPL - Compare doubles: value1 < value2 Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -> ..., result |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | DREM
DREM - Remainder of doubles Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -> |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | DUP2
DUP2 - Duplicate two top operand stack words Stack: ..., word2, word1 -> ..., word2, word1, word2, word1 |
| public class | DUP2_X1
DUP2_X1 - Duplicate two top operand stack words and put three down Stack: ..., word3, word2, word1 -> ..., word2, word1, word3, word2, word1 |
| public class | DUP2_X2
DUP2_X2 - Duplicate two top operand stack words and put four down Stack: ..., word4, word3, word2, word1 -> ..., word2, word1, word4, word3, word2, word1 |
| public class | DUP_X1
DUP_X1 - Duplicate top operand stack word and put two down Stack: ..., word2, word1 -> ..., word1, word2, word1 |
| public class | DUP_X2
DUP_X2 - Duplicate top operand stack word and put three down Stack: ..., word3, word2, word1 -> ..., word1, word3, word2, word1 |
| public abstract class | |
| public class | |
| public abstract class | EmptyVisitor
Supplies empty method bodies to be overridden by subclasses. |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | FieldGen
Template class for building up a field. |
| public abstract class | FieldGenOrMethodGen
Super class for FieldGen and MethodGen objects, since they have some methods in common! |
| public abstract class | FieldInstruction
Super class for the GET/PUTxxx family of instructions. |
| public abstract class | FieldOrMethod
Super class for InvokeInstruction and FieldInstruction, since they have some methods in common! |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | GOTO
GOTO - Branch always (to relative offset, not absolute address) |
| public class | GOTO_W
GOTO_W - Branch always (to relative offset, not absolute address) |
| public abstract class | GotoInstruction
Super class for GOTO |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | IF_ACMPNE
IF_ACMPNE - Branch if reference comparison doesn't succeed Stack: ..., value1, value2 -> ... |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public abstract class | IfInstruction
Super class for the IFxxx family of instructions. |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | IINC
IINC - Increment local variable by constant |
| public class | |
| public class | IMPDEP1
IMPDEP1 - Implementation dependent |
| public class | IMPDEP2
IMPDEP2 - Implementation dependent |
| public class | |
| public class | |
| public class | |
| public abstract class | Instruction
Abstract super class for all Java byte codes. |
| public class | InstructionConst
Contains shareable instruction objects. |
| public class | InstructionFactory
Instances of this class may be used, e.g., to generate typed versions of instructions. |
| public class | InstructionHandle
Instances of this class give users a handle to the instructions contained in an InstructionList. |
| public class | InstructionList
This class is a container for a list of Instruction objects. |
| public class | INVOKEDYNAMIC
Class for INVOKEDYNAMIC. |
| public abstract class | InvokeInstruction
Super class for the INVOKExxx family of instructions. |
| public class | INVOKEINTERFACE
INVOKEINTERFACE - Invoke interface method Stack: ..., objectref, [arg1, [arg2 ...]] -> ... |
| public class | INVOKESPECIAL
INVOKESPECIAL - Invoke instance method; special handling for superclass, private and instance initialization method invocations Stack: ..., objectref, [arg1, [arg2 ...]] -> ... |
| public class | |
| public class | INVOKEVIRTUAL
INVOKEVIRTUAL - Invoke instance method; dispatch based on class Stack: ..., objectref, [arg1, [arg2 ...]] -> ... |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | JSR
JSR - Jump to subroutine |
| public class | JSR_W
JSR_W - Jump to subroutine |
| public abstract class | JsrInstruction
Super class for JSR - Jump to subroutine |
| public class | L2D
L2D - Convert long to double Stack: ..., value.word1, value.word2 -> ..., result.word1, result.word2 |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | LCMP
LCMP - Compare longs: Stack: ..., value1.word1, value1.word2, value2.word1, value2.word2 -> ..., result <= -1, 0, 1> |
| public class | |
| public class | LDC
LDC - Push item from constant pool. |
| public class | |
| public class | |
| public class | |
| public class | LineNumberGen
This class represents a line number within a method, i.e., give an instruction a line number corresponding to the source code line. |
| public class | |
| public class | |
| public class | |
| public abstract class | LoadInstruction
Denotes an unparameterized instruction to load a value from a local variable, e.g. ILOAD. |
| public class | LocalVariableGen
Represents a local variable within a method. |
| public abstract class | LocalVariableInstruction
Abstract super class for instructions dealing with local variables. |
| public class | LOOKUPSWITCH
LOOKUPSWITCH - Switch with unordered set of values |
| public class | |
| public class | |
| public class | |
| public class | LSHL
LSHL - Arithmetic shift left long Stack: ..., value1.word1, value1.word2, value2 -> ..., result.word1, result.word2 |
| public class | LSHR
LSHR - Arithmetic shift right long Stack: ..., value1.word1, value1.word2, value2 -> ..., result.word1, result.word2 |
| public class | |
| public class | |
| public class | |
| public class | |
| public class | MethodGen
Template class for building up a method. |
| public class | |
| public class | |
| public class | MULTIANEWARRAY
MULTIANEWARRAY - Create new mutidimensional array of references Stack: ..., count1, [count2, ...] -> ..., arrayref |
| public abstract class | NameSignatureInstruction
Super class for FieldOrMethod and INVOKEDYNAMIC, since they both have names and signatures |
| public class | |
| public class | NEWARRAY
NEWARRAY - Create new array of basic type (int, short, ...) Stack: ..., count -> ..., arrayref |
| public class | NOP
NOP - Do nothing |
| public class | ObjectType
Denotes reference such as |
| public class | |
| public class | |
| public class | PUSH
Wrapper class for push operations, which are implemented either as BIPUSH, LDC or xCONST_n instructions. |
| public class | |
| public class | |
| public abstract class | ReferenceType
Super class for object and array types. |
| public class | |
| public class | |
| public class | ReturnaddressType
Returnaddress, the type JSR or JSR_W instructions push upon the stack. |
| public abstract class | ReturnInstruction
Super class for the xRETURN family of instructions. |
| public class | |
| public class | |
| public abstract class | Select
Select - Abstract super class for LOOKUPSWITCH and TABLESWITCH instructions. |
| public class | |
| public class | |
| public abstract class | StackInstruction
Super class for stack operations like DUP and POP. |
| public abstract class | StoreInstruction
Denotes an unparameterized instruction to store a value into a local variable, e.g. ISTORE. |
| public class | |
| public class | SWITCH
SWITCH - Branch depending on int value, generates either LOOKUPSWITCH or TABLESWITCH instruction, depending on whether the match values (int[]) can be sorted with no gaps between the numbers. |
| public class | TABLESWITCH
TABLESWITCH - Switch within given range of values, i.e., low..high |
| public class | TargetLostException
Thrown by |
| public abstract class | Type
Abstract super class for all possible Java types, namely basic types such as int, object types like String and array types, e.g. int[] |