Package org.apache.pekko.actor
Class AbstractActor
- java.lang.Object
-
- org.apache.pekko.actor.AbstractActor
-
- All Implemented Interfaces:
Actor
- Direct Known Subclasses:
AbstractActorWithStash
,AbstractActorWithTimers
,AbstractActorWithUnboundedStash
,AbstractActorWithUnrestrictedStash
,AbstractLoggingActor
,AbstractPersistentActor
,AbstractPersistentActorWithTimers
,UntypedAbstractActor
public abstract class AbstractActor extends java.lang.Object implements Actor
Java API: compatible with lambda expressionsActor base class that should be extended to create Java actors that use lambdas.
Example:public class MyActorForJavaDoc extends AbstractActor{ @Override public Receive createReceive() { return receiveBuilder() .match(Double.class, d -> { sender().tell(d.isNaN() ? 0 : d, self()); }) .match(Integer.class, i -> { sender().tell(i * 10, self()); }) .match(String.class, s -> s.startsWith("foo"), s -> { sender().tell(s.toUpperCase(), self()); }) .build(); } }
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
AbstractActor.ActorContext
The actor context - the view of the actor cell from the actor.static class
AbstractActor.Receive
Defines which messages the Actor can handle, along with the implementation of how the messages should be processed.-
Nested classes/interfaces inherited from interface org.apache.pekko.actor.Actor
Actor.emptyBehavior$, Actor.ignoringBehavior$
-
-
Constructor Summary
Constructors Constructor Description AbstractActor()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description ActorContext
context()
Scala API: Stores the context for this actor, including self, and sender.abstract AbstractActor.Receive
createReceive()
An actor has to define its initial receive behavior by implementing thecreateReceive
method.static AbstractActor.Receive
emptyBehavior()
emptyBehavior is a Receive-expression that matches no messages at all, ever.AbstractActor.ActorContext
getContext()
Returns this AbstractActor's ActorContext The ActorContext is not thread safe so do not expose it outside of the AbstractActor.ActorRef
getSelf()
Returns the ActorRef for this actor.ActorRef
getSender()
The reference sender Actor of the currently processed message.protected void
org$apache$pekko$actor$Actor$_setter_$context_$eq(ActorContext x$1)
Scala API: Stores the context for this actor, including self, and sender.protected void
org$apache$pekko$actor$Actor$_setter_$self_$eq(ActorRef x$1)
The 'self' field holds the ActorRef for this actor.void
postRestart(java.lang.Throwable reason)
User overridable callback: By default it callspreStart()
.void
postStop()
User overridable callback.void
preRestart(java.lang.Throwable reason, java.util.Optional<java.lang.Object> message)
User overridable callback: '''By default it disposes of all children and then callspostStop()
.'''void
preRestart(java.lang.Throwable reason, scala.Option<java.lang.Object> message)
Deprecated.Override preRestart with message parameter with Optional type instead.void
preStart()
User overridable callback.scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit>
receive()
Scala API: This defines the initial actor behavior, it must return a partial function with the actor logic.ReceiveBuilder
receiveBuilder()
Convenience factory of theReceiveBuilder
.ActorRef
self()
The 'self' field holds the ActorRef for this actor.SupervisorStrategy
supervisorStrategy()
User overridable definition the strategy to use for supervising child actors.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.pekko.actor.Actor
aroundPostRestart, aroundPostStop, aroundPreRestart, aroundPreStart, aroundReceive, sender, unhandled
-
-
-
-
Method Detail
-
emptyBehavior
public static final AbstractActor.Receive emptyBehavior()
emptyBehavior is a Receive-expression that matches no messages at all, ever.
-
context
public ActorContext context()
Description copied from interface:Actor
Scala API: Stores the context for this actor, including self, and sender. It is implicit to support operations such asforward
.WARNING: Only valid within the Actor itself, so do not close over it and publish it to other threads!
pekko.actor.ActorContext
is the Scala API.getContext
returns apekko.actor.AbstractActor.ActorContext
, which is the Java API of the actor context.
-
self
public final ActorRef self()
Description copied from interface:Actor
The 'self' field holds the ActorRef for this actor. Can be used to send messages to itself:self ! message
-
org$apache$pekko$actor$Actor$_setter_$context_$eq
protected void org$apache$pekko$actor$Actor$_setter_$context_$eq(ActorContext x$1)
Description copied from interface:Actor
Scala API: Stores the context for this actor, including self, and sender. It is implicit to support operations such asforward
.WARNING: Only valid within the Actor itself, so do not close over it and publish it to other threads!
pekko.actor.ActorContext
is the Scala API.getContext
returns apekko.actor.AbstractActor.ActorContext
, which is the Java API of the actor context.- Specified by:
org$apache$pekko$actor$Actor$_setter_$context_$eq
in interfaceActor
-
org$apache$pekko$actor$Actor$_setter_$self_$eq
protected final void org$apache$pekko$actor$Actor$_setter_$self_$eq(ActorRef x$1)
Description copied from interface:Actor
The 'self' field holds the ActorRef for this actor. Can be used to send messages to itself:self ! message
- Specified by:
org$apache$pekko$actor$Actor$_setter_$self_$eq
in interfaceActor
-
getContext
public AbstractActor.ActorContext getContext()
Returns this AbstractActor's ActorContext The ActorContext is not thread safe so do not expose it outside of the AbstractActor.
-
getSelf
public ActorRef getSelf()
Returns the ActorRef for this actor.Same as
self()
.
-
getSender
public ActorRef getSender()
The reference sender Actor of the currently processed message. This is always a legal destination to send to, even if there is no logical recipient for the reply, in which case it will be sent to the dead letter mailbox.Same as
sender()
.WARNING: Only valid within the Actor itself, so do not close over it and publish it to other threads!
-
supervisorStrategy
public SupervisorStrategy supervisorStrategy()
User overridable definition the strategy to use for supervising child actors.- Specified by:
supervisorStrategy
in interfaceActor
-
preStart
public void preStart() throws java.lang.Exception
User overridable callback. Is called when an Actor is started. Actor are automatically started asynchronously when created. Empty default implementation.
-
postStop
public void postStop() throws java.lang.Exception
User overridable callback. Is called asynchronously aftergetContext().stop()
is invoked. Empty default implementation.
-
preRestart
public void preRestart(java.lang.Throwable reason, scala.Option<java.lang.Object> message) throws java.lang.Exception
Deprecated.Override preRestart with message parameter with Optional type instead. Since Akka 2.5.0.Description copied from interface:Actor
Scala API: User overridable callback: '''By default it disposes of all children and then callspostStop()
.'''- Specified by:
preRestart
in interfaceActor
- Parameters:
reason
- the Throwable that caused the restart to happenmessage
- optionally the current message the actor processed when failing, if applicable Is called on a crashed Actor right BEFORE it is restarted to allow clean up of resources before Actor is terminated.- Throws:
java.lang.Exception
-
preRestart
public void preRestart(java.lang.Throwable reason, java.util.Optional<java.lang.Object> message) throws java.lang.Exception
User overridable callback: '''By default it disposes of all children and then callspostStop()
.''' Is called on a crashed Actor right BEFORE it is restarted to allow clean up of resources before Actor is terminated.- Throws:
java.lang.Exception
-
postRestart
public void postRestart(java.lang.Throwable reason) throws java.lang.Exception
User overridable callback: By default it callspreStart()
. Is called right AFTER restart on the newly created Actor to allow reinitialization after an Actor crash.- Specified by:
postRestart
in interfaceActor
- Parameters:
reason
- the Throwable that caused the restart to happen Is called right AFTER restart on the newly created Actor to allow reinitialization after an Actor crash.- Throws:
java.lang.Exception
-
createReceive
public abstract AbstractActor.Receive createReceive()
An actor has to define its initial receive behavior by implementing thecreateReceive
method.
-
receive
public scala.PartialFunction<java.lang.Object,scala.runtime.BoxedUnit> receive()
Description copied from interface:Actor
Scala API: This defines the initial actor behavior, it must return a partial function with the actor logic.
-
receiveBuilder
public final ReceiveBuilder receiveBuilder()
Convenience factory of theReceiveBuilder
. Creates a new emptyReceiveBuilder
.
-
-