Package org.apache.jackrabbit.core.state
Class MLRUItemStateCache
- java.lang.Object
-
- org.apache.jackrabbit.core.state.MLRUItemStateCache
-
- All Implemented Interfaces:
ItemStateCache
public class MLRUItemStateCache extends Object implements ItemStateCache
AnItemStateCache
implementation that internally uses aConcurrentCache
to maintain a cache ofItemState
objects. The cache uses a rough estimate of the memory consumption of the cached item states for calculating the maximum number of entries. The oldest entries are flushed once the cache size has exceeded a certain limit.TODO rename class to something more appropriate, e.g. FIFOItemSateCache since it doesn't use a LRU eviction policy anymore.
-
-
Field Summary
Fields Modifier and Type Field Description static int
DEFAULT_MAX_MEM
default maximum memory to use
-
Constructor Summary
Constructors Constructor Description MLRUItemStateCache(CacheManager cacheMgr)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cache(ItemState state)
Stores the specifiedItemState
object in the map using itsItemId
as the key.void
dispose()
Informs the cache that it is no longer in use.void
evict(ItemId id)
Removes theItemState
object with the specified id from this cache if it is present.void
evictAll()
Clears all entries from this cache.boolean
isCached(ItemId id)
Returnstrue
if this cache contains anItemState
object with the specifiedid
.boolean
isEmpty()
Returnstrue
if this cache contains no entries.ItemState
retrieve(ItemId id)
Returns theItemState
object with the specifiedid
if it is present ornull
if no entry exists with thatid
.ItemState[]
retrieveAll()
Returns all the cached item states.
-
-
-
Field Detail
-
DEFAULT_MAX_MEM
public static final int DEFAULT_MAX_MEM
default maximum memory to use- See Also:
- Constant Field Values
-
-
Constructor Detail
-
MLRUItemStateCache
public MLRUItemStateCache(CacheManager cacheMgr)
-
-
Method Detail
-
isCached
public boolean isCached(ItemId id)
Returnstrue
if this cache contains anItemState
object with the specifiedid
.- Specified by:
isCached
in interfaceItemStateCache
- Parameters:
id
- id ofItemState
object whose presence should be tested.- Returns:
true
if there's a corresponding cache entry, otherwisefalse
.
-
retrieve
public ItemState retrieve(ItemId id)
Returns theItemState
object with the specifiedid
if it is present ornull
if no entry exists with thatid
.- Specified by:
retrieve
in interfaceItemStateCache
- Parameters:
id
- the id of theItemState
object to be returned.- Returns:
- the
ItemState
object with the specifiedid
or ornull
if no entry exists with thatid
-
retrieveAll
public ItemState[] retrieveAll()
Returns all the cached item states.- Specified by:
retrieveAll
in interfaceItemStateCache
- Returns:
- newly allocated item state array
-
cache
public void cache(ItemState state)
Stores the specifiedItemState
object in the map using itsItemId
as the key.- Specified by:
cache
in interfaceItemStateCache
- Parameters:
state
- theItemState
object to cache
-
evict
public void evict(ItemId id)
Removes theItemState
object with the specified id from this cache if it is present.- Specified by:
evict
in interfaceItemStateCache
- Parameters:
id
- the id of theItemState
object which should be removed from this cache.
-
evictAll
public void evictAll()
Clears all entries from this cache.- Specified by:
evictAll
in interfaceItemStateCache
-
isEmpty
public boolean isEmpty()
Returnstrue
if this cache contains no entries.- Specified by:
isEmpty
in interfaceItemStateCache
- Returns:
true
if this cache contains no entries.
-
dispose
public void dispose()
Informs the cache that it is no longer in use.- Specified by:
dispose
in interfaceItemStateCache
-
-