Class JavassistUtil
- java.lang.Object
-
- org.zeroturnaround.javarebel.integration.util.JavassistUtil
-
public final class JavassistUtil extends Object
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 Modifier and Type Class Description static classJavassistUtil.MethodCallReplaceEditor
-
Constructor Summary
Constructors Constructor Description JavassistUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static voidaddLocalForParameter(org.zeroturnaround.bundled.javassist.CtMethod ctMethod, int param, 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.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 booleanhasClass(org.zeroturnaround.bundled.javassist.ClassPool cp, String className)static booleanhasDeclaredConstructor(org.zeroturnaround.bundled.javassist.ClassPool cp, String klazz, 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 booleanhasMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName)static 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 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 voidremoveFinalModifer(org.zeroturnaround.bundled.javassist.CtClass ctClass, String field)static org.zeroturnaround.bundled.javassist.expr.ExprEditorstrictMethodCallReplacer(String methodName, String replaceStatement)
-
-
-
Method Detail
-
init
public static void init()
-
hasClass
public static boolean hasClass(org.zeroturnaround.bundled.javassist.ClassPool cp, String className)
-
hasDeclaredMethod
public static boolean hasDeclaredMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName)
-
hasDeclaredMethod
public static boolean hasDeclaredMethod(org.zeroturnaround.bundled.javassist.ClassPool cp, org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName, String[] param)
-
hasDeclaredMethod
public static boolean hasDeclaredMethod(org.zeroturnaround.bundled.javassist.ClassPool cp, String klazz, String methodName)
-
hasDeclaredMethod
public static boolean hasDeclaredMethod(org.zeroturnaround.bundled.javassist.ClassPool cp, String klazz, String methodName, String[] param)
-
hasDeclaredConstructor
public static boolean hasDeclaredConstructor(org.zeroturnaround.bundled.javassist.ClassPool cp, String klazz, 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
public static boolean hasMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName, String methodDesc)
-
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
public static org.zeroturnaround.bundled.javassist.CtMethod getFirstExistingMethod(org.zeroturnaround.bundled.javassist.CtMethod first, org.zeroturnaround.bundled.javassist.ClassPool cp, org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName, Class<?>... param)
-
getFirstExistingMethod
public static org.zeroturnaround.bundled.javassist.CtMethod getFirstExistingMethod(org.zeroturnaround.bundled.javassist.CtMethod first, org.zeroturnaround.bundled.javassist.ClassPool cp, org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName, String... param)
-
hasDeclaredField
public static boolean hasDeclaredField(org.zeroturnaround.bundled.javassist.CtClass ctClass, String fieldName)
-
hasDeclaredField
public static boolean hasDeclaredField(org.zeroturnaround.bundled.javassist.ClassPool cp, String klazz, String fieldName)
-
getDeclaredField
public static org.zeroturnaround.bundled.javassist.CtField getDeclaredField(org.zeroturnaround.bundled.javassist.CtClass ctClass, String fieldName)
-
hasMethodOnField
public static boolean hasMethodOnField(org.zeroturnaround.bundled.javassist.CtClass ctClass, String fieldName, String methodName, String... paramClasses)
-
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.NotFoundExceptionFinds 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
public static org.zeroturnaround.bundled.javassist.expr.ExprEditor strictMethodCallReplacer(String methodName, String replaceStatement)
-
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)
-
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.CannotCompileExceptionInitializes 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
-
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.NotFoundExceptionWraps 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
-
-