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>
Represents concurrent cache holding SoftReference instance as value
- See Also:
-
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
ConstructorDescriptionConstructs a cache with unlimited sizeConcurrentSoftCache
(int maxSize) Constructs an LRU cache with the default initial capacity(16)ConcurrentSoftCache
(int initialCapacity, int maxSize) Constructs an 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
Modifier and TypeMethodDescriptionconvertValue
(SoftReference<V> value) convert the original value to the target valueMethods 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 Details
-
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 an 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 an LRU cache with the default initial capacity(16)- Parameters:
maxSize
- max size of the LRU cache- See Also:
-
ConcurrentSoftCache
Constructs a cache backed by the specifiedMap
instance- Parameters:
map
- theMap
instance
-
-
Method Details
-
convertValue
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
-