Class AsyncResult<V>
- java.lang.Object
- org.springframework.scheduling.annotation.AsyncResult<V>
- Type Parameters:
V
- the value type
- All Implemented Interfaces:
Future<V>
,ListenableFuture<V>
public class AsyncResult<V> extends Object implements ListenableFuture<V>
A pass-throughFuture
handle that can be used for method signatures which are declared with aFuture
return type for asynchronous execution.As of Spring 4.1, this class implements
ListenableFuture
, not just plainFuture
, along with the corresponding support in@Async
processing.As of Spring 4.2, this class also supports passing execution exceptions back to the caller.
- Since:
- 3.0
- Author:
- Juergen Hoeller, Rossen Stoyanchev
- See Also:
Async
,forValue(Object)
,forExecutionException(Throwable)
Constructor Summary
Constructors Constructor Description AsyncResult(V value)
Create a new AsyncResult holder.
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addCallback(ListenableFutureCallback<? super V> callback)
Register the givenListenableFutureCallback
.void
addCallback(SuccessCallback<? super V> successCallback, FailureCallback failureCallback)
Java 8 lambda-friendly alternative with success and failure callbacks.boolean
cancel(boolean mayInterruptIfRunning)
CompletableFuture<V>
completable()
Expose thisListenableFuture
as a JDKCompletableFuture
.static <V> ListenableFuture<V>
forExecutionException(Throwable ex)
Create a new async result which exposes the given exception as anExecutionException
fromFuture.get()
.static <V> ListenableFuture<V>
forValue(V value)
Create a new async result which exposes the given value fromFuture.get()
.V
get()
V
get(long timeout, TimeUnit unit)
boolean
isCancelled()
boolean
isDone()
Constructor Detail
AsyncResult
public AsyncResult(@Nullable V value)
Create a new AsyncResult holder.- Parameters:
value
- the value to pass through
Method Detail
cancel
public boolean cancel(boolean mayInterruptIfRunning)
isCancelled
public boolean isCancelled()
- Specified by:
isCancelled
in interfaceFuture<V>
get
@Nullable public V get() throws ExecutionException
- Specified by:
get
in interfaceFuture<V>
- Throws:
ExecutionException
get
@Nullable public V get(long timeout, TimeUnit unit) throws ExecutionException
- Specified by:
get
in interfaceFuture<V>
- Throws:
ExecutionException
addCallback
public void addCallback(ListenableFutureCallback<? super V> callback)
Description copied from interface:ListenableFuture
Register the givenListenableFutureCallback
.- Specified by:
addCallback
in interfaceListenableFuture<V>
- Parameters:
callback
- the callback to register
addCallback
public void addCallback(SuccessCallback<? super V> successCallback, FailureCallback failureCallback)
Description copied from interface:ListenableFuture
Java 8 lambda-friendly alternative with success and failure callbacks.- Specified by:
addCallback
in interfaceListenableFuture<V>
- Parameters:
successCallback
- the success callbackfailureCallback
- the failure callback
completable
public CompletableFuture<V> completable()
Description copied from interface:ListenableFuture
Expose thisListenableFuture
as a JDKCompletableFuture
.- Specified by:
completable
in interfaceListenableFuture<V>
forValue
public static <V> ListenableFuture<V> forValue(V value)
Create a new async result which exposes the given value fromFuture.get()
.- Parameters:
value
- the value to expose- Since:
- 4.2
- See Also:
Future.get()
forExecutionException
public static <V> ListenableFuture<V> forExecutionException(Throwable ex)
Create a new async result which exposes the given exception as anExecutionException
fromFuture.get()
.- Parameters:
ex
- the exception to expose (either an pre-builtExecutionException
or a cause to be wrapped in anExecutionException
)- Since:
- 4.2
- See Also:
ExecutionException