rollback method

  1. @visibleForOverriding
AggregateStateResult<TEvent, TValue, TId, TState> rollback()

Rollback local changes to original state.

Implementation

@visibleForOverriding
AggregateStateResult<TEvent, TValue, TId, TState> rollback() {
  if (_original.expectedVersion == ExpectedStreamVersion.noStream) {
    _changes.clear();
  } else {
    final diff = _current.version - _original.version;
    _changes.removeRange(
      _changes.length - diff,
      _changes.length,
    );
  }
  final previous = _current;
  _current = _original;
  return AggregateStateResult.ok(
    current: _current,
    previous: previous,
  );
}