trait Multimethod[Method, A <: AnyRef, R] extends MMRegistry1[Method]
A Multimethod is basically a glorified registry that uses dynamic reflection (and subtyping) to determine which version of the method to invoke.
- Self Type
- Multimethod[Method, A, R] with Method
Linear Supertypes
Ordering
- Alphabetic
- By Inheritance
Inherited
- Multimethod
- MMRegistry1
- AnyRef
- Any
- Hide All
- Show All
Visibility
- Public
- Protected
Abstract Value Members
- abstract def doMethod(m: Method, a: A): R
- Attributes
- protected
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def apply(a: A): R
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def bindingMissing(a: A): R
- Attributes
- protected
- val cache: ConcurrentHashMap[Class[_], Method]
- Attributes
- protected
- Definition Classes
- MMRegistry1
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @IntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def multipleOptions(a: A, m: Map[Class[_], Method]): Nothing
- Attributes
- protected
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- val ops: HashMap[Class[_], Method]
- Attributes
- protected
- Definition Classes
- MMRegistry1
- def register[AA <: A](op: Method)(implicit manA: Manifest[AA]): Unit
- def register(a: Class[_], op: Method): Unit
- Definition Classes
- MMRegistry1
- def resolve(a: Class[_], checkedA: Set[Class[_]] = Set.empty): Map[Class[_], Method]
- Attributes
- protected
- Definition Classes
- MMRegistry1
- def selectBestOption(options: Map[Class[_], Method]): Map[Class[_], Method]
This selects based on the partial order induced by the inheritance hierarchy.
This selects based on the partial order induced by the inheritance hierarchy. If there is ambiguity, all are returned.
- Attributes
- protected
- Definition Classes
- MMRegistry1
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])