2.17.2: 2011-06-17

net.sf.basedb.util
Class ClassLocal<E>

java.lang.Object
  extended by net.sf.basedb.util.ClassLocal<E>

public class ClassLocal<E>
extends Object

This class is a similar to the JDK ThreadLocal class, but stores one object per class instead of one object per thread.

The main usage for this class is to allow a superclass to hold one object for each subclass that is extending it.

Version:
2.0
Author:
Nicklas

Field Summary
private  Map<Class,E> objects
           
 
Constructor Summary
ClassLocal()
          Create a new ClassLocal object.
 
Method Summary
 E get(Object instance)
          Get the object associated with the class of the specified instance.
protected  E initialValue(Object instance)
          Subclasses may override this to initialize the object stored for that class.
 void set(Object instance, E object)
          Store an object and associate it with the class of the specified instance.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

objects

private Map<Class,E> objects
Constructor Detail

ClassLocal

public ClassLocal()
Create a new ClassLocal object.

Method Detail

get

public E get(Object instance)
Get the object associated with the class of the specified instance.

Parameters:
instance - An object instance of the class
See Also:
ThreadLocal.get()

set

public void set(Object instance,
                E object)
Store an object and associate it with the class of the specified instance.

Parameters:
instance - An object instance of the class
object - The object to store
See Also:
ThreadLocal.set(Object)

initialValue

protected E initialValue(Object instance)
Subclasses may override this to initialize the object stored for that class.

Parameters:
instance - An object instance of the class
Returns:
The object to associate with the class

2.17.2: 2011-06-17