com.opensymphony.oscache.base.algorithm
Class LRUCache
java.lang.Object
java.util.AbstractMap
com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache
com.opensymphony.oscache.base.algorithm.LRUCache
- All Implemented Interfaces:
- Serializable, Cloneable, Map
public class LRUCache - extends AbstractConcurrentReadCache
LRU (Least Recently Used) algorithm for the cache.
Since release 2.3 this class requires Java 1.4
to use the LinkedHashSet. Use prior OSCache release which
require the Jakarta commons-collections SequencedHashMap
class or the LinkedList class if neither of the above
classes are available.
No synchronization is required in this class since the
AbstractConcurrentReadCache already takes care of any
synchronization requirements.
- Version:
- $Revision: 427 $
- Author:
- Victor Salaman, Francois Beauregard, Alain Bergevin, Chris Miller
- See Also:
- Serialized Form
| Fields inherited from class com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache |
barrierLock, count, DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR, DEFAULT_MAX_ENTRIES, entrySet, groups, keySet, lastWrite, loadFactor, maxEntries, memoryCaching, NULL, persistenceListener, table, threshold, UNLIMITED, unlimitedDiskCache, values |
|
Constructor Summary |
LRUCache()
Constructs an LRU Cache. |
LRUCache(int capacity)
Constructors a LRU Cache of the specified capacity. |
|
Method Summary |
protected void |
itemPut(Object key)
An object was put in the cache. |
protected void |
itemRemoved(Object key)
Remove specified key since that object has been removed from the cache. |
protected void |
itemRetrieved(Object key)
An item was retrieved from the list. |
protected Object |
removeItem()
An item needs to be removed from the cache. |
| Methods inherited from class com.opensymphony.oscache.base.algorithm.AbstractConcurrentReadCache |
capacity, clear, clone, contains, containsKey, containsValue, elements, entrySet, findAndRemoveEntry, get, getGroup, getGroupForReading, getGroupsForReading, getMaxEntries, getPersistenceListener, getTableForReading, isEmpty, isMemoryCaching, isOverflowPersistence, isUnlimitedDiskCache, keys, keySet, loadFactor, persistClear, persistRemove, persistRemoveGroup, persistRetrieve, persistRetrieveGroup, persistStore, persistStoreGroup, put, putAll, recordModification, rehash, remove, removeForce, setMaxEntries, setMemoryCaching, setOverflowPersistence, setPersistenceListener, setUnlimitedDiskCache, size, sput, sremove, values |
LRUCache
public LRUCache()
- Constructs an LRU Cache.
LRUCache
public LRUCache(int capacity)
- Constructors a LRU Cache of the specified capacity.
- Parameters:
capacity - The maximum cache capacity.
itemRetrieved
protected void itemRetrieved(Object key)
- An item was retrieved from the list. The LRU implementation moves
the retrieved item's key to the front of the list.
- Specified by:
itemRetrieved in class AbstractConcurrentReadCache
- Parameters:
key - The cache key of the item that was retrieved.
itemPut
protected void itemPut(Object key)
- An object was put in the cache. This implementation adds/moves the
key to the end of the list.
- Specified by:
itemPut in class AbstractConcurrentReadCache
- Parameters:
key - The cache key of the item that was put.
removeItem
protected Object removeItem()
- An item needs to be removed from the cache. The LRU implementation
removes the first element in the list (ie, the item that was least-recently
accessed).
- Specified by:
removeItem in class AbstractConcurrentReadCache
- Returns:
- The key of whichever item was removed.
itemRemoved
protected void itemRemoved(Object key)
- Remove specified key since that object has been removed from the cache.
- Specified by:
itemRemoved in class AbstractConcurrentReadCache
- Parameters:
key - The cache key of the item that was removed.
|