Package com.foxinmy.weixin4j.util
Class SettableFuture<T>
- java.lang.Object
-
- com.foxinmy.weixin4j.util.SettableFuture<T>
-
- All Implemented Interfaces:
Future<T>
public class SettableFuture<T> extends Object implements Future<T>
AListenableFuture
whose value can be set viaset(Object)
orsetException(Throwable)
. It may also be cancelled.Inspired by
com.google.common.util.concurrent.SettableFuture
.- Since:
- 4.1
- Author:
- Mattias Severson, Rossen Stoyanchev
-
-
Constructor Summary
Constructors Constructor Description SettableFuture()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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.
-
-
-
Method Detail
-
set
public boolean set(T value)
Set the value of this future. This method will returntrue
if the value was set successfully, orfalse
if the future has already been set or cancelled.- Parameters:
value
- the value that will be set.- Returns:
true
if the value was successfully set, elsefalse
.
-
setException
public boolean setException(Throwable exception)
Set the exception of this future. This method will returntrue
if the exception was set successfully, orfalse
if the future has already been set or cancelled.- Parameters:
exception
- the value that will be set.- Returns:
true
if the exception was successfully set, elsefalse
.
-
cancel
public boolean cancel(boolean mayInterruptIfRunning)
-
isCancelled
public boolean isCancelled()
- Specified by:
isCancelled
in interfaceFuture<T>
-
get
public T get() throws InterruptedException, ExecutionException
Retrieve the value.Will return the value if it has been set via
set(Object)
, throw anExecutionException
if it has been set viasetException(Throwable)
or throw aCancellationException
if it has been cancelled.- Specified by:
get
in interfaceFuture<T>
- Returns:
- The value associated with this future.
- Throws:
InterruptedException
ExecutionException
-
get
public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
Retrieve the value.Will return the value if it has been set via
set(Object)
, throw anExecutionException
if it has been set viasetException(Throwable)
or throw aCancellationException
if it has been cancelled.- Specified by:
get
in interfaceFuture<T>
- Parameters:
timeout
- the maximum time to wait.unit
- the time unit of the timeout argument.- Returns:
- The value associated with this future.
- Throws:
InterruptedException
ExecutionException
TimeoutException
-
interruptTask
protected void interruptTask()
Subclasses can override this method to implement interruption of the future's computation. The method is invoked automatically by a successful call tocancel(true)
.The default implementation does nothing.
-
-