org.codehaus.groovy.grails.commons
Class ClassPropertyFetcher

java.lang.Object
  extended by org.codehaus.groovy.grails.commons.ClassPropertyFetcher

public class ClassPropertyFetcher
extends Object

Accesses class "properties": static fields, static getters, instance fields or instance getters Method and Field instances are cached for fast access

Author:
Lari Hotari, Sagire Software Oy, Graeme Rocher

Nested Class Summary
(package private) static class ClassPropertyFetcher.FieldReaderFetcher
           
(package private) static class ClassPropertyFetcher.GetterPropertyFetcher
           
(package private) static interface ClassPropertyFetcher.PropertyFetcher
           
static interface ClassPropertyFetcher.ReferenceInstanceCallback
           
 
Field Summary
(package private)  Map<String,ClassPropertyFetcher.PropertyFetcher> instanceFetchers
           
(package private)  Map<String,ClassPropertyFetcher.PropertyFetcher> staticFetchers
           
 
Constructor Summary
ClassPropertyFetcher(Class clazz, ClassPropertyFetcher.ReferenceInstanceCallback callback)
           
 
Method Summary
static void clearClassPropertyFetcherCache()
           
static ClassPropertyFetcher forClass(Class c)
           
static ClassPropertyFetcher forClass(Class c, ClassPropertyFetcher.ReferenceInstanceCallback callback)
           
 PropertyDescriptor[] getPropertyDescriptors()
           
 Class getPropertyType(String name)
           
 Class getPropertyType(String name, boolean onlyInstanceProperties)
           
 Object getPropertyValue(String name)
           
 Object getPropertyValue(String name, boolean onlyInstanceProperties)
           
<T> T
getPropertyValue(String name, Class<T> c)
           
 Object getReference()
           
<T> T
getStaticPropertyValue(String name, Class<T> c)
           
 boolean isReadableProperty(String name)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

staticFetchers

final Map<String,ClassPropertyFetcher.PropertyFetcher> staticFetchers

instanceFetchers

final Map<String,ClassPropertyFetcher.PropertyFetcher> instanceFetchers
Constructor Detail

ClassPropertyFetcher

ClassPropertyFetcher(Class clazz,
                     ClassPropertyFetcher.ReferenceInstanceCallback callback)
Method Detail

clearClassPropertyFetcherCache

public static void clearClassPropertyFetcherCache()

forClass

public static ClassPropertyFetcher forClass(Class c)

forClass

public static ClassPropertyFetcher forClass(Class c,
                                            ClassPropertyFetcher.ReferenceInstanceCallback callback)

getReference

public Object getReference()

getPropertyDescriptors

public PropertyDescriptor[] getPropertyDescriptors()

isReadableProperty

public boolean isReadableProperty(String name)

getPropertyValue

public Object getPropertyValue(String name)

getPropertyValue

public Object getPropertyValue(String name,
                               boolean onlyInstanceProperties)

getStaticPropertyValue

public <T> T getStaticPropertyValue(String name,
                                    Class<T> c)

getPropertyValue

public <T> T getPropertyValue(String name,
                              Class<T> c)

getPropertyType

public Class getPropertyType(String name)

getPropertyType

public Class getPropertyType(String name,
                             boolean onlyInstanceProperties)