AggregateStore<TData extends Object, TEvent extends Object, TValue extends Object, TId extends AggregateId, TState extends AggregateState<TValue> , TAggregate extends Aggregate<TEvent, TValue, TId, TState> > constructor
- @mustCallSuper
- StreamEventStore events, {
- EventSerializer<
TEvent> ? serializer, - AggregateCreator<
TEvent, TValue, TId, TState, TAggregate> ? onNew, - AggregateStateStorage<
TValue, TState> ? states,
Default constructor.
If onNew
is not given, AggregateCreator
must be registered with AggregateTypes.define,
or method newInstance must be overridden.
If states
is not given, AggregateStateCreator
must be registered with AggregateStateTypes.define,
or method newStateInstance must be overridden.
Implementation
@mustCallSuper
AggregateStore(
StreamEventStore events, {
EventSerializer<TEvent>? serializer,
AggregateCreator<TEvent, TValue, TId, TState, TAggregate>? onNew,
AggregateStateStorage<TValue, TState>? states,
}) : _onNew = onNew,
_events = events,
_states = states,
_serializer = serializer ?? DefaultEventSerializer<TData, TEvent>() {
//
// Sanity checks
//
if (_onNew == null && !AggregateTypes.containsType(TAggregate)) {
throw UnimplementedError('newInstance is not implemented');
}
if (_states == null && !AggregateStateTypes.containsType(TState)) {
throw UnimplementedError('newStateInstance is not implemented');
}
}