K
- type of key.V
- type of value.public class DefaultConsistentMap<K,V> extends Synchronous<AsyncConsistentMap<K,V>> implements ConsistentMap<K,V>
ConsistentMap
.DistributedPrimitive.Status, DistributedPrimitive.Type
DEFAULT_OPERATION_TIMEOUT_MILLIS, DEFAULT_OPERTATION_TIMEOUT_MILLIS
Constructor and Description |
---|
DefaultConsistentMap(AsyncConsistentMap<K,V> asyncMap,
long operationTimeoutMillis) |
Modifier and Type | Method and Description |
---|---|
void |
addListener(MapEventListener<K,V> listener,
java.util.concurrent.Executor executor)
Registers the specified listener to be notified whenever the map is updated.
|
void |
addStatusChangeListener(java.util.function.Consumer<DistributedPrimitive.Status> listener)
Registers a listener to be called when the primitive's status changes.
|
java.util.Map<K,V> |
asJavaMap()
Returns a java.util.Map instance backed by this ConsistentMap.
|
void |
clear()
Removes all of the mappings from this map (optional operation).
|
Versioned<V> |
compute(K key,
java.util.function.BiFunction<? super K,? super V,? extends V> remappingFunction)
Attempts to compute a mapping for the specified key and its current mapped value (or
null if there is no current mapping).
|
Versioned<V> |
computeIf(K key,
java.util.function.Predicate<? super V> condition,
java.util.function.BiFunction<? super K,? super V,? extends V> remappingFunction)
If the value for the specified key satisfies a condition, attempts to compute a new
mapping given the key and its current mapped value.
|
Versioned<V> |
computeIfAbsent(K key,
java.util.function.Function<? super K,? extends V> mappingFunction)
If the specified key is not already associated with a value (or is mapped to null),
attempts to compute its value using the given mapping function and enters it into
this map unless null.
|
Versioned<V> |
computeIfPresent(K key,
java.util.function.BiFunction<? super K,? super V,? extends V> remappingFunction)
If the value for the specified key is present and non-null, attempts to compute a new
mapping given the key and its current mapped value.
|
boolean |
containsKey(K key)
Returns true if this map contains a mapping for the specified key.
|
boolean |
containsValue(V value)
Returns true if this map contains the specified value.
|
java.util.Set<java.util.Map.Entry<K,Versioned<V>>> |
entrySet()
Returns the set of entries contained in this map.
|
Versioned<V> |
get(K key)
Returns the value (and version) to which the specified key is mapped, or null if this
map contains no mapping for the key.
|
Versioned<V> |
getOrDefault(K key,
V defaultValue)
Returns the value (and version) to which the specified key is mapped, or the provided
default value if this map contains no mapping for the key.
|
boolean |
isEmpty()
Returns true if the map is empty.
|
java.util.Set<K> |
keySet()
Returns a Set view of the keys contained in this map.
|
Versioned<V> |
put(K key,
V value)
Associates the specified value with the specified key in this map (optional operation).
|
Versioned<V> |
putAndGet(K key,
V value)
Associates the specified value with the specified key in this map (optional operation).
|
Versioned<V> |
putIfAbsent(K key,
V value)
If the specified key is not already associated with a value
associates it with the given value and returns null, else returns the current value.
|
Versioned<V> |
remove(K key)
Removes the mapping for a key from this map if it is present (optional operation).
|
boolean |
remove(K key,
long version)
Removes the entry for the specified key only if its current
version in the map is equal to the specified version.
|
boolean |
remove(K key,
V value)
Removes the entry for the specified key only if it is currently
mapped to the specified value.
|
void |
removeListener(MapEventListener<K,V> listener)
Unregisters the specified listener such that it will no longer
receive map change notifications.
|
void |
removeStatusChangeListener(java.util.function.Consumer<DistributedPrimitive.Status> listener)
Unregisters a previously registered listener to be called when the primitive's status changes.
|
boolean |
replace(K key,
long oldVersion,
V newValue)
Replaces the entry for the specified key only if it is currently mapped to the
specified version.
|
Versioned<V> |
replace(K key,
V value)
Replaces the entry for the specified key only if there is any value
which associated with specified key.
|
boolean |
replace(K key,
V oldValue,
V newValue)
Replaces the entry for the specified key only if currently mapped
to the specified value.
|
int |
size()
Returns the number of entries in the map.
|
java.util.Collection<java.util.function.Consumer<DistributedPrimitive.Status>> |
statusChangeListeners()
Returns the collection of status change listeners previously registered.
|
java.lang.String |
toString() |
java.util.Collection<Versioned<V>> |
values()
Returns the collection of values (and associated versions) contained in this map.
|
destroy, name, primitiveType
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addListener
applicationId, destroy, name, primitiveType
public DefaultConsistentMap(AsyncConsistentMap<K,V> asyncMap, long operationTimeoutMillis)
public int size()
ConsistentMap
size
in interface ConsistentMap<K,V>
public boolean isEmpty()
ConsistentMap
isEmpty
in interface ConsistentMap<K,V>
public boolean containsKey(K key)
ConsistentMap
containsKey
in interface ConsistentMap<K,V>
key
- keypublic boolean containsValue(V value)
ConsistentMap
containsValue
in interface ConsistentMap<K,V>
value
- valuepublic Versioned<V> get(K key)
ConsistentMap
get
in interface ConsistentMap<K,V>
key
- the key whose associated value (and version) is to be returnedpublic Versioned<V> getOrDefault(K key, V defaultValue)
ConsistentMap
Note: a non-null Versioned
value will be returned even if the defaultValue
is null
.
getOrDefault
in interface ConsistentMap<K,V>
key
- the key whose associated value (and version) is to be returneddefaultValue
- the default value to return if the key is not setpublic Versioned<V> computeIfAbsent(K key, java.util.function.Function<? super K,? extends V> mappingFunction)
ConsistentMap
computeIfAbsent
in interface ConsistentMap<K,V>
key
- key with which the specified value is to be associatedmappingFunction
- the function to compute a valueConsistentMapException.ConcurrentModification
if a concurrent modification of map is detectedpublic Versioned<V> computeIfPresent(K key, java.util.function.BiFunction<? super K,? super V,? extends V> remappingFunction)
ConsistentMap
computeIfPresent
in interface ConsistentMap<K,V>
key
- key with which the specified value is to be associatedremappingFunction
- the function to compute a valueConsistentMapException.ConcurrentModification
if a concurrent modification of map is detectedpublic Versioned<V> compute(K key, java.util.function.BiFunction<? super K,? super V,? extends V> remappingFunction)
ConsistentMap
compute
in interface ConsistentMap<K,V>
key
- key with which the specified value is to be associatedremappingFunction
- the function to compute a valueConsistentMapException.ConcurrentModification
if a concurrent modification of map is detectedpublic Versioned<V> computeIf(K key, java.util.function.Predicate<? super V> condition, java.util.function.BiFunction<? super K,? super V,? extends V> remappingFunction)
ConsistentMap
computeIf
in interface ConsistentMap<K,V>
key
- key with which the specified value is to be associatedcondition
- condition that should evaluate to true for the computation to proceedremappingFunction
- the function to compute a valueConsistentMapException.ConcurrentModification
if a concurrent
modification of map is detectedpublic Versioned<V> put(K key, V value)
ConsistentMap
put
in interface ConsistentMap<K,V>
key
- key with which the specified value is to be associatedvalue
- value to be associated with the specified keypublic Versioned<V> putAndGet(K key, V value)
ConsistentMap
putAndGet
in interface ConsistentMap<K,V>
key
- key with which the specified value is to be associatedvalue
- value to be associated with the specified keypublic Versioned<V> remove(K key)
ConsistentMap
remove
in interface ConsistentMap<K,V>
key
- key whose value is to be removed from the mappublic void clear()
ConsistentMap
clear
in interface ConsistentMap<K,V>
public java.util.Set<K> keySet()
ConsistentMap
keySet
in interface ConsistentMap<K,V>
public java.util.Collection<Versioned<V>> values()
ConsistentMap
values
in interface ConsistentMap<K,V>
public java.util.Set<java.util.Map.Entry<K,Versioned<V>>> entrySet()
ConsistentMap
entrySet
in interface ConsistentMap<K,V>
public Versioned<V> putIfAbsent(K key, V value)
ConsistentMap
putIfAbsent
in interface ConsistentMap<K,V>
key
- key with which the specified value is to be associatedvalue
- value to be associated with the specified keypublic boolean remove(K key, V value)
ConsistentMap
remove
in interface ConsistentMap<K,V>
key
- key with which the specified value is associatedvalue
- value expected to be associated with the specified keypublic boolean remove(K key, long version)
ConsistentMap
remove
in interface ConsistentMap<K,V>
key
- key with which the specified version is associatedversion
- version expected to be associated with the specified keypublic Versioned<V> replace(K key, V value)
ConsistentMap
replace
in interface ConsistentMap<K,V>
key
- key with which the specified value is associatedvalue
- value expected to be associated with the specified keypublic boolean replace(K key, V oldValue, V newValue)
ConsistentMap
replace
in interface ConsistentMap<K,V>
key
- key with which the specified value is associatedoldValue
- value expected to be associated with the specified keynewValue
- value to be associated with the specified keypublic boolean replace(K key, long oldVersion, V newValue)
ConsistentMap
replace
in interface ConsistentMap<K,V>
key
- key key with which the specified value is associatedoldVersion
- version expected to be associated with the specified keynewValue
- value to be associated with the specified keypublic void addListener(MapEventListener<K,V> listener, java.util.concurrent.Executor executor)
ConsistentMap
addListener
in interface ConsistentMap<K,V>
listener
- listener to notify about map eventsexecutor
- executor to use for handling incoming map eventspublic void removeListener(MapEventListener<K,V> listener)
ConsistentMap
removeListener
in interface ConsistentMap<K,V>
listener
- listener to unregisterpublic void addStatusChangeListener(java.util.function.Consumer<DistributedPrimitive.Status> listener)
DistributedPrimitive
addStatusChangeListener
in interface DistributedPrimitive
listener
- The listener to be called when the status changes.public void removeStatusChangeListener(java.util.function.Consumer<DistributedPrimitive.Status> listener)
DistributedPrimitive
removeStatusChangeListener
in interface DistributedPrimitive
listener
- The listener to unregisterpublic java.util.Collection<java.util.function.Consumer<DistributedPrimitive.Status>> statusChangeListeners()
DistributedPrimitive
statusChangeListeners
in interface DistributedPrimitive
public java.util.Map<K,V> asJavaMap()
ConsistentMap
asJavaMap
in interface ConsistentMap<K,V>
public java.lang.String toString()
toString
in class java.lang.Object