Class FutureImpl<T>
- All Implemented Interfaces:
AsyncResult<T>,Future<T>,FutureInternal<T>
- Direct Known Subclasses:
CompositeFutureImpl,PromiseImpl
- Author:
- Julien Viet
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddListener(Listener<T> listener) Add a listener to the future result.cause()An exception describing failure.<U> Future<U>Compose this future with asuccessMapperandfailureMapperfunctions.protected final voidemitFailure(Throwable cause, Listener<T> listener) protected final voidemitSuccess(T value, Listener<T> listener) Create a future that hasn't completed yeteventually(Function<Void, Future<U>> mapper) Compose this future with afunctionthat will be always be called.booleanfailed()Did it fail?protected voidformatValue(Object value, StringBuilder sb) booleanHas it completed?<U> Future<U>Apply amapperfunction on this future.<V> Future<V>map(V value) Map the result of a future to a specificvalue.onComplete(Handler<AsyncResult<T>> handler) Add a handler to be notified of the result.onComplete(Handler<T> successHandler, Handler<Throwable> failureHandler) Add handlers to be notified on succeeded result and failed result.Add a handler to be notified of the failed result.Add a handler to be notified of the succeeded result.Apply amapperfunction on this future.Map the failure of a future to a specificvalue.voidremoveListener(Listener<T> l) Remove a listener to the future result.result()Create a future that hasn't completed yetbooleanDid it succeed?toString()<U> Future<U>transform(Function<AsyncResult<T>, Future<U>> mapper) Transform this future with amapperfunctions.booleantryComplete(T result) booleanMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface dev.webfx.platform.async.Future
andThen, compose, eventually, flatMap, mapEmpty, otherwiseEmpty, recover
-
Constructor Details
-
FutureImpl
protected FutureImpl()Create a future that hasn't completed yet
-
-
Method Details
-
result
Create a future that hasn't completed yet- Returns:
- the result or null if the operation failed.
-
cause
An exception describing failure. This will be null if the operation succeeded.- Returns:
- the cause or null if the operation succeeded.
-
succeeded
public boolean succeeded()Did it succeed?- Returns:
- true if it succeded or false otherwise
-
failed
public boolean failed()Did it fail?- Returns:
- true if it failed or false otherwise
-
isComplete
public boolean isComplete()Has it completed?- Returns:
- true if completed, false if not
-
onSuccess
Description copied from interface:FutureAdd a handler to be notified of the succeeded result.WARNING: this is a terminal operation. If several
handlers are registered, there is no guarantee that they will be invoked in order of registration.- Parameters:
handler- the handler that will be called with the succeeded result- Returns:
- a reference to this, so it can be used fluently
-
onFailure
Description copied from interface:FutureAdd a handler to be notified of the failed result.WARNING: this is a terminal operation. If several
handlers are registered, there is no guarantee that they will be invoked in order of registration.- Parameters:
handler- the handler that will be called with the failed result- Returns:
- a reference to this, so it can be used fluently
-
onComplete
Description copied from interface:FutureAdd handlers to be notified on succeeded result and failed result.WARNING: this is a terminal operation. If several
handlers are registered, there is no guarantee that they will be invoked in order of registration.- Parameters:
successHandler- the handler that will be called with the succeeded resultfailureHandler- the handler that will be called with the failed result- Returns:
- a reference to this, so it can be used fluently
-
onComplete
Description copied from interface:FutureAdd a handler to be notified of the result.WARNING: this is a terminal operation. If several
handlers are registered, there is no guarantee that they will be invoked in order of registration.- Parameters:
handler- the handler that will be called with the result- Returns:
- a reference to this, so it can be used fluently
-
addListener
Description copied from interface:FutureInternalAdd a listener to the future result.- Parameters:
listener- the listener
-
removeListener
Description copied from interface:FutureInternalRemove a listener to the future result.- Parameters:
l- the listener
-
tryComplete
-
tryFail
-
toString
-
formatValue
-
emitSuccess
Create a future that hasn't completed yet -
emitFailure
-
compose
public <U> Future<U> compose(Function<T, Future<U>> successMapper, Function<Throwable, Future<U>> failureMapper) Description copied from interface:FutureCompose this future with asuccessMapperandfailureMapperfunctions.When this future (the one on which
composeis called) succeeds, thesuccessMapperwill be called with the completed value and this mapper returns another future object. This returned future completion will complete the future returned by this method call.When this future (the one on which
composeis called) fails, thefailureMapperwill be called with the failure and this mapper returns another future object. This returned future completion will complete the future returned by this method call.If any mapper function throws an exception, the returned future will be failed with this exception.
-
transform
Description copied from interface:FutureTransform this future with amapperfunctions.When this future (the one on which
transformis called) completes, themapperwill be called with the async result and this mapper returns another future object. This returned future completion will complete the future returned by this method call.If any mapper function throws an exception, the returned future will be failed with this exception.
-
eventually
Description copied from interface:FutureCompose this future with afunctionthat will be always be called.When this future (the one on which
eventuallyis called) completes, thefunctionwill be called and this mapper returns another future object. This returned future completion will complete the future returned by this method call with the original result of the future.The outcome of the future returned by the
functionwill not influence the nature of the returned future.- Specified by:
eventuallyin interfaceFuture<T>- Parameters:
mapper- the function returning the future.- Returns:
- the composed future
-
map
Description copied from interface:FutureApply amapperfunction on this future.When this future succeeds, the
mapperwill be called with the completed value and this mapper returns a value. This value will complete the future returned by this method call.If the
mapperthrows an exception, the returned future will be failed with this exception.When this future fails, the failure will be propagated to the returned future and the
mapperwill not be called.- Specified by:
mapin interfaceAsyncResult<T>- Specified by:
mapin interfaceFuture<T>- Parameters:
mapper- the mapper function- Returns:
- the mapped future
-
map
Description copied from interface:FutureMap the result of a future to a specificvalue.When this future succeeds, this
valuewill complete the future returned by this method call.When this future fails, the failure will be propagated to the returned future.
- Specified by:
mapin interfaceAsyncResult<T>- Specified by:
mapin interfaceFuture<T>- Parameters:
value- the value that eventually completes the mapped future- Returns:
- the mapped future
-
otherwise
Description copied from interface:FutureApply amapperfunction on this future.When this future fails, the
mapperwill be called with the completed value and this mapper returns a value. This value will complete the future returned by this method call.If the
mapperthrows an exception, the returned future will be failed with this exception.When this future succeeds, the result will be propagated to the returned future and the
mapperwill not be called.- Specified by:
otherwisein interfaceAsyncResult<T>- Specified by:
otherwisein interfaceFuture<T>- Parameters:
mapper- the mapper function- Returns:
- the mapped future
-
otherwise
Description copied from interface:FutureMap the failure of a future to a specificvalue.When this future fails, this
valuewill complete the future returned by this method call.When this future succeeds, the result will be propagated to the returned future.
- Specified by:
otherwisein interfaceAsyncResult<T>- Specified by:
otherwisein interfaceFuture<T>- Parameters:
value- the value that eventually completes the mapped future- Returns:
- the mapped future
-