📄 trigger.java
字号:
/**
* <p>
* Get the group of this <code>Trigger</code>.
* </p>
*/
public String getGroup() {
return group;
}
/**
* <p>
* Set the name of this <code>Trigger</code>.
* </p>
*
* @param group if <code>null</code>, Scheduler.DEFAULT_GROUP will be used.
*
* @exception IllegalArgumentException
* if group is an empty string.
*/
public void setGroup(String group) {
if (group != null && group.trim().length() == 0) {
throw new IllegalArgumentException(
"Group name cannot be an empty string.");
}
if(group == null) {
group = Scheduler.DEFAULT_GROUP;
}
this.group = group;
}
/**
* <p>
* Get the name of the associated <code>{@link org.quartz.JobDetail}</code>.
* </p>
*/
public String getJobName() {
return jobName;
}
/**
* <p>
* Set the name of the associated <code>{@link org.quartz.JobDetail}</code>.
* </p>
*
* @exception IllegalArgumentException
* if jobName is null or empty.
*/
public void setJobName(String jobName) {
if (jobName == null || jobName.trim().length() == 0) {
throw new IllegalArgumentException(
"Job name cannot be null or empty.");
}
this.jobName = jobName;
}
/**
* <p>
* Get the name of the associated <code>{@link org.quartz.JobDetail}</code>'s
* group.
* </p>
*/
public String getJobGroup() {
return jobGroup;
}
/**
* <p>
* Set the name of the associated <code>{@link org.quartz.JobDetail}</code>'s
* group.
* </p>
*
* @param jobGroup if <code>null</code>, Scheduler.DEFAULT_GROUP will be used.
*
* @exception IllegalArgumentException
* if group is an empty string.
*/
public void setJobGroup(String jobGroup) {
if (jobGroup != null && jobGroup.trim().length() == 0) {
throw new IllegalArgumentException(
"Group name cannot be null or empty.");
}
if(jobGroup == null) {
jobGroup = Scheduler.DEFAULT_GROUP;
}
this.jobGroup = jobGroup;
}
/**
* <p>
* Returns the 'full name' of the <code>Trigger</code> in the format
* "group.name".
* </p>
*/
public String getFullName() {
return group + "." + name;
}
public Key getKey() {
if(key == null) {
key = new Key(getName(), getGroup());
}
return key;
}
/**
* <p>
* Returns the 'full name' of the <code>Job</code> that the <code>Trigger</code>
* points to, in the format "group.name".
* </p>
*/
public String getFullJobName() {
return jobGroup + "." + jobName;
}
/**
* <p>
* Return the description given to the <code>Trigger</code> instance by
* its creator (if any).
* </p>
*
* @return null if no description was set.
*/
public String getDescription() {
return description;
}
/**
* <p>
* Set a description for the <code>Trigger</code> instance - may be
* useful for remembering/displaying the purpose of the trigger, though the
* description has no meaning to Quartz.
* </p>
*/
public void setDescription(String description) {
this.description = description;
}
/**
* <p>
* Set whether or not the <code>Trigger</code> should be persisted in the
* <code>{@link org.quartz.spi.JobStore}</code> for re-use after program
* restarts.
* </p>
*/
public void setVolatility(boolean volatility) {
this.volatility = volatility;
}
/**
* <p>
* Associate the <code>{@link Calendar}</code> with the given name with
* this Trigger.
* </p>
*
* @param calendarName
* use <code>null</code> to dis-associate a Calendar.
*/
public void setCalendarName(String calendarName) {
this.calendarName = calendarName;
}
/**
* <p>
* Get the name of the <code>{@link Calendar}</code> associated with this
* Trigger.
* </p>
*
* @return <code>null</code> if there is no associated Calendar.
*/
public String getCalendarName() {
return calendarName;
}
/**
* <p>
* Get the <code>JobDataMap</code> that is associated with the
* <code>Trigger</code>.
* </p>
*
* <p>
* Changes made to this map during job execution are not re-persisted, and
* in fact typically result in an <code>IllegalStateException</code>.
* </p>
*/
public JobDataMap getJobDataMap() {
if (jobDataMap == null) {
jobDataMap = new JobDataMap();
}
return jobDataMap;
}
/**
* <p>
* Set the <code>JobDataMap</code> to be associated with the
* <code>Trigger</code>.
* </p>
*/
public void setJobDataMap(JobDataMap jobDataMap) {
this.jobDataMap = jobDataMap;
}
/**
* <p>
* Whether or not the <code>Trigger</code> should be persisted in the
* <code>{@link org.quartz.spi.JobStore}</code> for re-use after program
* restarts.
* </p>
*
* <p>
* If not explicitly set, the default value is <code>false</code>.
* </p>
*
* @return <code>true</code> if the <code>Trigger</code> should be
* garbage collected along with the <code>{@link Scheduler}</code>.
*/
public boolean isVolatile() {
return volatility;
}
/**
* The priority of a <code>Trigger</code> acts as a tiebreaker such that if
* two <code>Trigger</code>s have the same scheduled fire time, then the
* one with the higher priority will get first access to a worker
* thread.
*
* <p>
* If not explicitly set, the default value is <code>5</code>.
* </p>
*
* @see #DEFAULT_PRIORITY
*/
public int getPriority() {
return priority;
}
/**
* The priority of a <code>Trigger</code> acts as a tie breaker such that if
* two <code>Trigger</code>s 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.
*
* <p>
* If not explicitly set, the default value is <code>5</code>.
* </p>
*
* @see #DEFAULT_PRIORITY
*/
public void setPriority(int priority) {
this.priority = priority;
}
/**
* <p>
* Add the specified name of a <code>{@link TriggerListener}</code> to
* the end of the <code>Trigger</code>'s list of listeners.
* </p>
*/
public void addTriggerListener(String name) {
if (triggerListeners.contains(name)) {
throw new IllegalArgumentException(
"Trigger listener '" + name + "' is already registered for trigger: " + getFullName());
}
triggerListeners.add(name);
}
/**
* <p>
* Remove the specified name of a <code>{@link TriggerListener}</code>
* from the <code>Trigger</code>'s list of listeners.
* </p>
*
* @return true if the given name was found in the list, and removed
*/
public boolean removeTriggerListener(String name) {
return triggerListeners.remove(name);
}
/**
* <p>
* Returns an array of <code>String</code> containing the names of all
* <code>{@link TriggerListener}</code>s assigned to the <code>Trigger</code>,
* in the order in which they should be notified.
* </p>
*/
public String[] getTriggerListenerNames() {
return (String[])triggerListeners.toArray(new String[triggerListeners.size()]);
}
/**
* Remove all <code>{@link TriggerListener}</code>s from the <code>Trigger</code>.
*/
public void clearAllTriggerListeners() {
triggerListeners.clear();
}
/**
* <p>
* This method should not be used by the Quartz client.
* </p>
*
* <p>
* Called when the <code>{@link Scheduler}</code> has decided to 'fire'
* the trigger (execute the associated <code>Job</code>), in order to
* give the <code>Trigger</code> a chance to update itself for its next
* triggering (if any).
* </p>
*
* @see #executionComplete(JobExecutionContext, JobExecutionException)
*/
public abstract void triggered(Calendar calendar);
/**
* <p>
* This method should not be used by the Quartz client.
* </p>
*
* <p>
* Called by the scheduler at the time a <code>Trigger</code> is first
* added to the scheduler, in order to have the <code>Trigger</code>
* compute its first fire time, based on any associated calendar.
* </p>
*
* <p>
* After this method has been called, <code>getNextFireTime()</code>
* should return a valid answer.
* </p>
*
* @return the first time at which the <code>Trigger</code> will be fired
* by the scheduler, which is also the same value <code>getNextFireTime()</code>
* will return (until after the first firing of the <code>Trigger</code>).
* </p>
*/
public abstract Date computeFirstFireTime(Calendar calendar);
/**
* <p>
* This method should not be used by the Quartz client.
* </p>
*
* <p>
* Called after the <code>{@link Scheduler}</code> has executed the
* <code>{@link org.quartz.JobDetail}</code> associated with the <code>Trigger</code>
* in order to get the final instruction code from the trigger.
* </p>
*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -