Interface TypeSafeMultiMap

  • All Superinterfaces:
    java.lang.Iterable<java.util.Map.Entry<Key<?>,​java.util.Collection<?>>>

    public interface TypeSafeMultiMap
    extends java.lang.Iterable<java.util.Map.Entry<Key<?>,​java.util.Collection<?>>>
    A map that is type safe, i.e. the pairs (key, value) are type-checked, and can contain multiple values, i.e. it's associated to collections (key, collection of values). It's immutable.
    Author:
    Fabrizio Giudici
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods 
      Modifier and Type Method Description
      java.util.Map<Key<?>,​java.util.Collection<?>> asMap()
      Returns the contents as a plain Map.
      boolean containsKey​(Key<?> key)
      Checks whether a pair has been stored.
      java.util.Set<java.util.Map.Entry<Key<?>,​java.util.Collection<?>>> entrySet()
      Returns a set of all the contained (key, value) pairs.
      void forEach​(java.util.function.BiConsumer<? super Key<?>,​? super java.util.Collection<?>> action)
      Performs the given action on all the pairs (key, value) contained in this map.
      <T> java.util.Collection<T> get​(Key<T> key)
      Returns a value given its key.
      java.util.Set<Key<?>> keySet()
      Returns a set of all the contained keys.
      static TypeSafeMultiMap newInstance()
      Creates a new empty instance.
      static TypeSafeMultiMap ofCloned​(java.util.Map<? extends Key<?>,​? extends java.util.Collection<?>> map)
      Creates an instance cloning the given map.
      int size()
      Returns the size of this map.
      java.util.Collection<java.util.Collection<?>> values()
      Returns a set of all the contained values.
      <T> TypeSafeMultiMap with​(Key<T> key, T value)
      Creates a new instance with an additional pair (key, value).
      • Methods inherited from interface java.lang.Iterable

        forEach, iterator, spliterator
    • Method Detail

      • get

        @Nonnull
        <T> java.util.Collection<T> get​(@Nonnull
                                        Key<T> key)
        Returns a value given its key.
        Type Parameters:
        T - the type
        Parameters:
        key - the key
        Returns:
        the value as a Collection
      • containsKey

        boolean containsKey​(@Nonnull
                            Key<?> key)
        Checks whether a pair has been stored.
        Parameters:
        key - the key
        Returns:
        true if the pair is present
      • keySet

        @Nonnull
        java.util.Set<Key<?>> keySet()
        Returns a set of all the contained keys.
        Returns:
        the keys as a mutable set
      • values

        @Nonnull
        java.util.Collection<java.util.Collection<?>> values()
        Returns a set of all the contained values.
        Returns:
        the values as a mutable collection
        Since:
        3.2-ALPHA-6
      • entrySet

        @Nonnull
        java.util.Set<java.util.Map.Entry<Key<?>,​java.util.Collection<?>>> entrySet()
        Returns a set of all the contained (key, value) pairs.
        Returns:
        the pairs as a mutable collection
        Since:
        3.2-ALPHA-6
      • size

        @Nonnegative
        int size()
        Returns the size of this map.
        Returns:
        the size
      • forEach

        void forEach​(@Nonnull
                     java.util.function.BiConsumer<? super Key<?>,​? super java.util.Collection<?>> action)
        Performs the given action on all the pairs (key, value) contained in this map.
        Parameters:
        action - the action
        Since:
        3.2-ALPHA-10
      • asMap

        @Nonnull
        java.util.Map<Key<?>,​java.util.Collection<?>> asMap()
        Returns the contents as a plain Map.
        Returns:
        the contents as a mutable map
      • with

        @Nonnull
        <T> TypeSafeMultiMap with​(@Nonnull
                                  Key<T> key,
                                  @Nonnull
                                  T value)
        Creates a new instance with an additional pair (key, value).
        Type Parameters:
        T - the type
        Parameters:
        key - the key
        value - the value
        Returns:
        the new instance
        Since:
        3.2-ALPHA-2
      • ofCloned

        @Nonnull
        static TypeSafeMultiMap ofCloned​(@Nonnull
                                         java.util.Map<? extends Key<?>,​? extends java.util.Collection<?>> map)
        Creates an instance cloning the given map.
        Parameters:
        map - the map to clone
        Returns:
        the new instance
        Since:
        3.2-ALPHA-2
      • newInstance

        @Nonnull
        static TypeSafeMultiMap newInstance()
        Creates a new empty instance.
        Returns:
        the new instance
        Since:
        3.2-ALPHA-2