org.codehaus.groovy.runtime.metaclass
Class ThreadManagedMetaBeanProperty

java.lang.Object
  extended by groovy.lang.MetaProperty
      extended by groovy.lang.MetaBeanProperty
          extended by 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 garabage collected when the the object is collected In fact, this class should be called ExpandoProperty

Since:
1.1
Author:
Graeme Rocher, Alex Tkachman

Field Summary
 
Fields inherited from class groovy.lang.MetaProperty
name, PROPERTY_SET_PREFIX, 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
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(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-2010 The Codehaus. All rights reserved.