ORMultiMap

An immutable multi-map implementation. This class wraps an ORMap with an ORSet for the map's value.

This class is immutable, i.e. "modifying" methods return a new instance.

Note that on concurrent adds and removals for the same key (on the same set), removals can be lost.

Companion:
object
Source:
ORMultiMap.scala
trait Serializable
class Object
trait Matchable
class Any

Type members

Types

override type D = DeltaOp
override type T = ORMultiMap[A, B]

Value members

Concrete methods

def :+(entry: (A, Set[B]))(implicit node: SelfUniqueAddress): ORMultiMap[A, B]

Convenience for put. Requires an implicit SelfUniqueAddress.

Convenience for put. Requires an implicit SelfUniqueAddress.

See also:

ORMultiMap#put

Source:
ORMultiMap.scala
def addBinding(node: SelfUniqueAddress, key: A, element: B): ORMultiMap[A, B]

Add an element to a set associated with a key. If there is no existing set then one will be initialised. TODO add implicit after deprecated is EOL.

Add an element to a set associated with a key. If there is no existing set then one will be initialised. TODO add implicit after deprecated is EOL.

Source:
ORMultiMap.scala
def addBindingBy(key: A, element: B)(implicit node: SelfUniqueAddress): ORMultiMap[A, B]
def contains(key: A): Boolean
override def delta: Option[D]
Definition Classes
Source:
ORMultiMap.scala
def entries: Map[A, Set[B]]

Scala API: All entries of a multimap where keys are strings and values are sets.

Scala API: All entries of a multimap where keys are strings and values are sets.

Source:
ORMultiMap.scala
override def equals(o: Any): Boolean
Definition Classes
Any
Source:
ORMultiMap.scala
def get(key: A): Option[Set[B]]

Get the set associated with the key if there is one.

Get the set associated with the key if there is one.

Source:
ORMultiMap.scala
def getEntries(): Map[A, Set[B]]

Java API: All entries of a multimap where keys are strings and values are sets.

Java API: All entries of a multimap where keys are strings and values are sets.

Source:
ORMultiMap.scala
def getOrElse(key: A, default: => Set[B]): Set[B]

Scala API: Get the set associated with the key if there is one, else return the given default.

Scala API: Get the set associated with the key if there is one, else return the given default.

Source:
ORMultiMap.scala
override def hashCode: Int
Definition Classes
Any
Source:
ORMultiMap.scala
override def merge(that: T): T
Definition Classes
Source:
ORMultiMap.scala
override def mergeDelta(thatDelta: D): ORMultiMap[A, B]
Definition Classes
Source:
ORMultiMap.scala
override def needPruningFrom(removedNode: UniqueAddress): Boolean
Definition Classes
Source:
ORMultiMap.scala
override def prune(removedNode: UniqueAddress, collapseInto: UniqueAddress): T
Definition Classes
Source:
ORMultiMap.scala
override def pruningCleanup(removedNode: UniqueAddress): T
Definition Classes
Source:
ORMultiMap.scala
def put(node: SelfUniqueAddress, key: A, value: Set[B]): ORMultiMap[A, B]

Scala API: Associate an entire set with the key while retaining the history of the previous replicated data set.

Scala API: Associate an entire set with the key while retaining the history of the previous replicated data set.

Source:
ORMultiMap.scala
def put(node: SelfUniqueAddress, key: A, value: Set[B]): ORMultiMap[A, B]

Java API: Associate an entire set with the key while retaining the history of the previous replicated data set.

Java API: Associate an entire set with the key while retaining the history of the previous replicated data set.

Source:
ORMultiMap.scala
def remove(key: A)(implicit node: SelfUniqueAddress): ORMultiMap[A, B]

Scala API Remove an entire set associated with the key.

Scala API Remove an entire set associated with the key.

Source:
ORMultiMap.scala
def remove(node: SelfUniqueAddress, key: A): ORMultiMap[A, B]

Java API Remove an entire set associated with the key.

Java API Remove an entire set associated with the key.

Source:
ORMultiMap.scala
def removeBinding(node: SelfUniqueAddress, key: A, element: B): ORMultiMap[A, B]

Remove an element of a set associated with a key. If there are no more elements in the set then the entire set will be removed. TODO add implicit after deprecated is EOL.

Remove an element of a set associated with a key. If there are no more elements in the set then the entire set will be removed. TODO add implicit after deprecated is EOL.

Source:
ORMultiMap.scala
def removeBindingBy(key: A, element: B)(implicit node: SelfUniqueAddress): ORMultiMap[A, B]
def replaceBinding(node: SelfUniqueAddress, key: A, oldElement: B, newElement: B): ORMultiMap[A, B]

Replace an element of a set associated with a key with a new one if it is different. This is useful when an element is removed and another one is added within the same Update. The order of addition and removal is important in order to retain history for replicated data.

Replace an element of a set associated with a key with a new one if it is different. This is useful when an element is removed and another one is added within the same Update. The order of addition and removal is important in order to retain history for replicated data.

Source:
ORMultiMap.scala
def replaceBindingBy(key: A, oldElement: B, newElement: B)(implicit node: SelfUniqueAddress): ORMultiMap[A, B]
override def resetDelta: ORMultiMap[A, B]
Definition Classes
Source:
ORMultiMap.scala
override def toString: String
Definition Classes
Any
Source:
ORMultiMap.scala

Deprecated methods

@deprecated("Use `:+` that takes a `SelfUniqueAddress` parameter instead.", since = "2.5.20")
def +(entry: (A, Set[B]))(implicit node: Cluster): ORMultiMap[A, B]
Deprecated
[Since version 2.5.20]
Source:
ORMultiMap.scala
@deprecated("Use `remove` that takes a `SelfUniqueAddress` parameter instead.", since = "2.5.20")
def -(key: A)(implicit node: Cluster): ORMultiMap[A, B]

Convenience for remove. Requires an implicit Cluster.

Convenience for remove. Requires an implicit Cluster.

See also:

ORMultiMap#remove

Deprecated
[Since version 2.5.20]
Source:
ORMultiMap.scala
@deprecated("Use `addBinding` that takes a `SelfUniqueAddress` parameter instead.", since = "2.5.20")
def addBinding(key: A, element: B)(implicit node: Cluster): ORMultiMap[A, B]
Deprecated
[Since version 2.5.20]
Source:
ORMultiMap.scala
@deprecated("Use `addBinding` that takes a `SelfUniqueAddress` parameter instead.", since = "2.5.20")
def addBinding(node: Cluster, key: A, element: B): ORMultiMap[A, B]
Deprecated
[Since version 2.5.20]
Source:
ORMultiMap.scala
@deprecated("Use `put` that takes a `SelfUniqueAddress` parameter instead.", since = "2.5.20")
def put(node: Cluster, key: A, value: Set[B]): ORMultiMap[A, B]
Deprecated
[Since version 2.5.20]
Source:
ORMultiMap.scala
@/ @deprecated("Use `put` that takes a `SelfUniqueAddress` parameter instead.", since = "2.5.20")
def put(node: Cluster, key: A, value: Set[B]): ORMultiMap[A, B]
Deprecated
[Since version 2.5.20]
Source:
ORMultiMap.scala
@deprecated("Use `remove` that takes a `SelfUniqueAddress` parameter instead.", since = "2.5.20")
def remove(node: Cluster, key: A): ORMultiMap[A, B]
Deprecated
[Since version 2.5.20]
Source:
ORMultiMap.scala
@deprecated("Use `removeBinding` that takes a `SelfUniqueAddress` parameter instead.", since = "2.5.20")
def removeBinding(key: A, element: B)(implicit node: Cluster): ORMultiMap[A, B]
Deprecated
[Since version 2.5.20]
Source:
ORMultiMap.scala
@/ @deprecated("Use `removeBinding` that takes a `SelfUniqueAddress` parameter instead.", since = "2.5.20")
def removeBinding(node: Cluster, key: A, element: B): ORMultiMap[A, B]
Deprecated
[Since version 2.5.20]
Source:
ORMultiMap.scala
@deprecated("Use `replaceBinding` that takes a `SelfUniqueAddress` parameter instead.", since = "2.5.20")
def replaceBinding(key: A, oldElement: B, newElement: B)(implicit node: Cluster): ORMultiMap[A, B]
Deprecated
[Since version 2.5.20]
Source:
ORMultiMap.scala