Package javassist.convert
Class TransformCall
- java.lang.Object
-
- javassist.convert.Transformer
-
- javassist.convert.TransformCall
-
- All Implemented Interfaces:
Opcode
- Direct Known Subclasses:
TransformBefore
public class TransformCall extends Transformer
-
-
Field Summary
Fields Modifier and Type Field Description protected java.lang.String
classname
protected ConstPool
constPool
protected java.lang.String
methodDescriptor
protected java.lang.String
methodname
protected java.lang.String
newClassname
protected int
newIndex
protected boolean
newMethodIsPrivate
protected java.lang.String
newMethodname
-
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
Constructors Constructor Description TransformCall(Transformer next, java.lang.String oldMethodName, CtMethod substMethod)
TransformCall(Transformer next, CtMethod origMethod, CtMethod substMethod)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
initialize(ConstPool cp, CodeAttribute attr)
protected int
match(int c, int pos, CodeIterator iterator, int typedesc, ConstPool cp)
int
transform(CtClass clazz, int pos, CodeIterator iterator, ConstPool cp)
Modify INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC and INVOKEVIRTUAL so that a different method is invoked.-
Methods inherited from class javassist.convert.Transformer
clean, extraLocals, extraStack, getNext, initialize
-
-
-
-
Field Detail
-
classname
protected java.lang.String classname
-
methodname
protected java.lang.String methodname
-
methodDescriptor
protected java.lang.String methodDescriptor
-
newClassname
protected java.lang.String newClassname
-
newMethodname
protected java.lang.String newMethodname
-
newMethodIsPrivate
protected boolean newMethodIsPrivate
-
newIndex
protected int newIndex
-
constPool
protected ConstPool constPool
-
-
Constructor Detail
-
TransformCall
public TransformCall(Transformer next, CtMethod origMethod, CtMethod substMethod)
-
TransformCall
public TransformCall(Transformer next, java.lang.String oldMethodName, CtMethod substMethod)
-
-
Method Detail
-
initialize
public void initialize(ConstPool cp, CodeAttribute attr)
- Overrides:
initialize
in classTransformer
-
transform
public int transform(CtClass clazz, int pos, CodeIterator iterator, ConstPool cp) throws BadBytecode
Modify INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC and INVOKEVIRTUAL so that a different method is invoked. The class name in the operand of these instructions might be a subclass of the target class specified byclassname
. This method transforms the instruction in that case unless the subclass overrides the target method.- Specified by:
transform
in classTransformer
- Throws:
BadBytecode
-
match
protected int match(int c, int pos, CodeIterator iterator, int typedesc, ConstPool cp) throws BadBytecode
- Throws:
BadBytecode
-
-