Class WrappingExecutorService
- java.lang.Object
-
- com.google.common.util.concurrent.WrappingExecutorService
-
- All Implemented Interfaces:
java.util.concurrent.Executor
,java.util.concurrent.ExecutorService
- Direct Known Subclasses:
WrappingScheduledExecutorService
@GwtIncompatible abstract class WrappingExecutorService extends java.lang.Object implements java.util.concurrent.ExecutorService
An abstractExecutorService
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
.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.ExecutorService
delegate
-
Constructor Summary
Constructors Modifier Constructor Description protected
WrappingExecutorService(java.util.concurrent.ExecutorService delegate)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method 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()
java.util.concurrent.Future<?>
submit(java.lang.Runnable task)
<T> java.util.concurrent.Future<T>
submit(java.lang.Runnable task, T result)
<T> java.util.concurrent.Future<T>
submit(java.util.concurrent.Callable<T> task)
protected java.lang.Runnable
wrapTask(java.lang.Runnable command)
Wraps aRunnable
for submission to the underlying executor.protected abstract <T> java.util.concurrent.Callable<T>
wrapTask(java.util.concurrent.Callable<T> callable)
Wraps aCallable
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.
-
-
-
Method Detail
-
wrapTask
protected abstract <T> java.util.concurrent.Callable<T> wrapTask(java.util.concurrent.Callable<T> callable)
Wraps aCallable
for submission to the underlying executor. This method is also applied to anyRunnable
passed to the default implementation ofwrapTask(Runnable)
.
-
wrapTask
protected java.lang.Runnable wrapTask(java.lang.Runnable command)
Wraps aRunnable
for submission to the underlying executor. The default implementation delegates towrapTask(Callable)
.
-
wrapTasks
private final <T> ImmutableList<java.util.concurrent.Callable<T>> wrapTasks(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks)
Wraps a collection of tasks.- Throws:
java.lang.NullPointerException
- if any element oftasks
is null
-
execute
public final void execute(java.lang.Runnable command)
- Specified by:
execute
in interfacejava.util.concurrent.Executor
-
submit
public final <T> java.util.concurrent.Future<T> submit(java.util.concurrent.Callable<T> task)
- Specified by:
submit
in interfacejava.util.concurrent.ExecutorService
-
submit
public final java.util.concurrent.Future<?> submit(java.lang.Runnable task)
- Specified by:
submit
in interfacejava.util.concurrent.ExecutorService
-
submit
public final <T> java.util.concurrent.Future<T> submit(java.lang.Runnable task, T result)
- Specified by:
submit
in interfacejava.util.concurrent.ExecutorService
-
invokeAll
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
- Specified by:
invokeAll
in interfacejava.util.concurrent.ExecutorService
- Throws:
java.lang.InterruptedException
-
invokeAll
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
- Specified by:
invokeAll
in interfacejava.util.concurrent.ExecutorService
- Throws:
java.lang.InterruptedException
-
invokeAny
public final <T> T invokeAny(java.util.Collection<? extends java.util.concurrent.Callable<T>> tasks) throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
- Specified by:
invokeAny
in interfacejava.util.concurrent.ExecutorService
- Throws:
java.lang.InterruptedException
java.util.concurrent.ExecutionException
-
invokeAny
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
- Specified by:
invokeAny
in interfacejava.util.concurrent.ExecutorService
- Throws:
java.lang.InterruptedException
java.util.concurrent.ExecutionException
java.util.concurrent.TimeoutException
-
shutdown
public final void shutdown()
- Specified by:
shutdown
in interfacejava.util.concurrent.ExecutorService
-
shutdownNow
public final java.util.List<java.lang.Runnable> shutdownNow()
- Specified by:
shutdownNow
in interfacejava.util.concurrent.ExecutorService
-
isShutdown
public final boolean isShutdown()
- Specified by:
isShutdown
in interfacejava.util.concurrent.ExecutorService
-
isTerminated
public final boolean isTerminated()
- Specified by:
isTerminated
in interfacejava.util.concurrent.ExecutorService
-
awaitTermination
public final boolean awaitTermination(long timeout, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException
- Specified by:
awaitTermination
in interfacejava.util.concurrent.ExecutorService
- Throws:
java.lang.InterruptedException
-
-