Class ClassLocal<E>

java.lang.Object
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

    Fields
    Modifier and Type Field Description
    private Map<Class<?>,​E> objects  
  • Constructor Summary

    Constructors
    Constructor Description
    ClassLocal()
    Create a new ClassLocal object.
  • Method Summary

    Modifier and Type Method Description
    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 Details

    • objects

      private Map<Class<?>,​E> objects
  • Constructor Details

    • ClassLocal

      public ClassLocal()
      Create a new ClassLocal object.
  • Method Details

    • 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