Package javassist.convert
Class TransformAccessArrayField
java.lang.Object
javassist.convert.Transformer
javassist.convert.TransformAccessArrayField
- All Implemented Interfaces:
Opcode
A transformer which replaces array access with static method invocations.
- Version:
- $Revision: 1.8 $
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Frame[]
private final String
private final CodeConverter.ArrayAccessReplacementMethodNames
private int
Fields inherited from interface javassist.bytecode.Opcode
AALOAD, AASTORE, ACONST_NULL, ALOAD, ALOAD_0, ALOAD_1, ALOAD_2, ALOAD_3, ANEWARRAY, ARETURN, ARRAYLENGTH, ASTORE, ASTORE_0, ASTORE_1, ASTORE_2, ASTORE_3, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DLOAD_0, DLOAD_1, DLOAD_2, DLOAD_3, DMUL, DNEG, DREM, DRETURN, DSTORE, 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, FLOAD_0, FLOAD_1, FLOAD_2, FLOAD_3, FMUL, FNEG, FREM, FRETURN, FSTORE, FSTORE_0, FSTORE_1, FSTORE_2, FSTORE_3, FSUB, GETFIELD, GETSTATIC, GOTO, GOTO_W, 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, IF_ACMPEQ, IF_ACMPNE, IF_ICMPEQ, IF_ICMPGE, IF_ICMPGT, IF_ICMPLE, IF_ICMPLT, IF_ICMPNE, IFEQ, IFGE, IFGT, IFLE, IFLT, IFNE, IFNONNULL, IFNULL, IINC, ILOAD, ILOAD_0, ILOAD_1, ILOAD_2, ILOAD_3, IMUL, INEG, INSTANCEOF, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISTORE_0, ISTORE_1, ISTORE_2, ISTORE_3, ISUB, IUSHR, IXOR, JSR, JSR_W, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDC_W, LDC2_W, LDIV, LLOAD, LLOAD_0, LLOAD_1, LLOAD_2, LLOAD_3, LMUL, LNEG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSTORE_0, LSTORE_1, LSTORE_2, LSTORE_3, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, STACK_GROW, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, WIDE
-
Constructor Summary
ConstructorsConstructorDescriptionTransformAccessArrayField
(Transformer next, String methodClassname, CodeConverter.ArrayAccessReplacementMethodNames names) -
Method Summary
Modifier and TypeMethodDescriptionvoid
clean()
private Frame
getFrame
(int pos) private String
getLoadReplacementSignature
(int opcode) private String
getMethodName
(int opcode) private String
getStoreReplacementSignature
(int opcode) private String
getTopType
(int pos) private void
initFrames
(CtClass clazz, MethodInfo minfo) void
initialize
(ConstPool cp, CtClass clazz, MethodInfo minfo) private int
replace
(ConstPool cp, CodeIterator iterator, int pos, int opcode, String signature) int
transform
(CtClass tclazz, int pos, CodeIterator iterator, ConstPool cp) private int
updatePos
(int pos, int increment) Methods inherited from class javassist.convert.Transformer
extraLocals, extraStack, getNext, initialize
-
Field Details
-
methodClassname
-
names
-
frames
-
offset
private int offset
-
-
Constructor Details
-
TransformAccessArrayField
public TransformAccessArrayField(Transformer next, String methodClassname, CodeConverter.ArrayAccessReplacementMethodNames names) throws NotFoundException - Throws:
NotFoundException
-
-
Method Details
-
initialize
- Overrides:
initialize
in classTransformer
- Throws:
CannotCompileException
-
clean
public void clean()- Overrides:
clean
in classTransformer
-
transform
public int transform(CtClass tclazz, int pos, CodeIterator iterator, ConstPool cp) throws BadBytecode - Specified by:
transform
in classTransformer
- Throws:
BadBytecode
-
getFrame
- Throws:
BadBytecode
-
initFrames
- Throws:
BadBytecode
-
updatePos
private int updatePos(int pos, int increment) -
getTopType
- Throws:
BadBytecode
-
replace
private int replace(ConstPool cp, CodeIterator iterator, int pos, int opcode, String signature) throws BadBytecode - Throws:
BadBytecode
-
getMethodName
-
getLoadReplacementSignature
- Throws:
BadBytecode
-
getStoreReplacementSignature
- Throws:
BadBytecode
-