package com.dragome.forms.bindings.client.command; import com.dragome.forms.bindings.client.binding.Disposable; import com.dragome.forms.bindings.client.channel.Destination; import com.dragome.forms.bindings.client.channel.Publisher; import com.dragome.forms.bindings.client.value.ValueTarget; import com.dragome.forms.bindings.extra.user.client.Command; /** * This class provides methods to hooking into the events of an {@link AsyncUiCommand}. */ public interface AsyncEvents<R, E> extends Events { Disposable sendResultTo(Destination<? super R> destination); Disposable sendResultTo(ValueTarget<? super R> destination); Disposable sendResultTo(Publisher<? super R> publisher); Disposable sendErrorTo(Destination<? super E> destination); Disposable sendErrorTo(ValueTarget<? super E> destination); Disposable sendErrorTo(Publisher<? super E> publisher); Disposable onSuccessInvoke(Command command); Disposable onSuccessInvoke(ParameterisedCommand<? super R> command); Disposable onErrorInvoke(Command command); Disposable onErrorInvoke(ParameterisedCommand<? super E> command); <T> SendToBuilder<T> onSuccessSend(T value); <T> SendToBuilder<T> onErrorSend(T value); Disposable sendAllEventsTo(AsyncLifeCycleCallback<R, E> callback); }