com.google.common.util.concurrent
Class ForwardingListenableFuture<V>
java.lang.Object
com.google.common.collect.ForwardingObject
com.google.common.util.concurrent.ForwardingFuture<V>
com.google.common.util.concurrent.ForwardingListenableFuture<V>
- Type Parameters:
V
- The result type returned by this Future's get
method
- All Implemented Interfaces:
- ListenableFuture<V>, Future<V>
- Direct Known Subclasses:
- ForwardingCheckedFuture, ForwardingListenableFuture.SimpleForwardingListenableFuture
@Beta
public abstract class ForwardingListenableFuture<V>
- extends ForwardingFuture<V>
- implements ListenableFuture<V>
A ForwardingListenableFuture.SimpleForwardingListenableFuture
which forwards all its method calls to another
future. Subclasses should override one or more methods to modify the behavior
of the backing future as desired per the decorator pattern.
Most subclasses can just use ForwardingListenableFuture.SimpleForwardingListenableFuture
.
- Since:
- 4
- Author:
- Shardul Deo
ForwardingListenableFuture
protected ForwardingListenableFuture()
- Constructor for use by subclasses.
delegate
protected abstract ListenableFuture<V> delegate()
- Description copied from class:
ForwardingObject
- Returns the backing delegate instance that methods are forwarded to.
Abstract subclasses generally override this method with an abstract method
that has a more specific return type, such as
ForwardingSet.delegate()
. Concrete subclasses override this method to supply
the instance being decorated.
- Specified by:
delegate
in class ForwardingFuture<V>
addListener
public void addListener(Runnable listener,
Executor exec)
- Description copied from interface:
ListenableFuture
- Registers a listener to be run on
the given executor. The listener will run when the
Future
's
computation is complete or, if the computation
is already complete, immediately.
There is no guaranteed ordering of execution of listeners, but any
listener added through this method is guaranteed to be called once the
computation is complete.
Listeners cannot throw checked exceptions and should not throw RuntimeException
unless their executors are prepared to handle it.
Listeners that will execute in MoreExecutors.sameThreadExecutor()
should take special care, since they may run during the call to addListener
or during the call that sets the future's value.
- Specified by:
addListener
in interface ListenableFuture<V>
- Parameters:
listener
- the listener to run when the computation is completeexec
- the executor to run the listener in