Package org.codehaus.groovy.runtime.metaclass

# Class ThreadManagedMetaBeanProperty

java.lang.Object
groovy.lang.MetaProperty
groovy.lang.MetaBeanProperty
org.codehaus.groovy.runtime.metaclass.ThreadManagedMetaBeanProperty

All Implemented Interfaces:
  `MetaMember`

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

- ## Field Summary

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

  `name, PROPERTY_SET_PREFIX, type`

- ## Constructor Summary

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

- ## Method Summary

  Modifier and Type
  Method
  Description
  `MetaMethod`
  `getGetter()`
  Returns the getter metamethod for this thread-managed property.
  `Object`
  `getInitialValue()`
  Retrieves the initial value of the ThreadBound property
  `Object`
  `getInitialValue(Object object)`
  `MetaMethod`
  `getSetter()`
  Returns the setter metamethod for this thread-managed property.
  `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`

  ### Methods inherited from interface groovy.lang.MetaMember

  `isFinal, isPackagePrivate, isPrivate, isProtected, isPublic, isStatic, isSynthetic`

- ## Constructor Details

  - ### ThreadManagedMetaBeanProperty

    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

  - ### ThreadManagedMetaBeanProperty

    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 Details

  - ### getInitialValue

    public Object getInitialValue()
    Retrieves the initial value of the ThreadBound property
    Returns:
      The initial value

  - ### getInitialValue

    public Object getInitialValue(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()
    Returns the getter metamethod for this thread-managed property.
    Overrides:
      `getGetter` in class `MetaBeanProperty`
    Returns:
      the getter metamethod

  - ### getSetter

    public MetaMethod getSetter()
    Returns the setter metamethod for this thread-managed property.
    Overrides:
      `getSetter` in class `MetaBeanProperty`
    Returns:
      the setter metamethod