Schedule schedule = ScheduleFactory.getSchedule(scheduleType); ScheduledTask nextScheduledTask = null; if (schedule instanceof DailySchedule) nextScheduledTask = ((DailySchedule)schedule) .getNextScheduledTask(startRunTime, true); if (schedule instanceof WeeklySchedule) nextScheduledTask = ((WeeklySchedule)schedule) .getNextScheduledTask(startRunTime, true); if (schedule instanceof MonthlyByDateSchedule) nextScheduledTask = ((MonthlyByDateSchedule)schedule) .getNextScheduledTask(startRunTime, true); if (schedule instanceof MonthlyByDaySchedule) nextScheduledTask = ((MonthlyByDaySchedule)schedule) .getNextScheduledTask(startRunTime, true); if (schedule instanceof YearlySchedule) nextScheduledTask = ((YearlySchedule)schedule) .getNextScheduledTask(startRunTime, true); if (schedule instanceof SpecialDatesSchedule) nextScheduledTask = ((SpecialDatesSchedule)schedule) .getNextScheduledTask(startRunTime, true);