Class ConcurrentLruCache<K,​V>

  • Type Parameters:
    K - the type of keys
    V - the type of mapped values
    All Implemented Interfaces:
    Cache<K,​V>

    public class ConcurrentLruCache<K,​V>
    extends java.lang.Object
    implements Cache<K,​V>
    A thread-safe LRU org.camunda.commons.utils.cache.Cache with a fixed capacity. If the cache reaches the capacity, it discards the least recently used entry first.

    *Note*: The consistency of the keys queue with the keys in the cache is not ensured! This means, the keys queue can contain duplicates of the same key and not all the keys of the queue are necessarily in the cache. However, all the keys of the cache are at least once contained in the keys queue.

    • Constructor Summary

      Constructors 
      Constructor Description
      ConcurrentLruCache​(int capacity)
      Creates the cache with a fixed capacity.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void clear()
      Clears the contents of the cache.
      V get​(K key)
      Gets an entry from the cache.
      boolean isEmpty()
      Returns true if this cache contains no key-value mappings.
      java.util.Set<K> keySet()
      Returns a Set view of the keys contained in this cache.
      void put​(K key, V value)
      Associates the specified value with the specified key in the cache.
      void remove​(K key)
      Removes an entry from the cache.
      protected void removeAll​(K key)
      Removes all instances of the given key within the keys queue.
      int size()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ConcurrentLruCache

        public ConcurrentLruCache​(int capacity)
        Creates the cache with a fixed capacity.
        Parameters:
        capacity - max number of cache entries
        Throws:
        java.lang.IllegalArgumentException - if capacity is negative
    • Method Detail

      • get

        public V get​(K key)
        Description copied from interface: Cache
        Gets an entry from the cache.
        Specified by:
        get in interface Cache<K,​V>
        Parameters:
        key - the key whose associated value is to be returned
        Returns:
        the element, or null, if it does not exist.
      • put

        public void put​(K key,
                        V value)
        Description copied from interface: Cache
        Associates the specified value with the specified key in the cache.
        Specified by:
        put in interface Cache<K,​V>
        Parameters:
        key - key with which the specified value is to be associated
        value - value to be associated with the specified key
      • remove

        public void remove​(K key)
        Description copied from interface: Cache
        Removes an entry from the cache.
        Specified by:
        remove in interface Cache<K,​V>
        Parameters:
        key - key with which the specified value is to be associated.
      • clear

        public void clear()
        Description copied from interface: Cache
        Clears the contents of the cache.
        Specified by:
        clear in interface Cache<K,​V>
      • isEmpty

        public boolean isEmpty()
        Description copied from interface: Cache
        Returns true if this cache contains no key-value mappings.
        Specified by:
        isEmpty in interface Cache<K,​V>
      • keySet

        public java.util.Set<K> keySet()
        Description copied from interface: Cache
        Returns a Set view of the keys contained in this cache.
        Specified by:
        keySet in interface Cache<K,​V>
      • size

        public int size()
        Specified by:
        size in interface Cache<K,​V>
        Returns:
        the current size of the cache
      • removeAll

        protected void removeAll​(K key)
        Removes all instances of the given key within the keys queue.