class BehaviorBuilder[T] extends AnyRef
Used for creating a Behavior by 'chaining' message and signal handlers.
When handling a message or signal, this Behavior will consider all handlers in the order they were added, looking for the first handler for which both the type and the (optional) predicate match.
- T
the common superclass of all supported messages.
- Source
- BehaviorBuilder.scala
- Alphabetic
- By Inheritance
- BehaviorBuilder
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Value Members
- def build(): Behavior[T]
-
def
onMessage[M <: T](type: Class[M], test: Predicate[M], handler: Function2[ActorContext[T], M, Behavior[T]]): BehaviorBuilder[T]
Add a new predicated case to the message handling.
Add a new predicated case to the message handling.
- M
type of message to match
- type
type of message to match
- test
a predicate that will be evaluated on the argument if the type matches
- handler
action to apply if the type matches and the predicate returns true
- returns
a new behavior with the specified handling appended
-
def
onMessage[M <: T](type: Class[M], handler: Function2[ActorContext[T], M, Behavior[T]]): BehaviorBuilder[T]
Add a new case to the message handling.
Add a new case to the message handling.
- M
type of message to match
- type
type of message to match
- handler
action to apply if the type matches
- returns
a new behavior with the specified handling appended
-
def
onMessageEquals(msg: T, handler: Function[ActorContext[T], Behavior[T]]): BehaviorBuilder[T]
Add a new case to the message handling matching equal messages.
Add a new case to the message handling matching equal messages.
- msg
the message to compare to
- handler
action to apply when the message matches
- returns
a new behavior with the specified handling appended
-
def
onMessageUnchecked[M <: T](type: Class[_ <: T], handler: Function2[ActorContext[T], M, Behavior[T]]): BehaviorBuilder[T]
Add a new case to the message handling without compile time type check.
Add a new case to the message handling without compile time type check.
Should normally not be used, but when matching on class with generic type argument it can be useful, e.g.
List.class
and(List<String> list) -> {...}
- type
type of message to match
- handler
action to apply when the type matches
- returns
a new behavior with the specified handling appended
-
def
onSignal[M <: Signal](type: Class[M], test: Predicate[M], handler: Function2[ActorContext[T], M, Behavior[T]]): BehaviorBuilder[T]
Add a new predicated case to the signal handling.
Add a new predicated case to the signal handling.
- M
type of signal to match
- type
type of signals to match
- test
a predicate that will be evaluated on the argument if the type matches
- handler
action to apply if the type matches and the predicate returns true
- returns
a new behavior with the specified handling appended
-
def
onSignal[M <: Signal](type: Class[M], handler: Function2[ActorContext[T], M, Behavior[T]]): BehaviorBuilder[T]
Add a new case to the signal handling.
Add a new case to the signal handling.
- M
type of signal to match
- type
type of signal to match
- handler
action to apply if the type matches
- returns
a new behavior with the specified handling appended
-
def
onSignalEquals(signal: Signal, handler: Function[ActorContext[T], Behavior[T]]): BehaviorBuilder[T]
Add a new case to the signal handling matching equal signals.
Add a new case to the signal handling matching equal signals.
- signal
the signal to compare to
- handler
action to apply when the message matches
- returns
a new behavior with the specified handling appended
-
def
onSignalUnchecked[M <: Signal](type: Class[_ <: Signal], handler: Function2[ActorContext[T], M, Behavior[T]]): BehaviorBuilder[T]
Add a new case to the signal handling without compile time type check.
Add a new case to the signal handling without compile time type check.
Should normally not be used, but when matching on class with generic type argument it can be useful, e.g.
GenMsg.class
and(ActorContext
ctx, GenMsg<String> list) -> {...} - type
type of signal to match
- handler
action to apply when the type matches
- returns
a new behavior with the specified handling appended