K
- the type of keys maintained by this mapV
- the type of mapped values@Experimental(value=STATE) public interface MapState<K,V> extends State
ReadableState
cell mapping keys to values.
Implementations of this form of state are expected to implement map operations efficiently as supported by some associated backing key-value store.
Modifier and Type | Method and Description |
---|---|
ReadableState<V> |
computeIfAbsent(K key,
java.util.function.Function<? super K,? extends V> mappingFunction)
A deferred read-followed-by-write.
|
ReadableState<java.lang.Iterable<java.util.Map.Entry<K,V>>> |
entries()
Returns an
Iterable over the key-value pairs contained in this map. |
ReadableState<V> |
get(K key)
A deferred lookup, using null values if the item is not found.
|
ReadableState<V> |
getOrDefault(K key,
V defaultValue)
A deferred lookup.
|
ReadableState<java.lang.Boolean> |
isEmpty()
Returns a
ReadableState whose ReadableState.read() method will return true if
this state is empty at the point when that ReadableState.read() call returns. |
ReadableState<java.lang.Iterable<K>> |
keys()
Returns an
Iterable over the keys contained in this map. |
void |
put(K key,
V value)
Associates the specified value with the specified key in this state.
|
default ReadableState<V> |
putIfAbsent(K key,
V value)
A deferred read-followed-by-write.
|
void |
remove(K key)
Remove the mapping for a key from this map if it is present.
|
ReadableState<java.lang.Iterable<V>> |
values()
Returns an
Iterable over the values contained in this map. |
void put(K key, V value)
Changes will not be reflected in the results returned by previous calls to ReadableState.read()
on the results any of the reading methods (get(K)
, keys()
,
values()
, and entries()
).
default ReadableState<V> putIfAbsent(K key, V value)
When read()
is called on the result or state is committed, it forces a read of the
map and reconciliation with any pending modifications.
If the specified key is not already associated with a value (or is mapped to null
)
associates it with the given value and returns null
, else returns the current value.
Changes will not be reflected in the results returned by previous calls to ReadableState.read()
on the results any of the reading methods (get(K)
, keys()
,
values()
, and entries()
).
Since the condition is not evaluated until ReadableState.read()
is called, a call to
putIfAbsent(K, V)
followed by a call to remove(K)
followed by a read on the
putIfAbsent return will result in the item being written to the map. Similarly, if there are
multiple calls to putIfAbsent(K, V)
for the same key, precedence will be given to the first
one on which read is called.
ReadableState<V> computeIfAbsent(K key, java.util.function.Function<? super K,? extends V> mappingFunction)
When read()
is called on the result or state is committed, it forces a read of the
map and reconciliation with any pending modifications.
If the specified key is not already associated with a value (or is mapped to null
)
associates it with the computed and returns null
, else returns the current value.
Changes will not be reflected in the results returned by previous calls to ReadableState.read()
on the results any of the reading methods (get(K)
, keys()
,
values()
, and entries()
).
Since the condition is not evaluated until ReadableState.read()
is called, a call to
putIfAbsent(K, V)
followed by a call to remove(K)
followed by a read on the
putIfAbsent return will result in the item being written to the map. Similarly, if there are
multiple calls to putIfAbsent(K, V)
for the same key, precedence will be given to the first
one on which read is called.
void remove(K key)
Changes will not be reflected in the results returned by previous calls to ReadableState.read()
on the results any of the reading methods (get(K)
, keys()
,
values()
, and entries()
).
ReadableState<V> get(K key)
A user is encouraged to call get
for all relevant keys and call readLater()
on the results.
When read()
is called, a particular state implementation is encouraged to perform
all pending reads in a single batch.
ReadableState<V> getOrDefault(K key, @Nullable V defaultValue)
A user is encouraged to call get
for all relevant keys and call readLater()
on the results.
When read()
is called, a particular state implementation is encouraged to perform
all pending reads in a single batch.
ReadableState<java.lang.Iterable<K>> keys()
Iterable
over the keys contained in this map.ReadableState<java.lang.Iterable<V>> values()
Iterable
over the values contained in this map.ReadableState<java.lang.Iterable<java.util.Map.Entry<K,V>>> entries()
Iterable
over the key-value pairs contained in this map.ReadableState<java.lang.Boolean> isEmpty()
ReadableState
whose ReadableState.read()
method will return true if
this state is empty at the point when that ReadableState.read()
call returns.