Class MLRUItemStateCache

  • All Implemented Interfaces:
    ItemStateCache

    public class MLRUItemStateCache
    extends Object
    implements ItemStateCache
    An ItemStateCache implementation that internally uses a ConcurrentCache to maintain a cache of ItemState 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 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)
        Returns true if this cache contains an ItemState object with the specified id.
        Specified by:
        isCached in interface ItemStateCache
        Parameters:
        id - id of ItemState object whose presence should be tested.
        Returns:
        true if there's a corresponding cache entry, otherwise false.
      • retrieve

        public ItemState retrieve​(ItemId id)
        Returns the ItemState object with the specified id if it is present or null if no entry exists with that id.
        Specified by:
        retrieve in interface ItemStateCache
        Parameters:
        id - the id of the ItemState object to be returned.
        Returns:
        the ItemState object with the specified id or or null if no entry exists with that id
      • retrieveAll

        public ItemState[] retrieveAll()
        Returns all the cached item states.
        Specified by:
        retrieveAll in interface ItemStateCache
        Returns:
        newly allocated item state array
      • cache

        public void cache​(ItemState state)
        Stores the specified ItemState object in the map using its ItemId as the key.
        Specified by:
        cache in interface ItemStateCache
        Parameters:
        state - the ItemState object to cache
      • evict

        public void evict​(ItemId id)
        Removes the ItemState object with the specified id from this cache if it is present.
        Specified by:
        evict in interface ItemStateCache
        Parameters:
        id - the id of the ItemState object which should be removed from this cache.
      • evictAll

        public void evictAll()
        Clears all entries from this cache.
        Specified by:
        evictAll in interface ItemStateCache
      • isEmpty

        public boolean isEmpty()
        Returns true if this cache contains no entries.
        Specified by:
        isEmpty in interface ItemStateCache
        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 interface ItemStateCache