Apache CXF API

org.apache.cxf.common.util
Class ReflectionUtil

java.lang.Object
  extended by org.apache.cxf.common.util.ReflectionUtil

public final class ReflectionUtil
extends Object


Method Summary
static
<T> T
accessDeclaredField(Field f, Object o, Class<T> responseClass)
           
static
<T> T
accessDeclaredField(String fieldName, Class<?> cls, Object o, Class<T> responseClass)
           
static
<T extends Annotation>
T
getAnnotationForMethodOrContainingClass(Method m, Class<T> annotationType)
          Look for a specified annotation on a method.
static
<T> Constructor<T>
getConstructor(Class<T> cls, Class<?>... args)
           
static
<T> Constructor<T>
getDeclaredConstructor(Class<T> cls, Class<?>... args)
           
static
<T> Constructor<T>[]
getDeclaredConstructors(Class<T> cls)
           
static Field getDeclaredField(Class<?> cls, String name)
           
static Field[] getDeclaredFields(Class<?> cls)
           
static Method getDeclaredMethod(Class<?> clazz, String name, Class<?>... parameterTypes)
           
static Method[] getDeclaredMethods(Class<?> cls)
           
static PropertyDescriptor[] getPropertyDescriptorsAvoidSunBug(Class<?> refClass, BeanInfo beanInfo, Class<?> beanClass, PropertyDescriptor[] propertyDescriptors)
          create own array of property descriptors to:
static
<T extends AccessibleObject>
T
setAccessible(T o)
           
static
<T extends AccessibleObject>
T
setAccessible(T o, boolean b)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

accessDeclaredField

public static <T> T accessDeclaredField(Field f,
                                        Object o,
                                        Class<T> responseClass)

accessDeclaredField

public static <T> T accessDeclaredField(String fieldName,
                                        Class<?> cls,
                                        Object o,
                                        Class<T> responseClass)

getDeclaredField

public static Field getDeclaredField(Class<?> cls,
                                     String name)

getDeclaredConstructor

public static <T> Constructor<T> getDeclaredConstructor(Class<T> cls,
                                                        Class<?>... args)

getConstructor

public static <T> Constructor<T> getConstructor(Class<T> cls,
                                                Class<?>... args)

getDeclaredConstructors

public static <T> Constructor<T>[] getDeclaredConstructors(Class<T> cls)

getDeclaredMethods

public static Method[] getDeclaredMethods(Class<?> cls)

getDeclaredMethod

public static Method getDeclaredMethod(Class<?> clazz,
                                       String name,
                                       Class<?>... parameterTypes)
                                throws NoSuchMethodException
Throws:
NoSuchMethodException

getDeclaredFields

public static Field[] getDeclaredFields(Class<?> cls)

setAccessible

public static <T extends AccessibleObject> T setAccessible(T o)

setAccessible

public static <T extends AccessibleObject> T setAccessible(T o,
                                                           boolean b)

getPropertyDescriptorsAvoidSunBug

public static PropertyDescriptor[] getPropertyDescriptorsAvoidSunBug(Class<?> refClass,
                                                                     BeanInfo beanInfo,
                                                                     Class<?> beanClass,
                                                                     PropertyDescriptor[] propertyDescriptors)
create own array of property descriptors to:
  - prevent memory leaks by Introspector's cache
  - get correct type for generic properties from superclass
     that are limited to a specific type in beanClass
    see http://bugs.sun.com/view_bug.do?bug_id=6528714
   we cannot use BeanUtils.getPropertyDescriptors because of issue SPR-6063
   

Parameters:
refClass - calling class for class loading.
beanInfo - Bean in question
beanClass - class for bean in question
propertyDescriptors - raw descriptors

getAnnotationForMethodOrContainingClass

public static <T extends Annotation> T getAnnotationForMethodOrContainingClass(Method m,
                                                                               Class<T> annotationType)
Look for a specified annotation on a method. If there, return it. If not, search it's containing class. Assume that the annotation is marked @Inherited.

Parameters:
m - method to examine
annotationType - the annotation type to look for.

Apache CXF API

Apache CXF