Class ChangeEventHandler<Command,State,ChangeEvent>
- java.lang.Object
-
- akka.persistence.typed.state.scaladsl.ChangeEventHandler<Command,State,ChangeEvent>
-
public final class ChangeEventHandler<Command,State,ChangeEvent> extends java.lang.Object
API May Change: Define these handlers in theDurableStateBehavior.withChangeEventHandler(akka.persistence.typed.state.scaladsl.ChangeEventHandler<Command, State, ChangeEvent>)
to store additional change event when the state is updated. The event can be used in Projections.
-
-
Constructor Summary
Constructors Constructor Description ChangeEventHandler()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static <Command,State,ChangeEvent>
ChangeEventHandler<Command,State,ChangeEvent>apply(scala.Function3<State,State,Command,ChangeEvent> updateHandler, scala.Function2<State,Command,ChangeEvent> deleteHandler)
Define these handlers in theDurableStateBehavior.withChangeEventHandler(akka.persistence.typed.state.scaladsl.ChangeEventHandler<Command, State, ChangeEvent>)
to store additional change event when the state is updated.scala.Function2<State,Command,ChangeEvent>
deleteHandler()
scala.Function3<State,State,Command,ChangeEvent>
updateHandler()
-
-
-
Method Detail
-
apply
public static <Command,State,ChangeEvent> ChangeEventHandler<Command,State,ChangeEvent> apply(scala.Function3<State,State,Command,ChangeEvent> updateHandler, scala.Function2<State,Command,ChangeEvent> deleteHandler)
Define these handlers in theDurableStateBehavior.withChangeEventHandler(akka.persistence.typed.state.scaladsl.ChangeEventHandler<Command, State, ChangeEvent>)
to store additional change event when the state is updated. The event can be used in Projections.The
updateHandler
anddeleteHandler
are invoked after the ordinary command handler. Be aware of that if the state is mutable and modified by the command handler the previous state parameter of theupdateHandler
will also include the modification, since it's the same instance. If that is a problem you need to use immutable state and create a new state instance when modifying it in the command handler.- Parameters:
updateHandler
- Function that given the previous and new state creates the change event to be stored when the DurableState is updated.deleteHandler
- Function that given the previous state creates the change event to be stored when the DurableState is deleted.
-
updateHandler
public scala.Function3<State,State,Command,ChangeEvent> updateHandler()
-
deleteHandler
public scala.Function2<State,Command,ChangeEvent> deleteHandler()
-
-