Class ProxettaAsmUtil


  • public class ProxettaAsmUtil
    extends java.lang.Object
    Various ASM utilities used by Proxetta. For more generic ASM tools, see AsmUtil.
    • Constructor Detail

      • ProxettaAsmUtil

        public ProxettaAsmUtil()
    • Method Detail

      • resolveJavaVersion

        public static int resolveJavaVersion​(int version)
        Resolves Java version from current version.
      • pushInt

        public static void pushInt​(MethodVisitor mv,
                                   int value)
        Pushes int value in an optimal way.
      • makePrivateFinalAccess

        public static int makePrivateFinalAccess​(int access)
        Changes method access to private and final.
      • checkArgumentIndex

        public static void checkArgumentIndex​(MethodInfo methodInfo,
                                              int argIndex)
        Validates argument index.
      • adviceFieldName

        public static java.lang.String adviceFieldName​(java.lang.String name,
                                                       int index)
        Builds advice field name.
      • adviceMethodName

        public static java.lang.String adviceMethodName​(java.lang.String name,
                                                        int index)
        Builds advice method name.
      • loadMethodArgumentClass

        public static void loadMethodArgumentClass​(MethodVisitor mv,
                                                   MethodInfo methodInfo,
                                                   int index)
      • loadClass

        public static void loadClass​(MethodVisitor mv,
                                     int type,
                                     java.lang.String typeName)
      • loadSpecialMethodArguments

        public static void loadSpecialMethodArguments​(MethodVisitor mv,
                                                      MethodInfo methodInfo)
        Loads all method arguments before INVOKESPECIAL call.
      • loadStaticMethodArguments

        public static void loadStaticMethodArguments​(MethodVisitor mv,
                                                     MethodInfo methodInfo)
        Loads all method arguments before INVOKESTATIC call.
      • loadVirtualMethodArguments

        public static void loadVirtualMethodArguments​(MethodVisitor mv,
                                                      MethodInfo methodInfo)
        Loads all method arguments before INVOKEVIRTUAL call.
      • loadMethodArgument

        public static void loadMethodArgument​(MethodVisitor mv,
                                              MethodInfo methodInfo,
                                              int index)
        Loads one argument. Index is 1-based. No conversion occurs.
      • loadMethodArgumentAsObject

        public static void loadMethodArgumentAsObject​(MethodVisitor mv,
                                                      MethodInfo methodInfo,
                                                      int index)
      • storeMethodArgument

        public static void storeMethodArgument​(MethodVisitor mv,
                                               MethodInfo methodInfo,
                                               int index)
        Stores one argument. Index is 1-based. No conversion occurs.
      • isStoreOpcode

        public static boolean isStoreOpcode​(int opcode)
        Returns true if opcode is xSTORE.
      • storeMethodArgumentFromObject

        public static void storeMethodArgumentFromObject​(MethodVisitor mv,
                                                         MethodInfo methodInfo,
                                                         int index)
      • storeValue

        public static void storeValue​(MethodVisitor mv,
                                      int offset,
                                      int type)
      • visitReturn

        public static void visitReturn​(MethodVisitor mv,
                                       MethodInfo methodInfo,
                                       boolean isLast)
        Visits return opcodes.
      • prepareReturnValue

        public static void prepareReturnValue​(MethodVisitor mv,
                                              MethodInfo methodInfo,
                                              int varOffset)
        Prepares return value.
      • createMethodSignaturesKey

        public static java.lang.String createMethodSignaturesKey​(int access,
                                                                 java.lang.String methodName,
                                                                 java.lang.String description,
                                                                 java.lang.String className)
        Creates unique key for method signatures map.
      • visitElementValue

        public static void visitElementValue​(MethodVisitor mv,
                                             java.lang.Object elementValue,
                                             boolean boxPrimitives)
        Visits non-array element value for annotation. Returns true if value is successfully processed.
      • newArray

        public static void newArray​(MethodVisitor mv,
                                    java.lang.Class componentType)
        Creates new array.
      • storeIntoArray

        public static void storeIntoArray​(MethodVisitor mv,
                                          java.lang.Class componentType)
        Stores element on stack into an array.
      • isInvokeMethod

        public static boolean isInvokeMethod​(java.lang.String name,
                                             java.lang.String desc)
      • isArgumentsCountMethod

        public static boolean isArgumentsCountMethod​(java.lang.String name,
                                                     java.lang.String desc)
      • isArgumentTypeMethod

        public static boolean isArgumentTypeMethod​(java.lang.String name,
                                                   java.lang.String desc)
      • isArgumentMethod

        public static boolean isArgumentMethod​(java.lang.String name,
                                               java.lang.String desc)
      • isSetArgumentMethod

        public static boolean isSetArgumentMethod​(java.lang.String name,
                                                  java.lang.String desc)
      • isCreateArgumentsArrayMethod

        public static boolean isCreateArgumentsArrayMethod​(java.lang.String name,
                                                           java.lang.String desc)
      • isCreateArgumentsClassArrayMethod

        public static boolean isCreateArgumentsClassArrayMethod​(java.lang.String name,
                                                                java.lang.String desc)
      • isReturnTypeMethod

        public static boolean isReturnTypeMethod​(java.lang.String name,
                                                 java.lang.String desc)
      • isTargetMethod

        public static boolean isTargetMethod​(java.lang.String name,
                                             java.lang.String desc)
      • isTargetClassMethod

        public static boolean isTargetClassMethod​(java.lang.String name,
                                                  java.lang.String desc)
      • isTargetMethodNameMethod

        public static boolean isTargetMethodNameMethod​(java.lang.String name,
                                                       java.lang.String desc)
      • isTargetMethodSignatureMethod

        public static boolean isTargetMethodSignatureMethod​(java.lang.String name,
                                                            java.lang.String desc)
      • isTargetMethodDescriptionMethod

        public static boolean isTargetMethodDescriptionMethod​(java.lang.String name,
                                                              java.lang.String desc)
      • isReturnValueMethod

        public static boolean isReturnValueMethod​(java.lang.String name,
                                                  java.lang.String desc)
      • isInfoMethod

        public static boolean isInfoMethod​(java.lang.String name,
                                           java.lang.String desc)
      • isTargetMethodAnnotationMethod

        public static boolean isTargetMethodAnnotationMethod​(java.lang.String name,
                                                             java.lang.String desc)
      • isTargetClassAnnotationMethod

        public static boolean isTargetClassAnnotationMethod​(java.lang.String name,
                                                            java.lang.String desc)