@Override public <S extends Message, T extends Message> SyncDispatcher<S> createSyncDispatcher(SinkModule<S, T> module) { Objects.requireNonNull(module, "module cannot be null"); final DispatcherState<W,S,T> state = new DispatcherState<>(this, module); return createSyncDispatcher(state); }
@Override public <S extends Message, T extends Message> SyncDispatcher<S> createSyncDispatcher(SinkModule<S, T> module) { Objects.requireNonNull(module, "module cannot be null"); final DispatcherState<W,S,T> state = new DispatcherState<>(this, module); return createSyncDispatcher(state); }
@Override public <S extends Message, T extends Message> AsyncDispatcher<S> createAsyncDispatcher(SinkModule<S, T> module) { Objects.requireNonNull(module, "module cannot be null"); Objects.requireNonNull(module.getAsyncPolicy(), "module must have an AsyncPolicy"); final DispatcherState<W,S,T> state = new DispatcherState<>(this, module); final SyncDispatcher<S> syncDispatcher = createSyncDispatcher(state); return new AsyncDispatcherImpl<>(state, module.getAsyncPolicy(), syncDispatcher); }
@Override public <S extends Message, T extends Message> AsyncDispatcher<S> createAsyncDispatcher(SinkModule<S, T> module) { Objects.requireNonNull(module, "module cannot be null"); Objects.requireNonNull(module.getAsyncPolicy(), "module must have an AsyncPolicy"); final DispatcherState<W,S,T> state = new DispatcherState<>(this, module); final SyncDispatcher<S> syncDispatcher = createSyncDispatcher(state); return new AsyncDispatcherImpl<>(state, module.getAsyncPolicy(), syncDispatcher); }