/* * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy * of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. * */ package org.quartz.spi; import java.util.Date; import org.quartz.Calendar; import org.quartz.CronTrigger; import org.quartz.JobDataMap; import org.quartz.JobKey; import org.quartz.SimpleTrigger; import org.quartz.Trigger; import org.quartz.TriggerKey; import org.quartz.TriggerUtils; public interface MutableTrigger extends Trigger { public void setKey(TriggerKey key); public void setJobKey(JobKey key); /** * <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); /** * <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); /** * <p> * Set the <code>JobDataMap</code> to be associated with the * <code>Trigger</code>. * </p> */ public void setJobDataMap(JobDataMap jobDataMap); /** * 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); /** * <p> * 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. * </p> * <p> * 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. * </p> */ public void setStartTime(Date startTime); /** * <p> * Set the time at which the <code>Trigger</code> should quit repeating - * regardless of any remaining repeats (based on the trigger's particular * repeat settings). * </p> * * @see TriggerUtils#computeEndTimeToAllowParticularNumberOfFirings(Trigger, Calendar, int) */ public void setEndTime(Date endTime); /** * <p> * Set the instruction the <code>Scheduler</code> should be given for * handling misfire situations for this <code>Trigger</code>- the * concrete <code>Trigger</code> type that you are using will have * defined a set of additional <code>MISFIRE_INSTRUCTION_XXX</code> * constants that may be passed to this method. * </p> * * <p> * If not explicitly set, the default value is <code>MISFIRE_INSTRUCTION_SMART_POLICY</code>. * </p> * * @see #MISFIRE_INSTRUCTION_SMART_POLICY * @see #updateAfterMisfire(Calendar) * @see SimpleTrigger * @see CronTrigger */ public void setMisfireInstruction(int misfireInstruction); public Object clone(); }