1 31 32 package org.antlr.xjlib.foundation.timer; 33 34 public class XJScheduledTimer { 35 36 protected XJScheduledTimerDelegate delegate; 37 protected long numberOfMinutes; 38 protected long remainingMinutes; 39 protected boolean scheduleAtStartup; 40 41 public XJScheduledTimer(XJScheduledTimerDelegate delegate, long minutes, boolean scheduleAtStartup) { 42 this.delegate = delegate; 43 this.numberOfMinutes = minutes; 44 this.scheduleAtStartup = scheduleAtStartup; 45 46 remainingMinutes = numberOfMinutes; 47 } 48 49 public XJScheduledTimerDelegate getDelegate() { 50 return delegate; 51 } 52 53 public void fire(boolean startup, long elapsedMinutes) { 54 if(scheduleAtStartup && startup) { 55 delegate.scheduledTimerFired(true); 56 return; 57 } else if(!scheduleAtStartup && startup) 58 return; 59 60 remainingMinutes -= elapsedMinutes; 61 if(remainingMinutes <= 0) { 62 delegate.scheduledTimerFired(false); 63 remainingMinutes = numberOfMinutes; 64 } 65 } 66 } 67 | Popular Tags |