package CustomTimer.TimerTypes.FullNames.TaskTimers; import CustomTimer.Util.ExonTimerStorer; import CustomTimer.Util.Interfaces.CustomTimer; import CustomTimer.Util.Interfaces.ExonRunTask; import java.util.Timer; import java.util.TimerTask; public class ExonTaskTimer implements CustomTimer { protected int timerid; protected long tickTime; protected Timer Timer = null; protected ExonRunTask taskToRun; public ExonTaskTimer(ExonRunTask taskToRun, long tickTime) { if ((taskToRun != null) && (tickTime > 0L)) { this.timerid = ((int)System.currentTimeMillis() / 2); this.tickTime = tickTime; this.taskToRun = taskToRun; ExonTimerStorer.getInstance().add(this, this.timerid); startTimer(); } } public int getId() { return this.timerid; } public ExonRunTask getRunTask() { return this.taskToRun; } public void startTimer() { Timer T = new Timer(); T.schedule(new TimerTask() { public void run() { ExonTaskTimer.this.taskToRun.run(); } }, this.tickTime); this.Timer = T; } public void stop() { if (this.Timer != null) { this.Timer.cancel(); } } }