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 Stringprivate final CodeConverter.ArrayAccessReplacementMethodNamesprivate intFields 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 TypeMethodDescriptionvoidclean()private FramegetFrame(int pos) private StringgetLoadReplacementSignature(int opcode) private StringgetMethodName(int opcode) private StringgetStoreReplacementSignature(int opcode) private StringgetTopType(int pos) private voidinitFrames(CtClass clazz, MethodInfo minfo) voidinitialize(ConstPool cp, CtClass clazz, MethodInfo minfo) private intreplace(ConstPool cp, CodeIterator iterator, int pos, int opcode, String signature) inttransform(CtClass tclazz, int pos, CodeIterator iterator, ConstPool cp) private intupdatePos(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:
initializein classTransformer- Throws:
CannotCompileException
-
clean
public void clean()- Overrides:
cleanin classTransformer
-
transform
public int transform(CtClass tclazz, int pos, CodeIterator iterator, ConstPool cp) throws BadBytecode - Specified by:
transformin 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
-