Package org.aspectj.apache.bcel.generic
Klasse InstructionFactory
java.lang.Object
org.aspectj.apache.bcel.generic.InstructionFactory
- Alle implementierten Schnittstellen:
InstructionConstants
Instances of this class may be used, e.g., to generate typed versions of instructions. Its main purpose is to be used as the byte
code generating backend of a compiler. You can subclass it to add your own create methods.
- Version:
- $Id: InstructionFactory.java,v 1.7 2010/08/23 20:44:10 aclement Exp $
- Autor:
- M. Dahm
- Siehe auch:
-
Verschachtelte Klassen - Übersicht
Von Schnittstelle geerbte verschachtelte Klassen/Schnittstellen org.aspectj.apache.bcel.generic.InstructionConstants
InstructionConstants.Clinit
-
Feldübersicht
Von Schnittstelle geerbte Felder org.aspectj.apache.bcel.generic.InstructionConstants
AALOAD, AASTORE, ACONST_NULL, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ARETURN, ARRAYLENGTH, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, BALOAD, BASTORE, bla, CALOAD, CASTORE, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE_0, DSTORE_1, DSTORE_2, DSTORE_3, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, I2B, I2C, I2D, I2F, I2L, I2S, IADD, IALOAD, IAND, IASTORE, ICONST_0, ICONST_1, ICONST_2, ICONST_3, ICONST_4, ICONST_5, ICONST_M1, IDIV, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMPDEP1, IMPDEP2, IMUL, INEG, INSTRUCTIONS, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, IUSHR, IXOR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDIV, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, NOP, POP, POP2, RETURN, SALOAD, SASTORE, SWAP, THIS
-
Konstruktorübersicht
-
Methodenübersicht
Modifizierer und TypMethodeBeschreibungstatic Instruction
createALOAD
(int n) static Instruction
createArrayLoad
(Type type) static Instruction
createArrayStore
(Type type) static Instruction
createASTORE
(int n) static InstructionBranch
createBranchInstruction
(short opcode, InstructionHandle target) Create branch instruction by given opcode, except LOOKUPSWITCH and TABLESWITCH.createCast
(Type src_type, Type dest_type) Create conversion operation for two stack operands, this may be an I2C, instruction, e.g., if the operands are basic types and CHECKCAST if they are reference types.createConstant
(Object value) Uses PUSH to push a constant value onto the stack.static Instruction
createDup
(int size) static Instruction
createDup_1
(int size) static Instruction
createDup_2
(int size) createFieldAccess
(String class_name, String name, Type type, short kind) Create a field instruction.createGetField
(String class_name, String name, Type t) createGetStatic
(String class_name, String name, Type t) createInvoke
(String class_name, String name, String signature, short kind) createInvoke
(String class_name, String name, Type ret_type, Type[] arg_types, short kind) createInvoke
(String class_name, String name, Type ret_type, Type[] arg_types, short kind, boolean isInterface) Create an invoke instruction.static InstructionLV
createLoad
(Type type, int index) createNewArray
(Type t, short dim) Create new array of given size and type.static Instruction
createNull
(Type type) Create "null" value for reference types, 0 for basic types like intstatic Instruction
createPop
(int size) createPutField
(String class_name, String name, Type t) createPutStatic
(String class_name, String name, Type t) static Instruction
createReturn
(Type type) Create typed returnstatic InstructionLV
createStore
(Type type, int index) static Instruction
Create reference to `this'static Instruction
PUSH
(ConstantPool cp, boolean value) static Instruction
PUSH
(ConstantPool cp, double value) static Instruction
PUSH
(ConstantPool cp, float value) static Instruction
PUSH
(ConstantPool cp, int value) Returns the right instruction for putting whatever you want onto the stackstatic Instruction
PUSH
(ConstantPool cp, long value) static Instruction
PUSH
(ConstantPool cp, Boolean value) static Instruction
PUSH
(ConstantPool cp, Character value) static Instruction
PUSH
(ConstantPool cp, Number value) static Instruction
PUSH
(ConstantPool cp, String value) static Instruction
PUSH
(ConstantPool cp, ObjectType t) PUSHCLASS
(ConstantPool cp, String className) Return a list that will load the Class object - on 1.5 or later use the class variant of ldc, whilst on earlier JVMs use the regular Class.forName.void
void
-
Felddetails
-
cg
-
cp
-
-
Konstruktordetails
-
InstructionFactory
-
InstructionFactory
-
InstructionFactory
-
-
Methodendetails
-
createInvoke
public InvokeInstruction createInvoke(String class_name, String name, Type ret_type, Type[] arg_types, short kind) -
createInvoke
public InvokeInstruction createInvoke(String class_name, String name, Type ret_type, Type[] arg_types, short kind, boolean isInterface) Create an invoke instruction.- Parameter:
class_name
- name of the called classname
- name of the called methodret_type
- return type of methodarg_types
- argument types of methodkind
- how to invoke, i.e., INVOKEINTERFACE, INVOKESTATIC, INVOKEVIRTUAL, or INVOKESPECIALisInterface
- for an invokestatic on an interface allows us to tell this method the target is an interface- Siehe auch:
-
createInvoke
-
createALOAD
-
createASTORE
-
createConstant
Uses PUSH to push a constant value onto the stack.- Parameter:
value
- must be of type Number, Boolean, Character or String
-
createFieldAccess
Create a field instruction.- Parameter:
class_name
- name of the accessed classname
- name of the referenced fieldtype
- type of fieldkind
- how to access, i.e., GETFIELD, PUTFIELD, GETSTATIC, PUTSTATIC- Siehe auch:
-
createThis
Create reference to `this' -
createReturn
Create typed return -
createPop
- Parameter:
size
- size of operand, either 1 (int, e.g.) or 2 (double)
-
createDup
- Parameter:
size
- size of operand, either 1 (int, e.g.) or 2 (double)
-
createDup_2
- Parameter:
size
- size of operand, either 1 (int, e.g.) or 2 (double)
-
createDup_1
- Parameter:
size
- size of operand, either 1 (int, e.g.) or 2 (double)
-
createStore
- Parameter:
index
- index of local variable
-
createLoad
- Parameter:
index
- index of local variable
-
createArrayLoad
- Parameter:
type
- type of elements of array, i.e., array.getElementType()
-
createArrayStore
- Parameter:
type
- type of elements of array, i.e., array.getElementType()
-
createCast
Create conversion operation for two stack operands, this may be an I2C, instruction, e.g., if the operands are basic types and CHECKCAST if they are reference types. -
createGetField
-
createGetStatic
-
createPutField
-
createPutStatic
-
createCheckCast
-
createInstanceOf
-
createNew
-
createNew
-
createNewArray
Create new array of given size and type.- Gibt zurück:
- an instruction that creates the corresponding array at runtime, i.e. is an AllocationInstruction
-
createNull
Create "null" value for reference types, 0 for basic types like int -
createBranchInstruction
Create branch instruction by given opcode, except LOOKUPSWITCH and TABLESWITCH. For those you should use the SWITCH compound instruction. -
setClassGen
-
getClassGen
-
setConstantPool
-
getConstantPool
-
PUSH
Returns the right instruction for putting whatever you want onto the stack -
PUSH
-
PUSH
-
PUSH
-
PUSH
-
PUSH
-
PUSH
-
PUSH
-
PUSH
-
PUSH
-
PUSHCLASS
Return a list that will load the Class object - on 1.5 or later use the class variant of ldc, whilst on earlier JVMs use the regular Class.forName.
-