class ReceiveBuilder extends AnyRef
Used for building a partial function for org.apache.pekko.actor.AbstractActor#createReceive() AbstractActor.createReceive()
.
There is both a match on type only, and a match on type and predicate.
Inside an actor you can use it like this:
Example:
@Override public Receive createReceive() { return 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
- Protected
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(externalPredicate: BooleanSupplier, apply: UnitApply[AnyRef]): ReceiveBuilder
Add a new case statement to this builder, that pass the test of the predicate.
Add a new case statement to this builder, that pass the test of the predicate.
- externalPredicate
an external predicate that will always be evaluated.
- apply
an action to apply to the argument
- 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, externalPredicate: BooleanSupplier, 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
- externalPredicate
an external predicate that will be evaluated 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
- Annotations
- @SuppressWarnings()
- 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[_ <: AnyRef], 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
an 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
- Annotations
- @SuppressWarnings()
- def matchUnchecked[P](type: Class[_ <: AnyRef], predicate: TypedPredicate[_ <: AnyRef], 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
- Annotations
- @SuppressWarnings()
- def matchUnchecked(type: Class[_ <: AnyRef], apply: UnitApply[_ <: AnyRef]): 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
- Annotations
- @SuppressWarnings()