package com.idega.util.timer;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.util.Iterator;
/**
* This class run a bunch of tests.
*
* @author Olivier Dedieu
* @version 1.4, 01/02/2002
* @modified Eirikur Hrafnsson eiki@idega.is
*/
public class TimerTester {
public static void main(String[] args) throws Exception {
TimerManager mgr = new TimerManager();
long current = System.currentTimeMillis();
System.out.println("Current date is " + new Date(current));
TimerListener listener = new TimerListener() {
public void handleTimer(TimerEntry entry) {
System.out.println("\u0007Timer : " + entry);
}
};
// Date timer
mgr.addTimer(new Date(current + (60 * 1000)), listener);
mgr.addTimer(new Date(current + (30 * 1000)), listener);
mgr.addTimer(new Date(current + (40 * 1000)), listener);
mgr.addTimer(new Date(current + (20 * 1000)), listener);
mgr.addTimer(new Date(current + (10 * 1000)), listener);
mgr.addTimer(new Date(current + (50 * 1000)), listener);
mgr.addTimer(new Date(System.currentTimeMillis() + 300000),
new TimerListener() {
public void handleTimer(TimerEntry entry) {
System.out.println("5 minutes later");
}
});
Calendar cal = Calendar.getInstance();
cal.add(Calendar.WEEK_OF_YEAR, 1);
mgr.addTimer(cal.getTime(), new TimerListener() {
public void handleTimer(TimerEntry entry) {
System.out.println("\u0007One week later");
}
});
// Elapsed-time timer
mgr.addTimer(1, true, new TimerListener() {
public void handleTimer(TimerEntry entry) {
System.out.println("dring ! (" + new Date() + ")");
}
});
// Cron-like timer (minute, hour, day of month, month, day of week, year)
mgr.addTimer(-1, -1, -1, -1, -1, -1, new TimerListener() {
public void handleTimer(TimerEntry entry) {
System.out.println("Every minute (" + new Date() + ")");
}
});
mgr.addTimer(5, -1, -1, -1, -1, -1, new TimerListener() {
public void handleTimer(TimerEntry entry) {
System.out.println("Every hour at 5' (" + new Date() + ")");
}
});
mgr.addTimer(00, 12, -1, -1, -1, -1, new TimerListener() {
public void handleTimer(TimerEntry entry) {
System.out.println("Lunch time (" + new Date() + ")");
}
});
mgr.addTimer(24, 15, 11, Calendar.AUGUST, -1, -1, new TimerListener() {
public void handleTimer(TimerEntry entry) {
System.out.println("Valerie's birthday");
}
});
mgr.addTimer(30, 9, 1, -1, -1, -1, new TimerListener() {
public void handleTimer(TimerEntry entry) {
System.out.println("On the first of every month at 9:30");
}
});
mgr.addTimer(00, 18, -1, -1, Calendar.FRIDAY, -1, new TimerListener() {
public void handleTimer(TimerEntry entry) {
System.out.println("On every Friday at 18:00");
}
});
mgr.addTimer(0, 0, 1, Calendar.JANUARY, -1, 2001, new TimerListener() {
public void handleTimer(TimerEntry entry) {
System.out.println("Does it work ?");
}
});
System.out.println("Here are the registered timers: ");
System.out.println("----------------------------");
List list = mgr.getAllTimers();
for(Iterator it = list.iterator(); it.hasNext();) {
System.out.println("- " + it.next());
}
System.out.println("----------------------------");
}
}