T
- The result type associated with the Promise.final class FailedPromiseImpl<T> extends PromiseImpl<T>
This class is not used directly by clients. Clients should use
PromiseFactory.failed(Throwable)
to create a failed Promise
.
PromiseImpl.Result<P>
Modifier and Type | Field and Description |
---|---|
private java.lang.Throwable |
fail
The failure of this failed Promise.
|
Constructor and Description |
---|
FailedPromiseImpl(java.lang.Throwable fail,
PromiseFactory factory)
Initialize this failed Promise.
|
Modifier and Type | Method and Description |
---|---|
private <V> FailedPromiseImpl<V> |
coerce()
Coerce the value type of this FailedPromiseImpl.
|
(package private) PromiseImpl.Result<T> |
collect()
Return a holder of the result of this PromiseImpl.
|
Promise<T> |
filter(Predicate<? super T> predicate)
Filter the value of this Promise.
|
<R> Promise<R> |
flatMap(Function<? super T,Promise<? extends R>> mapper)
FlatMap the value of this Promise.
|
java.lang.Throwable |
getFailure()
Returns the failure of this Promise.
|
T |
getValue()
Returns the value of this Promise.
|
boolean |
isDone()
Returns whether this Promise has been resolved.
|
<R> Promise<R> |
map(Function<? super T,? extends R> mapper)
Map the value of this Promise.
|
Promise<T> |
onSuccess(Consumer<? super T> success)
Register a callback to be called with the result of this Promise when
this Promise is resolved successfully.
|
<R> Promise<R> |
then(Success<? super T,? extends R> success,
Failure failure)
Chain a new Promise to this Promise with Success and Failure callbacks.
|
Promise<T> |
thenAccept(Consumer<? super T> consumer)
Chain a new Promise to this Promise with a Consumer callback that
receives the value of this Promise when it is successfully resolved.
|
Promise<T> |
timeout(long millis)
Time out the resolution of this Promise.
|
java.lang.String |
toString() |
chain, collect, deferred, delay, failed, fallbackTo, notifyCallbacks, onFailure, onResolve, recover, recoverWith, resolved, schedule, then, uncaughtException
FailedPromiseImpl(java.lang.Throwable fail, PromiseFactory factory)
fail
- The failure of this failed Promise. Must not be null
.factory
- The factory to use for callbacks and scheduled operations.public boolean isDone()
This Promise may be successfully resolved or resolved with a failure.
true
if this Promise was resolved either successfully or
with a failure; false
if this Promise is unresolved.public T getValue() throws java.lang.reflect.InvocationTargetException
If this Promise is not resolved
, this method must block
and wait for this Promise to be resolved before completing.
If this Promise was successfully resolved, this method returns with the
value of this Promise. If this Promise was resolved with a failure, this
method must throw an InvocationTargetException
with the
failure exception
as the cause.
java.lang.reflect.InvocationTargetException
- If this Promise was resolved with a
failure. The cause of the InvocationTargetException
is
the failure exception.public java.lang.Throwable getFailure()
If this Promise is not resolved
, this method must block
and wait for this Promise to be resolved before completing.
If this Promise was resolved with a failure, this method returns with the
failure of this Promise. If this Promise was successfully resolved, this
method must return null
.
null
if this
Promise was successfully resolved.PromiseImpl.Result<T> collect()
collect
in class PromiseImpl<T>
public java.lang.String toString()
toString
in class java.lang.Object
private <V> FailedPromiseImpl<V> coerce()
public Promise<T> onSuccess(Consumer<? super T> success)
This method may be called at any time including before and after this Promise has been resolved.
Resolving this Promise happens-before any registered callback is
called. That is, in a registered callback, Promise.isDone()
must return
true
and Promise.getValue()
and Promise.getFailure()
must not
block.
A callback may be called on a different thread than the thread which registered the callback. So the callback must be thread safe but can rely upon that the registration of the callback happens-before the registered callback is called.
public <R> Promise<R> then(Success<? super T,? extends R> success, Failure failure)
The specified Success
callback is called when this Promise is
successfully resolved and the specified Failure
callback is
called when this Promise is resolved with a failure.
This method returns a new Promise which is chained to this Promise. The returned Promise must be resolved when this Promise is resolved after the specified Success or Failure callback is executed. The result of the executed callback must be used to resolve the returned Promise. Multiple calls to this method can be used to create a chain of promises which are resolved in sequence.
If this Promise is successfully resolved, the Success callback is executed and the result Promise, if any, or thrown exception is used to resolve the returned Promise from this method. If this Promise is resolved with a failure, the Failure callback is executed and the returned Promise from this method is failed.
This method may be called at any time including before and after this Promise has been resolved.
Resolving this Promise happens-before any registered callback is
called. That is, in a registered callback, Promise.isDone()
must return
true
and Promise.getValue()
and Promise.getFailure()
must not
block.
A callback may be called on a different thread than the thread which registered the callback. So the callback must be thread safe but can rely upon that the registration of the callback happens-before the registered callback is called.
then
in interface Promise<T>
then
in class PromiseImpl<T>
R
- The value type associated with the returned Promise.success
- The Success callback to be called when this Promise is
successfully resolved. May be null
if no Success
callback is required. In this case, the returned Promise must
be resolved with the value null
when this Promise is
successfully resolved.failure
- The Failure callback to be called when this Promise is
resolved with a failure. May be null
if no Failure
callback is required.public Promise<T> thenAccept(Consumer<? super T> consumer)
The specified Consumer
is called when this Promise is resolved
successfully.
This method returns a new Promise which is chained to this Promise. The returned Promise must be resolved when this Promise is resolved after the specified callback is executed. If the callback throws an exception, the returned Promise is failed with that exception. Otherwise the returned Promise is resolved with the success value from this Promise.
This method may be called at any time including before and after this Promise has been resolved.
Resolving this Promise happens-before any registered callback is
called. That is, in a registered callback, Promise.isDone()
must return
true
and Promise.getValue()
and Promise.getFailure()
must not
block.
A callback may be called on a different thread than the thread which registered the callback. So the callback must be thread safe but can rely upon that the registration of the callback happens-before the registered callback is called.
thenAccept
in interface Promise<T>
thenAccept
in class PromiseImpl<T>
consumer
- The Consumer callback that receives the value of this
Promise. Must not be null
.public Promise<T> filter(Predicate<? super T> predicate)
If this Promise is successfully resolved, the returned Promise must
either be resolved with the value of this Promise, if the specified
Predicate accepts that value, or failed with a
NoSuchElementException
, if the specified Predicate does not
accept that value. If the specified Predicate throws an exception, the
returned Promise must be failed with the exception.
If this Promise is resolved with a failure, the returned Promise must be failed with that failure.
This method may be called at any time including before and after this Promise has been resolved.
public <R> Promise<R> map(Function<? super T,? extends R> mapper)
If this Promise is successfully resolved, the returned Promise must be resolved with the value of specified Function as applied to the value of this Promise. If the specified Function throws an exception, the returned Promise must be failed with the exception.
If this Promise is resolved with a failure, the returned Promise must be failed with that failure.
This method may be called at any time including before and after this Promise has been resolved.
map
in interface Promise<T>
map
in class PromiseImpl<T>
R
- The value type associated with the returned Promise.mapper
- The Function that must map the value of this Promise to the
value that must be used to resolve the returned Promise. Must not
be null
.public <R> Promise<R> flatMap(Function<? super T,Promise<? extends R>> mapper)
If this Promise is successfully resolved, the returned Promise must be resolved with the Promise from the specified Function as applied to the value of this Promise. If the specified Function throws an exception, the returned Promise must be failed with the exception.
If this Promise is resolved with a failure, the returned Promise must be failed with that failure.
This method may be called at any time including before and after this Promise has been resolved.
flatMap
in interface Promise<T>
flatMap
in class PromiseImpl<T>
R
- The value type associated with the returned Promise.mapper
- The Function that must flatMap the value of this Promise to
a Promise that must be used to resolve the returned Promise. Must
not be null
.public Promise<T> timeout(long millis)
If this Promise is successfully resolved before the timeout, the returned
Promise is resolved with the value of this Promise. If this Promise is
resolved with a failure before the timeout, the returned Promise is
resolved with the failure of this Promise. If the timeout is reached
before this Promise is resolved, the returned Promise is failed with a
TimeoutException
.
timeout
in interface Promise<T>
timeout
in class PromiseImpl<T>
millis
- The time to wait in milliseconds. Zero and negative
time is treated as an immediate timeout.