All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.transferwise.common.baseutils.concurrency.ThreadNamingScheduledExecutorServiceWrapper Maven / Gradle / Ivy

package com.transferwise.common.baseutils.concurrency;

import java.util.concurrent.Callable;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;

public class ThreadNamingScheduledExecutorServiceWrapper extends ThreadNamingExecutorServiceWrapper implements ScheduledExecutorService {
	private ScheduledExecutorService delegate;

	public ThreadNamingScheduledExecutorServiceWrapper(String threadName, ScheduledExecutorService delegate){
		super(threadName, delegate);
		this.delegate = delegate;
	}

	@Override
	public ScheduledFuture schedule(Runnable command, long delay, TimeUnit unit) {
		return delegate.schedule(wrap(command), delay, unit);
	}

	@Override
	public  ScheduledFuture schedule(Callable callable, long delay, TimeUnit unit) {
		return delegate.schedule(wrap(callable), delay, unit);
	}

	@Override
	public ScheduledFuture scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit) {
		return delegate.scheduleAtFixedRate(wrap(command), initialDelay, period, unit);
	}

	@Override
	public ScheduledFuture scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit) {
		return delegate.scheduleWithFixedDelay(wrap(command), initialDelay, delay, unit);
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy