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

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

?? cmsscheduledjobinfo.java

?? cms是開源的框架
?? JAVA
?? 第 1 頁 / 共 3 頁
字號:
 * </td>
 * </tr>
 * <tr>
 * <td align="left"><code>"0 15 10 ? * 6L 2002-2005"</code></td>
 * <td align="left">&nbsp;</td>
 * <td align="left"><code>Fire at 10:15am on every last friday of every month during the years 2002, 2003, 2004 and 2005</code>
 * </td>
 * </tr>
 * <tr>
 * <td align="left"><code>"0 15 10 ? * 6#3"</code></td>
 * <td align="left">&nbsp;</td>
 * <td align="left"><code>Fire at 10:15am on the third Friday of every month</code>
 * </td>
 * </tr>
 * </table>
 * </p>
 * 
 * <p>
 * Pay attention to the effects of '?' and '*' in the day-of-week and
 * day-of-month fields!
 * </p>
 * 
 * <p>
 * <b>NOTES:</b>
 * <ul>
 * <li>Support for the features described for the 'C' character is not
 * complete.</li>
 * <li>Support for specifying both a day-of-week and a day-of-month value is
 * not complete (you'll need to use the '?' character in on of these fields).
 * </li>
 * <li>Be careful when setting fire times between mid-night and 1:00 AM -
 * "daylight savings" can cause a skip or a repeat depending on whether the
 * time moves back or jumps forward.</li>
 * </ul>
 * </p>
 * 
 *
 * @author Alexander Kandzior 
 * 
 * @version $Revision: 1.19 $ 
 * 
 * @since 6.0.0 
 */
public class CmsScheduledJobInfo implements I_CmsConfigurationParameterHandler {

    /** The log object for this class. */
    private static final Log LOG = CmsLog.getLog(CmsScheduledJobInfo.class);

    /** Indicates if this job is currently active in the scheduler or not. */
    private boolean m_active;

    /** The name of the class to schedule. */
    private String m_className;

    /** The context information for the user to execute the job with. */
    private CmsContextInfo m_context;

    /** The cron expression for this scheduler job. */
    private String m_cronExpression;

    /** Indicates if the configuration of this job is finalized (frozen). */
    private boolean m_frozen;

    /** The id of this job. */
    private String m_id;

    /** Instance object of the scheduled job (only required when instance is re-used). */
    private I_CmsScheduledJob m_jobInstance;

    /** The name of the job (for information purposes). */
    private String m_jobName;

    /** The parameters used for this job entry. */
    private SortedMap m_parameters;

    /** Indicates if the job instance should be re-used if the job is run. */
    private boolean m_reuseInstance;

    /** The (cron) trigger used for scheduling this job. */
    private Trigger m_trigger;

    /**
     * Default constructor.<p>
     */
    public CmsScheduledJobInfo() {

        m_reuseInstance = false;
        m_frozen = false;
        // parameters are stored in a tree map 
        m_parameters = new TreeMap();
        // a job is active by default
        m_active = true;
    }

    /**
     * Constructor for creating a new job with all required parameters.<p> 
     * 
     * @param id the id of the job of <code>null</code> if a new id should be automatically generated
     * @param jobName the display name of the job 
     * @param className the class name of the job, must be an instance of <code>{@link I_CmsScheduledJob}</code>
     * @param context the OpenCms user context information to use when executing the job
     * @param cronExpression the cron expression for scheduling the job
     * @param reuseInstance indicates if the job class should be re-used
     * @param active indicates if the job should be active in the scheduler
     * @param parameters the job parameters
     */
    public CmsScheduledJobInfo(
        String id,
        String jobName,
        String className,
        CmsContextInfo context,
        String cronExpression,
        boolean reuseInstance,
        boolean active,
        SortedMap parameters) {

        m_frozen = false;
        setId(id);
        if (CmsStringUtil.isNotEmpty(jobName)) {
            // job name is optional, if not present class name will be used
            setJobName(jobName);
        }
        setClassName(className);
        setContextInfo(context);
        setCronExpression(cronExpression);
        setReuseInstance(reuseInstance);
        setActive(active);
        setParameters(parameters);
    }

    /**
     * @see org.opencms.configuration.I_CmsConfigurationParameterHandler#addConfigurationParameter(java.lang.String, java.lang.String)
     */
    public void addConfigurationParameter(String paramName, String paramValue) {

        checkFrozen();
        // add the configured parameter
        m_parameters.put(paramName, paramValue);
        if (LOG.isDebugEnabled()) {
            LOG.debug(org.opencms.configuration.Messages.get().getBundle().key(
                org.opencms.configuration.Messages.LOG_ADD_CONFIG_PARAM_3,
                paramName,
                paramValue,
                this));
        }
    }

    /**
     * Clears the id of the job.<p>
     * 
     * This is useful if you want to create a copy of a job without keeping the job id.
     * Use <code>{@link CmsScheduledJobInfo#clone()}</code> first to create the copy,
     * and then clear the id of the clone.<p>
     */
    public void clearId() {

        setId(null);
    }

    /**
     * Creates a clone of this scheduled job.<p>
     * 
     * The clone will not be active in the scheduler until it is scheduled
     * with <code>{@link CmsScheduleManager#scheduleJob(org.opencms.file.CmsObject, CmsScheduledJobInfo)}</code>. 
     * The job id returned by <code>{@link #getId()}</code> will be the same.
     * The <code>{@link #isActive()}</code> flag will be set to false. 
     * The clones job instance class will be the same 
     * if the <code>{@link #isReuseInstance()}</code> flag is set.<p>
     * 
     * @see java.lang.Object#clone()
     */
    public Object clone() {

        CmsScheduledJobInfo result = new CmsScheduledJobInfo();

        result.m_id = m_id;
        result.m_active = false;
        result.m_frozen = false;
        result.m_className = m_className;
        if (isReuseInstance()) {
            result.m_jobInstance = m_jobInstance;
        }
        result.m_reuseInstance = m_reuseInstance;
        result.m_context = (CmsContextInfo)m_context.clone();
        result.m_cronExpression = m_cronExpression;
        result.m_jobName = m_jobName;
        result.m_parameters = new TreeMap(m_parameters);
        result.m_trigger = null;

        return result;
    }

    /**
     * Returns the name of the class to schedule.<p>
     * 
     * @return the name of the class to schedule
     */
    public String getClassName() {

        return m_className;
    }

    /**
     * @see org.opencms.configuration.I_CmsConfigurationParameterHandler#getConfiguration()
     */
    public Map getConfiguration() {

        // this configuration does not support parameters
        if (LOG.isDebugEnabled()) {
            LOG.debug(org.opencms.configuration.Messages.get().getBundle().key(
                org.opencms.configuration.Messages.LOG_GET_CONFIGURATION_1,
                this));
        }
        return getParameters();
    }

    /**
     * Returns the context information for the user executing the job.<p>
     *
     * @return the context information for the user executing the job
     */
    public CmsContextInfo getContextInfo() {

        return m_context;
    }

    /**
     * Returns the cron expression for this job entry.<p>
     * 
     * @return the cron expression for this job entry
     */
    public String getCronExpression() {

        return m_cronExpression;
    }

    /**
     * Returns the next time at which this job will be executed, after the given time.<p>
     * 
     * If this job will not be executed after the given time, <code>null</code> will be returned..<p>
     * 
     * @param date the after which the next execution time should be calculated
     * @return the next time at which this job will be executed, after the given time
     */
    public Date getExecutionTimeAfter(Date date) {

        if (!m_active || (m_trigger == null)) {
            // if the job is not active, no time can be calculated
            return null;
        }

        return m_trigger.getFireTimeAfter(date);
    }

    /**
     * Returns the next time at which this job will be executed.<p> 
     * 
     * If the job will not execute again, <code>null</code> will be returned.<p>
     * 
     * @return the next time at which this job will be executed
     */
    public Date getExecutionTimeNext() {

        if (!m_active || (m_trigger == null)) {
            // if the job is not active, no time can be calculated
            return null;
        }

        return m_trigger.getNextFireTime();
    }

    /**
     * Returns the previous time at which this job will be executed.<p>
     * 
     * If this job has not yet been executed, <code>null</code> will be returned.
     * 
     * @return the previous time at which this job will be executed
     */
    public Date getExecutionTimePrevious() {

        if (!m_active || (m_trigger == null)) {
            // if the job is not active, no time can be calculated
            return null;
        }

        return m_trigger.getPreviousFireTime();
    }

    /**
     * Returns the internal id of this job in the scheduler.<p>
     * 
     * Can be used to remove this job from the scheduler with 
     * <code>{@link CmsScheduleManager#unscheduleJob(org.opencms.file.CmsObject, String)}</code>.<p> 
     * 
     * @return the internal id of this job in the scheduler
     */
    public String getId() {

        return m_id;
    }

    /**
     * Returns an instance of the configured job class.<p>
     * 
     * If any error occurs during class invocaion, the error 
     * is written to the OpenCms log and <code>null</code> is returned.<p>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品羞羞答答xxdd| 亚洲高清视频中文字幕| 久久99国产精品尤物| 欧美一区二区视频免费观看| 玖玖九九国产精品| 337p粉嫩大胆色噜噜噜噜亚洲| 国产自产v一区二区三区c| 久久精品在线观看| 91丝袜呻吟高潮美腿白嫩在线观看| 成人免费视频在线观看| 欧美色图在线观看| 久久国产精品免费| 国产精品美女久久久久av爽李琼| av高清久久久| 午夜精品一区在线观看| 精品国产亚洲在线| 91在线一区二区三区| 亚洲超碰97人人做人人爱| 久久免费看少妇高潮| 91亚洲大成网污www| 日本视频免费一区| 中文字幕亚洲一区二区av在线| 欧美午夜一区二区三区| 国产原创一区二区| 亚洲乱码国产乱码精品精98午夜 | 美女视频免费一区| 自拍偷拍亚洲激情| 日韩欧美国产高清| 一本色道久久加勒比精品 | 懂色一区二区三区免费观看| 亚洲精选视频免费看| 日韩欧美你懂的| a级精品国产片在线观看| 日韩av电影免费观看高清完整版在线观看| 日韩免费一区二区三区在线播放| 99re8在线精品视频免费播放| 日韩av在线发布| 中文字幕一区三区| 欧美sm极限捆绑bd| 欧美视频一区二区三区四区| 岛国av在线一区| 婷婷成人激情在线网| 中文字幕一区二区三区在线观看 | 国产精品免费视频网站| 91精品国产综合久久精品性色| 成人免费电影视频| 精品在线播放免费| 五月婷婷激情综合| 国产精品久久久久久久久图文区| 欧美一级片免费看| 欧美在线观看视频一区二区| 国产黄色91视频| 美女视频黄久久| 日本午夜精品视频在线观看| 一区二区三区在线观看欧美| 中文一区在线播放| 久久午夜国产精品| 日韩欧美在线一区二区三区| 欧美日韩一区二区在线观看| 91国在线观看| 91一区二区三区在线观看| 国产91高潮流白浆在线麻豆| 国产一区二区视频在线| 蜜臀精品一区二区三区在线观看| 亚洲高清视频在线| 亚洲成人免费电影| 樱桃国产成人精品视频| 亚洲猫色日本管| 成人免费在线视频| 亚洲视频免费观看| 一区二区三国产精华液| 一区二区久久久久| 夜夜亚洲天天久久| 一区二区三区四区蜜桃| 一区二区三区不卡视频| 亚洲成人资源网| 天天免费综合色| 日韩激情在线观看| 蜜桃av噜噜一区二区三区小说| 日韩国产欧美在线视频| 人人狠狠综合久久亚洲| 精品一区二区在线播放| 国产一区二区三区免费观看| 国产黄人亚洲片| 成人动漫中文字幕| 色综合天天视频在线观看| 日本高清无吗v一区| 欧美三级电影在线观看| 538在线一区二区精品国产| 日韩欧美精品三级| 久久蜜桃av一区精品变态类天堂 | 日韩色在线观看| 欧美刺激脚交jootjob| 久久综合九色综合久久久精品综合| 2021久久国产精品不只是精品| 亚洲精品一区在线观看| 中文字幕中文字幕一区| 亚洲一区二区三区中文字幕| 日韩成人免费看| 国产一区二区看久久| 不卡电影一区二区三区| 欧美三级电影在线观看| 久久亚洲捆绑美女| 日韩久久一区二区| 天堂精品中文字幕在线| 国产美女一区二区| 在线观看日韩毛片| 日韩欧美第一区| 亚洲免费观看高清完整版在线观看| 午夜精品久久久久久| 精品一区二区三区免费播放| 91美女片黄在线观看| 69成人精品免费视频| 国产日产欧美精品一区二区三区| 一区二区三区四区在线播放 | 91免费版在线| 日韩午夜在线观看| 国产精品国产三级国产aⅴ入口| 天堂久久一区二区三区| 成人白浆超碰人人人人| 欧美一区二区免费观在线| 国产精品久久久久国产精品日日| 日韩经典一区二区| 91亚洲精华国产精华精华液| 精品久久久久久久久久久久包黑料 | 亚洲丝袜自拍清纯另类| 蜜乳av一区二区| 91视频免费观看| 精品国产伦一区二区三区观看方式 | 麻豆精品视频在线观看免费| 色婷婷av一区二区三区之一色屋| 欧美成人女星排名| 亚洲成人动漫精品| 91免费在线播放| 久久婷婷成人综合色| 日韩av在线发布| 欧美性猛片xxxx免费看久爱| 欧美韩日一区二区三区四区| 精品一区二区综合| 91精选在线观看| 亚洲一区二区三区美女| 不卡电影一区二区三区| 久久色在线视频| 久久草av在线| 91精品综合久久久久久| 亚洲午夜精品网| 99精品国产一区二区三区不卡| 久久先锋资源网| 久久99精品国产.久久久久| 欧美高清视频在线高清观看mv色露露十八 | 日韩免费在线观看| 日韩综合一区二区| 欧美中文字幕亚洲一区二区va在线| 国产精品久久久99| 成人免费黄色大片| 国产欧美精品一区| 国产精品一二三区在线| 精品国产露脸精彩对白| 日韩成人午夜电影| 7878成人国产在线观看| 日韩二区三区在线观看| 在线不卡的av| 青青草精品视频| 国产亚洲欧洲997久久综合 | 95精品视频在线| 国产精品久久久久久久久果冻传媒 | 一本一本大道香蕉久在线精品| 国产欧美日韩精品a在线观看| 国产高清不卡二三区| 亚洲国产视频一区| 色播五月激情综合网| 一区二区久久久久| 欧美日韩在线播放三区四区| 亚洲一级二级三级在线免费观看| 欧美三级电影网| 男人的天堂亚洲一区| 精品国产免费久久| 国产一区二区三区国产| 国产精品丝袜黑色高跟| 99久久婷婷国产综合精品电影| 一区二区三区视频在线观看| 欧美亚洲国产一卡| 喷水一区二区三区| 久久综合五月天婷婷伊人| 国产成人精品午夜视频免费| 国产精品久久三区| 色综合久久中文字幕综合网| 亚洲成人av福利| 精品国产不卡一区二区三区| 国产成人高清在线| 亚洲男帅同性gay1069| 欧美日韩一区久久| 激情综合网最新| 中文字幕五月欧美| 欧美日韩不卡一区| 狠狠色丁香婷婷综合久久片| 国产精品欧美经典| 欧美日韩三级一区| 国产精品自在欧美一区| 亚洲精品免费看|