jodd.proxetta.asm
Class ProxettaAsmUtil

java.lang.Object
  extended by jodd.proxetta.asm.ProxettaAsmUtil

public class ProxettaAsmUtil
extends java.lang.Object

Various ASM utilities used by Proxetta.


Field Summary
static java.lang.String CLINIT
           
static java.lang.String DESC_VOID
           
static java.lang.String INIT
           
 
Constructor Summary
ProxettaAsmUtil()
           
 
Method Summary
static java.lang.String adviceFieldName(java.lang.String name, int index)
          Builds advice field name.
static java.lang.String adviceMethodName(java.lang.String name, int index)
          Builds advice method name.
static void checkArgumentIndex(MethodSignatureVisitor msign, int argIndex, java.lang.Class<? extends ProxyAdvice> advice)
          Validates argument index.
static java.lang.String createMethodSignaturesKey(int access, java.lang.String methodName, java.lang.String description, java.lang.String className)
          Creates unique key for mathod signatures map.
static boolean isArgumentMethod(java.lang.String name, java.lang.String desc)
           
static boolean isArgumentsCountMethod(java.lang.String name, java.lang.String desc)
           
static boolean isArgumentTypeMethod(java.lang.String name, java.lang.String desc)
           
static boolean isCreateArgumentsArrayMethod(java.lang.String name, java.lang.String desc)
           
static boolean isCreateArgumentsClassArrayMethod(java.lang.String name, java.lang.String desc)
           
static boolean isInvokeMethod(java.lang.String name, java.lang.String desc)
           
static boolean isPushDefaultResultValueMethod(java.lang.String name, java.lang.String desc)
           
static boolean isReturnTypeMethod(java.lang.String name, java.lang.String desc)
           
static boolean isSetArgumentMethod(java.lang.String name, java.lang.String desc)
           
static boolean isStoreOpcode(int opcode)
          Returns true if opcode is xSTORE.
static boolean isTargetClassMethod(java.lang.String name, java.lang.String desc)
           
static boolean isTargetMethod(java.lang.String name, java.lang.String desc)
           
static boolean isTargetMethodDescriptionMethod(java.lang.String name, java.lang.String desc)
           
static boolean isTargetMethodNameMethod(java.lang.String name, java.lang.String desc)
           
static boolean isTargetMethodSignatureMethod(java.lang.String name, java.lang.String desc)
           
static void loadClass(org.objectweb.asm.MethodVisitor mv, int type, java.lang.String typeName)
           
static void loadMethodArgument(org.objectweb.asm.MethodVisitor mv, MethodSignatureVisitor msign, int index)
          Loads one argument.
static void loadMethodArgumentAsObject(org.objectweb.asm.MethodVisitor mv, MethodSignatureVisitor msign, int index)
           
static void loadMethodArgumentClass(org.objectweb.asm.MethodVisitor mv, MethodSignatureVisitor msign, int index)
           
static void loadMethodArguments(org.objectweb.asm.MethodVisitor mv, MethodSignatureVisitor msign)
          Loads all method arguments before method call.
static void loadMethodReturnClass(org.objectweb.asm.MethodVisitor mv, MethodSignatureVisitor msign)
           
static int makeNonNative(int access)
          Removes native method access flag.
static int makePrivateFinalAccess(int access)
          Changes method access to private and final.
static void prepareReturnValue(org.objectweb.asm.MethodVisitor mv, MethodSignatureVisitor msign, int varOffset)
           
static void pushInt(org.objectweb.asm.MethodVisitor mv, int value)
          Pushes int value in an optimal way.
static void storeMethodArgument(org.objectweb.asm.MethodVisitor mv, MethodSignatureVisitor msign, int index)
          Stores one argument.
static void storeMethodArgumentFromObject(org.objectweb.asm.MethodVisitor mv, MethodSignatureVisitor msign, int index)
           
static void storeValue(org.objectweb.asm.MethodVisitor mv, int offset, int type)
           
static java.lang.String strtype(int type)
          Utility method that converts type to character.
static java.lang.String typedescToSignature(java.lang.String desc, jodd.mutable.MutableInteger from)
          Returns java-like signature of a bytecode-like description.
static java.lang.String typeref2Name(java.lang.String desc)
          Converts type reference to java-name.
static void visitReturn(org.objectweb.asm.MethodVisitor mv, MethodSignatureVisitor msign, boolean isLast)
           
static void visitReturn(org.objectweb.asm.MethodVisitor mv, MethodSignatureVisitor msign, boolean isLast, boolean returnDefault)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INIT

public static final java.lang.String INIT
See Also:
Constant Field Values

CLINIT

public static final java.lang.String CLINIT
See Also:
Constant Field Values

DESC_VOID

public static final java.lang.String DESC_VOID
See Also:
Constant Field Values
Constructor Detail

ProxettaAsmUtil

public ProxettaAsmUtil()
Method Detail

pushInt

public static void pushInt(org.objectweb.asm.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.


makeNonNative

public static int makeNonNative(int access)
Removes native method access flag.


checkArgumentIndex

public static void checkArgumentIndex(MethodSignatureVisitor msign,
                                      int argIndex,
                                      java.lang.Class<? extends ProxyAdvice> advice)
Validates argument index.


strtype

public static java.lang.String strtype(int type)
Utility method that converts type to character.


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(org.objectweb.asm.MethodVisitor mv,
                                           MethodSignatureVisitor msign,
                                           int index)

loadMethodReturnClass

public static void loadMethodReturnClass(org.objectweb.asm.MethodVisitor mv,
                                         MethodSignatureVisitor msign)

loadClass

public static void loadClass(org.objectweb.asm.MethodVisitor mv,
                             int type,
                             java.lang.String typeName)

loadMethodArguments

public static void loadMethodArguments(org.objectweb.asm.MethodVisitor mv,
                                       MethodSignatureVisitor msign)
Loads all method arguments before method call.


loadMethodArgument

public static void loadMethodArgument(org.objectweb.asm.MethodVisitor mv,
                                      MethodSignatureVisitor msign,
                                      int index)
Loads one argument. Index is 1-based. No conversion occurs.


loadMethodArgumentAsObject

public static void loadMethodArgumentAsObject(org.objectweb.asm.MethodVisitor mv,
                                              MethodSignatureVisitor msign,
                                              int index)

storeMethodArgument

public static void storeMethodArgument(org.objectweb.asm.MethodVisitor mv,
                                       MethodSignatureVisitor msign,
                                       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(org.objectweb.asm.MethodVisitor mv,
                                                 MethodSignatureVisitor msign,
                                                 int index)

storeValue

public static void storeValue(org.objectweb.asm.MethodVisitor mv,
                              int offset,
                              int type)

visitReturn

public static void visitReturn(org.objectweb.asm.MethodVisitor mv,
                               MethodSignatureVisitor msign,
                               boolean isLast)

visitReturn

public static void visitReturn(org.objectweb.asm.MethodVisitor mv,
                               MethodSignatureVisitor msign,
                               boolean isLast,
                               boolean returnDefault)

prepareReturnValue

public static void prepareReturnValue(org.objectweb.asm.MethodVisitor mv,
                                      MethodSignatureVisitor msign,
                                      int varOffset)

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 mathod signatures map.


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)

isPushDefaultResultValueMethod

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

typeref2Name

public static java.lang.String typeref2Name(java.lang.String desc)
Converts type reference to java-name.


typedescToSignature

public static java.lang.String typedescToSignature(java.lang.String desc,
                                                   jodd.mutable.MutableInteger from)
Returns java-like signature of a bytecode-like description. Only first description is parsed. The field signature represents the value of an argument to a function or the value of a variable. It is a series of bytes generated by the following grammar:
  ::= 
       ::= ||
        ::= B|C|D|F|I|J|S|Z
      ::= L;
       ::= [

 The meaning of the base types is as follows:
 B byte signed byte
 C char character
 D double double precision IEEE float
 F float single precision IEEE float
 I int integer
 J long long integer
 L; ... an object of the given class
 S short signed short
 Z boolean true or false
 [ ... array
 
This method converts this string into a Java type declaration such as String[].



Copyright © 2003-2011 Jodd Team