TernaryUpdateRegistry

trait TernaryUpdateRegistry[A, B, C, Op] extends InPlaceImpl3[Op, A, B, C] with MMRegistry3[InPlaceImpl3[Op, _ <: A, _ <: B, _ <: C]]

This is a special kind of BinaryUpdateOp that supports registration of specialized implementations for a given operation.

trait MMRegistry3[InPlaceImpl3[Op, _ <: A, _ <: B, _ <: C]]
trait InPlaceImpl3[Op, A, B, C]
trait Serializable
class Object
trait Matchable
class Any

Value members

Concrete methods

def apply(a: A, b: B, c: C): Unit
protected def bindingMissing(a: A, b: B, c: C): Unit
protected def multipleOptions(a: A, b: B, c: C, m: Map[(Class[_], Class[_], Class[_]), InPlaceImpl3[Op, _ <: A, _ <: B, _ <: C]]): Unit
def register[AA <: A, BB <: B, CC <: C](op: InPlaceImpl3[Op, AA, BB, CC])(implicit manA: ClassTag[AA], manB: ClassTag[BB], manC: ClassTag[CC]): Unit

Inherited methods

def register(a: Class[_], b: Class[_], c: Class[_], op: InPlaceImpl3[Op, _ <: A, _ <: B, _ <: C]): Unit
Inherited from:
MMRegistry3
def resolve(a: Class[_], b: Class[_], c: Class[_]): Map[(Class[_], Class[_], Class[_]), InPlaceImpl3[Op, _ <: A, _ <: B, _ <: C]]
Inherited from:
MMRegistry3
protected def selectBestOption(options: Map[(Class[_], Class[_], Class[_]), InPlaceImpl3[Op, _ <: A, _ <: B, _ <: C]]): Map[(Class[_], Class[_], Class[_]), InPlaceImpl3[Op, _ <: A, _ <: B, _ <: C]]

This selects based on the partial order induced by the inheritance hierarchy. If there is ambiguity, all are returned.

This selects based on the partial order induced by the inheritance hierarchy. If there is ambiguity, all are returned.

Inherited from:
MMRegistry3

Inherited fields

protected val cache: ConcurrentHashMap[(Class[_], Class[_], Class[_]), Option[InPlaceImpl3[Op, _ <: A, _ <: B, _ <: C]]]
Inherited from:
MMRegistry3
protected val ops: HashMap[(Class[_], Class[_], Class[_]), InPlaceImpl3[Op, _ <: A, _ <: B, _ <: C]]
Inherited from:
MMRegistry3