Class LRUCache<K,V>
- java.lang.Object
-
- org.codehaus.groovy.runtime.memoize.LRUCache<K,V>
-
- All Implemented Interfaces:
MemoizeCache<K,V>
@ThreadSafe public final class LRUCache<K,V> extends Object implements MemoizeCache<K,V>
A cache backed by a ConcurrentLinkedHashMap
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.codehaus.groovy.runtime.memoize.MemoizeCache
MemoizeCache.ValueProvider<K,V>
-
-
Constructor Summary
Constructors Constructor Description LRUCache(int maxCacheSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
cleanUpNullReferences()
Remove all entries holding SoftReferences to gc-evicted objects.V
get(K key)
Gets a value from the cacheV
getAndPut(K key, MemoizeCache.ValueProvider<? super K,? extends V> valueProvider)
Try to get the value from cache.V
put(K key, V value)
Associates the specified value with the specified key in the cache.
-
-
-
Method Detail
-
put
public V put(K key, V value)
Description copied from interface:MemoizeCache
Associates the specified value with the specified key in the cache.- Specified by:
put
in interfaceMemoizeCache<K,V>
- Parameters:
key
- key with which the specified value is to be associatedvalue
- value to be associated with the specified key- Returns:
- null, or the old value if the key associated with the specified key.
-
get
public V get(K key)
Description copied from interface:MemoizeCache
Gets a value from the cache- Specified by:
get
in interfaceMemoizeCache<K,V>
- Parameters:
key
- the key whose associated value is to be returned- Returns:
- the value, or null, if it does not exist.
-
getAndPut
public V getAndPut(K key, MemoizeCache.ValueProvider<? super K,? extends V> valueProvider)
Try to get the value from cache. If not found, create the value byMemoizeCache.ValueProvider
and put it into the cache, at last return the value. The operation is completed atomically.- Specified by:
getAndPut
in interfaceMemoizeCache<K,V>
- Parameters:
key
-valueProvider
- provide the value if the associated value not found- Returns:
- the cached value
-
cleanUpNullReferences
public void cleanUpNullReferences()
Remove all entries holding SoftReferences to gc-evicted objects.- Specified by:
cleanUpNullReferences
in interfaceMemoizeCache<K,V>
-
-