public class SettableListenableFuture<T> extends Object implements ListenableFuture<T>
ListenableFuture
whose value can be set via set(Object) or
setException(Throwable). It may also be 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)
Registers the given callback to this
ListenableFuture. |
void |
addCallback(SuccessCallback<? super T> successCallback,
FailureCallback failureCallback)
Registers the given success and failure callbacks to this
ListenableFuture. |
boolean |
cancel(boolean mayInterruptIfRunning) |
T |
get()
Retrieve the value.
|
T |
get(long timeout,
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(Throwable exception)
Set the exception of this future.
|
public boolean set(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 set.true if the value was successfully set, else false.public boolean setException(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 set.true if the exception was successfully set, else false.public void addCallback(ListenableFutureCallback<? super T> callback)
ListenableFutureListenableFuture. The callback will
be triggered when this Future is complete or, if it is already complete,
immediately.addCallback in interface ListenableFuture<T>callback - the callback to registerpublic void addCallback(SuccessCallback<? super T> successCallback, FailureCallback failureCallback)
ListenableFutureListenableFuture.
The callback will be triggered when this Future is complete or, if it is
already complete immediately. This is a Java 8 lambdas compliant alternative to
ListenableFuture.addCallback(ListenableFutureCallback).addCallback in interface ListenableFuture<T>successCallback - the success callback to registerfailureCallback - the failure callback to registerpublic boolean cancel(boolean mayInterruptIfRunning)
public boolean isCancelled()
isCancelled in interface Future<T>public T get() throws InterruptedException, ExecutionException
Will return the value if it has been set via set(Object),
throw an ExecutionException if it has been
set via setException(Throwable) or throw a
CancellationException if it has been cancelled.
get in interface Future<T>InterruptedExceptionExecutionExceptionpublic T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
Will return the value if it has been set via set(Object),
throw an ExecutionException if it has been
set via setException(Throwable) or throw a
CancellationException if it has been cancelled.
get in interface Future<T>timeout - the maximum time to wait.unit - the time unit of the timeout argument.InterruptedExceptionExecutionExceptionTimeoutExceptionprotected void interruptTask()
cancel(true).
The default implementation does nothing.