public interface SnapshotTriggerDefinition
This means aggregate-specific state should be kept in the SnapshotTrigger
instances, and not in the SnapshotTriggerDefinition
Modifier and Type | Method and Description |
---|---|
SnapshotTrigger |
prepareTrigger(Class<?> aggregateType)
Prepares a new trigger for an aggregate with the given
aggregateIdentifier and aggregateType . |
default SnapshotTrigger |
reconfigure(Class<?> aggregateType,
SnapshotTrigger trigger)
Reconfigure the necessary infrastructure components in the given
trigger instance , which may have been
lost in the (de)serialization process. |
SnapshotTrigger prepareTrigger(@Nonnull Class<?> aggregateType)
aggregateIdentifier
and aggregateType
. The
trigger will be notified of each event applied on the aggregate, as well as the moment at which the aggregate
state is fully initialized based on its historic events.
It is highly recommended that the instances returned by this method are Serializable
. Any
resources that the trigger needs that are not serializable, can be reattached by implementing the reconfigure(Class, SnapshotTrigger)
method. This method is invoked when a SnapshotTrigger has been
deserialized.
aggregateType
- The type of aggregate for which to create a triggerdefault SnapshotTrigger reconfigure(@Nonnull Class<?> aggregateType, @Nonnull SnapshotTrigger trigger)
trigger instance
, which may have been
lost in the (de)serialization process.
Since implementations of the SnapshotTrigger
often rely on a Snapshotter
which cannot be
serialized, it may be necessary to inject these resourcs after deserialization of a trigger.
Implementations returning a Serializable SnapshotTrigger (which is recommended), should implement this method if not all fields could be initialized base don serialized data.
aggregateType
- The type of aggregate for which this trigger was createdtrigger
- The trigger instance formerly created using prepareTrigger(Class)
trigger
instance.Copyright © 2010–2024. All rights reserved.