Package org.jgroups.util
Class LazyRemovalCache<K,V>
- java.lang.Object
-
- org.jgroups.util.LazyRemovalCache<K,V>
-
public class LazyRemovalCache<K,V> extends java.lang.ObjectCache 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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classLazyRemovalCache.Entry<V>static interfaceLazyRemovalCache.Printable<K,V>
-
Constructor Summary
Constructors Constructor Description LazyRemovalCache()LazyRemovalCache(int max_elements, long max_age)Creates a new instance
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanadd(K key, V val)protected booleanadd(K key, V val, boolean if_absent)voidaddAll(java.util.Map<K,V> m)protected voidaddAll(java.util.Map<K,V> m, boolean if_absent)voidaddAllIfAbsent(java.util.Map<K,V> m)booleanaddIfAbsent(K key, V val)voidclear(boolean force)VcomputeIfAbsent(K key, java.util.function.Function<? super K,? extends V> mappingFunction)booleancontainsKey(K key)booleancontainsKeys(java.util.Collection<K> keys)Returns true if all of the keys in keys are present.java.util.Map<K,V>contents()java.util.Map<K,V>contents(boolean skip_removed_values)java.util.Set<java.util.Map.Entry<K,LazyRemovalCache.Entry<V>>>entrySet()Vget(K key)KgetByValue(V val)Returns a (non-removable) entry based on the valuejava.util.Set<K>keySet()java.util.Set<V>nonRemovedValues()Adds all value which have not been marked as removable to the returned setjava.lang.StringprintCache()java.lang.StringprintCache(LazyRemovalCache.Printable print_function)voidremove(K key)voidremove(K key, boolean force)voidremoveAll(java.util.Collection<K> keys)voidremoveAll(java.util.Collection<K> keys, boolean force)voidremoveMarkedElements()Removes elements marked as removablevoidremoveMarkedElements(boolean force)Removes elements marked as removablevoidretainAll(java.util.Collection<K> keys)voidretainAll(java.util.Collection<K> keys, boolean force)intsize()java.lang.StringtoString()java.util.Set<V>values()java.lang.Iterable<LazyRemovalCache.Entry<V>>valuesIterator()
-
-
-
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 cachemax_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
-
computeIfAbsent
public V computeIfAbsent(K key, java.util.function.Function<? super K,? extends V> mappingFunction)
-
entrySet
public java.util.Set<java.util.Map.Entry<K,LazyRemovalCache.Entry<V>>> entrySet()
-
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
-
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()
-
valuesIterator
public java.lang.Iterable<LazyRemovalCache.Entry<V>> valuesIterator()
-
nonRemovedValues
public java.util.Set<V> nonRemovedValues()
Adds all value which have not been marked as removable to the returned set- Returns:
-
size
public int size()
-
printCache
public java.lang.String printCache()
-
printCache
public java.lang.String printCache(LazyRemovalCache.Printable print_function)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.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
-
-