org.codehaus.groovy.runtime.metaclass

## Class ThreadManagedMetaBeanProperty

- java.lang.Object
- - groovy.lang.MetaProperty
  - - groovy.lang.MetaBeanProperty
    - - 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 the object is collected In fact, this class should be called ExpandoProperty.
  Since:
    1.5
  Author:
    Graeme Rocher, Alex Tkachman

- - ### Field Summary

    - ### Fields inherited from class groovy.lang.MetaProperty

      `name, PROPERTY_SET_PREFIX, type`

  - ### Constructor Summary

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

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `MetaMethod` | `getGetter()` Get the getter method.
    `java.lang.Object` | `getInitialValue()` Retrieves the initial value of the ThreadBound property
    `java.lang.Object` | `getInitialValue(java.lang.Object object)`
    `MetaMethod` | `getSetter()` Get the setter method.
    `void` | `setInitialValueCreator(Closure callable)` Closure responsible for creating the initial value of thread-managed bean properties

    - ### Methods inherited from class groovy.lang.MetaBeanProperty

      `getField, getModifiers, getProperty, setField, setProperty`

    - ### Methods inherited from class groovy.lang.MetaProperty

      `getGetterName, getName, getSetterName, getType`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ThreadManagedMetaBeanProperty

          public ThreadManagedMetaBeanProperty(java.lang.Class declaringClass,
                                               java.lang.String name,
                                               java.lang.Class type,
                                               java.lang.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

    - #### ThreadManagedMetaBeanProperty

          public ThreadManagedMetaBeanProperty(java.lang.Class declaringClass,
                                               java.lang.String name,
                                               java.lang.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

    - #### getInitialValue

          public java.lang.Object getInitialValue()

      Retrieves the initial value of the ThreadBound property
      Returns:
        The initial value

    - #### getInitialValue

          public java.lang.Object getInitialValue(java.lang.Object object)

    - #### setInitialValueCreator

          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

    - #### getGetter

          public MetaMethod getGetter()

      Description copied from class: `MetaBeanProperty`
      Get the getter method.
      Overrides:
        `getGetter` in class `MetaBeanProperty`
      Returns:
        the getter method for this property.

    - #### getSetter

          public MetaMethod getSetter()

      Description copied from class: `MetaBeanProperty`
      Get the setter method.
      Overrides:
        `getSetter` in class `MetaBeanProperty`
      Returns:
        the setter method for this property.