A C D E F G H I L M N O P R S T U W 
All Classes All Packages

A

actualLatestEventOrder - Variable in exception dk.cloudcreate.essentials.components.eventsourced.aggregates.OptimisticAggregateLoadException
 
Aggregate<ID,​AGGREGATE_TYPE extends Aggregate<ID,​AGGREGATE_TYPE>> - Interface in dk.cloudcreate.essentials.components.eventsourced.aggregates
Common interface that all concrete (classical) Aggregate's must implement.
AggregateException - Exception in dk.cloudcreate.essentials.components.eventsourced.aggregates
 
AggregateException() - Constructor for exception dk.cloudcreate.essentials.components.eventsourced.aggregates.AggregateException
 
AggregateException(String) - Constructor for exception dk.cloudcreate.essentials.components.eventsourced.aggregates.AggregateException
 
AggregateException(String, Throwable) - Constructor for exception dk.cloudcreate.essentials.components.eventsourced.aggregates.AggregateException
 
AggregateException(String, Throwable, boolean, boolean) - Constructor for exception dk.cloudcreate.essentials.components.eventsourced.aggregates.AggregateException
 
AggregateException(Throwable) - Constructor for exception dk.cloudcreate.essentials.components.eventsourced.aggregates.AggregateException
 
aggregateId - Variable in class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
The id of the aggregate this relates to
aggregateId - Variable in exception dk.cloudcreate.essentials.components.eventsourced.aggregates.OptimisticAggregateLoadException
 
aggregateId() - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.Aggregate
The id of the aggregate (aka.
aggregateId() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregate
 
aggregateId() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.AggregateRoot
 
aggregateId() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.Event
Get the id of the aggregate this event relates to.
aggregateId() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateRootWithState
 
aggregateId() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateState
 
aggregateId() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
 
aggregateId(ID) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.Event
Set the id of the aggregate this event relates to.
aggregateIdType() - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository
The type of aggregate ID this repository uses
aggregateIdType() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository.DefaultFlexAggregateRepository
 
aggregateIdType() - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository
The type of aggregate ID this repository uses
aggregateIdType() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository.DefaultStatefulAggregateRepository
 
AggregateRoot<ID,​EVENT_TYPE extends Event<ID>,​AGGREGATE_TYPE extends AggregateRoot<ID,​EVENT_TYPE,​AGGREGATE_TYPE>> - Class in dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic
A specialized and opinionated mutable Aggregate design
This AggregateRoot is designed to work with Class based Event's that inherit from Event.
This design is deliberate and will manage a lot of things for you as a developer at the cost of some flexibility.
AggregateRoot<ID,​EVENT_TYPE,​AGGREGATE_TYPE extends AggregateRoot<ID,​EVENT_TYPE,​AGGREGATE_TYPE>> - Class in dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern
A modern opinionated interpretation of the classic AggregateRoot design, where the Event's are mutable.
The modern interpretation doesn't specify any requirement on the design of the Events, they can be Java 17+ records or simple POJO's.

Note: The AggregateRoot works best in combination with the StatefulAggregateRepository that's configured to use the StatefulAggregateInstanceFactory.reflectionBasedAggregateRootFactory(), because the AggregateRoot needs to be provided its aggregated id through the AggregateRoot(Object) constructor!

The modern AggregateRoot supports keeping the state projection and EventHandler annotated methods within the AggregateRoot instance or within an AggregateState instance.
If you wish to keep the state projection and EventHandler annotated methods within an AggregateState instance, then you only need to implement the WithState interface:
AggregateRoot() - Constructor for class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.AggregateRoot
 
AggregateRoot(ID) - Constructor for class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
Used for rehydration
aggregateRootImplementationType() - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository
The type of FlexAggregate implementation this repository handles
aggregateRootImplementationType() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository.DefaultFlexAggregateRepository
 
aggregateRootImplementationType() - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository
The type of StatefulAggregate implementation this repository handles
aggregateRootImplementationType() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository.DefaultStatefulAggregateRepository
 
AggregateRootWithState<ID,​EVENT_TYPE extends Event<ID>,​STATE extends AggregateState<ID,​EVENT_TYPE>,​AGGREGATE_TYPE extends AggregateRootWithState<ID,​EVENT_TYPE,​STATE,​AGGREGATE_TYPE>> - Class in dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state
Variant of the AggregateRoot pattern where the aggregate's state and all EventHandler annotated methods are placed within the concrete AggregateState object.
When the AggregateRootWithState is combined with AggregateState, then the AggregateRootWithState will contain the command methods and the AggregateState contains the state fields and the EventHandler annotated methods.
AggregateRootWithState() - Constructor for class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateRootWithState
 
AggregateState<ID,​EVENT_TYPE extends Event<ID>> - Class in dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state
Base class for the state object associated with AggregateRootWithState.
When this is combined with the AggregateRootWithState when the AggregateRootWithState will contain the command methods and the AggregateState contains the state fields and the EventHandler annotated methods.
AggregateState<ID,​EVENT_TYPE,​AGGREGATE_TYPE extends AggregateRoot<ID,​EVENT_TYPE,​AGGREGATE_TYPE>> - Class in dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern
Aggregate state object associated with a given AggregateRoot instance (see AggregateState.getAggregate())
Example:
AggregateState() - Constructor for class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateState
 
AggregateState() - Constructor for class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateState
 
aggregateType - Variable in exception dk.cloudcreate.essentials.components.eventsourced.aggregates.OptimisticAggregateLoadException
 
aggregateType() - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository
The type of AggregateType this repository is using to persist Events
aggregateType() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository.DefaultFlexAggregateRepository
 
aggregateType() - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository
The type of AggregateType this repository is using to persist Events
aggregateType() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository.DefaultStatefulAggregateRepository
 
append(EventsToPersist<ID, EVENT_TYPE>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
Immutable method that appends all events in appendEventsToPersist to the EventsToPersist.events in this instance.
apply(EVENT_TYPE) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.AggregateRoot
Apply a new non persisted/uncommitted Event to this aggregate instance.
If it is the very FIRST Event that is being applied then Event.aggregateId() MUST return the ID of the aggregate the event relates to
Every consecutive Event applied will have its Event.aggregateId(Object) method called IF it doesn't already have a value.
apply(EVENT_TYPE) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateRootWithState
 
apply(EVENT_TYPE) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateState
Apply a new non persisted/uncommitted Event to this aggregate instance.
If it is the very FIRST Event that is being applied then Event.aggregateId() MUST return the ID of the aggregate the event relates to
Every consecutive Event applied will have its Event.aggregateId(Object) method called IF it doesn't already have a value.
apply(EVENT_TYPE) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
Apply a new non persisted/uncommitted Event to this aggregate instance.
apply(Function<EventOrder, EVENT_TYPE>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
Apply a new non persisted/uncommitted Event to this aggregate instance.
applyEventToTheAggregate(Event<ID>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateState
Apply the event to the aggregate instance to reflect the event as a state change to the aggregate
The default implementation will automatically call any (private) methods annotated with EventHandler
applyEventToTheAggregateState(Event<ID>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.AggregateRoot
Apply the event to the aggregate instance to reflect the event as a state change to the aggregate
The default implementation will automatically call any (private) methods annotated with EventHandler
applyEventToTheAggregateState(Object) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
Apply the event to the aggregate instance to reflect the event as a state change to the aggregate
The default implementation will automatically call any (private) methods annotated with EventHandler
applyRehydratedEventToTheAggregate(Object) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregate
Apply the previously recorded/persisted event (aka historic event) to the aggregate instance to reflect the event as a state change to the aggregate
The default implementation will automatically call any (private) methods annotated with EventHandler

C

create(ID, Class<AGGREGATE>) - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateInstanceFactory
Create an instance of the Aggregate
create(ID, Class<AGGREGATE>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateInstanceFactory.ObjenesisAggregateInstanceFactory
 
create(ID, Class<AGGREGATE>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateInstanceFactory.ReflectionBasedAggregateInstanceFactory
 

D

DEFAULT_REFLECTION_BASED_CONSTRUCTOR_AGGREGATE_ROOT_FACTORY - Static variable in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateInstanceFactory
An StatefulAggregateInstanceFactory that calls the default no-arguments constructor on the concrete Aggregate type to create a new instance of the Aggregate
dk.cloudcreate.essentials.components.eventsourced.aggregates - module dk.cloudcreate.essentials.components.eventsourced.aggregates
 
dk.cloudcreate.essentials.components.eventsourced.aggregates - package dk.cloudcreate.essentials.components.eventsourced.aggregates
 
dk.cloudcreate.essentials.components.eventsourced.aggregates.flex - package dk.cloudcreate.essentials.components.eventsourced.aggregates.flex
 
dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful - package dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful
 
dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic - package dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic
 
dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state - package dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state
 
dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern - package dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern
 

E

Event<ID> - Class in dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic
Based Event type that's built to work in combination with AggregateRoot
All you need to do is to inherit from this class when building your own Event types.
Event() - Constructor for class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.Event
 
EventHandler - Annotation Type in dk.cloudcreate.essentials.components.eventsourced.aggregates
Methods annotated with this Annotation will automatically be called when an event is being applied or rehydrated on to an Aggregate instance
eventOrder() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.Event
Contains the order of the event relative to the aggregate instance (the Event.aggregateId) it relates to
This is also commonly called the sequenceNumber and it's a sequential ever growing number that tracks the order in which events have been stored in the EventStore related to a specific aggregate instance (as opposed to the globalOrder that contains the order of ALL events related to a given AggregateType)
eventOrder(EventOrder) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.Event
Set the event order - called by AggregateRoot
eventOrderOfLastAppliedEvent() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.AggregateRoot
eventOrderOfLastAppliedEvent() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateRootWithState
 
eventOrderOfLastAppliedEvent() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateState
eventOrderOfLastAppliedEvent() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
 
eventOrderOfLastRehydratedEvent - Variable in class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
(Zero based event order) contains the eventOrder for the last (previous/historic) event applied during AggregateRoot.rehydrate(AggregateEventStream)/rehydrate(AggregateEventStream).
eventOrderOfLastRehydratedEvent() - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.Aggregate
Get the eventOrder of the last event during aggregate hydration (using the Aggregate.rehydrate(AggregateEventStream) method)
eventOrderOfLastRehydratedEvent() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregate
eventOrderOfLastRehydratedEvent() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.AggregateRoot
 
eventOrderOfLastRehydratedEvent() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateRootWithState
 
eventOrderOfLastRehydratedEvent() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
 
events - Variable in class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
 
events(FlexAggregate<ID, AGGREGATE_TYPE>, EVENT_TYPE...) - Static method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
Wrap the events that should be persisted relates to the given aggregate's command handling
events(ID, EventOrder, EVENT_TYPE...) - Static method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
Wrap the events that should be persisted for this existing aggregate
events(Object...) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregate
Wrap the events that should be persisted as a side effect of a command method
EventsToPersist<ID,​EVENT_TYPE> - Class in dk.cloudcreate.essentials.components.eventsourced.aggregates
Wrapper object that captures the results of any command handling (e.g.
EventsToPersist(ID, EventOrder, EVENT_TYPE...) - Constructor for class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
 
EventsToPersist(ID, EventOrder, List<EVENT_TYPE>) - Constructor for class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
 
eventStore() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository.DefaultFlexAggregateRepository
The EventStore that's being used for support
eventStore() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository.DefaultStatefulAggregateRepository
The EventStore that's being used for support
expectedLatestEventOrder - Variable in exception dk.cloudcreate.essentials.components.eventsourced.aggregates.OptimisticAggregateLoadException
 

F

FlexAggregate<ID,​AGGREGATE_TYPE extends FlexAggregate<ID,​AGGREGATE_TYPE>> - Class in dk.cloudcreate.essentials.components.eventsourced.aggregates.flex
Simple, easy and opinionated aggregate that allows you to apply events that don't have any requirements with regards to inheritance (i.e.
FlexAggregate() - Constructor for class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregate
 
FlexAggregateRepository<ID,​AGGREGATE_TYPE extends FlexAggregate<ID,​AGGREGATE_TYPE>> - Interface in dk.cloudcreate.essentials.components.eventsourced.aggregates.flex
Opinionated FlexAggregate Repository that's built to persist and load a specific FlexAggregate type in combination with EventStore, EventStoreUnitOfWorkFactory and a FlexAggregateRepository.
FlexAggregateRepository.DefaultFlexAggregateRepository<ID,​AGGREGATE_TYPE extends FlexAggregate<ID,​AGGREGATE_TYPE>> - Class in dk.cloudcreate.essentials.components.eventsourced.aggregates.flex
 
from(ConfigurableEventStore<CONFIG>, CONFIG, StatefulAggregateInstanceFactory, Class<AGGREGATE_IMPL_TYPE>) - Static method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository
Create an StatefulAggregateRepository instance that supports loading and persisting the given Aggregate type - the EventStore will be configured with the supplied eventStreamConfiguration.
This factory method will try to resolve the Aggregate Id type from the aggregateImplementationType type parameters
If that fails please use StatefulAggregateRepository.from(ConfigurableEventStore, AggregateEventStreamConfiguration, StatefulAggregateInstanceFactory, Class, Class)
from(ConfigurableEventStore<CONFIG>, CONFIG, StatefulAggregateInstanceFactory, Class<ID>, Class<AGGREGATE_IMPL_TYPE>) - Static method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository
Create an StatefulAggregateRepository instance that supports loading and persisting the given Aggregate type - the EventStore will be configured with the supplied eventStreamConfiguration
from(ConfigurableEventStore<CONFIG>, CONFIG, EventStoreUnitOfWorkFactory, Class<ID>, Class<AGGREGATE_TYPE>) - Static method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository
Create a FlexAggregateRepository - the EventStore will be configured with the supplied eventStreamConfiguration.
from(ConfigurableEventStore<CONFIG>, AggregateType, StatefulAggregateInstanceFactory, Class<AGGREGATE_IMPL_TYPE>) - Static method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository
Create an StatefulAggregateRepository instance that supports loading and persisting the given Aggregate type - if missing, the EventStore will be configured with the default AggregateEventStreamConfiguration based on the AggregateEventStreamConfigurationFactory that the EventStore's AggregateEventStreamPersistenceStrategy is configured with
This factory method will try to resolve the Aggregate Id type from the aggregateImplementationType type parameters
If that fails please use StatefulAggregateRepository.from(ConfigurableEventStore, AggregateEventStreamConfiguration, StatefulAggregateInstanceFactory, Class, Class)
from(ConfigurableEventStore<CONFIG>, AggregateType, StatefulAggregateInstanceFactory, Class<ID>, Class<AGGREGATE_IMPL_TYPE>) - Static method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository
Create an StatefulAggregateRepository instance that supports loading and persisting the given Aggregate type - if missing, the EventStore will be configured with the default AggregateEventStreamConfiguration based on the AggregateEventStreamConfigurationFactory that the EventStore's AggregateEventStreamPersistenceStrategy is configured with
from(ConfigurableEventStore<CONFIG>, AggregateType, EventStoreUnitOfWorkFactory, Class<ID>, Class<AGGREGATE_TYPE>) - Static method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository
Create a FlexAggregateRepository - if missing, the EventStore will be configured with the default AggregateEventStreamConfiguration based on the AggregateEventStreamConfigurationFactory that the EventStore's AggregateEventStreamPersistenceStrategy is configured with

G

get(int) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
Get event at index.
getAggregate() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateState
Get access to the aggregate instance this state object is associated with
getEventOrderOfLastAppliedEvent() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateState
 
getEventOrderOfLastRehydratedEvent() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateState
 
getUncommittedChanges() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.AggregateRoot
The the events that have been applied to this aggregate instance but not yet persisted to the underlying EventStore
getUncommittedChanges() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateRootWithState
 
getUncommittedChanges() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
 
getUncommittedChanges() - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregate
Query any changes to the Aggregate, i.e.

H

hasBeenRehydrated() - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.Aggregate
Has the aggregate been initialized using previously recorded/persisted events (aka.
hasBeenRehydrated() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregate
Has the aggregate been initialized using previously recorded/persisted events?
hasBeenRehydrated() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.AggregateRoot
hasBeenRehydrated() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateState
hasBeenRehydrated() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
 

I

initialAggregateEvents(ID, EVENT_TYPE...) - Static method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
Wrap the events that should be persisted for this new aggregate
InitialEventIsMissingAggregateIdException - Exception in dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic
 
InitialEventIsMissingAggregateIdException(String) - Constructor for exception dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.InitialEventIsMissingAggregateIdException
 
initialize() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregate
 
initialize() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.AggregateRoot
Initialize the aggregate, e.g.
initialize() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateRootWithState
Override this method to initialize the AggregateRootWithState.state variable in case the AggregateRootWithState.resolveStateImplementationClass() doesn't fit the requirements
initialize() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
Initialize the aggregate, e.g.
isCommitted() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
 
isEmpty() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
isRehydrating() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.AggregateRoot
Is the event being supplied to AggregateRoot.applyEventToTheAggregateState(Event) a previously persisted (i.e.
isRehydrating() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateState
Is the event being supplied to AggregateState.applyEventToTheAggregate(Event) a historic event
isRehydrating() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
Is the event being supplied to AggregateRoot.applyEventToTheAggregateState(Object) a previously persisted event (i.e.

L

load(ID) - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository
Load an FlexAggregate instance with the specified aggregateId from the underlying EventStore
The loaded aggregate instance will be associated with the UnitOfWorkFactory.getRequiredUnitOfWork() and any changes to will be tracked and will be persisted to the underlying EventStore when the UnitOfWork is committed.
load(ID) - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository
Load an StatefulAggregate instance with the specified aggregateId from the underlying EventStore
The loaded aggregate instance will be associated with the UnitOfWorkFactory.getRequiredUnitOfWork() and any changes to will be tracked and will be persisted to the underlying EventStore when the UnitOfWork is committed.
load(ID, long) - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository
Load an FlexAggregate instance with the specified aggregateId from the underlying EventStore
The loaded aggregate instance will be associated with the UnitOfWorkFactory.getRequiredUnitOfWork() and any changes to will be tracked and will be persisted to the underlying EventStore when the UnitOfWork is committed.
load(ID, EventOrder) - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository
Load an StatefulAggregate instance with the specified aggregateId from the underlying EventStore
The loaded aggregate instance will be associated with the UnitOfWorkFactory.getRequiredUnitOfWork() and any changes to will be tracked and will be persisted to the underlying EventStore when the UnitOfWork is committed.

M

markChangesAsCommitted() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.AggregateRoot
Resets the AggregateRoot.getUncommittedChanges() - effectively marking them as having been persisted and committed to the underlying EventStore
markChangesAsCommitted() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateRootWithState
 
markChangesAsCommitted() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateState
Resets the AggregateState.uncommittedChanges() - effectively marking them as having been persisted and committed to the underlying EventStore
markChangesAsCommitted() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
Resets the AggregateRoot.getUncommittedChanges() - effectively marking them as having been persisted and committed to the underlying EventStore
markChangesAsCommitted() - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregate
Resets the StatefulAggregate.getUncommittedChanges() - effectively marking them as having been persisted and committed to the underlying EventStore
markEventsAsCommitted() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
 

N

newAggregateEvents(ID, Object...) - Static method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregate
Wrap the events that should be persisted for this new aggregate
noEvents() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregate
Creates an empty EventsToPersist which is handy for a commanded method didn't have a side-effect (e.g.
noEvents(FlexAggregate<ID, AGGREGATE_TYPE>) - Static method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
Creates an empty EventsToPersist which is handy for a commanded method didn't have a side-effect (e.g.
noEvents(ID) - Static method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
Creates an empty EventsToPersist which is handy for a commanded method didn't have a side-effect (e.g.

O

OBJENESIS_AGGREGATE_ROOT_FACTORY - Static variable in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateInstanceFactory
An StatefulAggregateInstanceFactory that uses Objenesis to create a new instance of the Aggregate
Please note: Objenesis doesn't initialize fields nor call any constructors, so you Aggregate design needs to take this into consideration.
All concrete aggregates that extends StatefulAggregate have been prepared to be initialized by Objenesis
ObjenesisAggregateInstanceFactory() - Constructor for class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateInstanceFactory.ObjenesisAggregateInstanceFactory
 
objenesisAggregateRootFactory() - Static method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateInstanceFactory
Returns an StatefulAggregateInstanceFactory that uses Objenesis to create a new instance of the Aggregate
Please note: Objenesis doesn't initialize fields nor call any constructors, so you Aggregate design needs to take this into consideration.
All concrete aggregates that extends AggregateRoot have been prepared to be initialized by Objenesis
OptimisticAggregateLoadException - Exception in dk.cloudcreate.essentials.components.eventsourced.aggregates
 
OptimisticAggregateLoadException(Object, Class<? extends Aggregate<?, ?>>, EventOrder, EventOrder) - Constructor for exception dk.cloudcreate.essentials.components.eventsourced.aggregates.OptimisticAggregateLoadException
 

P

persist(AGGREGATE_IMPL_TYPE) - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository
persist(EventsToPersist<ID, Object>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository.DefaultFlexAggregateRepository
 
persist(EventsToPersist<ID, Object>) - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository
Associate a newly created and not yet persisted FlexAggregate instance with the UnitOfWorkFactory.getRequiredUnitOfWork()
Any changes to will be tracked and will be persisted to the underlying EventStore when the UnitOfWork is committed.
projectEvents(AggregateType, ID, Class<PROJECTION>, EventStore) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateInMemoryProjector
 

R

ReflectionBasedAggregateInstanceFactory() - Constructor for class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateInstanceFactory.ReflectionBasedAggregateInstanceFactory
 
reflectionBasedAggregateRootFactory() - Static method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateInstanceFactory
Returns an StatefulAggregateInstanceFactory that calls the default no-arguments constructor on the concrete Aggregate type to create a new instance of the Aggregate
rehydrate(EventsToPersist<ID, Object>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregate
Initialize an aggregate instance from EventsToPersist
Effectively performs a leftFold over all the previous events related to this aggregate instance
rehydrate(AggregateEventStream<ID>) - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.Aggregate
Effectively performs a leftFold over all the previously persisted events related to this aggregate instance
rehydrate(AggregateEventStream<ID>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregate
Initialize an aggregate instance from historic events.
Effectively performs a leftFold over all the previous persisted events related to this aggregate instance
rehydrate(AggregateEventStream<ID>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.AggregateRoot
Effectively performs a leftFold over all the previously persisted events related to this aggregate instance
rehydrate(AggregateEventStream<ID>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
Effectively performs a leftFold over all the previously persisted events related to this aggregate instance
rehydrate(ID, List<Object>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregate
 
rehydrate(ID, Stream<Object>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregate
Effectively performs a leftFold over all the previous events related to this aggregate instance
rehydrate(Stream<EVENT_TYPE>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.AggregateRoot
Effectively performs a leftFold over all the previous events related to this aggregate instance
rehydrate(Stream<EVENT_TYPE>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateRootWithState
 
rehydrate(Stream<EVENT_TYPE>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateState
 
rehydrate(Stream<EVENT_TYPE>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
Effectively performs a leftFold over all the previous events related to this aggregate instance
resolveStateImplementationClass() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateRootWithState
Override this method to provide a non reflection based look up of the Type Argument provided to the AggregateRootWithState class
resolveStateImplementationClass() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
Override this method to provide a non reflection based look up of the Type Argument provided to the AggregateRoot class

S

save(AGGREGATE_IMPL_TYPE) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository.DefaultStatefulAggregateRepository
 
save(AGGREGATE_IMPL_TYPE) - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository
Save/Associate a newly created and not yet persisted StatefulAggregate instance with the UnitOfWorkFactory.getRequiredUnitOfWork()
Any changes to will be tracked and will be persisted to the underlying EventStore when the UnitOfWork is committed.
size() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
Number of events.
state - Variable in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateRootWithState
 
state() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
If the aggregate implements WithState then you can call this method to access the state object
This method requires that the return type information is available at compile time:
state(Class<STATE>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern.AggregateRoot
Variant of the AggregateRoot.state() where the concrete State type is specified in the argument
If the aggregate implements WithState then you can call this method to access the state object
StatefulAggregate<ID,​EVENT_TYPE,​AGGREGATE_TYPE extends StatefulAggregate<ID,​EVENT_TYPE,​AGGREGATE_TYPE>> - Interface in dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful
A stateful Aggregate is the most common form of Aggregate design in Object Oriented languages.
What makes an Aggregate stateful is the fact that any changes, i.e.
StatefulAggregateInMemoryProjector - Class in dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful
Aggregate specific InMemoryProjector
Note: An in memory projection is never associated with a UnitOfWork and any changes to the aggregate won't automatically be persisted.
StatefulAggregateInMemoryProjector(StatefulAggregateInstanceFactory) - Constructor for class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateInMemoryProjector
 
StatefulAggregateInstanceFactory - Interface in dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful
Factory that helps the StatefulAggregateRepository/StatefulAggregateInMemoryProjector to create an instance of a given Aggregate.
StatefulAggregateInstanceFactory.ObjenesisAggregateInstanceFactory - Class in dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful
StatefulAggregateInstanceFactory that uses Objenesis to create a new instance of the Aggregate
Please note: Objenesis doesn't initialize fields nor call any constructors, so you Aggregate design needs to take this into consideration.
All concrete aggregates that extends AggregateRoot have been prepared to be initialized by Objenesis
StatefulAggregateInstanceFactory.ReflectionBasedAggregateInstanceFactory - Class in dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful
StatefulAggregateInstanceFactory that calls the default no-arguments constructor on the concrete Aggregate type to create a new instance of the Aggregate
StatefulAggregateRepository<ID,​EVENT_TYPE,​AGGREGATE_IMPL_TYPE extends StatefulAggregate<ID,​EVENT_TYPE,​AGGREGATE_IMPL_TYPE>> - Interface in dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful
Opinionated Aggregate Repository that's built to persist and load a specific StatefulAggregate type in combination with EventStore, UnitOfWorkFactory and a StatefulAggregateInstanceFactory.
You can use the StatefulAggregateRepository.from(ConfigurableEventStore, AggregateEventStreamConfiguration, StatefulAggregateInstanceFactory, Class) to create a new StatefulAggregateRepository instance that supports the most common repository method.
Alternatively you can extend from the StatefulAggregateRepository.DefaultStatefulAggregateRepository and add your own special methods
StatefulAggregateRepository.DefaultStatefulAggregateRepository<ID,​EVENT_TYPE,​AGGREGATE_IMPL_TYPE extends StatefulAggregate<ID,​EVENT_TYPE,​AGGREGATE_IMPL_TYPE>> - Class in dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful
Default StatefulAggregateRepository implementation.
stream() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
supports(Class<?>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateInMemoryProjector
 

T

toString() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.EventsToPersist
 
toString() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository.DefaultFlexAggregateRepository
 
toString() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository.DefaultStatefulAggregateRepository
 
tryLoad(ID) - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository
Try to load an FlexAggregate instance with the specified aggregateId from the underlying EventStore
If the aggregate instance exists it will be associated with the UnitOfWorkFactory.getRequiredUnitOfWork() and any changes to will be tracked and will be persisted to the underlying EventStore when the UnitOfWork is committed.
tryLoad(ID) - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository
Try to load an StatefulAggregate instance with the specified aggregateId from the underlying EventStore
If the aggregate instance exists it will be associated with the UnitOfWorkFactory.getRequiredUnitOfWork() and any changes to will be tracked and will be persisted to the underlying EventStore when the UnitOfWork is committed.
tryLoad(ID, long) - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository
Try to load an FlexAggregate instance with the specified aggregateId from the underlying EventStore
If the aggregate instance exists it will be associated with the UnitOfWorkFactory.getRequiredUnitOfWork() and any changes to will be tracked and will be persisted to the underlying EventStore when the UnitOfWork is committed.
tryLoad(ID, EventOrder) - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository
Try to load an StatefulAggregate instance with the specified aggregateId from the underlying EventStore
If the aggregate instance exists it will be associated with the UnitOfWorkFactory.getRequiredUnitOfWork() and any changes to will be tracked and will be persisted to the underlying EventStore when the UnitOfWork is committed.
tryLoad(ID, Optional<EventOrder>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository.DefaultStatefulAggregateRepository
 
tryLoad(ID, Optional<EventOrder>) - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.StatefulAggregateRepository
Try to load an StatefulAggregate instance with the specified aggregateId from the underlying EventStore
If the aggregate instance exists it will be associated with the UnitOfWorkFactory.getRequiredUnitOfWork() and any changes to will be tracked and will be persisted to the underlying EventStore when the UnitOfWork is committed.
tryLoad(ID, Optional<Long>) - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository.DefaultFlexAggregateRepository
 
tryLoad(ID, Optional<Long>) - Method in interface dk.cloudcreate.essentials.components.eventsourced.aggregates.flex.FlexAggregateRepository
Try to load an FlexAggregate instance with the specified aggregateId from the underlying EventStore
If the aggregate instance exists it will be associated with the UnitOfWorkFactory.getRequiredUnitOfWork() and any changes to will be tracked and will be persisted to the underlying EventStore when the UnitOfWork is committed.

U

uncommittedChanges() - Method in class dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.classic.state.AggregateState
The the events that have been applied to this aggregate instance but not yet persisted to the underlying EventStore

W

WithState<ID,​EVENT_TYPE,​AGGREGATE_TYPE extends AggregateRoot<ID,​EVENT_TYPE,​AGGREGATE_TYPE>,​AGGREGATE_STATE extends AggregateState<ID,​EVENT_TYPE,​AGGREGATE_TYPE>> - Interface in dk.cloudcreate.essentials.components.eventsourced.aggregates.stateful.modern
Marker interface that indicates that all state and all EventHandler annotated methods will be hosted with the AggregateState object.
A C D E F G H I L M N O P R S T U W 
All Classes All Packages