public Trigger createTrigger(long timestamp, String[] calendarNames, Calendars calendars) { return new CronTrigger( timestamp, this.startTime, this.endTime, this.repeatLimit, this.cronExpression, calendarNames, calendars ); }
public void setCronExpression(String cronExpression) { setCronExpression( determineCronExpression( cronExpression ) ); }
/** * <p> * Returns the next time at which the <code>CronTrigger</code> will fire, * after the given time. If the trigger will not fire after the given time, * <code>null</code> will be returned. * </p> * * <p> * Note that the date returned is NOT validated against the related * org.quartz.Calendar (if any) * </p> */ public void setFirstFireTimeAfter() { if ( getStartTime().after( this.nextFireTime ) ) { this.nextFireTime = new Date( getStartTime().getTime() - 1000l ); } if ( getEndTime() != null && (this.nextFireTime.compareTo( getEndTime() ) >= 0) ) { this.nextFireTime = null; } Date pot = getTimeAfter( this.nextFireTime ); if ( getEndTime() != null && pot != null && pot.after( getEndTime() ) ) { this.nextFireTime = null; } else { this.nextFireTime = pot; } }
public Date nextFireTime() { if ( this.nextFireTime == null ) { return null; } Date date = this.nextFireTime; this.nextFireTime = getTimeAfter( this.nextFireTime ); updateToNextIncludeDate(); if ( this.endTime != null && this.nextFireTime.after( this.endTime ) ) { this.nextFireTime = null; } else if ( repeatLimit != -1 && repeatCount >= repeatLimit ) { this.nextFireTime = null; } return date; }
long startTime = inCtx.readLong(); CronTrigger trigger = new CronTrigger(); trigger.setStartTime( new Date( startTime ) ); if (inCtx.readBoolean()) { long endTime = inCtx.readLong(); trigger.setEndTime( new Date( endTime ) ); trigger.setRepeatLimit( repeatLimit ); trigger.setRepeatCount( repeatCount ); trigger.setCronExpression( expr ); if (inCtx.readBoolean()) { long nextFireTime = inCtx.readLong(); trigger.setNextFireTime( new Date( nextFireTime ) ); trigger.setCalendarNames( calendarNames ); return trigger;
outCtx.writeLong( cronTrigger.getStartTime().getTime() ); if ( cronTrigger.getEndTime() != null ) { outCtx.writeBoolean( true ); outCtx.writeLong( cronTrigger.getEndTime().getTime() ); } else { outCtx.writeBoolean( false ); outCtx.writeInt( cronTrigger.getRepeatLimit() ); outCtx.writeInt( cronTrigger.getRepeatCount() ); outCtx.writeUTF( cronTrigger.getCronEx().getCronExpression() ); if ( cronTrigger.getNextFireTime() != null ) { outCtx.writeBoolean( true ); outCtx.writeLong( cronTrigger.getNextFireTime().getTime() ); } else { outCtx.writeBoolean( false ); outCtx.writeObject( cronTrigger.getCalendarNames() ); } else if ( trigger instanceof IntervalTrigger ) { outCtx.writeShort( PersisterEnums.INT_TRIGGER );
public CronTrigger(long timestamp, Date startTime, Date endTime, int repeatLimit, String cronExpression, String[] calendarNames, Calendars calendars) { this( timestamp, startTime, endTime, repeatLimit, determineCronExpression( cronExpression ), calendarNames, calendars ); }
public void setEndTime(Date endTime) { Date sTime = getStartTime(); if ( sTime != null && endTime != null && sTime.after( endTime ) ) { throw new IllegalArgumentException( "End time cannot be before start time" ); } this.endTime = endTime; }
public void setStartTime(Date startTime) { if ( startTime == null ) { throw new IllegalArgumentException( "Start time cannot be null" ); } Date eTime = getEndTime(); if ( eTime != null && startTime != null && eTime.before( startTime ) ) { throw new IllegalArgumentException( "End time cannot be before start time" ); } // round off millisecond... // Note timeZone is not needed here as parameter for // Calendar.getInstance(), // since time zone is implicit when using a Date in the setTime method. Calendar cl = Calendar.getInstance(); cl.setTime( startTime ); cl.set( Calendar.MILLISECOND, 0 ); this.startTime = cl.getTime(); }
public void updateToNextIncludeDate() { if ( this.calendars == null || calendarNames == null || calendarNames.length == 0 ) { // There are no assigned calendars return; } // If we have calendars, check we can fire, or get next time until we can fire. while ( this.nextFireTime != null && (this.endTime == null || this.nextFireTime.before( this.endTime )) ) { // this will loop forever if the trigger repeats forever and // included calendar position cannot be found boolean included = true; for ( String calName : this.calendarNames ) { // all calendars must not block, as soon as one blocks break, so we can check next time slot org.drools.time.Calendar cal = this.calendars.get( calName ); if ( cal != null && !cal.isTimeIncluded( this.nextFireTime.getTime() ) ) { included = false; break; } } if ( included == true ) { // if no calendars blocked, break break; } else { // otherwise increase the time and try again this.nextFireTime = getTimeAfter( this.nextFireTime ); } } }
case CRON: { ProtobufMessages.Trigger.CronTrigger _cron = _trigger.getCron(); CronTrigger trigger = new CronTrigger(); trigger.setStartTime( new Date( _cron.getStartTime() ) ); if (_cron.hasEndTime()) { trigger.setEndTime( new Date( _cron.getEndTime() ) ); trigger.setRepeatLimit( _cron.getRepeatLimit() ); trigger.setRepeatCount( _cron.getRepeatCount() ); trigger.setCronExpression( _cron.getCronExpression() ); if (_cron.hasNextFireTime()) { trigger.setNextFireTime( new Date( _cron.getNextFireTime() ) ); calendarNames[i] = _cron.getCalendarName( i ); trigger.setCalendarNames( calendarNames ); return trigger;
CronTrigger cronTrigger = (CronTrigger) trigger; ProtobufMessages.Trigger.CronTrigger.Builder _cron = ProtobufMessages.Trigger.CronTrigger.newBuilder() .setStartTime(cronTrigger.getStartTime().getTime()) .setRepeatLimit(cronTrigger.getRepeatLimit()) .setRepeatCount(cronTrigger.getRepeatCount()) .setCronExpression(cronTrigger.getCronEx().getCronExpression()); if (cronTrigger.getEndTime() != null) { _cron.setEndTime(cronTrigger.getEndTime().getTime()); if (cronTrigger.getNextFireTime() != null) { _cron.setNextFireTime(cronTrigger.getNextFireTime().getTime()); if (cronTrigger.getCalendarNames() != null) { for (String calendarName : cronTrigger.getCalendarNames()) { _cron.addCalendarName(calendarName);