Class DataClayMethodTransformer

    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected String classDesc
      Descriptor name of class of method.
      protected Implementation implementation
      DataClay implementation used for creation.
      protected Operation operation
      DataClay operation used for creation.
      protected List<Property> properties  
      • Fields inherited from class org.objectweb.asm.commons.AdviceAdapter

        methodAccess, methodDesc
      • Fields inherited from class org.objectweb.asm.commons.GeneratorAdapter

        ADD, AND, DIV, EQ, GE, GT, LE, LT, MUL, NE, NEG, OR, REM, SHL, SHR, SUB, USHR, XOR
      • Fields inherited from class org.objectweb.asm.commons.LocalVariablesSorter

        firstLocal, nextLocal
      • Fields inherited from class org.objectweb.asm.MethodVisitor

        api, mv
      • Fields inherited from interface org.objectweb.asm.Opcodes

        AALOAD, AASTORE, ACC_ABSTRACT, ACC_ANNOTATION, ACC_BRIDGE, ACC_DEPRECATED, ACC_ENUM, ACC_FINAL, ACC_INTERFACE, ACC_MANDATED, ACC_MODULE, ACC_NATIVE, ACC_OPEN, ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC, ACC_STATIC, ACC_STATIC_PHASE, ACC_STRICT, ACC_SUPER, ACC_SYNCHRONIZED, ACC_SYNTHETIC, ACC_TRANSIENT, ACC_TRANSITIVE, ACC_VARARGS, ACC_VOLATILE, ACONST_NULL, ALOAD, ANEWARRAY, ARETURN, ARRAYLENGTH, ASM4, ASM5, ASM6, ASM7, ASTORE, ATHROW, BALOAD, BASTORE, BIPUSH, CALOAD, CASTORE, CHECKCAST, D2F, D2I, D2L, DADD, DALOAD, DASTORE, DCMPG, DCMPL, DCONST_0, DCONST_1, DDIV, DLOAD, DMUL, DNEG, DOUBLE, DREM, DRETURN, DSTORE, DSUB, DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, F_APPEND, F_CHOP, F_FULL, F_NEW, F_SAME, F_SAME1, F2D, F2I, F2L, FADD, FALOAD, FASTORE, FCMPG, FCMPL, FCONST_0, FCONST_1, FCONST_2, FDIV, FLOAD, FLOAT, FMUL, FNEG, FREM, FRETURN, FSTORE, FSUB, GETFIELD, GETSTATIC, GOTO, H_GETFIELD, H_GETSTATIC, H_INVOKEINTERFACE, H_INVOKESPECIAL, H_INVOKESTATIC, H_INVOKEVIRTUAL, H_NEWINVOKESPECIAL, H_PUTFIELD, H_PUTSTATIC, 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, IMUL, INEG, INSTANCEOF, INTEGER, INVOKEDYNAMIC, INVOKEINTERFACE, INVOKESPECIAL, INVOKESTATIC, INVOKEVIRTUAL, IOR, IREM, IRETURN, ISHL, ISHR, ISTORE, ISUB, IUSHR, IXOR, JSR, L2D, L2F, L2I, LADD, LALOAD, LAND, LASTORE, LCMP, LCONST_0, LCONST_1, LDC, LDIV, LLOAD, LMUL, LNEG, LONG, LOOKUPSWITCH, LOR, LREM, LRETURN, LSHL, LSHR, LSTORE, LSUB, LUSHR, LXOR, MONITORENTER, MONITOREXIT, MULTIANEWARRAY, NEW, NEWARRAY, NOP, NULL, POP, POP2, PUTFIELD, PUTSTATIC, RET, RETURN, SALOAD, SASTORE, SIPUSH, SOURCE_DEPRECATED, SOURCE_MASK, SWAP, T_BOOLEAN, T_BYTE, T_CHAR, T_DOUBLE, T_FLOAT, T_INT, T_LONG, T_SHORT, TABLESWITCH, TOP, V_PREVIEW, V1_1, V1_2, V1_3, V1_4, V1_5, V1_6, V1_7, V1_8, V10, V11, V12, V13, V14, V9
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static void injectEndMethod​(org.objectweb.asm.commons.GeneratorAdapter genAd, String methodDescriptor, String thisclassDesc, String opNameAndDesc, String implIDAsStr)
      Inject end method
      static void injectSetterStartMethod​(org.objectweb.asm.commons.GeneratorAdapter genAd, String methodDescriptor, String thisclassDesc, String opName, String opNameAndDesc, String implIDAsStr, boolean theisExecClass, List<Annotation> annotations, boolean update)
      Inject entry code
      static void injectStartMethod​(org.objectweb.asm.commons.GeneratorAdapter genAd, String methodDescriptor, String thisclassDesc, String opName, String opNameAndDesc, String implIDAsStr, boolean theisExecClass, ImplementationID prefetchingID, MetaClassID prefetchingClassID)
      Inject entry code
      protected void onMethodExit​(int opcode)  
      void visitFieldInsn​(int opcode, String owner, String name, String desc)  
      void visitMaxs​(int maxStack, int maxLocals)  
      • Methods inherited from class org.objectweb.asm.commons.AdviceAdapter

        onMethodEnter, visitCode, visitInsn, visitIntInsn, visitInvokeDynamicInsn, visitJumpInsn, visitLabel, visitLdcInsn, visitLookupSwitchInsn, visitMethodInsn, visitMultiANewArrayInsn, visitTableSwitchInsn, visitTryCatchBlock, visitTypeInsn, visitVarInsn
      • Methods inherited from class org.objectweb.asm.commons.GeneratorAdapter

        arrayLength, arrayLoad, arrayStore, box, cast, catchException, checkCast, dup, dup2, dup2X1, dup2X2, dupX1, dupX2, endMethod, getAccess, getArgumentTypes, getField, getLocalType, getName, getReturnType, getStatic, goTo, ifCmp, ifICmp, ifNonNull, ifNull, ifZCmp, iinc, instanceOf, invokeConstructor, invokeDynamic, invokeInterface, invokeStatic, invokeVirtual, loadArg, loadArgArray, loadArgs, loadArgs, loadLocal, loadLocal, loadThis, mark, mark, math, monitorEnter, monitorExit, newArray, newInstance, newLabel, not, pop, pop2, push, push, push, push, push, push, push, push, push, putField, putStatic, ret, returnValue, setLocalType, storeArg, storeLocal, storeLocal, swap, swap, tableSwitch, tableSwitch, throwException, throwException, unbox, valueOf
      • Methods inherited from class org.objectweb.asm.commons.LocalVariablesSorter

        newLocal, newLocalMapping, updateNewLocals, visitFrame, visitIincInsn, visitLocalVariable, visitLocalVariableAnnotation
      • Methods inherited from class org.objectweb.asm.MethodVisitor

        visitAnnotableParameterCount, visitAnnotation, visitAnnotationDefault, visitAttribute, visitEnd, visitInsnAnnotation, visitLineNumber, visitMethodInsn, visitParameter, visitParameterAnnotation, visitTryCatchAnnotation, visitTypeAnnotation
    • Field Detail

      • operation

        protected final Operation operation
        DataClay operation used for creation.
      • implementation

        protected final Implementation implementation
        DataClay implementation used for creation.
      • classDesc

        protected final String classDesc
        Descriptor name of class of method.
    • Constructor Detail

      • DataClayMethodTransformer

        public DataClayMethodTransformer​(org.objectweb.asm.MethodVisitor next,
                                         int accessFlags,
                                         String methodName,
                                         String methodDescriptor,
                                         String newclassDesc,
                                         Operation theoperation,
                                         Implementation theimpl,
                                         List<Property> theproperties)
        Constructs a new method visitor
        Parameters:
        next - Method visitor this method should delegate to.
        accessFlags - Access flags
        methodName - Method name
        methodDescriptor - Method descriptor
        newclassDesc - Class descriptor
        theoperation - DataClay operation used for creation.
        theimpl - the implementation
        theproperties - Properties of the class containing the method to transform.
    • Method Detail

      • injectStartMethod

        public static void injectStartMethod​(org.objectweb.asm.commons.GeneratorAdapter genAd,
                                             String methodDescriptor,
                                             String thisclassDesc,
                                             String opName,
                                             String opNameAndDesc,
                                             String implIDAsStr,
                                             boolean theisExecClass,
                                             ImplementationID prefetchingID,
                                             MetaClassID prefetchingClassID)
        Inject entry code
        Parameters:
        genAd - Generator adapter
        methodDescriptor - Method being modified descriptor
        thisclassDesc - Descriptor of the class being modified
        opName - Operation name
        opNameAndDesc - Operation name and descriptor for 'executeRemote'
        implIDAsStr - ImplID as string for 'executeRemote'
        theisExecClass - Indicates if it is for an execution class.
        prefetchingID - ID of the method to call for prefetching or NULL if no prefetching
        prefetchingClassID - ID of the class in which pf method is located or NULL if no prefetching.
      • injectSetterStartMethod

        public static void injectSetterStartMethod​(org.objectweb.asm.commons.GeneratorAdapter genAd,
                                                   String methodDescriptor,
                                                   String thisclassDesc,
                                                   String opName,
                                                   String opNameAndDesc,
                                                   String implIDAsStr,
                                                   boolean theisExecClass,
                                                   List<Annotation> annotations,
                                                   boolean update)
        Inject entry code
        Parameters:
        genAd - Generator adapter
        methodDescriptor - Method being modified descriptor
        thisclassDesc - Descriptor of the class being modified
        opName - Operation name
        opNameAndDesc - Operation name and descriptor for 'executeRemote'
        implIDAsStr - ImplID as string for 'executeRemote'
        theisExecClass - Indicates if it is for an execution class.
        annotations - Annotations of the setter
        update - Indicates whether to update or not
      • onMethodExit

        protected void onMethodExit​(int opcode)
        Overrides:
        onMethodExit in class org.objectweb.asm.commons.AdviceAdapter
      • injectEndMethod

        public static void injectEndMethod​(org.objectweb.asm.commons.GeneratorAdapter genAd,
                                           String methodDescriptor,
                                           String thisclassDesc,
                                           String opNameAndDesc,
                                           String implIDAsStr)
        Inject end method
        Parameters:
        genAd - Generator adapter
        methodDescriptor - Method being modified descriptor
        thisclassDesc - Descriptor of the class being modified
        opNameAndDesc - Operation name and descriptor for 'executeRemote'
        implIDAsStr - ImplID as string for 'executeRemote'
      • visitFieldInsn

        public void visitFieldInsn​(int opcode,
                                   String owner,
                                   String name,
                                   String desc)
        Overrides:
        visitFieldInsn in class org.objectweb.asm.commons.AdviceAdapter
      • visitMaxs

        public void visitMaxs​(int maxStack,
                              int maxLocals)
        Overrides:
        visitMaxs in class org.objectweb.asm.commons.LocalVariablesSorter