Class LazyRemovalCache<K,​V>


  • public class LazyRemovalCache<K,​V>
    extends java.lang.Object
    Cache which doesn't remove elements on remove(), removeAll() or retainAll(), but only removes elements when a configurable size limit has been exceeded. In that case, all elements marked as removable and older than a configurable time are evicted. Elements are marked as removable by remove(), removeAll() and retainAll(). When an elements is marked as removable, but later reinserted, the mark is removed.
    Author:
    Bela Ban
    • Constructor Detail

      • LazyRemovalCache

        public LazyRemovalCache()
      • LazyRemovalCache

        public LazyRemovalCache​(int max_elements,
                                long max_age)
        Creates a new instance
        Parameters:
        max_elements - The max number of elements in the cache
        max_age - The max age (in ms) an entry can have before it is considered expired (and can be removed on the next sweep)
    • Method Detail

      • add

        public boolean add​(K key,
                           V val)
      • addIfAbsent

        public boolean addIfAbsent​(K key,
                                   V val)
      • addAll

        public void addAll​(java.util.Map<K,​V> m)
      • addAllIfAbsent

        public void addAllIfAbsent​(java.util.Map<K,​V> m)
      • containsKey

        public boolean containsKey​(K key)
      • containsKeys

        public boolean containsKeys​(java.util.Collection<K> keys)
        Returns true if all of the keys in keys are present. Returns false if one or more of the keys are absent
      • get

        public V get​(K key)
      • getByValue

        public K getByValue​(V val)
      • remove

        public void remove​(K key)
      • remove

        public void remove​(K key,
                           boolean force)
      • removeAll

        public void removeAll​(java.util.Collection<K> keys)
      • removeAll

        public void removeAll​(java.util.Collection<K> keys,
                              boolean force)
      • clear

        public void clear​(boolean force)
      • retainAll

        public void retainAll​(java.util.Collection<K> keys)
      • retainAll

        public void retainAll​(java.util.Collection<K> keys,
                              boolean force)
      • keySet

        public java.util.Set<K> keySet()
      • values

        public java.util.Set<V> values()
      • nonRemovedValues

        public java.util.Set<V> nonRemovedValues()
        Adds all value which have not been marked as removable to the returned set
        Returns:
      • contents

        public java.util.Map<K,​V> contents()
      • contents

        public java.util.Map<K,​V> contents​(boolean skip_removed_values)
      • size

        public int size()
      • printCache

        public java.lang.String printCache()
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • removeMarkedElements

        public void removeMarkedElements​(boolean force)
        Removes elements marked as removable
        Parameters:
        force - If set to true, all elements marked as 'removable' will get removed, regardless of expiration
      • removeMarkedElements

        public void removeMarkedElements()
        Removes elements marked as removable
      • add

        protected boolean add​(K key,
                              V val,
                              boolean if_absent)
      • addAll

        protected void addAll​(java.util.Map<K,​V> m,
                              boolean if_absent)