Package: org.codehaus.groovy.runtime.metaclass

## [Java] Class ThreadManagedMetaBeanProperty

- org.codehaus.groovy.runtime.metaclass.ThreadManagedMetaBeanProperty

-     public class ThreadManagedMetaBeanProperty
      extends MetaBeanProperty

  This MetaBeanProperty will create a pseudo property whose value is bound to an object using weak references. The values will go out of scope and be garbage collected when the object is collected In fact, this class should be called ExpandoProperty.

  Since:
    1.5

- - Inherited fields
    Fields inherited from class | Fields
    --- | ---
    `class MetaProperty` | `PROPERTY_SET_PREFIX, name, type`

  - ### Constructor Summary

    Constructors
    Constructor and description
    `ThreadManagedMetaBeanProperty(Class declaringClass, String name, Class type, Object iv)` Constructs a new ThreadManagedBeanProperty for the given arguments
    `ThreadManagedMetaBeanProperty(Class declaringClass, String name, Class type, Closure initialValueCreator)` Constructs a new ThreadManagedBeanProperty for the given arguments

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public MetaMethod` | `getGetter()` Returns the getter metamethod for this thread-managed property.
    `` | `public Object` | `getInitialValue()` Retrieves the initial value of the ThreadBound property
    `` | `public Object` | `getInitialValue(Object object)`
    `` | `public MetaMethod` | `getSetter()` Returns the setter metamethod for this thread-managed property.
    `` | `public void` | `setInitialValueCreator(Closure callable)` Closure responsible for creating the initial value of thread-managed bean properties

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class MetaBeanProperty` | `getField, getGetter, getModifiers, getProperty, getSetter, setField, setProperty`
    `class MetaProperty` | `getGetterName, getModifiers, getName, getProperty, getSetterName, getType, setProperty`

- - ### Constructor Detail

    - #### public ThreadManagedMetaBeanProperty(Class declaringClass, String name, Class type, Object iv)

      Constructs a new ThreadManagedBeanProperty for the given arguments

      Parameters:
        `declaringClass` - The class that declares the property
        `name` - The name of the property
        `type` - The type of the property
        `iv` - The properties initial value

    - #### public ThreadManagedMetaBeanProperty(Class declaringClass, String name, Class type, Closure initialValueCreator)

      Constructs a new ThreadManagedBeanProperty for the given arguments

      Parameters:
        `declaringClass` - The class that declares the property
        `name` - The name of the property
        `type` - The type of the property
        `initialValueCreator` - The closure responsible for creating the initial value

  - ### Method Detail

    - #### public MetaMethod getGetter()

      Returns the getter metamethod for this thread-managed property.

      Returns:
        the getter metamethod

    - #### public Object getInitialValue()

      Retrieves the initial value of the ThreadBound property

      Returns:
        The initial value

    - #### public Object getInitialValue(Object object)

    - #### public MetaMethod getSetter()

      Returns the setter metamethod for this thread-managed property.

      Returns:
        the setter metamethod

    - #### public void setInitialValueCreator(Closure callable)

      Closure responsible for creating the initial value of thread-managed bean properties

      Parameters:
        `callable` - The closure responsible for creating the initial value