Class AbstractTrigger<T extends Trigger>

    • Constructor Summary

      Constructors 
      Constructor Description
      AbstractTrigger()
      Create a Trigger with no specified name, group, or JobDetail.
      AbstractTrigger​(java.lang.String name)
      Create a Trigger with the given name, and default group.
      AbstractTrigger​(java.lang.String name, java.lang.String group)
      Create a Trigger with the given name, and group.
      AbstractTrigger​(java.lang.String name, java.lang.String group, java.lang.String jobName, java.lang.String jobGroup)
      Create a Trigger with the given name, and group.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object clone()  
      int compareTo​(Trigger other)
      Compare the next fire time of this Trigger to that of another by comparing their keys, or in other words, sorts them according to the natural (i.e.
      abstract java.util.Date computeFirstFireTime​(Calendar calendar)
      This method should not be used by the Quartz client.
      boolean equals​(java.lang.Object o)
      Trigger equality is based upon the equality of the TriggerKey.
      Trigger.CompletedExecutionInstruction executionComplete​(JobExecutionContext context, JobExecutionException result)
      This method should not be used by the Quartz client.
      java.lang.String getCalendarName()
      Get the name of the Calendar associated with this Trigger.
      java.lang.String getDescription()
      Return the description given to the Trigger instance by its creator (if any).
      abstract java.util.Date getEndTime()
      Get the time at which the Trigger should quit repeating - regardless of any remaining repeats (based on the trigger's particular repeat settings).
      abstract java.util.Date getFinalFireTime()
      Returns the last time at which the Trigger will fire, if the Trigger will repeat indefinitely, null will be returned.
      java.lang.String getFireInstanceId()
      This method should not be used by the Quartz client.
      abstract java.util.Date getFireTimeAfter​(java.util.Date afterTime)
      Returns the next time at which the Trigger will fire, after the given time.
      java.lang.String getFullJobName()
      Returns the 'full name' of the Job that the Trigger points to, in the format "group.name".
      java.lang.String getFullName()
      Returns the 'full name' of the Trigger in the format "group.name".
      java.lang.String getGroup()
      Get the group of this Trigger.
      JobDataMap getJobDataMap()
      Get the JobDataMap that is associated with the Trigger.
      java.lang.String getJobGroup()
      Get the name of the associated JobDetail's group.
      JobKey getJobKey()  
      java.lang.String getJobName()
      Get the name of the associated JobDetail.
      TriggerKey getKey()  
      int getMisfireInstruction()
      Get the instruction the Scheduler should be given for handling misfire situations for this Trigger- the concrete Trigger type that you are using will have defined a set of additional MISFIRE_INSTRUCTION_XXX constants that may be passed to this method.
      java.lang.String getName()
      Get the name of this Trigger.
      abstract java.util.Date getNextFireTime()
      Returns the next time at which the Trigger is scheduled to fire.
      abstract java.util.Date getPreviousFireTime()
      Returns the previous time at which the Trigger fired.
      int getPriority()
      The priority of a Trigger acts as a tiebreaker such that if two Triggers have the same scheduled fire time, then the one with the higher priority will get first access to a worker thread.
      abstract ScheduleBuilder<T> getScheduleBuilder()
      Get a ScheduleBuilder that is configured to produce a schedule identical to this trigger's schedule.
      abstract java.util.Date getStartTime()
      Get the time at which the Trigger should occur.
      TriggerBuilder<T> getTriggerBuilder()
      Get a TriggerBuilder that is configured to produce a Trigger identical to this one.
      int hashCode()  
      abstract boolean mayFireAgain()
      Used by the Scheduler to determine whether or not it is possible for this Trigger to fire again.
      void setCalendarName​(java.lang.String calendarName)
      Associate the Calendar with the given name with this Trigger.
      void setDescription​(java.lang.String description)
      Set a description for the Trigger instance - may be useful for remembering/displaying the purpose of the trigger, though the description has no meaning to Quartz.
      abstract void setEndTime​(java.util.Date endTime)
      Set the time at which the Trigger should quit repeating - regardless of any remaining repeats (based on the trigger's particular repeat settings).
      void setFireInstanceId​(java.lang.String id)
      This method should not be used by the Quartz client.
      void setGroup​(java.lang.String group)
      Set the name of this Trigger.
      void setJobDataMap​(JobDataMap jobDataMap)
      Set the JobDataMap to be associated with the Trigger.
      void setJobGroup​(java.lang.String jobGroup)
      Set the name of the associated JobDetail's group.
      void setJobKey​(JobKey key)  
      void setJobName​(java.lang.String jobName)
      Set the name of the associated JobDetail.
      void setKey​(TriggerKey key)  
      void setMisfireInstruction​(int misfireInstruction)
      Set the instruction the Scheduler should be given for handling misfire situations for this Trigger- the concrete Trigger type that you are using will have defined a set of additional MISFIRE_INSTRUCTION_XXX constants that may be passed to this method.
      void setName​(java.lang.String name)
      Set the name of this Trigger.
      void setPriority​(int priority)
      The priority of a Trigger acts as a tie breaker such that if two Triggers have the same scheduled fire time, then Quartz will do its best to give the one with the higher priority first access to a worker thread.
      abstract void setStartTime​(java.util.Date startTime)
      The time at which the trigger's scheduling should start.
      java.lang.String toString()
      Return a simple string representation of this object.
      abstract void triggered​(Calendar calendar)
      This method should not be used by the Quartz client.
      abstract void updateAfterMisfire​(Calendar cal)
      This method should not be used by the Quartz client.
      abstract void updateWithNewCalendar​(Calendar cal, long misfireThreshold)
      This method should not be used by the Quartz client.
      void validate()
      Validates whether the properties of the JobDetail are valid for submission into a Scheduler.
      protected abstract boolean validateMisfireInstruction​(int candidateMisfireInstruction)  
      • Methods inherited from class java.lang.Object

        finalize, getClass, notify, notifyAll, wait, wait, wait
    • Constructor Detail

      • AbstractTrigger

        public AbstractTrigger​(java.lang.String name)

        Create a Trigger with the given name, and default group.

        Note that the setJobName(String)and setJobGroup(String)methods must be called before the Trigger can be placed into a Scheduler.

        Throws:
        java.lang.IllegalArgumentException - if name is null or empty, or the group is an empty string.
      • AbstractTrigger

        public AbstractTrigger​(java.lang.String name,
                               java.lang.String group)

        Create a Trigger with the given name, and group.

        Note that the setJobName(String)and setJobGroup(String)methods must be called before the Trigger can be placed into a Scheduler.

        Parameters:
        group - if null, Scheduler.DEFAULT_GROUP will be used.
        Throws:
        java.lang.IllegalArgumentException - if name is null or empty, or the group is an empty string.
      • AbstractTrigger

        public AbstractTrigger​(java.lang.String name,
                               java.lang.String group,
                               java.lang.String jobName,
                               java.lang.String jobGroup)

        Create a Trigger with the given name, and group.

        Parameters:
        group - if null, Scheduler.DEFAULT_GROUP will be used.
        Throws:
        java.lang.IllegalArgumentException - if name is null or empty, or the group is an empty string.
    • Method Detail

      • getName

        public java.lang.String getName()

        Get the name of this Trigger.

      • setName

        public void setName​(java.lang.String name)

        Set the name of this Trigger.

        Throws:
        java.lang.IllegalArgumentException - if name is null or empty.
      • getGroup

        public java.lang.String getGroup()

        Get the group of this Trigger.

      • setGroup

        public void setGroup​(java.lang.String group)

        Set the name of this Trigger.

        Parameters:
        group - if null, Scheduler.DEFAULT_GROUP will be used.
        Throws:
        java.lang.IllegalArgumentException - if group is an empty string.
      • getJobName

        public java.lang.String getJobName()

        Get the name of the associated JobDetail.

      • setJobName

        public void setJobName​(java.lang.String jobName)

        Set the name of the associated JobDetail.

        Throws:
        java.lang.IllegalArgumentException - if jobName is null or empty.
      • getJobGroup

        public java.lang.String getJobGroup()

        Get the name of the associated JobDetail's group.

      • setJobGroup

        public void setJobGroup​(java.lang.String jobGroup)

        Set the name of the associated JobDetail's group.

        Parameters:
        jobGroup - if null, Scheduler.DEFAULT_GROUP will be used.
        Throws:
        java.lang.IllegalArgumentException - if group is an empty string.
      • getFullName

        public java.lang.String getFullName()

        Returns the 'full name' of the Trigger in the format "group.name".

      • getFullJobName

        public java.lang.String getFullJobName()

        Returns the 'full name' of the Job that the Trigger points to, in the format "group.name".

      • getDescription

        public java.lang.String getDescription()

        Return the description given to the Trigger instance by its creator (if any).

        Specified by:
        getDescription in interface Trigger
        Returns:
        null if no description was set.
      • setDescription

        public void setDescription​(java.lang.String description)

        Set a description for the Trigger instance - may be useful for remembering/displaying the purpose of the trigger, though the description has no meaning to Quartz.

        Specified by:
        setDescription in interface MutableTrigger
      • setCalendarName

        public void setCalendarName​(java.lang.String calendarName)

        Associate the Calendar with the given name with this Trigger.

        Specified by:
        setCalendarName in interface MutableTrigger
        Parameters:
        calendarName - use null to dis-associate a Calendar.
      • getCalendarName

        public java.lang.String getCalendarName()

        Get the name of the Calendar associated with this Trigger.

        Specified by:
        getCalendarName in interface Trigger
        Returns:
        null if there is no associated Calendar.
      • getJobDataMap

        public JobDataMap getJobDataMap()

        Get the JobDataMap that is associated with the Trigger.

        Changes made to this map during job execution are not re-persisted, and in fact typically result in an IllegalStateException.

        Specified by:
        getJobDataMap in interface Trigger
      • getPriority

        public int getPriority()
        The priority of a Trigger acts as a tiebreaker such that if two Triggers have the same scheduled fire time, then the one with the higher priority will get first access to a worker thread.

        If not explicitly set, the default value is 5.

        Specified by:
        getPriority in interface Trigger
        See Also:
        Trigger.DEFAULT_PRIORITY
      • setPriority

        public void setPriority​(int priority)
        The priority of a Trigger acts as a tie breaker such that if two Triggers have the same scheduled fire time, then Quartz will do its best to give the one with the higher priority first access to a worker thread.

        If not explicitly set, the default value is 5.

        Specified by:
        setPriority in interface MutableTrigger
        See Also:
        Trigger.DEFAULT_PRIORITY
      • computeFirstFireTime

        public abstract java.util.Date computeFirstFireTime​(Calendar calendar)

        This method should not be used by the Quartz client.

        Called by the scheduler at the time a Trigger is first added to the scheduler, in order to have the Trigger compute its first fire time, based on any associated calendar.

        After this method has been called, getNextFireTime() should return a valid answer.

        Specified by:
        computeFirstFireTime in interface OperableTrigger
        Returns:
        the first time at which the Trigger will be fired by the scheduler, which is also the same value getNextFireTime() will return (until after the first firing of the Trigger).
      • mayFireAgain

        public abstract boolean mayFireAgain()

        Used by the Scheduler to determine whether or not it is possible for this Trigger to fire again.

        If the returned value is false then the Scheduler may remove the Trigger from the JobStore.

        Specified by:
        mayFireAgain in interface Trigger
      • getStartTime

        public abstract java.util.Date getStartTime()

        Get the time at which the Trigger should occur.

        Specified by:
        getStartTime in interface Trigger
      • setStartTime

        public abstract void setStartTime​(java.util.Date startTime)

        The time at which the trigger's scheduling should start. May or may not be the first actual fire time of the trigger, depending upon the type of trigger and the settings of the other properties of the trigger. However the first actual first time will not be before this date.

        Setting a value in the past may cause a new trigger to compute a first fire time that is in the past, which may cause an immediate misfire of the trigger.

        Specified by:
        setStartTime in interface MutableTrigger
      • getEndTime

        public abstract java.util.Date getEndTime()

        Get the time at which the Trigger should quit repeating - regardless of any remaining repeats (based on the trigger's particular repeat settings).

        Specified by:
        getEndTime in interface Trigger
        See Also:
        getFinalFireTime()
      • getNextFireTime

        public abstract java.util.Date getNextFireTime()

        Returns the next time at which the Trigger is scheduled to fire. If the trigger will not fire again, null will be returned. Note that the time returned can possibly be in the past, if the time that was computed for the trigger to next fire has already arrived, but the scheduler has not yet been able to fire the trigger (which would likely be due to lack of resources e.g. threads).

        The value returned is not guaranteed to be valid until after the Trigger has been added to the scheduler.

        Specified by:
        getNextFireTime in interface Trigger
        See Also:
        TriggerUtils.computeFireTimesBetween(org.quartz.spi.OperableTrigger, org.quartz.Calendar, java.util.Date, java.util.Date)
      • getPreviousFireTime

        public abstract java.util.Date getPreviousFireTime()

        Returns the previous time at which the Trigger fired. If the trigger has not yet fired, null will be returned.

        Specified by:
        getPreviousFireTime in interface Trigger
      • getFireTimeAfter

        public abstract java.util.Date getFireTimeAfter​(java.util.Date afterTime)

        Returns the next time at which the Trigger will fire, after the given time. If the trigger will not fire after the given time, null will be returned.

        Specified by:
        getFireTimeAfter in interface Trigger
      • getFinalFireTime

        public abstract java.util.Date getFinalFireTime()

        Returns the last time at which the Trigger will fire, if the Trigger will repeat indefinitely, null will be returned.

        Note that the return time *may* be in the past.

        Specified by:
        getFinalFireTime in interface Trigger
      • validateMisfireInstruction

        protected abstract boolean validateMisfireInstruction​(int candidateMisfireInstruction)
      • updateAfterMisfire

        public abstract void updateAfterMisfire​(Calendar cal)

        This method should not be used by the Quartz client.

        To be implemented by the concrete classes that extend this class.

        The implementation should update the Trigger's state based on the MISFIRE_INSTRUCTION_XXX that was selected when the Trigger was created.

        Specified by:
        updateAfterMisfire in interface OperableTrigger
      • updateWithNewCalendar

        public abstract void updateWithNewCalendar​(Calendar cal,
                                                   long misfireThreshold)

        This method should not be used by the Quartz client.

        To be implemented by the concrete class.

        The implementation should update the Trigger's state based on the given new version of the associated Calendar (the state should be updated so that it's next fire time is appropriate given the Calendar's new settings).

        Specified by:
        updateWithNewCalendar in interface OperableTrigger
        Parameters:
        cal - the modifying calendar
      • validate

        public void validate()
                      throws SchedulerException

        Validates whether the properties of the JobDetail are valid for submission into a Scheduler.

        Specified by:
        validate in interface OperableTrigger
        Throws:
        java.lang.IllegalStateException - if a required property (such as Name, Group, Class) is not set.
        SchedulerException
      • setFireInstanceId

        public void setFireInstanceId​(java.lang.String id)

        This method should not be used by the Quartz client.

        Usable by JobStore implementations, in order to facilitate 'recognizing' instances of fired Trigger s as their jobs complete execution.

        Specified by:
        setFireInstanceId in interface OperableTrigger
      • getFireInstanceId

        public java.lang.String getFireInstanceId()

        This method should not be used by the Quartz client.

        Specified by:
        getFireInstanceId in interface OperableTrigger
      • toString

        public java.lang.String toString()

        Return a simple string representation of this object.

        Overrides:
        toString in class java.lang.Object
      • compareTo

        public int compareTo​(Trigger other)

        Compare the next fire time of this Trigger to that of another by comparing their keys, or in other words, sorts them according to the natural (i.e. alphabetical) order of their keys.

        Specified by:
        compareTo in interface java.lang.Comparable<T extends Trigger>
        Specified by:
        compareTo in interface Trigger
      • equals

        public boolean equals​(java.lang.Object o)
        Trigger equality is based upon the equality of the TriggerKey.
        Specified by:
        equals in interface Trigger
        Overrides:
        equals in class java.lang.Object
        Returns:
        true if the key of this Trigger equals that of the given Trigger.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • clone

        public java.lang.Object clone()
        Specified by:
        clone in interface MutableTrigger
        Overrides:
        clone in class java.lang.Object