@NotNull @Override public ImmutableAggregate<TState, TEvent> apply( @NotNull final UpdateHandler<TState, TEvent> handler) { return this.apply(handler.execute(this)); }
@NotNull @Override public ImmutableAggregate<TState, TEvent> apply( @NotNull final AppendHandler<TEvent> handler) { return this.apply(handler.execute()); }
@NotNull @Override public ImmutableAggregate<TState, TEvent> apply( @NotNull final UpdateHandlerSingle<TState, TEvent> handler) { return this.apply(handler.executeSingle(this)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> apply( @NotNull final ParameterizedUpdateHandler<TState, TParam, TEvent> handler, final TParam params) { return this.apply(handler.execute(this, params)); }
@NotNull @Override public ImmutableAggregate<TState, TEvent> apply( @NotNull final PojoUpdateHandler<TState, TEvent> handler) { return this.apply(handler.execute(this.state)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> apply( @NotNull final ParameterizedPojoUpdateHandlerSingle<TState, TParam, TEvent> handler, final TParam params) { return this.apply(handler.executeSingle(this.state, params)); }
@NotNull @Override public ImmutableAggregate<TState, TEvent> apply( @NotNull final UpdateHandlerSingle<TState, TEvent> handler) { return this.apply(handler.executeSingle(this)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> apply( @NotNull final ParameterizedAppendHandler<TParam, TEvent> handler, final TParam params) { return this.apply(handler.execute(params)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> apply( @NotNull final ParameterizedUpdateHandlerSingle<TState, TParam, TEvent> handler, final TParam params) { return this.apply(handler.executeSingle(this, params)); }
@NotNull @Override public ImmutableAggregate<TState, TEvent> apply( @NotNull final AppendHandlerSingle<TEvent> handler) { return this.apply(handler.executeSingle()); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> apply( @NotNull final ParameterizedPojoUpdateHandler<TState, TParam, TEvent> handler, final TParam params) { return this.apply(handler.execute(this.state, params)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> apply( @NotNull final ParameterizedPojoUpdateHandlerSingle<TState, TParam, TEvent> handler, final TParam params) { return this.apply(handler.executeSingle(this.state, params)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> apply( @NotNull final ParameterizedAppendHandler<TParam, TEvent> handler, final TParam params) { return this.apply(handler.execute(params)); }
@NotNull @Override public ImmutableAggregate<TState, TEvent> apply( @NotNull final UpdateHandler<TState, TEvent> handler) { return this.apply(handler.execute(this)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> apply( @NotNull final ParameterizedUpdateHandlerSingle<TState, TParam, TEvent> handler, final TParam params) { return this.apply(handler.executeSingle(this, params)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> apply( @NotNull final ParameterizedPojoUpdateHandler<TState, TParam, TEvent> handler, final TParam params) { return this.apply(handler.execute(this.state, params)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> apply( @NotNull final ParameterizedAppendHandlerSingle<TParam, TEvent> handler, final TParam params) { return this.apply(handler.executeSingle(params)); }
@NotNull @Override public ImmutableAggregate<TState, TEvent> apply( @NotNull final PojoUpdateHandler<TState, TEvent> handler) { return this.apply(handler.execute(this.state)); }
@NotNull @Override public ImmutableAggregate<TState, TEvent> apply( @NotNull final PojoUpdateHandlerSingle<TState, TEvent> handler) { return this.apply(handler.executeSingle(this.state)); }
@NotNull @Override public <TParam> ImmutableAggregate<TState, TEvent> apply( @NotNull final ParameterizedAppendHandlerSingle<TParam, TEvent> handler, final TParam params) { return this.apply(handler.executeSingle(params)); }