package org.threadly.concurrent.wrapper; import java.util.concurrent.Executor; import org.threadly.concurrent.AbstractSubmitterExecutor; import org.threadly.util.ArgumentVerifier; /** * A simple wrapper class for {@link Executor} implementations to provide * {@link org.threadly.concurrent.SubmitterExecutor} capabilities. * <p> * In addition this implementation returns {@link org.threadly.concurrent.future.ListenableFuture} * future implementations, making it an easy way to convert your favorite executor to use * ListenableFutures. * * @since 4.8.0 (since 1.0.0 as org.threadly.concurrent.ExecutorWrapper) */ public class SubmitterExecutorAdapter extends AbstractSubmitterExecutor { protected final Executor executor; /** * Constructors a new wrapper instance with the provided executor to defer calls to. * * @param executor {@link Executor} instance. */ public SubmitterExecutorAdapter(Executor executor) { ArgumentVerifier.assertNotNull(executor, "executor"); this.executor = executor; } @Override protected void doExecute(Runnable task) { executor.execute(task); } }