org.infinispan.util
Class ReflectionUtil

java.lang.Object
  extended by org.infinispan.util.ReflectionUtil

public class ReflectionUtil
extends Object

Basic reflection utilities to enhance what the JDK provides.

Since:
4.0
Author:
Manik Surtani (manik@jboss.org)

Constructor Summary
ReflectionUtil()
           
 
Method Summary
static Method findGetterForField(Class<?> c, String fieldName)
           
static List<Method> getAllMethods(Class c, Class<? extends Annotation> annotationType)
          Returns a set of Methods that contain the given method annotation.
static List<Field> getAnnotatedFields(Class<?> c, Class<? extends Annotation> annotationType)
           
static
<T extends Annotation>
T
getAnnotation(Class clazz, Class<T> ann)
          Inspects the class passed in for the class level annotation specified.
static List<Field> getFields(Class<?> c, Class<?> type)
           
static Object getValue(Object instance, String fieldName)
          Retrieves the value of a field of an object instance via reflection
static void invokeAccessibly(Object instance, Method method, Object[] parameters)
          Invokes a method using reflection, in an accessible manner (by using AccessibleObject.setAccessible(boolean)
static boolean isAnnotationPresent(Class clazz, Class<? extends Annotation> annotation)
          Tests whether an annotation is present on a class.
static void setValue(Object instance, String fieldName, Object value)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReflectionUtil

public ReflectionUtil()
Method Detail

getAllMethods

public static List<Method> getAllMethods(Class c,
                                         Class<? extends Annotation> annotationType)
Returns a set of Methods that contain the given method annotation. This includes all public, protected, package and private methods, as well as those of superclasses. Note that this does *not* include overridden methods.

Parameters:
c - class to inspect
annotationType - the type of annotation to look for
Returns:
List of Method objects that require injection.

getAnnotatedFields

public static List<Field> getAnnotatedFields(Class<?> c,
                                             Class<? extends Annotation> annotationType)

getFields

public static List<Field> getFields(Class<?> c,
                                    Class<?> type)

setValue

public static void setValue(Object instance,
                            String fieldName,
                            Object value)

invokeAccessibly

public static void invokeAccessibly(Object instance,
                                    Method method,
                                    Object[] parameters)
Invokes a method using reflection, in an accessible manner (by using AccessibleObject.setAccessible(boolean)

Parameters:
instance - instance on which to execute the method
method - method to execute
parameters - parameters

findGetterForField

public static Method findGetterForField(Class<?> c,
                                        String fieldName)
                                 throws NoSuchMethodException
Throws:
NoSuchMethodException

getValue

public static Object getValue(Object instance,
                              String fieldName)
Retrieves the value of a field of an object instance via reflection

Parameters:
instance - to inspect
fieldName - name of field to retrieve
Returns:
a value

getAnnotation

public static <T extends Annotation> T getAnnotation(Class clazz,
                                                     Class<T> ann)
Inspects the class passed in for the class level annotation specified. If the annotation is not available, this method recursively inspects superclasses and interfaces until it finds the required annotation.

Returns null if the annotation cannot be found.

Parameters:
clazz - class to inspect
ann - annotation to search for. Must be a class-level annotation.
Returns:
the annotation instance, or null

isAnnotationPresent

public static boolean isAnnotationPresent(Class clazz,
                                          Class<? extends Annotation> annotation)
Tests whether an annotation is present on a class. The order tested is:

Parameters:
clazz - class to test
annotation - annotation to look for
Returns:
true if the annotation is found, false otherwise

Google Analytics

Copyright © 2010 JBoss, a division of Red Hat. All Rights Reserved.