class ReceiveBuilder extends AnyRef
Used for building a partial function for Actor.receive()
.
There is both a match on type only, and a match on type and predicate.
Inside an actor you can use it like this with Java 8 to define your receive method.
Example:
@Override public Actor() { receive(ReceiveBuilder. match(Double.class, d -> { getSender().tell(d.isNaN() ? 0 : d, self()); }). match(Integer.class, i -> { getSender().tell(i * 10, self()); }). match(String.class, s -> s.startsWith("foo"), s -> { getSender().tell(s.toUpperCase(), self()); }).build() ); }
- Source
- ReceiveBuilder.java
- Alphabetic
- By Inheritance
- ReceiveBuilder
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
- new ReceiveBuilder()
Value Members
-
def
build(): Receive
Build a
scala.PartialFunction
from this builder.Build a
scala.PartialFunction
from this builder. After this call the builder will be reset.- returns
a PartialFunction for this builder.
-
def
match[P](type: Class[P], externalPredicate: BooleanSupplier, apply: UnitApply[P]): ReceiveBuilder
Add a new case statement to this builder.
Add a new case statement to this builder.
- type
a type to match the argument against
- externalPredicate
a external predicate that will be evaluated if the type matches
- apply
an action to apply to the argument if the type matches and the predicate returns true
- returns
a builder with the case statement added
-
def
match[P](type: Class[P], predicate: TypedPredicate[P], apply: UnitApply[P]): ReceiveBuilder
Add a new case statement to this builder.
Add a new case statement to this builder.
- type
a type to match the argument against
- predicate
a predicate that will be evaluated on the argument if the type matches
- apply
an action to apply to the argument if the type matches and the predicate returns true
- returns
a builder with the case statement added
-
def
match[P](type: Class[P], apply: UnitApply[P]): ReceiveBuilder
Add a new case statement to this builder.
Add a new case statement to this builder.
- type
a type to match the argument against
- apply
an action to apply to the argument if the type matches
- returns
a builder with the case statement added
-
def
matchAny(apply: UnitApply[AnyRef]): ReceiveBuilder
Add a new case statement to this builder, that matches any argument.
Add a new case statement to this builder, that matches any argument.
- apply
an action to apply to the argument
- returns
a builder with the case statement added
-
def
matchEquals[P](object: P, predicate: TypedPredicate[P], apply: UnitApply[P]): ReceiveBuilder
Add a new case statement to this builder.
Add a new case statement to this builder.
- object
the object to compare equals with
- predicate
a predicate that will be evaluated on the argument if the object compares equal
- apply
an action to apply to the argument if the object compares equal
- returns
a builder with the case statement added
-
def
matchEquals[P](object: P, apply: UnitApply[P]): ReceiveBuilder
Add a new case statement to this builder.
Add a new case statement to this builder.
- object
the object to compare equals with
- apply
an action to apply to the argument if the object compares equal
- returns
a builder with the case statement added
-
def
matchUnchecked[P](type: Class[_], externalPredicate: BooleanSupplier, apply: UnitApply[P]): ReceiveBuilder
Add a new case statement to this builder without compile time type check.
Add a new case statement to this builder 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
a type to match the argument against
- externalPredicate
a external predicate that will be evaluated if the type matches
- apply
an action to apply to the argument if the type matches and the predicate returns true
- returns
a builder with the case statement added
-
def
matchUnchecked[P](type: Class[_], predicate: TypedPredicate[_], apply: UnitApply[P]): ReceiveBuilder
Add a new case statement to this builder without compile time type check.
Add a new case statement to this builder 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
a type to match the argument against
- predicate
a predicate that will be evaluated on the argument if the type matches
- apply
an action to apply to the argument if the type matches and the predicate returns true
- returns
a builder with the case statement added
-
def
matchUnchecked(type: Class[_], apply: UnitApply[_]): ReceiveBuilder
Add a new case statement to this builder without compile time type check.
Add a new case statement to this builder 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
a type to match the argument against
- apply
an action to apply to the argument if the type matches
- returns
a builder with the case statement added