Package com.google.common.collect
Class ForwardingConcurrentMap<K,V>
-
- com.google.common.collect.ForwardingObject
-
- com.google.common.collect.ForwardingMap<K,V>
-
- com.google.common.collect.ForwardingConcurrentMap<K,V>
-
- All Implemented Interfaces:
<K,V>
,<K,V>
@GwtCompatible public abstract class ForwardingConcurrentMap<K,V> extends ForwardingMap<K,V> implements <K,V>
A concurrent map which forwards all its method calls to another concurrent map. Subclasses should override one or more methods to modify the behavior of the backing map as desired per the .default
method warning: This class forwards calls to only somedefault
methods. Specifically, it forwards calls only for methods that existed . For newer methods, likeforEach
, it inherits their default implementations. When those implementations invoke methods, they invoke methods on theForwardingConcurrentMap
.- Since:
- 2.0
- Author:
- Charles Fry
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.google.common.collect.ForwardingMap
ForwardingMap.StandardEntrySet, ForwardingMap.StandardKeySet, ForwardingMap.StandardValues
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
ForwardingConcurrentMap()
Constructor for use by subclasses.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract <K,V>
delegate()
Returns the backing delegate instance that methods are forwarded to.V
putIfAbsent(K key, V value)
If the specified key is not already associated with a value, associates it with the given value.boolean
key, value)
Removes the entry for a key only if currently mapped to a given value.V
replace(K key, V value)
Replaces the entry for a key only if currently mapped to some value.boolean
replace(K key, V oldValue, V newValue)
Replaces the entry for a key only if currently mapped to a given value.-
Methods inherited from class com.google.common.collect.ForwardingMap
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, size, standardClear, standardContainsKey, standardContainsValue, standardEquals, standardHashCode, standardIsEmpty, standardPutAll, standardRemove, standardToString, values
-
Methods inherited from class com.google.common.collect.ForwardingObject
toString
-
-
-
-
Constructor Detail
-
ForwardingConcurrentMap
protected ForwardingConcurrentMap()
Constructor for use by subclasses.
-
-
Method Detail
-
delegate
protected abstract <K,V> delegate()
Description copied from class:ForwardingObject
Returns the backing delegate instance that methods are forwarded to. Abstract subclasses generally override this method with an abstract method that has a more specific return type, such asForwardingSet.delegate()
. Concrete subclasses override this method to supply the instance being decorated.- Specified by:
delegate
in classForwardingMap<K,V>
-
putIfAbsent
public V putIfAbsent(K key, V value)
Description copied from interface:If the specified key is not already associated with a value, associates it with the given value. This is equivalent to, for thismap
:if (!map.containsKey(key)) return map.put(key, value); else return map.get(key);
- Specified by:
in interface
<K,V>
- Specified by:
in interface
<K,V>
- Parameters:
key
- key with which the specified value is to be associatedvalue
- value to be associated with the specified key- Returns:
- the previous value associated with the specified key, or
null
if there was no mapping for the key. (Anull
return can also indicate that the map previously associatednull
with the key, if the implementation supports null values.)
-
remove
public boolean key, value)
Description copied from interface:Removes the entry for a key only if currently mapped to a given value. This is equivalent to, for thismap
:if (map.containsKey(key) && Objects.equals(map.get(key), value)) { map.remove(key); return true; } else { return false; }
-
replace
public V replace(K key, V value)
Description copied from interface:Replaces the entry for a key only if currently mapped to some value. This is equivalent to, for thismap
:if (map.containsKey(key)) return map.put(key, value); else return null;
- Specified by:
in interface
<K,V>
- Specified by:
in interface
<K,V>
- Parameters:
key
- key with which the specified value is associatedvalue
- value to be associated with the specified key- Returns:
- the previous value associated with the specified key, or
null
if there was no mapping for the key. (Anull
return can also indicate that the map previously associatednull
with the key, if the implementation supports null values.)
-
replace
public boolean replace(K key, V oldValue, V newValue)
Description copied from interface:Replaces the entry for a key only if currently mapped to a given value. This is equivalent to, for thismap
:if (map.containsKey(key) && Objects.equals(map.get(key), oldValue)) { map.put(key, newValue); return true; } else { return false; }
-
-