| Interface | Description | 
|---|---|
| CacheElement<K,V> | An interface that must be implemented by any object that must be registered into the  Cache. | 
| ReversableMultivaluesCache<K,V> | Similar to  ReversableUniqueCache, a cache class implementing this interface can answer to request like
 "give me the keys that have this value associated to them". | 
| ReversableUniqueCache<K,V> | Most of the cache entries are reversible, eg if an ID is associated to a unique name you usually need
 two way queries: "give me the name for this ID" and "give me the ID for this name". | 
| Class | Description | 
|---|---|
| Cache | This class is a central point where all the data caching structure can be stored, for universal access. | 
| ExpirationCache<K,V> | This class implements a caching with a maximum lifetime after which the elements are removed. | 
| GenericLastValuesCache<K,V> | Keep a cache of the last used values. | 
| GenericQueryCacher<K,V> | Create a cache based on the resultset produced by a DB query. | 
Cache provides a holding place for all general available data caches, refreshing 
        each of them at the desired rate. You can register CacheElement objects in this repository or make use of them 
        internally in your code. See the several (abstract) implementations of CacheElement for more functionality.