Package org.elasticsearch.action
Interface ActionListener<Response>
- All Known Subinterfaces:
PersistentTasksService.WaitForPersistentTaskListener<P>
,RejectAwareActionListener<T>
- All Known Implementing Classes:
AdapterActionFuture
,ChannelActionListener
,ContextPreservingActionListener
,GroupedActionListener
,LatchedActionListener
,ListenableFuture
,NotifyOnceListener
,PlainActionFuture
,PlainListenableActionFuture
,RestActionListener
,RestActions.NodesResponseRestListener
,RestBuilderListener
,RestResponseListener
,RestStatusToXContentListener
,RestToXContentListener
,SearchExecutionStatsCollector
,SearchProgressActionListener
,StepListener
,ThreadedActionListener
public interface ActionListener<Response>
A listener for action responses or failures.
-
Method Summary
Modifier and Type Method Description static <Response> void
completeWith(ActionListener<Response> listener, CheckedSupplier<Response,? extends java.lang.Exception> supplier)
Completes the given listener with the result from the provided supplier accordingly.static <T, R> ActionListener<T>
delegateFailure(ActionListener<R> delegate, java.util.function.BiConsumer<ActionListener<R>,T> bc)
Creates a listener that delegates all exceptions it receives to another listener.static <T> ActionListener<T>
delegateResponse(ActionListener<T> delegate, java.util.function.BiConsumer<ActionListener<T>,java.lang.Exception> bc)
Creates a listener that delegates all responses it receives to another listener.static <T, Response>
ActionListener<Response>map(ActionListener<T> delegate, CheckedFunction<Response,T,java.lang.Exception> fn)
Creates a listener that wraps another listener, mapping response values via the given mapping function and passing along exceptions to the delegate.static <Response> ActionListener<Response>
notifyOnce(ActionListener<Response> delegate)
Wraps a given listener and returns a new listener which makes sureonResponse(Object)
andonFailure(Exception)
of the provided listener will be called at most once.void
onFailure(java.lang.Exception e)
A failure caused by an exception at some phase of the task.static <Response> void
onFailure(java.lang.Iterable<ActionListener<Response>> listeners, java.lang.Exception failure)
Notifies every given listener with the failure passed toonFailure(Exception)
.static <Response> void
onResponse(java.lang.Iterable<ActionListener<Response>> listeners, Response response)
Notifies every given listener with the response passed toonResponse(Object)
.void
onResponse(Response response)
Handle action response.static <Response> ActionListener<Response>
runAfter(ActionListener<Response> delegate, java.lang.Runnable runAfter)
Wraps a given listener and returns a new listener which executes the providedrunAfter
callback when the listener is notified via either#onResponse
or#onFailure
.static <Response> ActionListener<Response>
runBefore(ActionListener<Response> delegate, CheckedRunnable<?> runBefore)
Wraps a given listener and returns a new listener which executes the providedrunBefore
callback before the listener is notified via either#onResponse
or#onFailure
.static <Response> java.util.function.BiConsumer<Response,java.lang.Exception>
toBiConsumer(ActionListener<Response> listener)
Converts a listener to aBiConsumer
for compatibility with theCompletableFuture
api.static <Response> ActionListener<Response>
wrap(java.lang.Runnable runnable)
Creates a listener that listens for a response (or failure) and executes the corresponding runnable when the response (or failure) is received.static <Response> ActionListener<Response>
wrap(CheckedConsumer<Response,? extends java.lang.Exception> onResponse, java.util.function.Consumer<java.lang.Exception> onFailure)
Creates a listener that listens for a response (or failure) and executes the corresponding consumer when the response (or failure) is received.
-
Method Details
-
onResponse
Handle action response. This response may constitute a failure or a success but it is up to the listener to make that decision. -
onFailure
void onFailure(java.lang.Exception e)A failure caused by an exception at some phase of the task. -
wrap
static <Response> ActionListener<Response> wrap(CheckedConsumer<Response,? extends java.lang.Exception> onResponse, java.util.function.Consumer<java.lang.Exception> onFailure)Creates a listener that listens for a response (or failure) and executes the corresponding consumer when the response (or failure) is received.- Type Parameters:
Response
- the type of the response- Parameters:
onResponse
- the checked consumer of the response, when the listener receives oneonFailure
- the consumer of the failure, when the listener receives one- Returns:
- a listener that listens for responses and invokes the consumer when received
-
delegateResponse
static <T> ActionListener<T> delegateResponse(ActionListener<T> delegate, java.util.function.BiConsumer<ActionListener<T>,java.lang.Exception> bc)Creates a listener that delegates all responses it receives to another listener.- Type Parameters:
T
- Type of the listener- Parameters:
delegate
- ActionListener to wrap and delegate any exception tobc
- BiConsumer invoked with delegate listener and exception- Returns:
- Delegating listener
-
delegateFailure
static <T, R> ActionListener<T> delegateFailure(ActionListener<R> delegate, java.util.function.BiConsumer<ActionListener<R>,T> bc)Creates a listener that delegates all exceptions it receives to another listener.- Type Parameters:
T
- Type of the delegating listener's responseR
- Type of the wrapped listeners- Parameters:
delegate
- ActionListener to wrap and delegate any exception tobc
- BiConsumer invoked with delegate listener and response- Returns:
- Delegating listener
-
wrap
Creates a listener that listens for a response (or failure) and executes the corresponding runnable when the response (or failure) is received.- Type Parameters:
Response
- the type of the response- Parameters:
runnable
- the runnable that will be called in event of success or failure- Returns:
- a listener that listens for responses and invokes the runnable when received
-
map
static <T, Response> ActionListener<Response> map(ActionListener<T> delegate, CheckedFunction<Response,T,java.lang.Exception> fn)Creates a listener that wraps another listener, mapping response values via the given mapping function and passing along exceptions to the delegate. Notice that it is considered a bug if the listener's onResponse or onFailure fails. onResponse failures will not call onFailure. If the function fails, the listener's onFailure handler will be called. The principle is that the mapped listener will handle exceptions from the mapping functionfn
but it is the responsibility ofdelegate
to handle its own exceptions inside `onResponse` and `onFailure`.- Type Parameters:
Response
- Response type of the new listenerT
- Response type of the wrapped listener- Parameters:
delegate
- Listener to delegate tofn
- Function to apply to listener response- Returns:
- a listener that maps the received response and then passes it to its delegate listener
-
toBiConsumer
static <Response> java.util.function.BiConsumer<Response,java.lang.Exception> toBiConsumer(ActionListener<Response> listener)Converts a listener to aBiConsumer
for compatibility with theCompletableFuture
api.- Type Parameters:
Response
- the type of the response- Parameters:
listener
- that will be wrapped- Returns:
- a bi consumer that will complete the wrapped listener
-
onResponse
static <Response> void onResponse(java.lang.Iterable<ActionListener<Response>> listeners, Response response)Notifies every given listener with the response passed toonResponse(Object)
. If a listener itself throws an exception the exception is forwarded toonFailure(Exception)
. If in turnonFailure(Exception)
fails all remaining listeners will be processed and the caught exception will be re-thrown. -
onFailure
static <Response> void onFailure(java.lang.Iterable<ActionListener<Response>> listeners, java.lang.Exception failure)Notifies every given listener with the failure passed toonFailure(Exception)
. If a listener itself throws an exception all remaining listeners will be processed and the caught exception will be re-thrown. -
runAfter
static <Response> ActionListener<Response> runAfter(ActionListener<Response> delegate, java.lang.Runnable runAfter)Wraps a given listener and returns a new listener which executes the providedrunAfter
callback when the listener is notified via either#onResponse
or#onFailure
. -
runBefore
static <Response> ActionListener<Response> runBefore(ActionListener<Response> delegate, CheckedRunnable<?> runBefore)Wraps a given listener and returns a new listener which executes the providedrunBefore
callback before the listener is notified via either#onResponse
or#onFailure
. If the callback throws an exception then it will be passed to the listener's#onFailure
and its#onResponse
will not be executed. -
notifyOnce
Wraps a given listener and returns a new listener which makes sureonResponse(Object)
andonFailure(Exception)
of the provided listener will be called at most once. -
completeWith
static <Response> void completeWith(ActionListener<Response> listener, CheckedSupplier<Response,? extends java.lang.Exception> supplier)Completes the given listener with the result from the provided supplier accordingly. This method is mainly used to complete a listener with a block of synchronous code. If the supplier fails, the listener's onFailure handler will be called. It is the responsibility ofdelegate
to handle its own exceptions inside `onResponse` and `onFailure`.
-