|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.opensaml.xml.util.IndexingObjectStore<T>
T
- type of object being stored@ThreadSafe public class IndexingObjectStore<T>
This class is used to store instances of objects that may be created independently but are, in face, the same object.
For example, KeyInfo
s contain keys, certs, and CRLs. Multiple unique instances of
a KeyInfo may contain, and separately construct, the exact same cert. KeyInfo could, therefore, create a class-level
instance of this object store and put certs within it. In this manner the cert is only sitting in memory once and
each KeyInfo simply stores a reference (index) to stored object.
This store uses basic reference counting to keep track of how many of the respective objects are pointing to an
entry. Adding an object that already exists, as determined by the objects hashCode()
method, simply
increments the reference counter. Removing an object decrements the counter. Only when the counter reaches zero is
the object actually freed for garbage collection.
Note the instance of an object returned by get(String)
need not be the same object as
stored via put(Object)
. However, their hash codes will be equal. Therefore this store should never be
used to store objects that produce identical hash codes but are not functionally identical objects.
Constructor Summary | |
---|---|
IndexingObjectStore()
Constructor. |
Method Summary | |
---|---|
void |
clear()
Clears the object store. |
boolean |
contains(String index)
Checks whether the store contains an object registered under the given index. |
T |
get(String index)
Gets a registered object by its index. |
boolean |
isEmpty()
Checks if the store is empty. |
String |
put(T object)
Adds the given object to the store. |
void |
remove(String index)
Removes the object associated with the given index. |
int |
size()
Gets the total number of unique items in the store. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public IndexingObjectStore()
Method Detail |
---|
public void clear()
public boolean contains(String index)
index
- the index to check
public boolean isEmpty()
public String put(T object)
object
- the object to add to the store, may be null
public T get(String index)
index
- the index of an object previously registered, may be null
public void remove(String index)
index
- the index of the object, may be nullpublic int size()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |