Package org.apache.xbean.recipe
Class ReflectionUtil
- java.lang.Object
-
- org.apache.xbean.recipe.ReflectionUtil
-
public final class ReflectionUtil extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
ReflectionUtil.ConstructorFactory
static interface
ReflectionUtil.Factory
private static class
ReflectionUtil.ParameterLoader
static class
ReflectionUtil.StaticFactory
-
Constructor Summary
Constructors Modifier Constructor Description private
ReflectionUtil()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static java.util.List<java.lang.reflect.Field>
findAllFieldsByType(java.lang.Class typeClass, java.lang.Object propertyValue, java.util.Set<Option> options, PropertyEditorRegistry registry)
static java.util.List<java.lang.reflect.Method>
findAllSetters(java.lang.Class typeClass, java.lang.String propertyName, java.lang.Object propertyValue, java.util.Set<Option> options, PropertyEditorRegistry registry)
Finds all valid setters for the property.static java.util.List<java.lang.reflect.Method>
findAllSettersByType(java.lang.Class typeClass, java.lang.Object propertyValue, java.util.Set<Option> options, PropertyEditorRegistry registry)
static ReflectionUtil.ConstructorFactory
findConstructor(java.lang.Class typeClass, java.util.List<? extends java.lang.Class<?>> parameterTypes, java.util.Set<Option> options)
static ReflectionUtil.ConstructorFactory
findConstructor(java.lang.Class typeClass, java.util.List<java.lang.String> parameterNames, java.util.List<? extends java.lang.Class<?>> parameterTypes, java.util.Set<java.lang.String> availableProperties, java.util.Set<Option> options)
static java.lang.reflect.Field
findField(java.lang.Class typeClass, java.lang.String propertyName, java.lang.Object propertyValue, java.util.Set<Option> options, PropertyEditorRegistry registry)
static java.lang.reflect.Method
findGetter(java.lang.Class typeClass, java.lang.String propertyName, java.util.Set<Option> options)
static java.lang.reflect.Method
findInstanceFactory(java.lang.Class typeClass, java.lang.String factoryMethod, java.util.Set<Option> options)
static java.lang.reflect.Method
findSetter(java.lang.Class typeClass, java.lang.String propertyName, java.lang.Object propertyValue, java.util.Set<Option> options, PropertyEditorRegistry registry)
static ReflectionUtil.StaticFactory
findStaticFactory(java.lang.Class typeClass, java.lang.String factoryMethod, java.util.List<? extends java.lang.Class<?>> parameterTypes, java.util.Set<Option> options)
static ReflectionUtil.StaticFactory
findStaticFactory(java.lang.Class typeClass, java.lang.String factoryMethod, java.util.List<java.lang.String> parameterNames, java.util.List<? extends java.lang.Class<?>> parameterTypes, java.util.Set<java.lang.String> allProperties, java.util.Set<Option> options)
static java.util.List<java.lang.String>
getParameterNames(java.lang.reflect.Constructor<?> constructor)
static java.util.List<java.lang.String>
getParameterNames(java.lang.reflect.Method method)
private static boolean
isClassAvailable(java.lang.String className)
private static void
setAccessible(java.lang.reflect.AccessibleObject accessibleObject)
private static java.lang.String
toParameterList(java.lang.Class<?>[] parameterTypes)
private static java.lang.String
toParameterList(java.util.List<? extends java.lang.Class<?>> parameterTypes)
-
-
-
Method Detail
-
isClassAvailable
private static boolean isClassAvailable(java.lang.String className)
-
findField
public static java.lang.reflect.Field findField(java.lang.Class typeClass, java.lang.String propertyName, java.lang.Object propertyValue, java.util.Set<Option> options, PropertyEditorRegistry registry)
-
findGetter
public static java.lang.reflect.Method findGetter(java.lang.Class typeClass, java.lang.String propertyName, java.util.Set<Option> options)
-
findSetter
public static java.lang.reflect.Method findSetter(java.lang.Class typeClass, java.lang.String propertyName, java.lang.Object propertyValue, java.util.Set<Option> options, PropertyEditorRegistry registry)
-
findAllSetters
public static java.util.List<java.lang.reflect.Method> findAllSetters(java.lang.Class typeClass, java.lang.String propertyName, java.lang.Object propertyValue, java.util.Set<Option> options, PropertyEditorRegistry registry)
Finds all valid setters for the property. Due to automatic type conversion there may be more than one possible setter that could be used to set the property. The setters that do not require type converstion will be a the head of the returned list of setters.- Parameters:
typeClass
- the class to search for setterspropertyName
- the name of the propertypropertyValue
- the value that must be settable either directly or after conversionoptions
- controls which setters are considered valid- Returns:
- the valid setters; never null or empty
-
findAllFieldsByType
public static java.util.List<java.lang.reflect.Field> findAllFieldsByType(java.lang.Class typeClass, java.lang.Object propertyValue, java.util.Set<Option> options, PropertyEditorRegistry registry)
-
findAllSettersByType
public static java.util.List<java.lang.reflect.Method> findAllSettersByType(java.lang.Class typeClass, java.lang.Object propertyValue, java.util.Set<Option> options, PropertyEditorRegistry registry)
-
findConstructor
public static ReflectionUtil.ConstructorFactory findConstructor(java.lang.Class typeClass, java.util.List<? extends java.lang.Class<?>> parameterTypes, java.util.Set<Option> options)
-
findConstructor
public static ReflectionUtil.ConstructorFactory findConstructor(java.lang.Class typeClass, java.util.List<java.lang.String> parameterNames, java.util.List<? extends java.lang.Class<?>> parameterTypes, java.util.Set<java.lang.String> availableProperties, java.util.Set<Option> options)
-
findStaticFactory
public static ReflectionUtil.StaticFactory findStaticFactory(java.lang.Class typeClass, java.lang.String factoryMethod, java.util.List<? extends java.lang.Class<?>> parameterTypes, java.util.Set<Option> options)
-
findStaticFactory
public static ReflectionUtil.StaticFactory findStaticFactory(java.lang.Class typeClass, java.lang.String factoryMethod, java.util.List<java.lang.String> parameterNames, java.util.List<? extends java.lang.Class<?>> parameterTypes, java.util.Set<java.lang.String> allProperties, java.util.Set<Option> options)
-
findInstanceFactory
public static java.lang.reflect.Method findInstanceFactory(java.lang.Class typeClass, java.lang.String factoryMethod, java.util.Set<Option> options)
-
getParameterNames
public static java.util.List<java.lang.String> getParameterNames(java.lang.reflect.Constructor<?> constructor)
-
getParameterNames
public static java.util.List<java.lang.String> getParameterNames(java.lang.reflect.Method method)
-
setAccessible
private static void setAccessible(java.lang.reflect.AccessibleObject accessibleObject)
-
toParameterList
private static java.lang.String toParameterList(java.lang.Class<?>[] parameterTypes)
-
toParameterList
private static java.lang.String toParameterList(java.util.List<? extends java.lang.Class<?>> parameterTypes)
-
-