## 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 the current Thread using soft references. The values will go out of scope and be garabage collected when the Thread dies or when memory is required by the JVM

The property uses an InheritableThreadLocal instance internally so child threads will still be able to see the property

Since:
  1.1
Author:
  Graeme Rocher

Field Summary

Fields inherited from class groovy.lang.MetaProperty
`name, type`

Constructor Summary
`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
`MetaMethod` `getGetter()` Get the getter method.
`Object` `getInitialValue()` Retrieves the initial value of the ThreadBound property
`Object` `getInitialValue(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
`getName, getType`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### 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 Detail

### 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()

  Description copied from class: `MetaBeanProperty`
  Get the getter method.

  Overrides:
    `getGetter` in class `MetaBeanProperty`

### getSetter

    public MetaMethod getSetter()

  Description copied from class: `MetaBeanProperty`
  Get the setter method.

  Overrides:
    `getSetter` in class `MetaBeanProperty`

Copyright © 2003-2008 The Codehaus. All rights reserved.