    001    package org.apache.turbine.services.schedule;
    002
    003
    004    /*
    005     * Licensed to the Apache Software Foundation (ASF) under one
    006     * or more contributor license agreements.  See the NOTICE file
    007     * distributed with this work for additional information
    008     * regarding copyright ownership.  The ASF licenses this file
    009     * to you under the Apache License, Version 2.0 (the
    010     * "License"); you may not use this file except in compliance
    011     * with the License.  You may obtain a copy of the License at
    012     *
    013     *   http://www.apache.org/licenses/LICENSE-2.0
    014     *
    015     * Unless required by applicable law or agreed to in writing,
    016     * software distributed under the License is distributed on an
    017     * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    018     * KIND, either express or implied.  See the License for the
    019     * specific language governing permissions and limitations
    020     * under the License.
    021     */
    022
    023
    024    import java.util.List;
    025
    026    import org.apache.turbine.services.Service;
    027    import org.apache.turbine.util.TurbineException;
    028
    029    /**
    030     * ScheduleService interface.
    031     *
    032     * @author <a href="mailto:mbryson@mont.mindspring.com">Dave Bryson</a>
    033     * @author <a href="mailto:quintonm@bellsouth.net">Quinton McCombs</a>
    034     * @version $Id: ScheduleService.java 1066938 2011-02-03 20:14:53Z ludwig $
    035     */
    036    public interface ScheduleService
    037            extends Service
    038    {
    039        /** Name of service */
    040        String SERVICE_NAME = "SchedulerService";
    041
    042        /** TR.props key for intially activating the scheduler thread */
    043        String INTIALLY_ACTIVE = "enabled";
    044
    045        /** TR.props key for the logger */
    046        String LOGGER_NAME = "scheduler";
    047
    048        /**
    049         * Get a specific Job from Storage.
    050         *
    051         * @param oid The int id for the job.
    052         * @return A JobEntry.
    053         * @exception TurbineException could not retreive job
    054         */
    055        JobEntry getJob(int oid)
    056                throws TurbineException;
    057
    058        /**
    059         * Add a new job to the queue.
    060         *
    061         * @param je A JobEntry with the job to add.
    062         * @throws TurbineException job could not be added
    063         */
    064        void addJob(JobEntry je)
    065                throws TurbineException;
    066
    067        /**
    068         * Modify a Job.
    069         *
    070         * @param je A JobEntry with the job to modify
    071         * @throws TurbineException job could not be updated
    072         */
    073        void updateJob(JobEntry je)
    074                throws TurbineException;
    075
    076        /**
    077         * Remove a job from the queue.
    078         *
    079         * @param je A JobEntry with the job to remove.
    080         * @exception TurbineException job could not be removed
    081         */
    082        void removeJob(JobEntry je)
    083                throws TurbineException;
    084
    085        /**
    086         * List jobs in the queue.  This is used by the scheduler UI.
    087         *
    088         * @return A List of jobs.
    089         */
    090        List<JobEntry> listJobs();
    091
    092        /**
    093         * Determines if the scheduler service is currently active.
    094         *
    095         * @return Status of the scheduler service.
    096         */
    097        boolean isEnabled();
    098
    099        /**
    100         * Starts the scheduler if not already running.
    101         */
    102        void startScheduler();
    103
    104        /**
    105         * Stops the scheduler if ti is currently running.
    106         */
    107        void stopScheduler();
    108
    109    }