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)