public void initBusinessCalendarManager() { if (businessCalendarManager == null) { MapBusinessCalendarManager mapBusinessCalendarManager = new MapBusinessCalendarManager(); mapBusinessCalendarManager.addBusinessCalendar(DurationBusinessCalendar.NAME, new DurationBusinessCalendar(this.clock)); mapBusinessCalendarManager.addBusinessCalendar(DueDateBusinessCalendar.NAME, new DueDateBusinessCalendar(this.clock)); mapBusinessCalendarManager.addBusinessCalendar(CycleBusinessCalendar.NAME, new CycleBusinessCalendar(this.clock)); businessCalendarManager = mapBusinessCalendarManager; } }
public Calendar getCalendarAfter(Calendar time) { if (isRepeat) { return getDateAfterRepeat(time); } // TODO: is this correct? if (end != null) { return end; } return add(start, period); }
/** * Returns the next date/time <I>after</I> the given date/time which * satisfies the cron expression. * * @param date * the date/time at which to begin the search for the next valid * date/time * @return the next valid date/time */ public Date getNextValidTimeAfter(Date date) { return getTimeAfter(date); }
public BusinessCalendarManager getBusinessCalendarManager() { MapBusinessCalendarManager mapBusinessCalendarManager = new MapBusinessCalendarManager(); mapBusinessCalendarManager.addBusinessCalendar(DurationBusinessCalendar.NAME, new DurationBusinessCalendar(getClock())); mapBusinessCalendarManager.addBusinessCalendar(DueDateBusinessCalendar.NAME, new DueDateBusinessCalendar(getClock())); mapBusinessCalendarManager.addBusinessCalendar(AdvancedCycleBusinessCalendar.NAME, new AdvancedCycleBusinessCalendar(getClock(), defaultScheduleVersion)); return mapBusinessCalendarManager; }
@Override public Date resolveDuedate(String duedateDescription, int maxIterations) { try { if (duedateDescription != null && duedateDescription.startsWith("R")) { return new DurationHelper(duedateDescription, maxIterations, clockReader).getDateAfter(); } else { CronExpression ce = new CronExpression(duedateDescription, clockReader); return ce.getTimeAfter(clockReader.getCurrentTime()); } } catch (Exception e) { throw new FlowableException("Failed to parse cron expression: " + duedateDescription, e); } }
@Override public Date resolve(String duedateDescription, ClockReader clockReader, TimeZone timeZone) { return new CycleBusinessCalendar(clockReader).resolveDuedate(duedateDescription); }
protected Date calculateNextTimer() { BusinessCalendar businessCalendar = Context .getProcessEngineConfiguration() .getBusinessCalendarManager() .getBusinessCalendar(getBusinessCalendarName(TimerEventHandler.geCalendarNameFromConfiguration(jobHandlerConfiguration))); return businessCalendar.resolveDuedate(repeat, maxIterations); }
@Override public Boolean validateDuedate(String duedateDescription, int maxIterations, Date endDate, Date newTimer) { if (endDate != null) { return super.validateDuedate(duedateDescription, maxIterations, endDate, newTimer); } // end date could be part of the cron expression try { if (duedateDescription != null && duedateDescription.startsWith("R")) { return new DurationHelper(duedateDescription, maxIterations, clockReader).isValidDate(newTimer); } else { return true; } } catch (Exception e) { throw new FlowableException("Failed to parse cron expression: " + duedateDescription, e); } }
protected boolean isValidTime(Date newTimer) { BusinessCalendar businessCalendar = Context .getProcessEngineConfiguration() .getBusinessCalendarManager() .getBusinessCalendar(getBusinessCalendarName(TimerEventHandler.geCalendarNameFromConfiguration(jobHandlerConfiguration))); return businessCalendar.validateDuedate(repeat, maxIterations, endDate, newTimer); }
public static void validateExpression(String cronExpression, ClockReader clockReader) throws ParseException { new CronExpression(cronExpression, clockReader); }
public Date getDateAfter() { Calendar date = getCalendarAfter(); return date == null ? null : date.getTime(); }
@Override public Date resolveDuedate(String duedateDescription, int maxIterations) { return resolveDuedate(duedateDescription); }
@Override public abstract Date resolveDuedate(String duedateDescription, int maxIterations);
private void readObject(java.io.ObjectInputStream stream) throws java.io.IOException, ClassNotFoundException { stream.defaultReadObject(); try { buildExpression(cronExpression); } catch (Exception ignore) { } // never happens }
public void initBusinessCalendarManager() { if (businessCalendarManager == null) { MapBusinessCalendarManager mapBusinessCalendarManager = new MapBusinessCalendarManager(); mapBusinessCalendarManager.addBusinessCalendar(DurationBusinessCalendar.NAME, new DurationBusinessCalendar(this.clock)); mapBusinessCalendarManager.addBusinessCalendar(DueDateBusinessCalendar.NAME, new DueDateBusinessCalendar(this.clock)); mapBusinessCalendarManager.addBusinessCalendar(CycleBusinessCalendar.NAME, new CycleBusinessCalendar(this.clock)); businessCalendarManager = mapBusinessCalendarManager; } }
/** * Indicates whether the specified cron expression can be parsed into a * valid cron expression * * @param cronExpression * the expression to evaluate * @return a boolean indicating whether the given expression is a valid cron * expression */ public static boolean isValidExpression(String cronExpression, ClockReader clockReader) { try { new CronExpression(cronExpression, clockReader); } catch (ParseException pe) { return false; } return true; }
public Calendar getCalendarAfter() { return getCalendarAfter(clockReader.getCurrentCalendar()); }
public void initBusinessCalendarManager() { if (businessCalendarManager == null) { MapBusinessCalendarManager mapBusinessCalendarManager = new MapBusinessCalendarManager(); mapBusinessCalendarManager.addBusinessCalendar(DurationBusinessCalendar.NAME, new DurationBusinessCalendar(this.clock)); mapBusinessCalendarManager.addBusinessCalendar(DueDateBusinessCalendar.NAME, new DueDateBusinessCalendar(this.clock)); mapBusinessCalendarManager.addBusinessCalendar(CycleBusinessCalendar.NAME, new CycleBusinessCalendar(this.clock)); businessCalendarManager = mapBusinessCalendarManager; } }
@Override @Deprecated public Object clone() { return new CronExpression(this, clockReader); } }
protected void initBusinessCalendarManager() { if (businessCalendarManager == null) { MapBusinessCalendarManager mapBusinessCalendarManager = new MapBusinessCalendarManager(); mapBusinessCalendarManager.addBusinessCalendar(DurationBusinessCalendar.NAME, new DurationBusinessCalendar(this.clock)); mapBusinessCalendarManager.addBusinessCalendar(DueDateBusinessCalendar.NAME, new DueDateBusinessCalendar(this.clock)); mapBusinessCalendarManager.addBusinessCalendar(CycleBusinessCalendar.NAME, new CycleBusinessCalendar(this.clock)); businessCalendarManager = mapBusinessCalendarManager; } }