Package org.bonitasoft.engine.commons
Class ClassReflector
- java.lang.Object
-
- org.bonitasoft.engine.commons.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
-
-
-
Method Detail
-
getAccessibleGetters
public static java.util.Collection<java.lang.reflect.Method> getAccessibleGetters(java.lang.Class<?> clazz)
-
getClass
public static <T> java.lang.Class<T> getClass(java.lang.Class<T> clazz, java.lang.String className) throws SReflectException
- Throws:
SReflectException
-
getObject
public static <T> T getObject(java.lang.Class<T> clazz, java.lang.String className) throws SReflectException
- Throws:
SReflectException
-
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
-
invokeGetter
public static <T> T invokeGetter(java.lang.Object entity, java.lang.String getterName) 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 setterfieldName
-parameterValue
-- Throws:
SReflectException
-
clearCache
public static void clearCache()
-
getCacheSize
public static int getCacheSize()
-
-