Class ClassReflector


  • public class ClassReflector
    extends java.lang.Object
    Author:
    Baptiste Mesta, Matthieu Chaffotte, Laurent Leseigneur
    • Constructor Summary

      Constructors 
      Constructor Description
      ClassReflector()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void clearCache()  
      static java.util.Collection<java.lang.reflect.Method> getAccessibleGetters​(java.lang.Class<?> clazz)  
      static int getCacheSize()  
      static <T> java.lang.Class<T> getClass​(java.lang.Class<T> clazz, java.lang.String className)  
      static java.lang.reflect.Method getCompatibleMethod​(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... paramTypes)  
      static <T> java.lang.reflect.Constructor<T> getConstructor​(java.lang.Class<T> clazz, java.lang.Class<?>... parameterTypes)  
      static <T> java.lang.reflect.Constructor<T> getConstructor​(java.lang.Class<T> clazz, java.lang.String className, java.lang.Class<?>... parameterTypes)  
      static java.lang.reflect.Method[] getDeclaredGetters​(java.lang.Class<?> clazz)  
      static java.lang.reflect.Method[] getDeclaredSetters​(java.lang.Class<?> clazz)  
      static java.lang.String getFieldName​(java.lang.String methodName)  
      static java.lang.reflect.Method getFirstMethodWithName​(java.lang.Class<?> clazz, java.lang.String methodName)  
      static java.lang.String getGetterName​(java.lang.String fieldName)  
      static java.lang.String getGetterName​(java.lang.String fieldName, java.lang.Class<?> fieldType)  
      static java.lang.reflect.Type getGetterReturnType​(java.lang.Class<?> classConnector, java.lang.String getterName)  
      static <T> T getInstance​(java.lang.reflect.Constructor<T> constructor, java.lang.Object... parameters)  
      static java.lang.reflect.Method getMethod​(java.lang.Class<?> clazz, java.lang.String methodName, java.lang.Class<?>... parameterTypes)  
      static java.lang.reflect.Method getMethodByName​(java.lang.Class<?> clazz, java.lang.String methodName)  
      static <T> T getObject​(java.lang.Class<T> clazz, java.lang.String className)  
      static <T> T invokeGetter​(java.lang.Object entity, java.lang.String getterName)  
      static java.lang.Object invokeMethod​(java.lang.Object entity, java.lang.String methodName, java.lang.Class<?>[] parameterType, java.lang.Object[] parameterValue)  
      static java.lang.Object invokeMethod​(java.lang.Object entity, java.lang.String methodName, java.lang.Class<?> parameterType, java.lang.Object parameterValue)  
      static java.lang.Object invokeMethodByName​(java.lang.Object entity, java.lang.String methodName, java.lang.Object... parameterValues)  
      static void invokeSetter​(java.lang.Object entity, java.lang.String setterName, java.lang.Class<?> parameterType, java.lang.Object parameterValue)  
      static boolean isAGetterMethod​(java.lang.reflect.Method method)  
      static boolean isASetterMethod​(java.lang.reflect.Method method)  
      static void setField​(java.lang.Object object, java.lang.String fieldName, java.lang.Object parameterValue)
      call a setter by reflection support pointed notation like pojo.child.name
      • Methods inherited from class java.lang.Object

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

      • ClassReflector

        public ClassReflector()
    • Method Detail

      • getAccessibleGetters

        public static java.util.Collection<java.lang.reflect.Method> getAccessibleGetters​(java.lang.Class<?> clazz)
      • getConstructor

        public static <T> java.lang.reflect.Constructor<T> getConstructor​(java.lang.Class<T> clazz,
                                                                          java.lang.Class<?>... parameterTypes)
                                                                   throws SReflectException
        Throws:
        SReflectException
      • getConstructor

        public static <T> java.lang.reflect.Constructor<T> getConstructor​(java.lang.Class<T> clazz,
                                                                          java.lang.String className,
                                                                          java.lang.Class<?>... parameterTypes)
                                                                   throws SReflectException
        Throws:
        SReflectException
      • getInstance

        public static <T> T getInstance​(java.lang.reflect.Constructor<T> constructor,
                                        java.lang.Object... parameters)
                                 throws SReflectException
        Throws:
        SReflectException
      • invokeSetter

        public static void invokeSetter​(java.lang.Object entity,
                                        java.lang.String setterName,
                                        java.lang.Class<?> parameterType,
                                        java.lang.Object parameterValue)
                                 throws SReflectException
        Throws:
        SReflectException
      • getMethod

        public static java.lang.reflect.Method getMethod​(java.lang.Class<?> clazz,
                                                         java.lang.String methodName,
                                                         java.lang.Class<?>... parameterTypes)
                                                  throws java.lang.NoSuchMethodException
        Throws:
        java.lang.NoSuchMethodException
      • getMethodByName

        public static java.lang.reflect.Method getMethodByName​(java.lang.Class<?> clazz,
                                                               java.lang.String methodName)
      • getFirstMethodWithName

        public static java.lang.reflect.Method getFirstMethodWithName​(java.lang.Class<?> clazz,
                                                                      java.lang.String methodName)
      • invokeMethodByName

        public static java.lang.Object invokeMethodByName​(java.lang.Object entity,
                                                          java.lang.String methodName,
                                                          java.lang.Object... parameterValues)
                                                   throws SReflectException
        Throws:
        SReflectException
      • invokeMethod

        public static java.lang.Object invokeMethod​(java.lang.Object entity,
                                                    java.lang.String methodName,
                                                    java.lang.Class<?> parameterType,
                                                    java.lang.Object parameterValue)
                                             throws java.lang.IllegalArgumentException,
                                                    java.lang.IllegalAccessException,
                                                    java.lang.reflect.InvocationTargetException,
                                                    java.lang.NoSuchMethodException
        Throws:
        java.lang.IllegalArgumentException
        java.lang.IllegalAccessException
        java.lang.reflect.InvocationTargetException
        java.lang.NoSuchMethodException
      • invokeMethod

        public static java.lang.Object invokeMethod​(java.lang.Object entity,
                                                    java.lang.String methodName,
                                                    java.lang.Class<?>[] parameterType,
                                                    java.lang.Object[] parameterValue)
                                             throws java.lang.IllegalArgumentException,
                                                    java.lang.IllegalAccessException,
                                                    java.lang.reflect.InvocationTargetException,
                                                    java.lang.NoSuchMethodException
        Throws:
        java.lang.IllegalArgumentException
        java.lang.IllegalAccessException
        java.lang.reflect.InvocationTargetException
        java.lang.NoSuchMethodException
      • getCompatibleMethod

        public static java.lang.reflect.Method getCompatibleMethod​(java.lang.Class<?> clazz,
                                                                   java.lang.String methodName,
                                                                   java.lang.Class<?>... paramTypes)
                                                            throws SReflectException
        Throws:
        SReflectException
      • getGetterReturnType

        public static java.lang.reflect.Type getGetterReturnType​(java.lang.Class<?> classConnector,
                                                                 java.lang.String getterName)
                                                          throws SReflectException
        Throws:
        SReflectException
      • getDeclaredSetters

        public static java.lang.reflect.Method[] getDeclaredSetters​(java.lang.Class<?> clazz)
      • getDeclaredGetters

        public static java.lang.reflect.Method[] getDeclaredGetters​(java.lang.Class<?> clazz)
      • isAGetterMethod

        public static boolean isAGetterMethod​(java.lang.reflect.Method method)
      • isASetterMethod

        public static boolean isASetterMethod​(java.lang.reflect.Method method)
      • getGetterName

        public static java.lang.String getGetterName​(java.lang.String fieldName)
      • getGetterName

        public static java.lang.String getGetterName​(java.lang.String fieldName,
                                                     java.lang.Class<?> fieldType)
      • getFieldName

        public static java.lang.String getFieldName​(java.lang.String methodName)
      • setField

        public static void setField​(java.lang.Object object,
                                    java.lang.String fieldName,
                                    java.lang.Object parameterValue)
                             throws SReflectException
        call a setter by reflection support pointed notation like pojo.child.name
        Parameters:
        object - object on with to call the setter
        fieldName -
        parameterValue -
        Throws:
        SReflectException
      • clearCache

        public static void clearCache()
      • getCacheSize

        public static int getCacheSize()