org.kuali.rice.krad.uif.util
Class RecycleUtils

java.lang.Object
  extended by org.kuali.rice.krad.uif.util.RecycleUtils

public final class RecycleUtils
extends Object

Simple utility class for implementing an object recycling factory pattern.

Weak references to objects are held by a thread-local queue. When a process has finished working with an object, the recycle(java.lang.Object) method may be offer the recycled object to the queue for consideration as reusable on the same thread.

Author:
Kuali Rice Team (rice.collab@kuali.org)

Method Summary
static
<T> void
clean(T instance)
          Clean all instance fields.
static
<T> void
clean(T instance, Class<? super T> top)
          Clean all instance fields, walking up the class hierarchy to the indicated super class.
static
<T> T
getInstance(Class<T> c)
          Get an instance of the given class that has previously been recycled on the same thread, or a new instance using a default constructor if a recycled instance is not available.
static
<T> T
getRecycledInstance(Class<T> c)
          Get an instance of the given class that has previously been recycled on the same thread, if an instance of available.
static void recycle(Object instance)
          Recycle a instance, for later retrieval in the same thread.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getRecycledInstance

public static <T> T getRecycledInstance(Class<T> c)
Get an instance of the given class that has previously been recycled on the same thread, if an instance of available.

Type Parameters:
T - recycled instance type
Parameters:
c - The class.
Returns:
An instance of the given class previously recycled on the same thread, if one is available. If no instance is available, then null is returned.

getInstance

public static <T> T getInstance(Class<T> c)
Get an instance of the given class that has previously been recycled on the same thread, or a new instance using a default constructor if a recycled instance is not available.

Type Parameters:
T - recycled instance type
Parameters:
c - The class.
Returns:
An instance of the given class previously recycled on the same thread, if one is available. If no instance is available, then null is returned.

recycle

public static void recycle(Object instance)
Recycle a instance, for later retrieval in the same thread.

Note that this method does not clean the instance, it only queues it for later retrieval by getRecycledInstance(Class). The state of the instance should be cleared before passing to this method. For a flexible means to clean instances using reflection clean(Object, Class) may be considered, however note that a manually implemented clean operation will generally perform faster.

Parameters:
instance - The instance to recycle.

clean

public static <T> void clean(T instance)
Clean all instance fields.

Type Parameters:
T - recycled instance type
Parameters:
instance - The instance to clean.

clean

public static <T> void clean(T instance,
                             Class<? super T> top)
Clean all instance fields, walking up the class hierarchy to the indicated super class.

Type Parameters:
T - recycled instance type
Parameters:
instance - The instance to clean.
top - The point in the class hierarchy at which to stop cleaning fields.


Copyright © 2005–2014 The Kuali Foundation. All rights reserved.