when<TEvent extends Object, TState extends AggregateState<TValue>> method

  1. @mustCallSuper
TState when<TEvent extends Object, TState extends AggregateState<TValue>>(
  1. TEvent event
)

Handle event. Returns value after event is handled. If given event is not handled by this state, original value is returned.

Implementation

@mustCallSuper
TState when<TEvent extends Object, TState extends AggregateState<TValue>>(
  TEvent event,
) {
  final eventType = event.runtimeType;
  if (!_handlers.containsKey(eventType)) {
    throw UnknownEventException(eventType, 'Handler not found');
  }
  return (_handlers[eventType]!
      as AggregateEventHandlerCallback<TEvent, TValue, TState>)(event, value)
    .._version = _version + 1;
}