Class LazyInitializedCacheMap<K,V>
java.lang.Object
org.apache.mina.util.LazyInitializedCacheMap<K,V>
- Type Parameters:
K- The key typeV- The value type
- All Implemented Interfaces:
Map<K,V>
This map is specially useful when reads are much more frequent than writes and
if the cost of instantiating the values is high like allocating an
IoBuffer for example.
Based on the final implementation of Memoizer written by Brian Goetz and Tim
Peierls. This implementation will return an
UnsupportedOperationException on each method that is not intended to
be called by user code for performance reasons.- Since:
- MINA 2.0.0-M2
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclassThis class provides a noopLazyInitializermeaning it will return the same object it received when instantiated. -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.This constructor allows to provide a fine tunedConcurrentHashMapto stick with each special case the user needs. -
Method Summary
Modifier and TypeMethodDescriptionvoidclear()booleancontainsKey(Object key) booleancontainsValue(Object value) ThrowsUnsupportedOperationExceptionas this method would imply performance drops.entrySet()ThrowsUnsupportedOperationExceptionas this method would imply performance drops.booleanisEmpty()keySet()voidputIfAbsent(K key, LazyInitializer<V> value) If the specified key is not already associated with a value, associate it with the given value.intsize()values()ThrowsUnsupportedOperationExceptionas this method would imply performance drops.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface Map
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
-
Field Details
-
cache
-
-
Constructor Details
-
LazyInitializedCacheMap
public LazyInitializedCacheMap()Default constructor. Uses the default parameters to initialize its internalConcurrentHashMap. -
LazyInitializedCacheMap
This constructor allows to provide a fine tunedConcurrentHashMapto stick with each special case the user needs.- Parameters:
map- The map to use as a cache
-
-
Method Details
-
get
-
remove
-
putIfAbsent
If the specified key is not already associated with a value, associate it with the given value. This is equivalent toif (!map.containsKey(key)) return map.put(key, value); else return map.get(key);except that the action is performed atomically.- Parameters:
key- key with which the specified value is to be associatedvalue- a lazy initialized value object.- Returns:
- the previous value associated with the specified key,
or
nullif there was no mapping for the key
-
put
-
containsValue
ThrowsUnsupportedOperationExceptionas this method would imply performance drops.- Specified by:
containsValuein interfaceMap<K,V>
-
values
ThrowsUnsupportedOperationExceptionas this method would imply performance drops. -
entrySet
-
putAll
-
getValues
- Returns:
- return the values from the cache
-
clear
-
containsKey
- Specified by:
containsKeyin interfaceMap<K,V>
-
isEmpty
-
keySet
-
size
-