Class ConcurrentSoftCache<K,V>
- java.lang.Object
-
- org.codehaus.groovy.runtime.memoize.ConcurrentCommonCache<K,SoftReference<V>>
-
- org.codehaus.groovy.runtime.memoize.ConcurrentSoftCache<K,V>
-
- Type Parameters:
K
- key typeV
- real value type
- All Implemented Interfaces:
Serializable
,Map<K,SoftReference<V>>
,EvictableCache<K,SoftReference<V>>
,MemoizeCache<K,SoftReference<V>>
,ValueConvertable<SoftReference<V>,Object>
public class ConcurrentSoftCache<K,V> extends ConcurrentCommonCache<K,SoftReference<V>>
Represents concurrent cache holding SoftReference instance as value- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.codehaus.groovy.runtime.memoize.EvictableCache
EvictableCache.Action<K,V,R>, EvictableCache.EvictionStrategy
-
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K extends Object,V extends Object>
-
Nested classes/interfaces inherited from interface org.codehaus.groovy.runtime.memoize.MemoizeCache
MemoizeCache.ValueProvider<K,V>
-
-
Constructor Summary
Constructors Constructor Description ConcurrentSoftCache()
Constructs a cache with unlimited sizeConcurrentSoftCache(int maxSize)
Constructs a LRU cache with the default initial capacity(16)ConcurrentSoftCache(int initialCapacity, int maxSize)
Constructs a LRU cache with the specified initial capacity and max size.ConcurrentSoftCache(int initialCapacity, int maxSize, EvictableCache.EvictionStrategy evictionStrategy)
Constructs a cache with limited sizeConcurrentSoftCache(Map<K,SoftReference<V>> map)
Constructs a cache backed by the specifiedMap
instance
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
convertValue(SoftReference<V> value)
convert the original value to the target value-
Methods inherited from class org.codehaus.groovy.runtime.memoize.ConcurrentCommonCache
cleanUpNullReferences, clearAll, containsKey, containsValue, entrySet, get, getAndPut, getAndPut, isEmpty, keys, keySet, put, putAll, remove, size, values
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.codehaus.groovy.runtime.memoize.EvictableCache
clear
-
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
-
-
-
-
Constructor Detail
-
ConcurrentSoftCache
public ConcurrentSoftCache()
Constructs a cache with unlimited size
-
ConcurrentSoftCache
public ConcurrentSoftCache(int initialCapacity, int maxSize, EvictableCache.EvictionStrategy evictionStrategy)
Constructs a cache with limited size- Parameters:
initialCapacity
- initial capacity of the cachemaxSize
- max size of the cacheevictionStrategy
- LRU or FIFO, seeEvictableCache.EvictionStrategy
-
ConcurrentSoftCache
public ConcurrentSoftCache(int initialCapacity, int maxSize)
Constructs a LRU cache with the specified initial capacity and max size. The LRU cache is slower thanLRUCache
- Parameters:
initialCapacity
- initial capacity of the LRU cachemaxSize
- max size of the LRU cache
-
ConcurrentSoftCache
public ConcurrentSoftCache(int maxSize)
Constructs a LRU cache with the default initial capacity(16)- Parameters:
maxSize
- max size of the LRU cache- See Also:
ConcurrentSoftCache(int, int)
-
-
Method Detail
-
convertValue
public Object convertValue(SoftReference<V> value)
convert the original value to the target value- Specified by:
convertValue
in interfaceValueConvertable<K,V>
- Overrides:
convertValue
in classConcurrentCommonCache<K,SoftReference<V>>
- Parameters:
value
- the original value- Returns:
- the converted value
-
-