@SuppressWarnings("unchecked") private <Q, R, T extends QueryMessage<Q, R>> T processInterceptors(T query) { T intercepted = query; for (MessageDispatchInterceptor<? super QueryMessage<?, ?>> interceptor : dispatchInterceptors) { intercepted = (T) interceptor.handle(intercepted); } return intercepted; }
@SuppressWarnings("unchecked") private <Q, R, T extends QueryMessage<Q, R>> T intercept(T query) { T intercepted = query; for (MessageDispatchInterceptor<? super QueryMessage<?, ?>> interceptor : dispatchInterceptors) { intercepted = (T) interceptor.handle(intercepted); } return intercepted; }
@SuppressWarnings("unchecked") private <C> CommandMessage<? extends C> intercept(CommandMessage<C> command) { CommandMessage<? extends C> interceptedCommand = command; for (MessageDispatchInterceptor<? super CommandMessage<?>> interceptor : dispatchInterceptors) { interceptedCommand = (CommandMessage<? extends C>) interceptor.handle(interceptedCommand); } return interceptedCommand; }
@SuppressWarnings("unchecked") private <T> DeadlineMessage<T> processDispatchInterceptors(DeadlineMessage<T> message) { DeadlineMessage<T> intercepted = message; for (MessageDispatchInterceptor<? super DeadlineMessage<?>> interceptor : dispatchInterceptors) { intercepted = (DeadlineMessage<T>) interceptor.handle(intercepted); } return intercepted; }
public <T extends M> T intercept(T message) { T messageToDispatch = message; for (MessageDispatchInterceptor<? super M> interceptor : dispatchInterceptors) { messageToDispatch = (T) interceptor.handle(messageToDispatch); } return messageToDispatch; } }
private <U> SubscriptionQueryUpdateMessage<U> intercept(SubscriptionQueryUpdateMessage<U> message) { SubscriptionQueryUpdateMessage<U> intercepted = message; for (MessageDispatchInterceptor<? super SubscriptionQueryUpdateMessage<?>> interceptor : dispatchInterceptors) { //noinspection unchecked intercepted = (SubscriptionQueryUpdateMessage<U>) interceptor.handle(intercepted); } return intercepted; }
/** * Invokes all the dispatch interceptors and returns the EventMessage instance that should be dispatched. * * @param eventMessage The incoming event message * @return The event message to dispatch */ @SuppressWarnings("unchecked") protected <E> EventMessage<? extends E> processInterceptors(EventMessage<E> eventMessage) { EventMessage<? extends E> message = eventMessage; for (MessageDispatchInterceptor<? super EventMessage<?>> dispatchInterceptor : dispatchInterceptors) { message = (EventMessage) dispatchInterceptor.handle(message); } return message; }
/** * Invokes all the dispatch interceptors and returns the CommandMessage instance that should be dispatched. * * @param commandMessage The incoming command message * @return The command message to dispatch */ @SuppressWarnings("unchecked") protected <C> CommandMessage<? extends C> processInterceptors(CommandMessage<C> commandMessage) { CommandMessage<? extends C> message = commandMessage; for (MessageDispatchInterceptor<? super CommandMessage<?>> dispatchInterceptor : dispatchInterceptors) { message = (CommandMessage) dispatchInterceptor.handle(message); } return message; }
/** * Invokes all the dispatch interceptors. * * @param command The original command being dispatched * @return The command to actually dispatch */ @SuppressWarnings("unchecked") protected <C> CommandMessage<C> intercept(CommandMessage<C> command) { CommandMessage<C> commandToDispatch = command; for (MessageDispatchInterceptor<? super CommandMessage<?>> interceptor : dispatchInterceptors) { commandToDispatch = (CommandMessage<C>) interceptor.handle(commandToDispatch); } return commandToDispatch; }
/** * Invoked each time a message is about to be dispatched. The given {@code message} represents the message * being dispatched. * * @param message The message intended to be dispatched * @return the message to dispatch */ default T handle(T message) { return handle(Collections.singletonList(message)).apply(0, message); }
/** * Invokes all the dispatch interceptors. * * @param events The original events being published * @return The events to actually publish */ protected List<? extends EventMessage<?>> intercept(List<? extends EventMessage<?>> events) { List<EventMessage<?>> preprocessedEvents = new ArrayList<>(events); for (MessageDispatchInterceptor<? super EventMessage<?>> preprocessor : dispatchInterceptors) { BiFunction<Integer, ? super EventMessage<?>, ? super EventMessage<?>> function = preprocessor.handle(preprocessedEvents); for (int i = 0; i < preprocessedEvents.size(); i++) { preprocessedEvents.set(i, (EventMessage<?>) function.apply(i, preprocessedEvents.get(i))); } } return preprocessedEvents; }
/** * Applies registered {@link MessageDispatchInterceptor}s to the given {@code message}. * * @param message the deadline message to be intercepted * @param <T> the type of deadline message payload * @return intercepted message */ @SuppressWarnings("unchecked") protected <T> DeadlineMessage<T> processDispatchInterceptors(DeadlineMessage<T> message) { DeadlineMessage<T> intercepted = message; for (MessageDispatchInterceptor<? super DeadlineMessage<?>> interceptor : dispatchInterceptors()) { intercepted = (DeadlineMessage<T>) interceptor.handle(intercepted); } return intercepted; } }
@Override @SuppressWarnings("unchecked") public <C, R> void dispatch(CommandMessage<C> command, CommandCallback<? super C, ? super R> callback) { Assert.state(started, () -> "CommandBus has been shut down. It is not accepting any Commands"); CommandMessage<? extends C> commandToDispatch = command; for (MessageDispatchInterceptor<? super CommandMessage<?>> interceptor : dispatchInterceptors) { commandToDispatch = (CommandMessage) interceptor.handle(commandToDispatch); } MessageMonitor.MonitorCallback monitorCallback = messageMonitor.onMessageIngested(commandToDispatch); try { doDispatch(commandToDispatch, new MonitorAwareCallback(callback, monitorCallback)); } catch (Exception e) { monitorCallback.reportFailure(e); callback.onResult(commandToDispatch, asCommandResultMessage(e)); } }
@SuppressWarnings("unchecked") private <Q, R, T extends QueryMessage<Q, R>> T intercept(T query) { T intercepted = query; for (MessageDispatchInterceptor<? super QueryMessage<?, ?>> interceptor : dispatchInterceptors) { intercepted = (T) interceptor.handle(intercepted); } return intercepted; }
@SuppressWarnings("unchecked") private <C> CommandMessage<? extends C> intercept(CommandMessage<C> command) { CommandMessage<? extends C> interceptedCommand = command; for (MessageDispatchInterceptor<? super CommandMessage<?>> interceptor : dispatchInterceptors) { interceptedCommand = (CommandMessage<? extends C>) interceptor.handle(interceptedCommand); } return interceptedCommand; }
private <U> SubscriptionQueryUpdateMessage<U> intercept(SubscriptionQueryUpdateMessage<U> message) { SubscriptionQueryUpdateMessage<U> intercepted = message; for (MessageDispatchInterceptor<? super SubscriptionQueryUpdateMessage<?>> interceptor : dispatchInterceptors) { //noinspection unchecked intercepted = (SubscriptionQueryUpdateMessage<U>) interceptor.handle(intercepted); } return intercepted; }
@SuppressWarnings("unchecked") private <C> CommandMessage<? extends C> intercept(CommandMessage<C> command) { CommandMessage<? extends C> interceptedCommand = command; for (MessageDispatchInterceptor<? super CommandMessage<?>> interceptor : dispatchInterceptors) { interceptedCommand = (CommandMessage<? extends C>) interceptor.handle(interceptedCommand); } return interceptedCommand; }
@SuppressWarnings("unchecked") private <Q, R, T extends QueryMessage<Q, R>> T intercept(T query) { T intercepted = query; for (MessageDispatchInterceptor<? super QueryMessage<?, ?>> interceptor : dispatchInterceptors) { intercepted = (T) interceptor.handle(intercepted); } return intercepted; }
/** * Invoked each time a message is about to be dispatched. The given {@code message} represents the message * being dispatched. * * @param message The message intended to be dispatched * @return the message to dispatch */ default T handle(T message) { return handle(Collections.singletonList(message)).apply(0, message); }
/** * Invoked each time a message is about to be dispatched. The given {@code message} represents the message * being dispatched. * * @param message The message intended to be dispatched * @return the message to dispatch */ default T handle(T message) { return handle(Collections.singletonList(message)).apply(0, message); }