public class TransformCall extends Transformer
Modifier and Type | Field and 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 |
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 and Description |
---|
TransformCall(Transformer next,
CtMethod origMethod,
CtMethod substMethod) |
TransformCall(Transformer next,
java.lang.String oldMethodName,
CtMethod substMethod) |
Modifier and Type | Method and Description |
---|---|
void |
initialize(ConstPool cp,
CodeAttribute attr) |
protected int |
match(int c,
int pos,
CodeIterator iterator,
int typedesc,
ConstPool cp) |
private boolean |
matchClass(java.lang.String name,
ClassPool pool) |
int |
transform(CtClass clazz,
int pos,
CodeIterator iterator,
ConstPool cp)
Modify INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC and INVOKEVIRTUAL
so that a different method is invoked.
|
clean, extraLocals, extraStack, getNext, initialize
protected java.lang.String classname
protected java.lang.String methodname
protected java.lang.String methodDescriptor
protected java.lang.String newClassname
protected java.lang.String newMethodname
protected boolean newMethodIsPrivate
protected int newIndex
protected ConstPool constPool
public TransformCall(Transformer next, CtMethod origMethod, CtMethod substMethod)
public TransformCall(Transformer next, java.lang.String oldMethodName, CtMethod substMethod)
public void initialize(ConstPool cp, CodeAttribute attr)
initialize
in class Transformer
public int transform(CtClass clazz, int pos, CodeIterator iterator, ConstPool cp) throws BadBytecode
classname
. This method transforms the instruction
in that case unless the subclass overrides the target method.transform
in class Transformer
BadBytecode
private boolean matchClass(java.lang.String name, ClassPool pool)
protected int match(int c, int pos, CodeIterator iterator, int typedesc, ConstPool cp) throws BadBytecode
BadBytecode