Class JavassistUtil
java.lang.Object
org.zeroturnaround.javarebel.integration.util.JavassistUtil
This util is for the happy path of CtClass methods if you don'l like it then don't use this method and catch your own exceptions
- Author:
- Andres Luuk
-
Nested Class Summary
Nested Classes -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidaddLocalForParameter(org.zeroturnaround.bundled.javassist.CtMethod ctMethod, int param, String name) Initializes a named local var from a param.static voidaddLocalForParameter(org.zeroturnaround.bundled.javassist.CtMethod ctMethod, String paramClass, String name) Initializes a named local var from a param.static booleancallsMethod(org.zeroturnaround.bundled.javassist.CtMethod ctMethod, String calledMethodName) static voidcreateMethodStopWatch(org.zeroturnaround.bundled.javassist.CtMethod method, String logPrefix, String stopWatchId) Wraps method in stopwatch.getArgumentTypes(String methodDescriptor) static org.zeroturnaround.bundled.javassist.CtConstructorgetDeclaredConstructor(org.zeroturnaround.bundled.javassist.ClassPool cp, String klazz, String... param) static org.zeroturnaround.bundled.javassist.CtConstructorgetDeclaredConstructor(org.zeroturnaround.bundled.javassist.CtClass ctClass, String... param) static org.zeroturnaround.bundled.javassist.CtFieldgetDeclaredField(org.zeroturnaround.bundled.javassist.CtClass ctClass, String fieldName) static org.zeroturnaround.bundled.javassist.CtMethodgetDeclaredMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName) Finds a declared method by name .static org.zeroturnaround.bundled.javassist.CtMethodgetDeclaredMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName, Class<?>... paramClasses) Finds a declared method by name and params.static org.zeroturnaround.bundled.javassist.CtMethodgetDeclaredMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName, String... paramClasses) Finds a declared method by name and params.static org.zeroturnaround.bundled.javassist.CtMethodgetDeclaredMethodByDescriptor(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName, String descriptorPrefix) Finds a declared method with the given name and descriptor prefix.static org.zeroturnaround.bundled.javassist.CtClassgetFirstExistingClass(org.zeroturnaround.bundled.javassist.ClassPool cp, String... classNames) Returns the first class out of the given ones that is found in the classpool ornullif none is found.static org.zeroturnaround.bundled.javassist.CtFieldgetFirstExistingField(org.zeroturnaround.bundled.javassist.CtClass ctClass, String... fieldNames) static org.zeroturnaround.bundled.javassist.CtMethodgetFirstExistingMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String... methodNames) static org.zeroturnaround.bundled.javassist.CtMethodgetFirstExistingMethod(org.zeroturnaround.bundled.javassist.CtMethod first, org.zeroturnaround.bundled.javassist.ClassPool cp, org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName, Class<?>... param) static org.zeroturnaround.bundled.javassist.CtMethodgetFirstExistingMethod(org.zeroturnaround.bundled.javassist.CtMethod first, org.zeroturnaround.bundled.javassist.ClassPool cp, org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName, String... param) static StringgetReturnTypeFromSignature(String signature) static booleanstatic booleanhasDeclaredConstructor(org.zeroturnaround.bundled.javassist.ClassPool cp, String klazz, String... param) static booleanhasDeclaredConstructor(org.zeroturnaround.bundled.javassist.CtClass ctClass, String... param) static booleanhasDeclaredField(org.zeroturnaround.bundled.javassist.ClassPool cp, String klazz, String fieldName) static booleanhasDeclaredField(org.zeroturnaround.bundled.javassist.CtClass ctClass, String fieldName) static booleanhasDeclaredMethod(org.zeroturnaround.bundled.javassist.ClassPool cp, String klazz, String methodName) static booleanhasDeclaredMethod(org.zeroturnaround.bundled.javassist.ClassPool cp, String klazz, String methodName, String[] param) static booleanhasDeclaredMethod(org.zeroturnaround.bundled.javassist.ClassPool cp, org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName, String[] param) static booleanhasDeclaredMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName) static booleanstatic booleanhasMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName, String methodDesc) static booleanhasMethodOnField(org.zeroturnaround.bundled.javassist.CtClass ctClass, String fieldName, String methodName, String... paramClasses) static booleanimplementsInterface(org.zeroturnaround.bundled.javassist.CtClass ctClass, String ifaceName) static voidimportSignatureUsedPackage(org.zeroturnaround.bundled.javassist.ClassPool cp, org.zeroturnaround.bundled.javassist.CtBehavior ctTarget) static voidimportUsedPackage(org.zeroturnaround.bundled.javassist.ClassPool cp, org.zeroturnaround.bundled.javassist.CtClass ctClass) static voidinit()static booleanisFieldVisible(org.zeroturnaround.bundled.javassist.CtClass user, String name) Checks if field with given name is visible from userstatic booleanisMethodVisible(org.zeroturnaround.bundled.javassist.CtClass caller, String name) Checks if method with given name is visible from callerstatic voidmakeFieldPublic(org.zeroturnaround.bundled.javassist.CtClass ctClass, String field) static voidmakeMethodSynthetic(org.zeroturnaround.bundled.javassist.CtMethod method) static voidremoveFinalModifer(org.zeroturnaround.bundled.javassist.CtClass ctClass, String field) static org.zeroturnaround.bundled.javassist.expr.ExprEditorstrictMethodCallReplacer(String methodName, String replaceStatement)
-
Constructor Details
-
JavassistUtil
public JavassistUtil()
-
-
Method Details
-
init
public static void init() -
hasClass
-
hasDeclaredMethod
public static boolean hasDeclaredMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName) -
hasDeclaredMethod
-
hasDeclaredMethod
-
hasDeclaredMethod
-
hasDeclaredConstructor
-
hasDeclaredConstructor
public static boolean hasDeclaredConstructor(org.zeroturnaround.bundled.javassist.CtClass ctClass, String... param) -
getDeclaredConstructor
public static org.zeroturnaround.bundled.javassist.CtConstructor getDeclaredConstructor(org.zeroturnaround.bundled.javassist.ClassPool cp, String klazz, String... param) - Returns:
- CtConstructor or null if not found
-
getDeclaredConstructor
public static org.zeroturnaround.bundled.javassist.CtConstructor getDeclaredConstructor(org.zeroturnaround.bundled.javassist.CtClass ctClass, String... param) - Returns:
- CtConstructor or null if not found
-
hasMethod
public static boolean hasMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName) -
hasMethod
-
getFirstExistingClass
public static org.zeroturnaround.bundled.javassist.CtClass getFirstExistingClass(org.zeroturnaround.bundled.javassist.ClassPool cp, String... classNames) Returns the first class out of the given ones that is found in the classpool ornullif none is found. -
getFirstExistingField
public static org.zeroturnaround.bundled.javassist.CtField getFirstExistingField(org.zeroturnaround.bundled.javassist.CtClass ctClass, String... fieldNames) -
getFirstExistingMethod
public static org.zeroturnaround.bundled.javassist.CtMethod getFirstExistingMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String... methodNames) -
getFirstExistingMethod
-
getFirstExistingMethod
-
hasDeclaredField
public static boolean hasDeclaredField(org.zeroturnaround.bundled.javassist.CtClass ctClass, String fieldName) -
hasDeclaredField
-
getDeclaredField
public static org.zeroturnaround.bundled.javassist.CtField getDeclaredField(org.zeroturnaround.bundled.javassist.CtClass ctClass, String fieldName) -
hasMethodOnField
-
implementsInterface
public static boolean implementsInterface(org.zeroturnaround.bundled.javassist.CtClass ctClass, String ifaceName) throws org.zeroturnaround.bundled.javassist.NotFoundException - Throws:
org.zeroturnaround.bundled.javassist.NotFoundException
-
getDeclaredMethod
public static org.zeroturnaround.bundled.javassist.CtMethod getDeclaredMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName, String... paramClasses) Finds a declared method by name and params.- Returns:
- CtMethod or null if method or parameter class not found
-
getDeclaredMethodByDescriptor
public static org.zeroturnaround.bundled.javassist.CtMethod getDeclaredMethodByDescriptor(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName, String descriptorPrefix) throws org.zeroturnaround.bundled.javassist.NotFoundException Finds a declared method with the given name and descriptor prefix.- Throws:
org.zeroturnaround.bundled.javassist.NotFoundException
-
getDeclaredMethod
public static org.zeroturnaround.bundled.javassist.CtMethod getDeclaredMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName) Finds a declared method by name .- Returns:
- CtMethod or null if method was not found
-
getDeclaredMethod
public static org.zeroturnaround.bundled.javassist.CtMethod getDeclaredMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName, Class<?>... paramClasses) Finds a declared method by name and params.- Returns:
- CtMethod or null if method or parameter class not found
-
strictMethodCallReplacer
-
isMethodVisible
public static boolean isMethodVisible(org.zeroturnaround.bundled.javassist.CtClass caller, String name) Checks if method with given name is visible from caller -
isFieldVisible
public static boolean isFieldVisible(org.zeroturnaround.bundled.javassist.CtClass user, String name) Checks if field with given name is visible from user -
removeFinalModifer
public static void removeFinalModifer(org.zeroturnaround.bundled.javassist.CtClass ctClass, String field) -
makeFieldPublic
public static void makeFieldPublic(org.zeroturnaround.bundled.javassist.CtClass ctClass, String field) -
makeMethodSynthetic
public static void makeMethodSynthetic(org.zeroturnaround.bundled.javassist.CtMethod method) -
addLocalForParameter
public static void addLocalForParameter(org.zeroturnaround.bundled.javassist.CtMethod ctMethod, int param, String name) throws org.zeroturnaround.bundled.javassist.NotFoundException, org.zeroturnaround.bundled.javassist.CannotCompileException Initializes a named local var from a param. Type is copied.- Parameters:
param- is 1-based as in javassist $1, $2..- Throws:
org.zeroturnaround.bundled.javassist.NotFoundExceptionorg.zeroturnaround.bundled.javassist.CannotCompileException
-
addLocalForParameter
public static void addLocalForParameter(org.zeroturnaround.bundled.javassist.CtMethod ctMethod, String paramClass, String name) throws org.zeroturnaround.bundled.javassist.NotFoundException, org.zeroturnaround.bundled.javassist.CannotCompileException Initializes a named local var from a param. Type is copied.- Parameters:
paramClass- the first parameter with that class is used as value- Throws:
org.zeroturnaround.bundled.javassist.NotFoundExceptionorg.zeroturnaround.bundled.javassist.CannotCompileException
-
createMethodStopWatch
public static void createMethodStopWatch(org.zeroturnaround.bundled.javassist.CtMethod method, String logPrefix, String stopWatchId) throws org.zeroturnaround.bundled.javassist.CannotCompileException, org.zeroturnaround.bundled.javassist.NotFoundException Wraps method in stopwatch.- Throws:
org.zeroturnaround.bundled.javassist.CannotCompileExceptionorg.zeroturnaround.bundled.javassist.NotFoundException
-
callsMethod
public static boolean callsMethod(org.zeroturnaround.bundled.javassist.CtMethod ctMethod, String calledMethodName) throws org.zeroturnaround.bundled.javassist.CannotCompileException - Throws:
org.zeroturnaround.bundled.javassist.CannotCompileException
-
importUsedPackage
public static void importUsedPackage(org.zeroturnaround.bundled.javassist.ClassPool cp, org.zeroturnaround.bundled.javassist.CtClass ctClass) -
importSignatureUsedPackage
public static void importSignatureUsedPackage(org.zeroturnaround.bundled.javassist.ClassPool cp, org.zeroturnaround.bundled.javassist.CtBehavior ctTarget) throws org.zeroturnaround.bundled.javassist.NotFoundException - Throws:
org.zeroturnaround.bundled.javassist.NotFoundException
-
getReturnTypeFromSignature
-
getArgumentTypes
-