V
- The type of the task's result, or Void
if the task does
not return anything (i.e. it only has side-effects).E
- The type of the exception thrown by the task if it fails, or
NeverThrowsException
if the task cannot fail.public interface Promise<V,E extends Exception> extends Future<V>
Promise
represents the result of an asynchronous task.PromiseImpl
,
Promises
Modifier and Type | Method and Description |
---|---|
boolean |
cancel(boolean mayInterruptIfRunning)
Attempts to cancel the asynchronous task associated with this
Promise . |
V |
get()
Waits if necessary for this
Promise to complete, and then returns
the result if it completed successfully, or throws an
ExecutionException containing the cause of the failure. |
V |
get(long timeout,
TimeUnit unit)
Waits if necessary for at most the given time for this
Promise to
complete, and then returns the result if it completed successfully, or
throws an ExecutionException containing the cause of the failure. |
V |
getOrThrow()
Waits if necessary for this
Promise to complete, and then returns
the result if it completed successfully, or throws an exception
representing the cause of the failure. |
V |
getOrThrow(long timeout,
TimeUnit unit)
Waits if necessary for at most the given time for this
Promise to
complete, and then returns the result if it completed successfully, or
throws an exception representing the cause of the failure. |
V |
getOrThrowUninterruptibly()
Waits if necessary for this
Promise to complete, and then returns
the result if it completed successfully, or throws an exception
representing the cause of the failure. |
V |
getOrThrowUninterruptibly(long timeout,
TimeUnit unit)
Waits if necessary for at most the given time for this
Promise to
complete, and then returns the result if it completed successfully, or
throws an exception representing the cause of the failure. |
boolean |
isCancelled()
Returns
true if this Promise was cancelled before it
completed normally. |
boolean |
isDone()
Returns
true if this Promise has completed. |
boolean |
isResult()
Returns
true if this Promise has completed and contains a value. |
<VOUT> Promise<VOUT,E> |
then(Function<? super V,VOUT,E> onResult)
Submits the provided function for execution once this
Promise has
completed with a result, and returns a new Promise representing
the outcome of the function. |
<VOUT,EOUT extends Exception> |
then(Function<? super V,VOUT,EOUT> onResult,
Function<? super E,VOUT,EOUT> onException)
Submits the provided functions for execution once this
Promise
has completed (with a result or an exception), and returns a new
Promise representing the outcome of the invoked function. |
<VOUT,EOUT extends Exception> |
then(Function<? super V,VOUT,EOUT> onResult,
Function<? super E,VOUT,EOUT> onException,
Function<? super RuntimeException,VOUT,EOUT> onRuntimeException)
Submits the provided functions for execution once this
Promise
has completed (with a result or an exception or a RuntimeException ), and returns a new
Promise representing the outcome of the invoked function. |
Promise<V,E> |
thenAlways(Runnable onResultOrException)
Submits the provided runnable for execution once this
Promise has
completed, and regardless of whether it has a result or an exception. |
<VOUT> Promise<VOUT,E> |
thenAsync(AsyncFunction<? super V,VOUT,E> onResult)
Submits the provided asynchronous function for execution once this
Promise has completed with a result, and returns a new
Promise representing the outcome of the function. |
<VOUT,EOUT extends Exception> |
thenAsync(AsyncFunction<? super V,VOUT,EOUT> onResult,
AsyncFunction<? super E,VOUT,EOUT> onException)
Submits the provided asynchronous functions for execution once this
Promise has completed, and returns a new Promise
representing the outcome of the invoked function. |
<VOUT,EOUT extends Exception> |
thenAsync(AsyncFunction<? super V,VOUT,EOUT> onResult,
AsyncFunction<? super E,VOUT,EOUT> onException,
AsyncFunction<? super RuntimeException,VOUT,EOUT> onRuntimeException)
Submits the provided asynchronous functions for execution once this
Promise has completed, and returns a new Promise
representing the outcome of the invoked function. |
<EOUT extends Exception> |
thenCatch(Function<? super E,V,EOUT> onException)
Submits the provided function for execution once this
Promise has
not completed with a result (has completed with an exception), and returns
a new Promise representing the outcome of the function. |
<EOUT extends Exception> |
thenCatchAsync(AsyncFunction<? super E,V,EOUT> onException)
Submits the provided asynchronous function for execution once this
Promise has completed with an exception, and returns a new
Promise representing the outcome of the function. |
Promise<V,E> |
thenCatchRuntimeException(Function<? super RuntimeException,V,E> onRuntimeException)
Submits the provided function for execution once this
Promise has
not completed with a result nor with an exception but with a RuntimeException , and returns
a new Promise representing the outcome of the function. |
Promise<V,E> |
thenCatchRuntimeExceptionAsync(AsyncFunction<? super RuntimeException,V,E> onRuntimeException)
Submits the provided asynchronous function for execution once this
Promise has completed with a RuntimeException , and returns a new
Promise representing the outcome of the function. |
Promise<V,E> |
thenFinally(Runnable onResultOrException)
Submits the provided runnable for execution once this
Promise has
completed, and regardless of whether of its outcome. |
Promise<V,E> |
thenOnException(ExceptionHandler<? super E> onException)
Registers the provided completion handler for notification if this
Promise cannot be completed due to an exception. |
Promise<V,E> |
thenOnResult(ResultHandler<? super V> onResult)
Registers the provided completion handler for notification once this
Promise has completed with a result. |
Promise<V,E> |
thenOnResultOrException(ResultHandler<? super V> onResult,
ExceptionHandler<? super E> onException)
Registers the provided completion handlers for notification once this
Promise has completed (with a result or an exception). |
Promise<V,E> |
thenOnResultOrException(Runnable onResultOrException)
Submits the provided runnable for execution once this
Promise has
completed, and regardless of whether it has a result or an exception. |
Promise<V,E> |
thenOnRuntimeException(RuntimeExceptionHandler onRuntimeException)
Registers the provided completion handler for notification if this
Promise cannot be completed due to an runtime exception. |
boolean cancel(boolean mayInterruptIfRunning)
Promise
. Cancellation will fail if this Promise
has
already completed or has already been cancelled. If successful, then
cancellation will complete this Promise
with an appropriate
exception and notify any registered functions and completion handlers.
After this method returns, subsequent calls to Promise.isDone()
will
always return true
. Subsequent calls to Promise.isCancelled()
will
always return true
if this method returned true
.
cancel
in interface Future<V>
mayInterruptIfRunning
- true
if the thread executing executing the response
handler should be interrupted; otherwise, in-progress response
handlers are allowed to complete.false
if Promise
could not be cancelled,
typically because it has already completed normally; true
otherwise.V get() throws ExecutionException, InterruptedException
Promise
to complete, and then returns
the result if it completed successfully, or throws an
ExecutionException
containing the cause of the failure.get
in interface Future<V>
Promise
completed
successfully.ExecutionException
- If this Promise
was cancelled or did not complete
successfully. The ExecutionException
will contain the
cause of the failure.InterruptedException
- If the current thread was interrupted while waiting.V get(long timeout, TimeUnit unit) throws ExecutionException, TimeoutException, InterruptedException
Promise
to
complete, and then returns the result if it completed successfully, or
throws an ExecutionException
containing the cause of the failure.get
in interface Future<V>
timeout
- The maximum time to wait.unit
- The time unit of the timeout argument.Promise
completed
successfully.ExecutionException
- If this Promise
was cancelled or did not complete
successfully. The ExecutionException
will contain the
cause of the failure.TimeoutException
- If the wait timed out.InterruptedException
- If the current thread was interrupted while waiting.V getOrThrow() throws InterruptedException, E extends Exception
Promise
to complete, and then returns
the result if it completed successfully, or throws an exception
representing the cause of the failure.Promise
completed
successfully.E
- If this Promise
was cancelled or did not complete
successfully.InterruptedException
- If the current thread was interrupted while waiting.E extends Exception
V getOrThrow(long timeout, TimeUnit unit) throws InterruptedException, E extends Exception, TimeoutException
Promise
to
complete, and then returns the result if it completed successfully, or
throws an exception representing the cause of the failure.timeout
- The maximum time to wait.unit
- The time unit of the timeout argument.Promise
completed
successfully.E
- If this Promise
was cancelled or did not complete
successfully.TimeoutException
- If the wait timed out.InterruptedException
- If the current thread was interrupted while waiting.E extends Exception
V getOrThrowUninterruptibly() throws E extends Exception
Promise
to complete, and then returns
the result if it completed successfully, or throws an exception
representing the cause of the failure.
This method is similar to Promise.getOrThrow()
except that it will
ignore thread interrupts. When this method returns the status of the
current thread will be interrupted if an interrupt was received while
waiting.
V getOrThrowUninterruptibly(long timeout, TimeUnit unit) throws E extends Exception, TimeoutException
Promise
to
complete, and then returns the result if it completed successfully, or
throws an exception representing the cause of the failure.
This method is similar to Promise.getOrThrow(long, TimeUnit)
except that
it will ignore thread interrupts. When this method returns the status of
the current thread will be interrupted if an interrupt was received while
waiting.
timeout
- The maximum time to wait.unit
- The time unit of the timeout argument.Promise
completed
successfully.E
- If this Promise
was cancelled or did not complete
successfully.TimeoutException
- If the wait timed out.E extends Exception
boolean isCancelled()
true
if this Promise
was cancelled before it
completed normally.isCancelled
in interface Future<V>
true
if this Promise
was cancelled before it
completed normally, otherwise false
.boolean isDone()
true
if this Promise
has completed.
Completion may be due to normal termination, an exception, or
cancellation. In all of these cases, this method will return true
.
boolean isResult()
true
if this Promise
has completed and contains a value.true
if this Promise
has completed with a value.Promise<V,E> thenOnException(ExceptionHandler<? super E> onException)
Promise
cannot be completed due to an exception. If this
Promise
completes with a result then the completion handler
will not be notified.
This method can be used for asynchronous completion notification.
onException
- The completion handler which will be notified upon failure
completion of this Promise
.Promise
that is guaranted to be completed once the provided
callback has been executed.Promise<V,E> thenOnResult(ResultHandler<? super V> onResult)
Promise
has completed with a result. If this Promise
completes with an exception then the completion handler will not be
notified.
This method can be used for asynchronous completion notification and is
equivalent to Promise.then(Function)
.
onResult
- The completion handler which will be notified upon successful
completion of this Promise
.Promise
that is guaranted to be completed once the provided
callback has been executed.Promise<V,E> thenOnResultOrException(ResultHandler<? super V> onResult, ExceptionHandler<? super E> onException)
Promise
has completed (with a result or an exception). If this
Promise
completes with a result then onResult
will be
notified with the result, otherwise onException
will be notified
with the exception that occurred.
This method can be used for asynchronous completion notification.
onResult
- The completion handler which will be notified upon completion
with a result of this Promise
.onException
- The completion handler which will be notified upon failure of
this Promise
.Promise
that is guaranted to be completed once the provided
callback has been executed.Promise<V,E> thenOnResultOrException(Runnable onResultOrException)
Promise
has
completed, and regardless of whether it has a result or an exception.
This method can be used for resource cleanup after a series of
asynchronous tasks have completed. More specifically, this method should
be used in a similar manner to finally
statements in
try...catch
expressions.
This method is equivalent to Promise.thenAlways(Runnable)
.
onResultOrException
- The runnable which will be notified regardless of the final
outcome of this Promise
.Promise
that is guaranted to be completed once the provided
callback has been executed.<VOUT> Promise<VOUT,E> then(Function<? super V,VOUT,E> onResult)
Promise
has
completed with a result, and returns a new Promise
representing
the outcome of the function. If this Promise
does not
complete with a result then the function will not be invoked and the exception
will be forwarded to the returned Promise
.
This method can be used for transforming the result of an asynchronous task.
VOUT
- The type of the function's result, or Void
if the
function does not return anything (i.e. it only has
side-effects). Note that the type may be different to the type
of this Promise
.onResult
- The function which will be executed upon successful completion
of this Promise
.Promise
representing the outcome of the
function.<EOUT extends Exception> Promise<V,EOUT> thenCatch(Function<? super E,V,EOUT> onException)
Promise
has
not completed with a result (has completed with an exception), and returns
a new Promise
representing the outcome of the function.
If this Promise
completes with a result then the function will not
be invoked and the result notification will be forwarded to the returned
Promise
.
This method can be used for transforming the result of an asynchronous task.
EOUT
- The type of the exception thrown by the function if it
fails, or NeverThrowsException
if it cannot fails.
Note that the type may be different to the type of this
Promise
.onException
- The function which will be executed upon failure completion
of this Promise
.Promise
representing the outcome of the
function.Promise<V,E> thenCatchRuntimeException(Function<? super RuntimeException,V,E> onRuntimeException)
Promise
has
not completed with a result nor with an exception but with a RuntimeException
, and returns
a new Promise
representing the outcome of the function.
If this Promise
completes with a result or an exception then the function will not
be invoked and the result notification will be forwarded to the returned
Promise
.
This method can be used for transforming the result of an asynchronous task.
onRuntimeException
- The function which will be executed upon failure completion
of this Promise
.Promise
representing the outcome of the
function.Promise<V,E> thenCatchRuntimeExceptionAsync(AsyncFunction<? super RuntimeException,V,E> onRuntimeException)
Promise
has completed with a RuntimeException
, and returns a new
Promise
representing the outcome of the function. If this
Promise
completes with a result or the typed exception then the
completion asynchronous function will not be called.
This method may be used for chaining together a series of asynchronous tasks.
onRuntimeException
- The asynchronous function which will be executed upon failure completion
with a RuntimeException
of this Promise
.Promise
representing the outcome of the
function.<VOUT,EOUT extends Exception> Promise<VOUT,EOUT> then(Function<? super V,VOUT,EOUT> onResult, Function<? super E,VOUT,EOUT> onException)
Promise
has completed (with a result or an exception), and returns a new
Promise
representing the outcome of the invoked function. If
this Promise
completes with a result then onResult
will be invoked with the result, otherwise onException
will
be invoked with the exception that occurred.
This method can be used for transforming the outcome of an asynchronous task.
VOUT
- The type of the functions' result, or Void
if the
functions do not return anything (i.e. they only have
side-effects). Note that the type may be different to the type
of this Promise
.EOUT
- The type of the exception thrown by the functions if they
fail, or NeverThrowsException
if they cannot fail.
Note that the type may be different to the type of this
Promise
.onResult
- The function which will be executed upon successful completion
of this Promise
.onException
- The function which will be executed upon failure of this
Promise
.Promise
representing the outcome of the
invoked function.<VOUT,EOUT extends Exception> Promise<VOUT,EOUT> then(Function<? super V,VOUT,EOUT> onResult, Function<? super E,VOUT,EOUT> onException, Function<? super RuntimeException,VOUT,EOUT> onRuntimeException)
Promise
has completed (with a result or an exception or a RuntimeException
), and returns a new
Promise
representing the outcome of the invoked function. If
this Promise
completes with a result then onResult
will be invoked with the result, with a RuntimeException
then onRuntimeException
will be invoked with the runtime exception that occurred, otherwise onException
will
be invoked with the exception that occurred.
This method can be used for transforming the outcome of an asynchronous task.
VOUT
- The type of the functions' result, or Void
if the
functions do not return anything (i.e. they only have
side-effects). Note that the type may be different to the type
of this Promise
.EOUT
- The type of the exception thrown by the functions if they
fail, or NeverThrowsException
if they cannot fail.
Note that the type may be different to the type of this
Promise
.onResult
- The function which will be executed upon successful completion
of this Promise
.onException
- The function which will be executed upon failure of this
Promise
.onRuntimeException
- The function which will be executed upon failure with
RuntimeException
of this Promise
.Promise
representing the outcome of the
invoked function.Promise<V,E> thenAlways(Runnable onResultOrException)
Promise
has
completed, and regardless of whether it has a result or an exception.
This method can be used for resource cleanup after a series of
asynchronous tasks have completed. More specifically, this method should
be used in a similar manner to finally
statements in
try...catch
expressions.
This method is equivalent to Promise.thenOnResultOrException(Runnable)
.
onResultOrException
- The runnable which will be notified regardless of the final
outcome of this Promise
.Promise
that is guaranted to be completed once the provided
callback has been executed.Promise<V,E> thenFinally(Runnable onResultOrException)
Promise
has
completed, and regardless of whether of its outcome.
This method can be used for resource cleanup after a series of
asynchronous tasks have completed. More specifically, this method should
be used in a similar manner to finally
statements in
try...catch
expressions.
This method is equivalent to Promise.thenAlways(Runnable)
.
onResultOrException
- The runnable which will be notified regardless of the final
outcome of this Promise
.Promise
that is guaranted to be completed once the provided
callback has been executed.<VOUT> Promise<VOUT,E> thenAsync(AsyncFunction<? super V,VOUT,E> onResult)
Promise
has completed with a result, and returns a new
Promise
representing the outcome of the function. If
this Promise
complete with an exception then the function
will not be invoked and the error will be forwarded to the returned
Promise
.
This method may be used for chaining together a series of asynchronous tasks.
VOUT
- The type of the function's result, or Void
if the
function does not return anything (i.e. it only has
side-effects). Note that the type may be different to the type
of this Promise
.onResult
- The asynchronous function which will be executed upon
successful completion of this Promise
.Promise
representing the outcome of the
function.<EOUT extends Exception> Promise<V,EOUT> thenCatchAsync(AsyncFunction<? super E,V,EOUT> onException)
Promise
has completed with an exception, and returns a new
Promise
representing the outcome of the function. If
this Promise
completes with a result then the function
will not be invoked and the exception will be forwarded to the returned
Promise
.
This method may be used for chaining together a series of asynchronous tasks.
EOUT
- The type of the exception thrown by the function if it
fails, or NeverThrowsException
if it cannot fails.
Note that the type may be different to the type of this
Promise
.onException
- The asynchronous function which will be executed upon failure completion
of this Promise
.Promise
representing the outcome of the
function.<VOUT,EOUT extends Exception> Promise<VOUT,EOUT> thenAsync(AsyncFunction<? super V,VOUT,EOUT> onResult, AsyncFunction<? super E,VOUT,EOUT> onException)
Promise
has completed, and returns a new Promise
representing the outcome of the invoked function. If this
Promise
completes with a result then onResult
will be
invoked with the result, otherwise onException
will be invoked with
the exception that occurred.
This method may be used for chaining together a series of asynchronous tasks.
VOUT
- The type of the functions' result, or Void
if the
functions do not return anything (i.e. they only have
side-effects). Note that the type may be different to the type
of this Promise
.EOUT
- The type of the exception thrown by the functions if they
fail, or NeverThrowsException
if they cannot fail.
Note that the type may be different to the type of this
Promise
.onResult
- The asynchronous function which will be executed upon
successful completion of this Promise
.onException
- The asynchronous function which will be executed upon failure
of this Promise
.Promise
representing the outcome of the
invoked function.<VOUT,EOUT extends Exception> Promise<VOUT,EOUT> thenAsync(AsyncFunction<? super V,VOUT,EOUT> onResult, AsyncFunction<? super E,VOUT,EOUT> onException, AsyncFunction<? super RuntimeException,VOUT,EOUT> onRuntimeException)
Promise
has completed, and returns a new Promise
representing the outcome of the invoked function. If this
Promise
completes with a result then onResult
will be
invoked with the result, otherwise onException
will be invoked with
the exception that occurred, or onRuntimeException
will be invoked with
the runtime exception that occurred.
This method may be used for chaining together a series of asynchronous tasks.
VOUT
- The type of the functions' result, or Void
if the
functions do not return anything (i.e. they only have
side-effects). Note that the type may be different to the type
of this Promise
.EOUT
- The type of the exception thrown by the functions if they
fail, or NeverThrowsException
if they cannot fail.
Note that the type may be different to the type of this
Promise
.onResult
- The asynchronous function which will be executed upon
successful completion of this Promise
.onException
- The asynchronous function which will be executed upon failure
of this Promise
.onRuntimeException
- The asynchronous function which will be executed upon failure
with RuntimeException
of this Promise
.Promise
representing the outcome of the
invoked function.Promise<V,E> thenOnRuntimeException(RuntimeExceptionHandler onRuntimeException)
Promise
cannot be completed due to an runtime exception. If this
Promise
completes with a result or the typed exception then the
completion handler will not be notified.
This method can be used for asynchronous completion notification.
onRuntimeException
- The completion handler which will be notified upon an
uncaught runtime exception completion of this
Promise
.Promise
that is guaranted to be completed once the provided
callback has been executed.Copyright © 2010-2018, ForgeRock All Rights Reserved.