T
- the result type returned by this Future's get
methodpublic class SettableListenableFuture<T> extends java.lang.Object implements ListenableFuture<T>
ListenableFuture
whose value can be set via set(Object)
or setException(Throwable)
. It may also get cancelled.
Inspired by com.google.common.util.concurrent.SettableFuture
.
Constructor and Description |
---|
SettableListenableFuture() |
Modifier and Type | Method and Description |
---|---|
void |
addCallback(ListenableFutureCallback<? super T> callback)
Register the given
ListenableFutureCallback . |
void |
addCallback(SuccessCallback<? super T> successCallback,
FailureCallback failureCallback)
Java 8 lambda-friendly alternative with success and failure callbacks.
|
boolean |
cancel(boolean mayInterruptIfRunning) |
java.util.concurrent.CompletableFuture<T> |
completable()
Expose this
ListenableFuture as a JDK CompletableFuture . |
T |
get()
Retrieve the value.
|
T |
get(long timeout,
java.util.concurrent.TimeUnit unit)
Retrieve the value.
|
protected void |
interruptTask()
Subclasses can override this method to implement interruption of the future's
computation.
|
boolean |
isCancelled() |
boolean |
isDone() |
boolean |
set(T value)
Set the value of this future.
|
boolean |
setException(java.lang.Throwable exception)
Set the exception of this future.
|
public boolean set(@Nullable T value)
true
if the
value was set successfully, or false
if the future has already been
set or cancelled.value
- the value that will be settrue
if the value was successfully set, else false
public boolean setException(java.lang.Throwable exception)
true
if the
exception was set successfully, or false
if the future has already been
set or cancelled.exception
- the value that will be settrue
if the exception was successfully set, else false
public void addCallback(ListenableFutureCallback<? super T> callback)
ListenableFuture
ListenableFutureCallback
.addCallback
in interface ListenableFuture<T>
callback
- the callback to registerpublic void addCallback(SuccessCallback<? super T> successCallback, FailureCallback failureCallback)
ListenableFuture
addCallback
in interface ListenableFuture<T>
successCallback
- the success callbackfailureCallback
- the failure callbackpublic java.util.concurrent.CompletableFuture<T> completable()
ListenableFuture
ListenableFuture
as a JDK CompletableFuture
.completable
in interface ListenableFuture<T>
public boolean cancel(boolean mayInterruptIfRunning)
cancel
in interface java.util.concurrent.Future<T>
public boolean isCancelled()
isCancelled
in interface java.util.concurrent.Future<T>
public boolean isDone()
isDone
in interface java.util.concurrent.Future<T>
public T get() throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
This method returns the value if it has been set via set(Object)
,
throws an ExecutionException
if an exception has
been set via setException(Throwable)
, or throws a
CancellationException
if the future has been cancelled.
get
in interface java.util.concurrent.Future<T>
java.lang.InterruptedException
java.util.concurrent.ExecutionException
public T get(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
This method returns the value if it has been set via set(Object)
,
throws an ExecutionException
if an exception has
been set via setException(Throwable)
, or throws a
CancellationException
if the future has been cancelled.
get
in interface java.util.concurrent.Future<T>
timeout
- the maximum time to waitunit
- the unit of the timeout argumentjava.lang.InterruptedException
java.util.concurrent.ExecutionException
java.util.concurrent.TimeoutException
protected void interruptTask()
cancel(true)
.
The default implementation is empty.