亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? trigger.java

?? Quartz 是個開源的作業調度框架
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
    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;
    }

    /**
     * <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) {
        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> s containing the names of all
     * <code>{@link TriggerListener}</code> assigned to the <code>Trigger</code>,
     * in the order in which they should be notified.
     * </p>
     */
    public String[] getTriggerListenerNames() {
        String[] outNames = new String[triggerListeners.size()];
        return (String[]) triggerListeners.toArray(outNames);
    }

    /**
     * <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>
     * 
     * @param context
     *          is the <code>JobExecutionContext</code> that was used by the
     *          <code>Job</code>'s<code>execute(xx)</code> method.
     * @param result
     *          is the <code>JobExecutionException</code> thrown by the
     *          <code>Job</code>, if any (may be null).
     * @return one of the Trigger.INSTRUCTION_XXX constants.
     * 
     * @see #INSTRUCTION_NOOP
     * @see #INSTRUCTION_RE_EXECUTE_JOB
     * @see #INSTRUCTION_DELETE_TRIGGER
     * @see #INSTRUCTION_SET_TRIGGER_COMPLETE
     * @see #triggered(Calendar)
     */
    public abstract int executionComplete(JobExecutionContext context,
            JobExecutionException result);

    /**
     * <p>
     * Used by the <code>{@link Scheduler}</code> to determine whether or not
     * it is possible for this <code>Trigger</code> to fire again.
     * </p>
     * 
     * <p>
     * If the returned value is <code>false</code> then the <code>Scheduler</code>
     * may remove the <code>Trigger</code> from the <code>{@link org.quartz.spi.JobStore}</code>.
     * </p>
     */
    public abstract boolean mayFireAgain();

    /**
     * <p>
     * Get the time at which the <code>Trigger</code> should occur.
     * </p>
     */
    public abstract Date getStartTime();

    public abstract void setStartTime(Date startTime); 
    
    public abstract void setEndTime(Date endTime); 
    
    /**
     * <p>
     * Get the time at which the <code>Trigger</code> should quit repeating -
     * even if an assigned 'repeatCount' isn't yet satisfied.
     * </p>
     * 
     * @see #getFinalFireTime()
     */
    public abstract Date getEndTime();

    /**
     * <p>
     * Returns the next time at which the <code>Trigger</code> will fire. If
     * the trigger will not fire again, <code>null</code> will be returned.
     * The value returned is not guaranteed to be valid until after the <code>Trigger</code>
     * has been added to the scheduler.
     * </p>
     */
    public abstract Date getNextFireTime();

    /**
     * <p>
     * Returns the previous time at which the <code>Trigger</code> will fire.
     * If the trigger has not yet fired, <code>null</code> will be returned.
     */
    public abstract Date getPreviousFireTime();

    /**
     * <p>
     * Returns the next time at which the <code>Trigger</code> will fire,
     * after the given time. If the trigger will not fire after the given time,
     * <code>null</code> will be returned.
     * </p>
     */
    public abstract Date getFireTimeAfter(Date afterTime);

    /**
     * <p>
     * Returns the last time at which the <code>Trigger</code> will fire, if
     * the Trigger will repeat indefinitely, null will be returned.
     * </p>
     * 
     * <p>
     * Note that the return time *may* be in the past.
     * </p>
     */
    public abstract Date getFinalFireTime();

    /**
     * <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) {
        if (!validateMisfireInstruction(misfireInstruction))
                throw new IllegalArgumentException(
                        "The misfire instruction code is invalid for this type of trigger.");
        this.misfireInstruction = misfireInstruction;
    }

    protected abstract boolean validateMisfireInstruction(int misfireInstruction);

    /**
     * <p>
     * Get 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 int getMisfireInstruction() {
        return misfireInstruction;
    }

    /**
     * <p>
     * This method should not be used by the Quartz client.
     * </p>
     * 
     * <p>
     * To be implemented by the concrete classes that extend this class.
     * </p>
     * 
     * <p>
     * The implementation should update the <code>Trigger</code>'s state
     * based on the MISFIRE_INSTRUCTION_XXX that was selected when the <code>Trigger</code>
     * was created.
     * </p>
     */
    public abstract void updateAfterMisfire(Calendar cal);

    /**
     * <p>
     * This method should not be used by the Quartz client.
     * </p>
     * 
     * <p>
     * To be implemented by the concrete class.
     * </p>
     * 
     * <p>
     * The implementation should update the <code>Trigger</code>'s state
     * based on the given new version of the associated <code>Calendar</code>
     * (the state should be updated so that it's next fire time is appropriate
     * given the Calendar's new settings). 
     * </p>
     * 
     * @param cal
     */
    public abstract void updateWithNewCalendar(Calendar cal, long misfireThreshold);

    /**
     * <p>
     * Validates whether the properties of the <code>JobDetail</code> are
     * valid for submission into a <code>Scheduler</code>.
     * 
     * @throws IllegalStateException
     *           if a required property (such as Name, Group, Class) is not
     *           set.
     */
    public void validate() throws SchedulerException {
        if (name == null)
                throw new SchedulerException("Trigger's name cannot be null",
                        SchedulerException.ERR_CLIENT_ERROR);

        if (group == null)
                throw new SchedulerException("Trigger's group cannot be null",
                        SchedulerException.ERR_CLIENT_ERROR);

        if (jobName == null)
                throw new SchedulerException(
                        "Trigger's related Job's name cannot be null",
                        SchedulerException.ERR_CLIENT_ERROR);

        if (jobGroup == null)
                throw new SchedulerException(
                        "Trigger's related Job's group cannot be null",
                        SchedulerException.ERR_CLIENT_ERROR);
    }

    /**
     * <p>
     * This method should not be used by the Quartz client.
     * </p>
     * 
     * <p>
     * Usable by <code>{@link org.quartz.spi.JobStore}</code>
     * implementations, in order to facilitate 'recognizing' instances of fired
     * <code>Trigger</code> s as their jobs complete execution.
     * </p>
     * 
     *  
     */
    public void setFireInstanceId(String id) {
        this.fireInstanceId = id;
    }

    /**
     * <p>
     * This method should not be used by the Quartz client.
     * </p>
     */
    public String getFireInstanceId() {
        return fireInstanceId;
    }

    /**
     * <p>
     * Return a simple string representation of this object.
     * </p>
     */
    public String toString() {
        return "Trigger '" + getFullName() + "':  triggerClass: '"
                + getClass().getName() + " isVolatile: " + isVolatile()
                + " calendar: '" + getCalendarName() + "' misfireInstruction: "
                + getMisfireInstruction() + " nextFireTime: " + getNextFireTime();
    }

    /**
     * <p>
     * Compare the next fire time of this <code>Trigger</code> to that of
     * another.
     * </p>
     */
    public int compareTo(Object obj) {
        Trigger other = (Trigger) obj;

        Date myTime = getNextFireTime();
        Date otherTime = other.getNextFireTime();

        if (myTime == null && otherTime == null) return 0;

        if (myTime == null) return 1;

        if (otherTime == null) return -1;

        if(myTime.before(otherTime))
            return -1;

        if(myTime.after(otherTime))
            return 1;
        
        return 0;
    }

    public boolean equals(Object obj) {
        if (!(obj instanceof Trigger)) return false;

        Trigger other = (Trigger) obj;

        if (!other.getName().equals(getName())) return false;
        if (!other.getGroup().equals(getGroup())) return false;

        return true;
    }
    
    
    public int hashCode() {
        return getFullName().hashCode(); 
    }
    
    public Object clone() {
        Trigger copy;
        try {
            copy = (Trigger) super.clone();
        } catch (CloneNotSupportedException ex) {
            throw new IncompatibleClassChangeError("Not Cloneable.");
        }
        return copy;
    }

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩美女一区二区| 丁香天五香天堂综合| 国产在线播放一区三区四| 国产精品91一区二区| 91啪亚洲精品| 欧美一区二区视频在线观看2022| 欧美大胆人体bbbb| 中文字幕一区免费在线观看| 香蕉成人啪国产精品视频综合网| 国产麻豆91精品| 日本高清视频一区二区| 日韩欧美视频在线| 亚洲欧洲精品一区二区精品久久久 | 欧美精品一区二区三区四区| 国产精品情趣视频| 日韩精品色哟哟| 粉嫩在线一区二区三区视频| 欧美午夜在线一二页| 久久综合久色欧美综合狠狠| 亚洲精品视频在线看| 狠狠狠色丁香婷婷综合激情| 99re成人精品视频| 久久综合九色综合欧美就去吻| 亚洲欧美日韩在线| 久久精品免费观看| 欧美午夜一区二区三区免费大片| 国产亚洲成av人在线观看导航| 亚洲午夜视频在线观看| 国产sm精品调教视频网站| 欧美日本一区二区三区四区 | 99久久国产综合精品女不卡| 日韩一区二区在线观看视频| 亚洲精品久久7777| 福利91精品一区二区三区| 欧美电影在哪看比较好| 亚洲视频一区二区在线| 国产成人免费视频一区| 日韩欧美视频一区| 五月激情综合婷婷| 在线视频欧美精品| 中日韩av电影| 国产一区二区不卡在线| 日韩一级片在线播放| 亚洲五月六月丁香激情| 色综合色狠狠综合色| 久久精品一区二区| 激情丁香综合五月| 欧美一区二区不卡视频| 亚洲国产精品一区二区久久 | 亚洲色图在线播放| 国产成人在线影院 | 国产精品影视在线| 欧美电影免费观看高清完整版在线观看 | 久久国产精品免费| 欧美日韩高清影院| 亚洲综合丁香婷婷六月香| 成+人+亚洲+综合天堂| 久久婷婷成人综合色| 免费观看一级欧美片| 91精品一区二区三区久久久久久| 亚洲一区二区三区四区的| 色婷婷国产精品综合在线观看| 中文字幕一区二区不卡 | 亚洲视频中文字幕| av动漫一区二区| ●精品国产综合乱码久久久久 | 自拍偷拍亚洲综合| av高清不卡在线| 《视频一区视频二区| 91在线免费看| 亚洲激情自拍偷拍| 日本黄色一区二区| 亚洲国产中文字幕在线视频综合 | 亚洲成av人片在线观看无码| 欧美三级视频在线观看| 亚洲免费在线视频| av电影一区二区| 1024成人网| 色激情天天射综合网| 亚洲一区在线视频| 欧美久久久久免费| 麻豆精品一区二区三区| 久久久综合视频| 国产高清久久久久| 1000部国产精品成人观看| 色天天综合久久久久综合片| 亚洲国产欧美在线| 欧美一区二区高清| 国产一区二区三区最好精华液| 国产亚洲精品福利| av男人天堂一区| 亚洲一级二级在线| 欧美一卡二卡在线| 国产又黄又大久久| 中文字幕一区二区三区av | 日韩影视精彩在线| 精品国产凹凸成av人导航| 大美女一区二区三区| 亚洲视频每日更新| 在线播放91灌醉迷j高跟美女| 精品一区二区免费视频| 中文字幕成人av| 91黄色在线观看| 麻豆一区二区在线| 国产精品免费aⅴ片在线观看| 欧美在线不卡视频| 久久99精品久久久久| 国产精品福利av| 欧美另类高清zo欧美| 国产一区视频网站| 亚洲精品日日夜夜| 日韩精品最新网址| www.欧美日韩| 奇米色一区二区| 国产精品美女久久久久高潮| 欧美日韩在线免费视频| 狠狠色丁香婷婷综合久久片| 综合色中文字幕| 欧美一区二区日韩| 成人免费视频国产在线观看| 亚洲国产精品久久艾草纯爱| 久久日韩粉嫩一区二区三区| 91一区二区在线观看| 另类欧美日韩国产在线| 亚洲视频免费看| 精品成人在线观看| 欧美性大战xxxxx久久久| 国产麻豆日韩欧美久久| 亚洲.国产.中文慕字在线| 国产亚洲欧洲997久久综合| 欧美日韩国产在线观看| 国产传媒久久文化传媒| 日本视频中文字幕一区二区三区| 国产精品高潮呻吟| 欧美电影免费观看高清完整版在| 91色婷婷久久久久合中文| 久久99精品一区二区三区| 亚洲宅男天堂在线观看无病毒| 久久综合狠狠综合| 欧美精品 国产精品| 波多野结衣一区二区三区| 美女爽到高潮91| 一区二区三区美女| 国产精品女人毛片| 精品99久久久久久| 欧美日韩国产一区二区三区地区| 丁香天五香天堂综合| 久久不见久久见中文字幕免费| 亚洲综合无码一区二区| 国产精品入口麻豆九色| 日韩一级大片在线| 欧美蜜桃一区二区三区| 91蜜桃免费观看视频| 国产一区二区三区精品欧美日韩一区二区三区 | 久久国产精品区| 日韩国产精品久久| 亚洲午夜精品在线| 亚洲伦在线观看| 国产精品国产馆在线真实露脸| 久久新电视剧免费观看| 日韩欧美另类在线| 9191成人精品久久| 欧美日韩免费视频| 色综合久久综合网| 波多野结衣在线一区| 国产精品99久久久久久似苏梦涵 | 精品卡一卡二卡三卡四在线| 欧美日韩国产一级二级| 色噜噜偷拍精品综合在线| 91小宝寻花一区二区三区| 成人精品视频一区二区三区尤物| 国产黄色精品网站| 国产精品一区二区在线播放| 久99久精品视频免费观看| 美腿丝袜亚洲综合| 久久www免费人成看片高清| 七七婷婷婷婷精品国产| 日韩av中文在线观看| 日本美女一区二区三区视频| 午夜精品久久久久久久蜜桃app| 亚洲va国产va欧美va观看| 午夜精品久久久| 日本午夜一本久久久综合| 乱中年女人伦av一区二区| 精品写真视频在线观看 | 国产精品高潮久久久久无| 国产精品久久久久久久久快鸭| 国产精品久久久一本精品| 国产精品亲子乱子伦xxxx裸| 综合av第一页| 亚洲福利一区二区| 日韩中文字幕麻豆| 久久精品国产秦先生| 国产米奇在线777精品观看| 国产精品一区二区三区乱码| 国产大陆精品国产| 99re视频这里只有精品| 在线亚洲一区二区| 666欧美在线视频| 久久日韩精品一区二区五区|