Class DataClayMethodTransformer
- java.lang.Object
-
- org.objectweb.asm.MethodVisitor
-
- org.objectweb.asm.commons.LocalVariablesSorter
-
- org.objectweb.asm.commons.GeneratorAdapter
-
- org.objectweb.asm.commons.AdviceAdapter
-
- es.bsc.dataclay.logic.classmgr.bytecode.java.methods.DataClayMethodTransformer
-
- All Implemented Interfaces:
org.objectweb.asm.Opcodes
- Direct Known Subclasses:
DataClayExecutionMethodTransformer
,DataClayStubMethodTransformer
public abstract class DataClayMethodTransformer extends org.objectweb.asm.commons.AdviceAdapter
DataClay Method visitor.
-
-
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.GeneratorAdapter
ADD, AND, DIV, EQ, GE, GT, LE, LT, MUL, NE, NEG, OR, REM, SHL, SHR, SUB, USHR, XOR
-
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
-
-
Constructor Summary
Constructors Constructor Description 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
-
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 methodstatic 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 codestatic 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 codeprotected 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
-
-
-
-
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 flagsmethodName
- Method namemethodDescriptor
- Method descriptornewclassDesc
- Class descriptortheoperation
- DataClay operation used for creation.theimpl
- the implementationtheproperties
- 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 adaptermethodDescriptor
- Method being modified descriptorthisclassDesc
- Descriptor of the class being modifiedopName
- Operation nameopNameAndDesc
- 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 prefetchingprefetchingClassID
- 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 adaptermethodDescriptor
- Method being modified descriptorthisclassDesc
- Descriptor of the class being modifiedopName
- Operation nameopNameAndDesc
- 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 setterupdate
- Indicates whether to update or not
-
onMethodExit
protected void onMethodExit(int opcode)
- Overrides:
onMethodExit
in classorg.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 adaptermethodDescriptor
- Method being modified descriptorthisclassDesc
- Descriptor of the class being modifiedopNameAndDesc
- 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 classorg.objectweb.asm.commons.AdviceAdapter
-
visitMaxs
public void visitMaxs(int maxStack, int maxLocals)
- Overrides:
visitMaxs
in classorg.objectweb.asm.commons.LocalVariablesSorter
-
-