package rmblworx.tools.timey;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledFuture;
/*
* Copyright 2014-2015 Christian Raue
* MIT License http://opensource.org/licenses/mit-license.php
*/
/**
* @author mmatthies
*/
class TaskStopper implements Runnable {
/**
* Referenz auf die zu stoppende Implementierung.
*/
private final ScheduledFuture<?> future;
/**
* Referenz auf den Scheduleservice die den zu stoppenden Task verwaltet.
*/
private final ScheduledExecutorService scheduler;
/**
* Erweiterter Konstruktor.
*
* @param scheduler
* Referenz auf den ExecutorService welcher den zu stoppenden Task verwaltet.
* @param taskToStopFuture
* Referenz auf den zu stoppenden Task.
*/
public TaskStopper(final ScheduledExecutorService scheduler, final ScheduledFuture<?> taskToStopFuture) {
this.future = taskToStopFuture;
this.scheduler = scheduler;
}
@Override
public void run() {
this.future.cancel(false);
this.scheduler.shutdown();
}
}