Package org.apache.pekko.util
Class TypedMultiMap<T,K>
- java.lang.Object
-
- org.apache.pekko.util.TypedMultiMap<T,K>
-
public class TypedMultiMap<T,K> extends java.lang.ObjectAn immutable multi-map that expresses the value type as a type function of the key type. Create it with a type constructor that expresses the relationship:trait Key { type Type = T } case class MyValue[T](...) // type function from Key to MyValue type KV[K <: Key] = MyValue[K#Type] val map = TypedMultiMap.empty[Key, KV] // a plain Int => String map would use this function: type plain[K <: Int] = String // a map T => T would use this function: type identity[T <: AnyRef] = TCaveat: using keys which take type parameters does not work due to conflicts with the existential interpretation of
Key[_]. A workaround is to define a key type like above and provide a subtype that provides its type parameter as type memberType.
-
-
Constructor Summary
Constructors Constructor Description TypedMultiMap()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description TypedMultiMap<T,K>$plus$plus(TypedMultiMap<T,K> other)Add all entries from the other map, overwriting existing entries.static <T,K>
TypedMultiMap<T,K>empty()Obtain the empty map for the given key type and key–value type function.booleanequals(java.lang.Object other)scala.collection.immutable.Set<K>get(T key)Obtain all mappings for the given key.inthashCode()TypedMultiMap<T,K>inserted(T key, K value)Return a map that has the given value added to the mappings for the given key.TypedMultiMap<T,K>keyRemoved(T key)Return a map that has all mappings for the given key removed.scala.collection.immutable.Set<T>keySet()Return the set of keys which are mapped to non-empty value sets.TypedMultiMap<T,K>removed(T key, K value)Return a map that has the given mapping from the given key removed.TypedMultiMap<T,K>setAll(T key, scala.collection.immutable.Set<K> values)java.lang.StringtoString()TypedMultiMap<T,K>valueRemoved(java.lang.Object value)Return a map that has the given value removed from all keys.
-
-
-
Method Detail
-
empty
public static <T,K> TypedMultiMap<T,K> empty()
Obtain the empty map for the given key type and key–value type function.
-
keySet
public scala.collection.immutable.Set<T> keySet()
Return the set of keys which are mapped to non-empty value sets.
-
inserted
public TypedMultiMap<T,K> inserted(T key, K value)
Return a map that has the given value added to the mappings for the given key.
-
valueRemoved
public TypedMultiMap<T,K> valueRemoved(java.lang.Object value)
Return a map that has the given value removed from all keys.
-
keyRemoved
public TypedMultiMap<T,K> keyRemoved(T key)
Return a map that has all mappings for the given key removed.
-
removed
public TypedMultiMap<T,K> removed(T key, K value)
Return a map that has the given mapping from the given key removed.
-
setAll
public TypedMultiMap<T,K> setAll(T key, scala.collection.immutable.Set<K> values)
-
$plus$plus
public TypedMultiMap<T,K> $plus$plus(TypedMultiMap<T,K> other)
Add all entries from the other map, overwriting existing entries.FIXME: should it merge, instead?
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
equals
public boolean equals(java.lang.Object other)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
-