javassist.convert
Class TransformCall

java.lang.Object
  extended by javassist.convert.Transformer
      extended by javassist.convert.TransformCall
All Implemented Interfaces:
Opcode
Direct Known Subclasses:
TransformBefore

public class TransformCall
extends Transformer


Field Summary
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, 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
TransformCall(Transformer next, CtMethod origMethod, CtMethod substMethod)
           
TransformCall(Transformer next, java.lang.String oldMethodName, CtMethod substMethod)
           
 
Method Summary
 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

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 class Transformer

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 by classname. This method transforms the instruction in that case unless the subclass overrides the target method.

Specified by:
transform in class Transformer
Throws:
BadBytecode

match

protected int match(int c,
                    int pos,
                    CodeIterator iterator,
                    int typedesc,
                    ConstPool cp)
             throws BadBytecode
Throws:
BadBytecode


Copyright © 2011. All Rights Reserved.