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 class 
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    addLocalForParameter(org.zeroturnaround.bundled.javassist.CtMethod ctMethod, int param, String name)
    Initializes a named local var from a param.
    static void
    addLocalForParameter(org.zeroturnaround.bundled.javassist.CtMethod ctMethod, String paramClass, String name)
    Initializes a named local var from a param.
    static boolean
    callsMethod(org.zeroturnaround.bundled.javassist.CtMethod ctMethod, String calledMethodName)
     
    static void
    createMethodStopWatch(org.zeroturnaround.bundled.javassist.CtMethod method, String logPrefix, String stopWatchId)
    Wraps method in stopwatch.
    static List<String>
    getArgumentTypes(String methodDescriptor)
     
    static org.zeroturnaround.bundled.javassist.CtConstructor
    getDeclaredConstructor(org.zeroturnaround.bundled.javassist.ClassPool cp, String klazz, String... param)
     
    static org.zeroturnaround.bundled.javassist.CtConstructor
    getDeclaredConstructor(org.zeroturnaround.bundled.javassist.CtClass ctClass, String... param)
     
    static org.zeroturnaround.bundled.javassist.CtField
    getDeclaredField(org.zeroturnaround.bundled.javassist.CtClass ctClass, String fieldName)
     
    static org.zeroturnaround.bundled.javassist.CtMethod
    getDeclaredMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName)
    Finds a declared method by name .
    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.
    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.
    static org.zeroturnaround.bundled.javassist.CtMethod
    getDeclaredMethodByDescriptor(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.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 or null if none is found.
    static org.zeroturnaround.bundled.javassist.CtField
    getFirstExistingField(org.zeroturnaround.bundled.javassist.CtClass ctClass, String... fieldNames)
     
    static org.zeroturnaround.bundled.javassist.CtMethod
    getFirstExistingMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String... methodNames)
     
    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)
     
    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)
     
    static String
     
    static boolean
    hasClass(org.zeroturnaround.bundled.javassist.ClassPool cp, String className)
     
    static boolean
    hasDeclaredConstructor(org.zeroturnaround.bundled.javassist.ClassPool cp, String klazz, String... param)
     
    static boolean
    hasDeclaredConstructor(org.zeroturnaround.bundled.javassist.CtClass ctClass, String... param)
     
    static boolean
    hasDeclaredField(org.zeroturnaround.bundled.javassist.ClassPool cp, String klazz, String fieldName)
     
    static boolean
    hasDeclaredField(org.zeroturnaround.bundled.javassist.CtClass ctClass, String fieldName)
     
    static boolean
    hasDeclaredMethod(org.zeroturnaround.bundled.javassist.ClassPool cp, String klazz, String methodName)
     
    static boolean
    hasDeclaredMethod(org.zeroturnaround.bundled.javassist.ClassPool cp, String klazz, String methodName, String[] param)
     
    static boolean
    hasDeclaredMethod(org.zeroturnaround.bundled.javassist.ClassPool cp, org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName, String[] param)
     
    static boolean
    hasDeclaredMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName)
     
    static boolean
    hasMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName)
     
    static boolean
    hasMethod(org.zeroturnaround.bundled.javassist.CtClass ctClass, String methodName, String methodDesc)
     
    static boolean
    hasMethodOnField(org.zeroturnaround.bundled.javassist.CtClass ctClass, String fieldName, String methodName, String... paramClasses)
     
    static boolean
    implementsInterface(org.zeroturnaround.bundled.javassist.CtClass ctClass, String ifaceName)
     
    static void
    importSignatureUsedPackage(org.zeroturnaround.bundled.javassist.ClassPool cp, org.zeroturnaround.bundled.javassist.CtBehavior ctTarget)
     
    static void
    importUsedPackage(org.zeroturnaround.bundled.javassist.ClassPool cp, org.zeroturnaround.bundled.javassist.CtClass ctClass)
     
    static void
     
    static boolean
    isFieldVisible(org.zeroturnaround.bundled.javassist.CtClass user, String name)
    Checks if field with given name is visible from user
    static boolean
    isMethodVisible(org.zeroturnaround.bundled.javassist.CtClass caller, String name)
    Checks if method with given name is visible from caller
    static void
    makeFieldPublic(org.zeroturnaround.bundled.javassist.CtClass ctClass, String field)
     
    static void
    makeMethodSynthetic(org.zeroturnaround.bundled.javassist.CtMethod method)
     
    static void
    removeFinalModifer(org.zeroturnaround.bundled.javassist.CtClass ctClass, String field)
     
    static org.zeroturnaround.bundled.javassist.expr.ExprEditor
    strictMethodCallReplacer(String methodName, String replaceStatement)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • JavassistUtil

      public JavassistUtil()
  • Method Details

    • 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)
    • 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

      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 or null if 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.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

      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)
    • 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.NotFoundException
      org.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.NotFoundException
      org.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.CannotCompileException
      org.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

      public static String getReturnTypeFromSignature(String signature)
    • getArgumentTypes

      public static List<String> getArgumentTypes(String methodDescriptor)