Package jodd.proxetta.asm
Class ProxettaAsmUtil
- java.lang.Object
-
- jodd.proxetta.asm.ProxettaAsmUtil
-
public class ProxettaAsmUtil extends java.lang.Object
-
-
Constructor Summary
Constructors Constructor Description ProxettaAsmUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description 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
castToReturnType(MethodVisitor mv, MethodInfo methodInfo)
static void
checkArgumentIndex(MethodInfo methodInfo, int argIndex)
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 method 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
isInfoMethod(java.lang.String name, java.lang.String desc)
static boolean
isInvokeMethod(java.lang.String name, java.lang.String desc)
static boolean
isReturnTypeMethod(java.lang.String name, java.lang.String desc)
static boolean
isReturnValueMethod(java.lang.String name, java.lang.String desc)
static boolean
isSetArgumentMethod(java.lang.String name, java.lang.String desc)
static boolean
isStoreOpcode(int opcode)
Returnstrue
if opcode is xSTORE.static boolean
isTargetClassAnnotationMethod(java.lang.String name, java.lang.String desc)
static boolean
isTargetClassMethod(java.lang.String name, java.lang.String desc)
static boolean
isTargetMethod(java.lang.String name, java.lang.String desc)
static boolean
isTargetMethodAnnotationMethod(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(MethodVisitor mv, int type, java.lang.String typeName)
static void
loadMethodArgument(MethodVisitor mv, MethodInfo methodInfo, int index)
Loads one argument.static void
loadMethodArgumentAsObject(MethodVisitor mv, MethodInfo methodInfo, int index)
static void
loadMethodArgumentClass(MethodVisitor mv, MethodInfo methodInfo, int index)
static void
loadSpecialMethodArguments(MethodVisitor mv, MethodInfo methodInfo)
Loads all method arguments before INVOKESPECIAL call.static void
loadStaticMethodArguments(MethodVisitor mv, MethodInfo methodInfo)
Loads all method arguments before INVOKESTATIC call.static void
loadVirtualMethodArguments(MethodVisitor mv, MethodInfo methodInfo)
Loads all method arguments before INVOKEVIRTUAL call.static int
makePrivateFinalAccess(int access)
Changes method access to private and final.static void
newArray(MethodVisitor mv, java.lang.Class componentType)
Creates new array.static void
prepareReturnValue(MethodVisitor mv, MethodInfo methodInfo, int varOffset)
Prepares return value.static void
pushInt(MethodVisitor mv, int value)
Pushes int value in an optimal way.static int
resolveJavaVersion(int version)
Resolves Java version from current version.static void
storeIntoArray(MethodVisitor mv, java.lang.Class componentType)
Stores element on stack into an array.static void
storeMethodArgument(MethodVisitor mv, MethodInfo methodInfo, int index)
Stores one argument.static void
storeMethodArgumentFromObject(MethodVisitor mv, MethodInfo methodInfo, int index)
static void
storeValue(MethodVisitor mv, int offset, int type)
static void
visitElementValue(MethodVisitor mv, java.lang.Object elementValue, boolean boxPrimitives)
Visits non-array element value for annotation.static void
visitReturn(MethodVisitor mv, MethodInfo methodInfo, boolean isLast)
Visits return opcodes.
-
-
-
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
-
-
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)
Returnstrue
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.
-
castToReturnType
public static void castToReturnType(MethodVisitor mv, MethodInfo methodInfo)
-
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. Returnstrue
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)
-
-