package org.oddjob.scheduling; import java.util.concurrent.Callable; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.ScheduledFuture; import java.util.concurrent.ScheduledThreadPoolExecutor; import java.util.concurrent.TimeUnit; /** * A wrapper for {@link ScheduledThreadPoolExecutor} that provides an * {@link #toString()} implementation. * * @author rob * */ public class OddjobScheduledExecutorService extends OddjobExecutorService implements ScheduledExecutorService { private final ScheduledThreadPoolExecutor delegate; public OddjobScheduledExecutorService( ScheduledThreadPoolExecutor delegate) { super(delegate); this.delegate = delegate; } @Override public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit) { return delegate.schedule(command, delay, unit); } @Override public <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit) { return delegate.schedule(callable, delay, unit); } @Override public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) { return delegate.scheduleAtFixedRate( command, initialDelay, period, unit); } @Override public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) { return delegate.scheduleWithFixedDelay( command, initialDelay, delay, unit); } @Override public String toString() { return super.toString() + ", scheduled=" + delegate.getQueue().size(); } }