InputT
- the type of the individual inputsOutputT
- the type of the output (i.e. this) future@GwtCompatible abstract class AggregateFuture<InputT,OutputT> extends AbstractFuture.TrustedFuture<OutputT>
Modifier and Type | Class and Description |
---|---|
(package private) class |
AggregateFuture.RunningState |
AbstractFuture.TrustedFuture<V>
Modifier and Type | Field and Description |
---|---|
private static java.util.logging.Logger |
logger |
private AggregateFuture.RunningState |
runningState |
Constructor and Description |
---|
AggregateFuture() |
Modifier and Type | Method and Description |
---|---|
private static boolean |
addCausalChain(java.util.Set<java.lang.Throwable> seen,
java.lang.Throwable t)
Adds the chain to the seen set, and returns whether all the chain was new to us.
|
protected void |
afterDone()
Callback method that is called exactly once after the future is completed.
|
(package private) void |
init(AggregateFuture.RunningState runningState)
Must be called at the end of each sub-class's constructor.
|
addListener, cancel, get, get, isCancelled, isDone
interruptTask, maybePropagateCancellation, set, setException, setFuture, trustedGetException, wasInterrupted
private static final java.util.logging.Logger logger
private AggregateFuture.RunningState runningState
protected final void afterDone()
AbstractFuture
If AbstractFuture.interruptTask()
is also run during completion, AbstractFuture.afterDone()
runs after it.
The default implementation of this method in AbstractFuture
does nothing. This is
intended for very lightweight cleanup work, for example, timing statistics or clearing fields.
If your task does anything heavier consider, just using a listener with an executor.
afterDone
in class AbstractFuture<OutputT>
final void init(AggregateFuture.RunningState runningState)
private static boolean addCausalChain(java.util.Set<java.lang.Throwable> seen, java.lang.Throwable t)