Package: org.grails.core.util

## [Java] Class ClassPropertyFetcher

- org.grails.core.util.ClassPropertyFetcher

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

  Authors:
    Lari Hotari, Sagire Software Oy
    Graeme Rocher

- - ### Nested Class Summary

    Nested classes
    Modifiers | Name | Description
    --- | --- | ---
    `interface` | `ClassPropertyFetcher.ReferenceInstanceCallback` |

  - ### Constructor Summary

    Constructors
    Constructor and description
    `protected ClassPropertyFetcher (java.lang.Class<?> clazz, ClassPropertyFetcher.ReferenceInstanceCallback callback)`

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `static void` | `clearClassPropertyFetcherCache()`
    `` | `static ClassPropertyFetcher` | `forClass(java.lang.Class<?> c)`
    `` | `static ClassPropertyFetcher` | `forClass(java.lang.Class<?> c, ClassPropertyFetcher.ReferenceInstanceCallback callback)`
    `` | `java.beans.PropertyDescriptor[]` | `getPropertyDescriptors()`
    `` | `java.lang.Class<?>` | `getPropertyType(java.lang.String name)`
    `` | `java.lang.Class<?>` | `getPropertyType(java.lang.String name, boolean onlyInstanceProperties)`
    `` | `java.lang.Object` | `getPropertyValue(java.lang.String name)`
    `` | `java.lang.Object` | `getPropertyValue(java.lang.Object object, java.lang.String name)`
    `` | `java.lang.Object` | `getPropertyValue(java.lang.String name, boolean onlyInstanceProperties)`
    `<T>` | `T` | `getPropertyValue(java.lang.String name, java.lang.Class<T> c)`
    `` | `java.lang.Object` | `getReference()`
    `<T>` | `T` | `getStaticPropertyValue(java.lang.String name, java.lang.Class<T> c)`
    `` | `boolean` | `isReadableProperty(java.lang.String name)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class java.lang.Object` | `java.lang.Object#wait(long, int), java.lang.Object#wait(long), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()`

- - ### Constructor Detail

    - #### protected ClassPropertyFetcher(java.lang.Class<?> clazz, ClassPropertyFetcher.ReferenceInstanceCallback callback)

  - ### Method Detail

    - #### public static void clearClassPropertyFetcherCache()

    - #### public static ClassPropertyFetcher forClass(java.lang.Class<?> c)

    - #### public static ClassPropertyFetcher forClass(java.lang.Class<?> c, ClassPropertyFetcher.ReferenceInstanceCallback callback)

    - #### public java.beans.PropertyDescriptor[] getPropertyDescriptors()

    - #### public java.lang.Class<?> getPropertyType(java.lang.String name)

    - #### public java.lang.Class<?> getPropertyType(java.lang.String name, boolean onlyInstanceProperties)

    - #### public java.lang.Object getPropertyValue(java.lang.String name)

    - #### public java.lang.Object getPropertyValue(java.lang.Object object, java.lang.String name)

    - #### public java.lang.Object getPropertyValue(java.lang.String name, boolean onlyInstanceProperties)

    - #### <T> public T getPropertyValue(java.lang.String name, java.lang.Class<T> c)

    - #### public java.lang.Object getReference()

    - #### <T> public T getStaticPropertyValue(java.lang.String name, java.lang.Class<T> c)

    - #### public boolean isReadableProperty(java.lang.String name)