Interface MapState<K,​V>

  • Type Parameters:
    K - the type of keys maintained by this map
    V - the type of mapped values
    All Superinterfaces:
    State

    @Experimental(STATE)
    public interface MapState<K,​V>
    extends State
    A 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.

    • Method Detail

      • put

        void put​(K key,
                 V value)
        Associates the specified value with the specified key in this state.

        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()).

      • putIfAbsent

        default ReadableState<V> putIfAbsent​(K key,
                                             V value)
        A deferred read-followed-by-write.

        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()).

      • computeIfAbsent

        ReadableState<V> computeIfAbsent​(K key,
                                         java.util.function.Function<? super K,​? extends V> mappingFunction)
        A deferred read-followed-by-write.

        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()).

      • remove

        void remove​(K key)
        Remove the mapping for a key from this map if it is present.

        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()).

      • get

        ReadableState<V> get​(K key)
        A deferred lookup, using null values if the item is not found.

        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.

      • getOrDefault

        ReadableState<V> getOrDefault​(K key,
                                      @Nullable
                                      V defaultValue)
        A deferred lookup.

        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.

      • keys

        ReadableState<java.lang.Iterable<K>> keys()
        Returns an Iterable over the keys contained in this map.
      • values

        ReadableState<java.lang.Iterable<V>> values()
        Returns an Iterable over the values contained in this map.
      • entries

        ReadableState<java.lang.Iterable<java.util.Map.Entry<K,​V>>> entries()
        Returns an Iterable over the key-value pairs contained in this map.