Class FailedPromiseImpl<T>
- java.lang.Object
-
- org.osgi.util.promise.PromiseImpl<T>
-
- org.osgi.util.promise.FailedPromiseImpl<T>
-
- Type Parameters:
T- The result type associated with the Promise.
- All Implemented Interfaces:
Promise<T>
final class FailedPromiseImpl<T> extends PromiseImpl<T>
Failed Promise implementation.This class is not used directly by clients. Clients should use
PromiseFactory.failed(Throwable)to create a failedPromise.- Since:
- 1.1
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.osgi.util.promise.PromiseImpl
PromiseImpl.Result<P>
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.ThrowablefailThe failure of this failed Promise.
-
Constructor Summary
Constructors Constructor Description FailedPromiseImpl(java.lang.Throwable fail, PromiseFactory factory)Initialize this failed Promise.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method 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.ThrowablegetFailure()Returns the failure of this Promise.TgetValue()Returns the value of this Promise.booleanisDone()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.StringtoString()-
Methods inherited from class org.osgi.util.promise.PromiseImpl
chain, collect, deferred, delay, failed, fallbackTo, notifyCallbacks, onFailure, onResolve, recover, recoverWith, resolved, schedule, then, uncaughtException
-
-
-
-
Constructor Detail
-
FailedPromiseImpl
FailedPromiseImpl(java.lang.Throwable fail, PromiseFactory factory)Initialize this failed Promise.- Parameters:
fail- The failure of this failed Promise. Must not benull.factory- The factory to use for callbacks and scheduled operations.
-
-
Method Detail
-
isDone
public boolean isDone()
Returns whether this Promise has been resolved.This Promise may be successfully resolved or resolved with a failure.
- Returns:
trueif this Promise was resolved either successfully or with a failure;falseif this Promise is unresolved.
-
getValue
public T getValue() throws java.lang.reflect.InvocationTargetException
Returns the value of this Promise.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
InvocationTargetExceptionwith thefailure exceptionas the cause.- Returns:
- The value of this resolved Promise.
- Throws:
java.lang.reflect.InvocationTargetException- If this Promise was resolved with a failure. The cause of theInvocationTargetExceptionis the failure exception.
-
getFailure
public java.lang.Throwable getFailure()
Returns the failure of this Promise.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.- Returns:
- The failure of this resolved Promise or
nullif this Promise was successfully resolved.
-
collect
PromiseImpl.Result<T> collect()
Return a holder of the result of this PromiseImpl.- Specified by:
collectin classPromiseImpl<T>
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
coerce
private <V> FailedPromiseImpl<V> coerce()
Coerce the value type of this FailedPromiseImpl.- Returns:
- This FailedPromiseImpl.
-
onSuccess
public 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. The callback will not be called if this Promise is resolved with a failure.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 returntrueandPromise.getValue()andPromise.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
public <R> Promise<R> then(Success<? super T,? extends R> success, Failure failure)
Chain a new Promise to this Promise with Success and Failure callbacks.The specified
Successcallback is called when this Promise is successfully resolved and the specifiedFailurecallback 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 returntrueandPromise.getValue()andPromise.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.
- Specified by:
thenin interfacePromise<T>- Overrides:
thenin classPromiseImpl<T>- Type Parameters:
R- The value type associated with the returned Promise.- Parameters:
success- The Success callback to be called when this Promise is successfully resolved. May benullif no Success callback is required. In this case, the returned Promise must be resolved with the valuenullwhen this Promise is successfully resolved.failure- The Failure callback to be called when this Promise is resolved with a failure. May benullif no Failure callback is required.- 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, if any, is executed.
-
thenAccept
public 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.The specified
Consumeris 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 returntrueandPromise.getValue()andPromise.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.
- Specified by:
thenAcceptin interfacePromise<T>- Overrides:
thenAcceptin classPromiseImpl<T>- Parameters:
consumer- The Consumer callback that receives the value of this Promise. Must not benull.- Returns:
- A new Promise which is chained to this Promise. The returned Promise must be resolved when this Promise is resolved after the specified Consumer is executed.
-
filter
public Promise<T> filter(Predicate<? super T> predicate)
Filter the value of this Promise.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.
-
map
public <R> Promise<R> map(Function<? super T,? extends R> mapper)
Map the value of this Promise.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.
- Specified by:
mapin interfacePromise<T>- Overrides:
mapin classPromiseImpl<T>- Type Parameters:
R- The value type associated with the returned Promise.- Parameters:
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 benull.- Returns:
- A Promise that returns the value of this Promise as mapped by the specified Function.
-
flatMap
public <R> Promise<R> flatMap(Function<? super T,Promise<? extends R>> mapper)
FlatMap the value of this Promise.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.
- Specified by:
flatMapin interfacePromise<T>- Overrides:
flatMapin classPromiseImpl<T>- Type Parameters:
R- The value type associated with the returned Promise.- Parameters:
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 benull.- Returns:
- A Promise that returns the value of this Promise as mapped by the specified Function.
-
timeout
public Promise<T> timeout(long millis)
Time out the resolution of this Promise.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.- Specified by:
timeoutin interfacePromise<T>- Overrides:
timeoutin classPromiseImpl<T>- Parameters:
millis- The time to wait in milliseconds. Zero and negative time is treated as an immediate timeout.- Returns:
- A Promise that is resolved when either this Promise is resolved or the specified timeout is reached.
-
-