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.Executorpublic final <T> java.util.concurrent.Future<T> submit(java.util.concurrent.Callable<T> task)
submit in interface java.util.concurrent.ExecutorServicepublic final java.util.concurrent.Future<?> submit(java.lang.Runnable task)
submit in interface java.util.concurrent.ExecutorServicepublic final <T> java.util.concurrent.Future<T> submit(java.lang.Runnable task,
T result)
submit in interface java.util.concurrent.ExecutorServicepublic 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.ExecutorServicejava.lang.InterruptedExceptionpublic 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.ExecutorServicejava.lang.InterruptedExceptionpublic 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.ExecutorServicejava.lang.InterruptedExceptionjava.util.concurrent.ExecutionExceptionpublic 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.ExecutorServicejava.lang.InterruptedExceptionjava.util.concurrent.ExecutionExceptionjava.util.concurrent.TimeoutExceptionpublic final void shutdown()
shutdown in interface java.util.concurrent.ExecutorServicepublic final java.util.List<java.lang.Runnable> shutdownNow()
shutdownNow in interface java.util.concurrent.ExecutorServicepublic final boolean isShutdown()
isShutdown in interface java.util.concurrent.ExecutorServicepublic final boolean isTerminated()
isTerminated in interface java.util.concurrent.ExecutorServicepublic final boolean awaitTermination(long timeout,
java.util.concurrent.TimeUnit unit)
throws java.lang.InterruptedException
awaitTermination in interface java.util.concurrent.ExecutorServicejava.lang.InterruptedException