Class ReceiveBuilder<T>

java.lang.Object
org.apache.pekko.actor.typed.javadsl.ReceiveBuilder<T>
Type Parameters:
T - the common superclass of all supported messages.

public final class ReceiveBuilder<T> extends Object
Mutable builder used when implementing AbstractBehavior.

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.

  • Constructor Details

    • ReceiveBuilder

      public ReceiveBuilder()
  • Method Details

    • create

      public static <T> ReceiveBuilder<T> create()
      Create a new mutable receive builder
    • build

      public Receive<T> build()
    • onMessage

      public <M extends T> ReceiveBuilder<T> onMessage(Class<M> type, Function<M,Behavior<T>> handler)
      Add a new case to the message handling.

      Parameters:
      type - type of message to match
      handler - action to apply if the type matches
      Returns:
      this behavior builder
    • onMessage

      public <M extends T> ReceiveBuilder<T> onMessage(Class<M> type, Predicate<M> test, Function<M,Behavior<T>> handler)
      Add a new predicated case to the message handling.

      Parameters:
      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:
      this behavior builder
    • onMessageUnchecked

      public <M extends T> ReceiveBuilder<T> onMessageUnchecked(Class<? extends T> type, Function<M,Behavior<T>> handler)
      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&lt;String&gt; list) -> {...}

      Parameters:
      type - type of message to match
      handler - action to apply when the type matches
      Returns:
      this behavior builder
    • onMessageEquals

      public ReceiveBuilder<T> onMessageEquals(T msg, Creator<Behavior<T>> handler)
      Add a new case to the message handling matching equal messages.

      Parameters:
      msg - the message to compare to
      handler - action to apply when the message matches
      Returns:
      this behavior builder
    • onAnyMessage

      public ReceiveBuilder<T> onAnyMessage(Function<T,Behavior<T>> handler)
      Add a new case to the message handling matching any message. Subsequent onMessage clauses will never see any messages.

      Parameters:
      handler - action to apply for any message
      Returns:
      this behavior builder
    • onSignal

      public <M extends Signal> ReceiveBuilder<T> onSignal(Class<M> type, Function<M,Behavior<T>> handler)
      Add a new case to the signal handling.

      Parameters:
      type - type of signal to match
      handler - action to apply if the type matches
      Returns:
      this behavior builder
    • onSignal

      public <M extends Signal> ReceiveBuilder<T> onSignal(Class<M> type, Predicate<M> test, Function<M,Behavior<T>> handler)
      Add a new predicated case to the signal handling.

      Parameters:
      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:
      this behavior builder
    • onSignalEquals

      public ReceiveBuilder<T> onSignalEquals(Signal signal, Creator<Behavior<T>> handler)
      Add a new case to the signal handling matching equal signals.

      Parameters:
      signal - the signal to compare to
      handler - action to apply when the message matches
      Returns:
      this behavior builder