Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*     */ package org.quartz;
  /*     */ 
  /*     */ import java.io.PrintStream;
  /*     */ import java.util.Date;
  /*     */ import java.util.List;
  /*     */ 
  /*     */ public class SimpleTrigger extends Trigger
  /*     */ {
  /*     */   public static final int MISFIRE_INSTRUCTION_FIRE_NOW = 1;
 /*     */   public static final int MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_EXISTING_REPEAT_COUNT = 2;
 /*     */   public static final int MISFIRE_INSTRUCTION_RESCHEDULE_NOW_WITH_REMAINING_REPEAT_COUNT = 3;
 /*     */   public static final int MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_REMAINING_COUNT = 4;
 /*     */   public static final int MISFIRE_INSTRUCTION_RESCHEDULE_NEXT_WITH_EXISTING_COUNT = 5;
 /* 159 */   public static int REPEAT_INDEFINITELY = -1;
 /*     */ 
 /* 169 */   private Date startTime = null;
 /*     */ 
 /* 171 */   private Date endTime = null;
 /*     */ 
 /* 173 */   private Date nextFireTime = null;
 /*     */ 
 /* 175 */   private Date previousFireTime = null;
 /*     */ 
 /* 177 */   private int repeatCount = 0;
 /*     */ 
 /* 179 */   private long repeatInterval = 0L;
 /*     */ 
 /* 181 */   private int timesTriggered = 0;
 /*     */ 
 /* 183 */   private boolean complete = false;
 /*     */ 
 /*     */   public SimpleTrigger()
 /*     */   {
 /*     */   }
 /*     */ 
 /*     */   public SimpleTrigger(String nameString group)
 /*     */   {
 /* 209 */     this(namegroupnew Date(), null, 0, 0L);
 /*     */   }
 /*     */ 
 /*     */   public SimpleTrigger(String nameString groupint repeatCountlong repeatInterval)
 /*     */   {
 /* 220 */     this(namegroupnew Date(), nullrepeatCountrepeatInterval);
 /*     */   }
 /*     */ 
 /*     */   public SimpleTrigger(String nameString groupDate startTime)
 /*     */   {
 /* 230 */     this(namegroupstartTimenull, 0, 0L);
 /*     */   }
 /*     */ 
 /*     */   public SimpleTrigger(String nameString groupDate startTimeDate endTimeint repeatCountlong repeatInterval)
 /*     */   {
 /* 254 */     super(namegroup);
 /*     */ 
 /* 256 */     setStartTime(startTime);
 /* 257 */     setEndTime(endTime);
 /* 258 */     setRepeatCount(repeatCount);
 /* 259 */     setRepeatInterval(repeatInterval);
 /*     */   }
 /*     */ 
 /*     */   public SimpleTrigger(String nameString groupString jobNameString jobGroupDate startTimeDate endTimeint repeatCountlong repeatInterval)
 /*     */   {
 /* 284 */     super(namegroupjobNamejobGroup);
 /*     */ 
 /* 286 */     setStartTime(startTime);
 /* 287 */     setEndTime(endTime);
 /* 288 */     setRepeatCount(repeatCount);
 /* 289 */     setRepeatInterval(repeatInterval);
 /*     */   }
 /*     */ 
 /*     */   public Date getStartTime()
 /*     */   {
 /* 306 */     return this.;
 /*     */   }
 /*     */ 
 /*     */   public void setStartTime(Date startTime)
 /*     */   {
 /* 318 */     if (startTime == null) {
 /* 319 */       throw new IllegalArgumentException("Start time cannot be null");
 /*     */     }
 /* 321 */     Date eTime = getEndTime();
 /* 322 */     if ((eTime != null) && (startTime != null) && (eTime.before(startTime))) {
 /* 323 */       throw new IllegalArgumentException("End time cannot be before start time");
 /*     */     }
 /*     */ 
 /* 326 */     this. = startTime;
 /*     */   }
 /*     */ 
 /*     */   public Date getEndTime()
 /*     */   {
 /* 338 */     return this.;
 /*     */   }
 /*     */ 
 /*     */   public void setEndTime(Date endTime)
 /*     */   {
 /* 351 */     Date sTime = getStartTime();
 /* 352 */     if ((sTime != null) && (endTime != null) && (sTime.after(endTime))) {
 /* 353 */       throw new IllegalArgumentException("End time cannot be before start time");
 /*     */     }
/*     */ 
/* 356 */     this. = endTime;
/*     */   }
/*     */ 
/*     */   public int getRepeatCount()
/*     */   {
/* 368 */     return this.;
/*     */   }
/*     */ 
/*     */   public void setRepeatCount(int repeatCount)
/*     */   {
/* 382 */     if ((repeatCount < 0) && (repeatCount != )) {
/* 383 */       throw new IllegalArgumentException("Repeat count must be >= 0, use the constant REPEAT_INDEFINITELY for infinite.");
/*     */     }
/*     */ 
/* 387 */     this. = repeatCount;
/*     */   }
/*     */ 
/*     */   public long getRepeatInterval()
/*     */   {
/* 397 */     return this.;
/*     */   }
/*     */ 
/*     */   public void setRepeatInterval(long repeatInterval)
/*     */   {
/* 410 */     if (repeatInterval < 0L) {
/* 411 */       throw new IllegalArgumentException("Repeat interval must be >= 0");
/*     */     }
/*     */ 
/* 414 */     this. = repeatInterval;
/*     */   }
/*     */ 
/*     */   public int getTimesTriggered()
/*     */   {
/* 424 */     return this.;
/*     */   }
/*     */ 
/*     */   public void setTimesTriggered(int timesTriggered)
/*     */   {
/* 434 */     this. = timesTriggered;
/*     */   }
/*     */ 
/*     */   protected boolean validateMisfireInstruction(int misfireInstruction) {
/* 438 */     if (misfireInstruction < 0) {
/* 439 */       return false;
/*     */     }
/*     */ 
/* 442 */     return misfireInstruction <= 5;
/*     */   }
/*     */ 
/*     */   public void updateAfterMisfire(Calendar cal)
/*     */   {
/* 473 */     int instr = getMisfireInstruction();
/* 474 */     if (instr == 0) {
/* 475 */       if (getRepeatCount() == 0) instr = 1;
/* 476 */       else if (getRepeatCount() == instr = 4;
/*     */       else
/*     */       {
/* 479 */         instr = 2;
/*     */       }
/* 480 */     } else if ((instr == 1) && (getRepeatCount() != 0))
/*     */     {
/* 482 */       instr = 3;
/*     */     }
/* 484 */     if (instr == 1) {
/* 485 */       setNextFireTime(new Date());
/* 486 */     } else if (instr == 5) {
/* 487 */       Date newFireTime = getFireTimeAfter(new Date());
/*     */ 
/* 489 */       while ((newFireTime != null) && (cal != null) && (!cal.isTimeIncluded(newFireTime.getTime()))) {
/* 490 */         newFireTime = getFireTimeAfter(newFireTime);
/*     */       }
/* 492 */       setNextFireTime(newFireTime);
/* 493 */     } else if (instr == 4) {
/* 494 */       Date newFireTime = getFireTimeAfter(new Date());
/*     */ 
/* 496 */       while ((newFireTime != null) && (cal != null) && (!cal.isTimeIncluded(newFireTime.getTime()))) {
/* 497 */         newFireTime = getFireTimeAfter(newFireTime);
/*     */       }
/* 499 */       if (newFireTime != null) {
/* 500 */         int timesMissed = computeNumTimesFiredBetween(this.newFireTime);
/*     */ 
/* 502 */         setTimesTriggered(getTimesTriggered() + timesMissed);
/*     */       }
/*     */ 
/* 505 */       setNextFireTime(newFireTime);
/* 506 */     } else if (instr == 2) {
/* 507 */       Date newFireTime = new Date();
/* 508 */       if ((this. != 0) && (this. != )) {
/* 509 */         setRepeatCount(getRepeatCount() - getTimesTriggered());
/* 510 */         setTimesTriggered(0);
/*     */       }
/* 512 */       setStartTime(newFireTime);
/* 513 */       setNextFireTime(newFireTime);
/* 514 */     } else if (instr == 3) {
/* 515 */       Date newFireTime = new Date();
/*     */ 
/* 517 */       int timesMissed = computeNumTimesFiredBetween(this.newFireTime);
/*     */ 
/* 520 */       if ((this. != 0) && (this. != )) {
/* 521 */         int remainingCount = getRepeatCount() - (getTimesTriggered() + timesMissed);
/*     */ 
/* 523 */         if (remainingCount <= 0) {
/* 524 */           remainingCount = 0;
/*     */         }
/* 526 */         setRepeatCount(remainingCount);
/* 527 */         setTimesTriggered(0);
/*     */       }
/*     */ 
/* 530 */       if ((getEndTime() != null) && (getEndTime().before(newFireTime))) {
/* 531 */         setEndTime(new Date(newFireTime.getTime() + 50L));
/*     */       }
/* 533 */       setStartTime(newFireTime);
/* 534 */       setNextFireTime(newFireTime);
/*     */     }
/*     */   }
/*     */ 
/*     */   public void triggered(Calendar calendar)
/*     */   {
/* 550 */     this. += 1;
/* 551 */     this. = this.;
/* 552 */     this. = getFireTimeAfter(this.);
/*     */ 
/* 555 */     while ((this. != null) && (calendar != null) && (!calendar.isTimeIncluded(this..getTime())))
/* 556 */       this. = getFireTimeAfter(this.);
/*     */   }
/*     */ 
/*     */   public void updateWithNewCalendar(Calendar calendarlong misfireThreshold)
/*     */   {
/* 566 */     this. = getFireTimeAfter(this.);
/*     */ 
/* 568 */     Date now = new Date();
/*     */ 
/* 571 */     while ((this. != null) && (calendar != null) && (!calendar.isTimeIncluded(this..getTime()))) {
/* 572 */       this. = getFireTimeAfter(this.);
/*     */     }
/*     */ 
/* 575 */     if ((this. != null) && (this..before(now))) {
/* 576 */       long diff = now.getTime() - this..getTime();
/* 577 */       if (diff >= misfireThreshold)
/* 578 */         this. = getFireTimeAfter(this.);
/*     */     }
/*     */   }
/*     */ 
/*     */   public Date computeFirstFireTime(Calendar calendar)
/*     */   {
/* 603 */     this. = getStartTime();
/*     */ 
/* 606 */     while ((this. != null) && (calendar != null) && (!calendar.isTimeIncluded(this..getTime()))) {
/* 607 */       this. = getFireTimeAfter(this.);
/*     */     }
/*     */ 
/* 610 */     return this.;
/*     */   }
/*     */ 
/*     */   public int executionComplete(JobExecutionContext contextJobExecutionException result)
/*     */   {
/* 636 */     if ((result != null) && (result.refireImmediately())) {
/* 637 */       return 1;
/*     */     }
/* 639 */     if ((result != null) && (result.unscheduleFiringTrigger())) {
/* 640 */       return 2;
/*     */     }
/* 642 */     if ((result != null) && (result.unscheduleAllTriggers())) {
/* 643 */       return 4;
/*     */     }
/* 645 */     if (!mayFireAgain()) return 3;
/*     */ 
/* 647 */     return 0;
/*     */   }
/*     */ 
/*     */   public Date getNextFireTime()
/*     */   {
/* 659 */     return this.;
/*     */   }
/*     */ 
/*     */   public Date getPreviousFireTime()
/*     */   {
/* 669 */     return this.;
/*     */   }
/*     */ 
/*     */   public void setNextFireTime(Date nextFireTime)
/*     */   {
/* 682 */     this. = nextFireTime;
/*     */   }
/*     */ 
/*     */   public void setPreviousFireTime(Date previousFireTime)
/*     */   {
/* 695 */     this. = previousFireTime;
/*     */   }
/*     */ 
/*     */   public Date getFireTimeAfter(Date afterTime)
/*     */   {
/* 706 */     if (this.return null;
/*     */ 
/* 708 */     if ((this. > this.) && (this. != )) {
/* 709 */       return null;
/*     */     }
/* 711 */     if (afterTime == nullafterTime = new Date();
/*     */ 
/* 713 */     if ((this. == 0) && (afterTime.compareTo(getStartTime()) >= 0)) {
/* 714 */       return null;
/*     */     }
/* 716 */     long startMillis = getStartTime().getTime();
/* 717 */     long afterMillis = afterTime.getTime();
/* 718 */     long endMillis = getEndTime() == null ? 9223372036854775807L : getEndTime().getTime();
/*     */ 
/* 721 */     if (endMillis <= afterMillisreturn null;
/*     */ 
/* 723 */     if ((startMillis < afterMillis) && (this. == 0)) return null;
/*     */ 
/* 725 */     if (afterMillis < startMillisreturn new Date(startMillis);
/*     */ 
/* 727 */     long numberoftimesexecutedplusone = (afterMillis - startMillis) / this. + 1L;
/*     */ 
/* 729 */     if ((numberoftimesexecutedplusone > this.) && (this. != )) {
/* 730 */       return null;
/*     */     }
/* 732 */     Date time = new Date(numberoftimesexecutedplusone * this. + startMillis);
/*     */ 
/* 735 */     if (endMillis <= time.getTime()) return null;
/*     */ 
/* 737 */     return time;
/*     */   }
/*     */ 
/*     */   public Date getFireTimeBefore(Date end)
/*     */   {
/* 748 */     if (end.getTime() < getStartTime().getTime()) return null;
/*     */ 
/* 750 */     int numFires = computeNumTimesFiredBetween(getStartTime(), end);
/*     */ 
/* 752 */     return new Date(getStartTime().getTime() + numFires * this.);
/*     */   }
/*     */ 
/*     */   public int computeNumTimesFiredBetween(Date startDate end) {
/* 756 */     long time = end.getTime() - start.getTime();
/*     */ 
/* 758 */     return (int)(time / this.);
/*     */   }
/*     */ 
/*     */   public Date getFinalFireTime()
/*     */   {
/* 772 */     if (this. == 0) return this.;
/*     */ 
/* 774 */     if ((this. == ) && (getEndTime() == null)) {
/* 775 */       return null;
/*     */     }
/* 777 */     if ((this. == ) && (getEndTime() == null)) return null;
/* 778 */     if (this. == ) {
/* 779 */       return getFireTimeBefore(getEndTime());
/*     */     }
/* 781 */     long lastTrigger = this..getTime() + this. * this.;
/*     */ 
/* 783 */     if ((getEndTime() == null) || (lastTrigger < getEndTime().getTime())) return new Date(lastTrigger);
/*     */ 
/* 786 */     return getFireTimeBefore(getEndTime());
/*     */   }
/*     */ 
/*     */   public boolean mayFireAgain()
/*     */   {
/* 796 */     return getNextFireTime() != null;
/*     */   }
/*     */ 
/*     */   public void validate()
/*     */     throws SchedulerException
/*     */   {
/* 809 */     super.validate();
/*     */ 
/* 811 */     if ((this. != 0) && (this. < 1L))
/* 812 */       throw new SchedulerException("Repeat Interval cannot be zero.", 100);
/*     */   }
/*     */ 
/*     */   public static void main(String[] args)
/*     */     throws Exception
/*     */   {
/* 820 */     Date sdt = new Date();
/*     */ 
/* 822 */     Date edt = new Date(sdt.getTime() + 55000L);
/*     */ 
/* 824 */     SimpleTrigger st = new SimpleTrigger("t""g""j""g"sdtedt, 10, 10000L);
/*     */ 
/* 827 */     ..println();
/*     */ 
/* 829 */     st.computeFirstFireTime(null);
/*     */ 
/* 831 */     ..println("lastTime=" + st.getFinalFireTime());
/*     */ 
/* 833 */     List times = TriggerUtils.computeFireTimes(stnull, 50);
/*     */ 
/* 835 */     for (int i = 0; i < times.size(); i++)
/* 836 */       ..println("firetime = " + times.get(i));
/*     */   }
/*     */ }
/* Location:           /home/mnovotny/projects/EMBEDDED_JBOSS_BETA3_COMMUNITY/embedded/output/lib/embedded-jboss/lib/thirdparty-all.jar
 * Qualified Name:     org.quartz.SimpleTrigger
 * JD-Core Version:    0.6.0
 */
New to GrepCode? Check out our FAQ X