abstract class WrappingExecutorService
extends java.lang.Object
implements java.util.concurrent.ExecutorService
ExecutorService
that allows subclasses to wrap tasks before they are submitted to the underlying executor.
Note that task wrapping may occur even if the task is never executed.
For delegation without task-wrapping, see ForwardingExecutorService
.
Modifier and Type | Field and Description |
---|---|
private java.util.concurrent.ExecutorService |
delegate |
Modifier | Constructor and Description |
---|---|
protected |
WrappingExecutorService(java.util.concurrent.ExecutorService delegate) |
Modifier and Type | Method and Description |
---|---|
boolean |
awaitTermination(long timeout,
java.util.concurrent.TimeUnit unit) |
void |
execute(java.lang.Runnable command) |
<T> java.util.List<java.util.concurrent.Future<T>> |
invokeAll(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks) |
<T> java.util.List<java.util.concurrent.Future<T>> |
invokeAll(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks,
long timeout,
java.util.concurrent.TimeUnit unit) |
<T> T |
invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks) |
<T> T |
invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks,
long timeout,
java.util.concurrent.TimeUnit unit) |
boolean |
isShutdown() |
boolean |
isTerminated() |
void |
shutdown() |
java.util.List<java.lang.Runnable> |
shutdownNow() |
<T> java.util.concurrent.Future<T> |
submit(java.util.concurrent.Callable<T> task) |
java.util.concurrent.Future<?> |
submit(java.lang.Runnable task) |
<T> java.util.concurrent.Future<T> |
submit(java.lang.Runnable task,
T result) |
protected abstract <T> java.util.concurrent.Callable<T> |
wrapTask(java.util.concurrent.Callable<T> callable)
Wraps a
Callable for submission to the underlying executor. |
protected java.lang.Runnable |
wrapTask(java.lang.Runnable command)
Wraps a
Runnable for submission to the underlying executor. |
private <T> ImmutableList<java.util.concurrent.Callable<T>> |
wrapTasks(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks)
Wraps a collection of tasks.
|
protected WrappingExecutorService(java.util.concurrent.ExecutorService delegate)
protected abstract <T> java.util.concurrent.Callable<T> wrapTask(java.util.concurrent.Callable<T> callable)
Callable
for submission to the underlying executor. This method is also applied
to any Runnable
passed to the default implementation of wrapTask(Runnable)
.protected java.lang.Runnable wrapTask(java.lang.Runnable command)
Runnable
for submission to the underlying executor. The default implementation
delegates to wrapTask(Callable)
.private <T> ImmutableList<java.util.concurrent.Callable<T>> wrapTasks(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks)
java.lang.NullPointerException
- if any element of tasks
is nullpublic final void execute(java.lang.Runnable command)
execute
in interface java.util.concurrent.Executor
public final <T> java.util.concurrent.Future<T> submit(java.util.concurrent.Callable<T> task)
submit
in interface java.util.concurrent.ExecutorService
public final java.util.concurrent.Future<?> submit(java.lang.Runnable task)
submit
in interface java.util.concurrent.ExecutorService
public final <T> java.util.concurrent.Future<T> submit(java.lang.Runnable task, T result)
submit
in interface java.util.concurrent.ExecutorService
public final <T> java.util.List<java.util.concurrent.Future<T>> invokeAll(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks) throws java.lang.InterruptedException
invokeAll
in interface java.util.concurrent.ExecutorService
java.lang.InterruptedException
public final <T> java.util.List<java.util.concurrent.Future<T>> invokeAll(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks, long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
invokeAll
in interface java.util.concurrent.ExecutorService
java.lang.InterruptedException
public final <T> T invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks) throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
invokeAny
in interface java.util.concurrent.ExecutorService
java.lang.InterruptedException
java.util.concurrent.ExecutionException
public final <T> T invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks, long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException, java.util.concurrent.ExecutionException, java.util.concurrent.TimeoutException
invokeAny
in interface java.util.concurrent.ExecutorService
java.lang.InterruptedException
java.util.concurrent.ExecutionException
java.util.concurrent.TimeoutException
public final void shutdown()
shutdown
in interface java.util.concurrent.ExecutorService
public final java.util.List<java.lang.Runnable> shutdownNow()
shutdownNow
in interface java.util.concurrent.ExecutorService
public final boolean isShutdown()
isShutdown
in interface java.util.concurrent.ExecutorService
public final boolean isTerminated()
isTerminated
in interface java.util.concurrent.ExecutorService
public final boolean awaitTermination(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
awaitTermination
in interface java.util.concurrent.ExecutorService
java.lang.InterruptedException