public class ExecutorTaskInterceptor extends java.lang.Object implements SubmitterExecutor
Executorpool so that tasks can be intercepted and either wrapped, or modified, before being submitted to the pool. This class can be passed a lamba in the constructor, or you can extend this class and override the function
wrapTask(Runnable)to provide the task which should be submitted to the
Executor. Please see the javadocs of
wrapTask(Runnable)for more details about ways a task can be modified or wrapped.
|Constructor and Description|
Constructs a wrapper for
|Modifier and Type||Method and Description|
Submit a task to run as soon as possible.
Implementation to modify a provided task.
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
public ExecutorTaskInterceptor(java.util.concurrent.Executor parentExecutor, java.util.function.Function<java.lang.Runnable,java.lang.Runnable> taskManipulator)
Executorpool so that tasks can be intercepted and modified, before being submitted to the pool.
parentExecutor- An instance of
taskManipulator- A lambda to manipulate a
Runnablethat was submitted for execution
public java.lang.Runnable wrapTask(java.lang.Runnable task)
Callablewas submitted, in which case a
ListenableFutureTaskwill be provided. In the last condition the original callable can be retrieved by invoking
ListenableFutureTask.getContainedCallable(). The returned task can not be null, but could be either the original task, a modified task, a wrapper to the provided task, or if no action is desired
DoNothingRunnable.instance()may be provided. However caution should be used in that if a
ListenableFutureTaskis provided, and then never returned (and not canceled), then the future will never complete (and thus possibly forever blocked). So if you are doing conditional checks for
ListenableFutureTaskand may not execute/return the provided task, then you should be careful to ensure
task- A runnable that was submitted for execution
public void execute(java.lang.Runnable task)
public <T> ListenableFuture<T> submit(java.lang.Runnable task, T result)
Future.get()method will return the provided result once the runnable has completed.
public <T> ListenableFuture<T> submit(java.util.concurrent.Callable<T> task)
Callableto run as soon as possible. This is needed when a result needs to be consumed from the callable.