| | |
| | | * </ul> |
| | | * </p> |
| | | * |
| | | * |
| | | * @author Sharada Jambula, James House |
| | | * @author Contributions from Mads Henderson |
| | | * @author Refactoring from CronTrigger to CronExpression by Aaron Craven |
| | | * |
| | | * <p> |
| | | * Borrowed from quartz v2.3.1 |
| | | * |
| | | */ |
| | | public final class CronExpression implements Serializable, Cloneable { |
| | | |
| | |
| | | |
| | | protected static final Map<String, Integer> monthMap = new HashMap<String, Integer>(20); |
| | | protected static final Map<String, Integer> dayMap = new HashMap<String, Integer>(60); |
| | | |
| | | static { |
| | | monthMap.put("JAN", 0); |
| | | monthMap.put("FEB", 1); |
| | |
| | | * |
| | | * @param cronExpression String representation of the cron expression the |
| | | * new object should represent |
| | | * @throws java.text.ParseException |
| | | * if the string expression cannot be parsed into a valid |
| | | * @throws ParseException if the string expression cannot be parsed into a valid |
| | | * <CODE>CronExpression</CODE> |
| | | */ |
| | | public CronExpression(String cronExpression) throws ParseException { |
| | |
| | | * Constructs a new {@code CronExpression} as a copy of an existing |
| | | * instance. |
| | | * |
| | | * @param expression |
| | | * The existing cron expression to be copied |
| | | * @param expression The existing cron expression to be copied |
| | | */ |
| | | public CronExpression(CronExpression expression) { |
| | | /* |
| | |
| | | int max = -1; |
| | | if (stopAt < startAt) { |
| | | switch (type) { |
| | | case SECOND : max = 60; break; |
| | | case MINUTE : max = 60; break; |
| | | case HOUR : max = 24; break; |
| | | case MONTH : max = 12; break; |
| | | case DAY_OF_WEEK : max = 7; break; |
| | | case DAY_OF_MONTH : max = 31; break; |
| | | case YEAR : throw new IllegalArgumentException("Start year must be less than stop year"); |
| | | default : throw new IllegalArgumentException("Unexpected type encountered"); |
| | | case SECOND: |
| | | max = 60; |
| | | break; |
| | | case MINUTE: |
| | | max = 60; |
| | | break; |
| | | case HOUR: |
| | | max = 24; |
| | | break; |
| | | case MONTH: |
| | | max = 12; |
| | | break; |
| | | case DAY_OF_WEEK: |
| | | max = 7; |
| | | break; |
| | | case DAY_OF_MONTH: |
| | | max = 31; |
| | | break; |
| | | case YEAR: |
| | | throw new IllegalArgumentException("Start year must be less than stop year"); |
| | | default: |
| | | throw new IllegalArgumentException("Unexpected type encountered"); |
| | | } |
| | | stopAt += max; |
| | | } |
| | |
| | | day = getLastDayOfMonth(mon, cl.get(Calendar.YEAR)); |
| | | day -= lastdayOffset; |
| | | |
| | | java.util.Calendar tcal = java.util.Calendar.getInstance(getTimeZone()); |
| | | Calendar tcal = Calendar.getInstance(getTimeZone()); |
| | | tcal.set(Calendar.SECOND, 0); |
| | | tcal.set(Calendar.MINUTE, 0); |
| | | tcal.set(Calendar.HOUR_OF_DAY, 0); |
| | |
| | | t = day; |
| | | day = daysOfMonth.first(); |
| | | |
| | | java.util.Calendar tcal = java.util.Calendar.getInstance(getTimeZone()); |
| | | Calendar tcal = Calendar.getInstance(getTimeZone()); |
| | | tcal.set(Calendar.SECOND, 0); |
| | | tcal.set(Calendar.MINUTE, 0); |
| | | tcal.set(Calendar.HOUR_OF_DAY, 0); |
| | |
| | | * @param hour the hour to set |
| | | */ |
| | | protected void setCalendarHour(Calendar cal, int hour) { |
| | | cal.set(java.util.Calendar.HOUR_OF_DAY, hour); |
| | | if (cal.get(java.util.Calendar.HOUR_OF_DAY) != hour && hour != 24) { |
| | | cal.set(java.util.Calendar.HOUR_OF_DAY, hour + 1); |
| | | cal.set(Calendar.HOUR_OF_DAY, hour); |
| | | if (cal.get(Calendar.HOUR_OF_DAY) != hour && hour != 24) { |
| | | cal.set(Calendar.HOUR_OF_DAY, hour + 1); |
| | | } |
| | | } |
| | | |