1 package org.oddjob.schedules.schedules; 2 3 import java.io.Serializable ; 4 import java.util.Calendar ; 5 import java.util.Date ; 6 import java.util.GregorianCalendar ; 7 8 import org.oddjob.schedules.AbstractSchedule; 9 import org.oddjob.schedules.DateUtils; 10 import org.oddjob.schedules.Interval; 11 import org.oddjob.schedules.ScheduleContext; 12 13 41 42 final public class DayAfterSchedule extends AbstractSchedule implements Serializable { 43 44 private static final long serialVersionUID = 20050226; 45 46 50 public Interval nextDue(ScheduleContext context) { 51 Date now = context.getDate(); 52 if (now == null) { 53 return null; 54 } 55 if (getChildSchedule() == null) { 56 throw new IllegalStateException ("DayAfter must have a child schedule."); 57 } 58 59 Interval childInterval = getChildSchedule().nextDue(context); 60 61 Calendar startCal = new GregorianCalendar (); 62 startCal.setTime(childInterval.getFromDate()); 63 startCal.add(Calendar.DATE, 1); 64 Date dayAfterStart = startCal.getTime(); 65 66 Calendar endCal = new GregorianCalendar (); 67 endCal.setTime(childInterval.getFromDate()); 68 endCal.add(Calendar.DATE, 2); 69 Date dayAfterEnd = DateUtils.oneMillisBefore(endCal.getTime()); 70 71 Interval dayAfter = new Interval(dayAfterStart, dayAfterEnd); 72 73 return dayAfter.limit(getLimits()); 74 } 75 76 79 80 public String toString() { 81 82 return "Day After Schedule"; 83 } 84 } 85 | Popular Tags |