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 voidcleanUpNullReferences()Remove all entries holding SoftReferences to gc-evicted objects.Vget(K key)Gets a value from the cacheVgetAndPut(K key, MemoizeCache.ValueProvider<? super K,? extends V> valueProvider)The implementation of `getAndPut` is not atomicVput(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:MemoizeCacheAssociates the specified value with the specified key in the cache.- Specified by:
 putin 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:MemoizeCacheGets a value from the cache- Specified by:
 getin 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)
The implementation of `getAndPut` is not atomic- Specified by:
 getAndPutin interfaceMemoizeCache<K,V>- Returns:
 - the cached value
 
 
- 
cleanUpNullReferences
public void cleanUpNullReferences()
Remove all entries holding SoftReferences to gc-evicted objects.- Specified by:
 cleanUpNullReferencesin interfaceMemoizeCache<K,V>
 
 - 
 
 -