Package akka.util
Class TypedMultiMap<T,K>
- java.lang.Object
-
- akka.util.TypedMultiMap<T,K>
-
public class TypedMultiMap<T,K> extends java.lang.Object
An 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] = T
Caveat: 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.boolean
equals(java.lang.Object other)
scala.collection.immutable.Set<K>
get(T key)
Obtain all mappings for the given key.int
hashCode()
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.String
toString()
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:
toString
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object other)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
-