diff options
Diffstat (limited to 'base/common/src/com/netscape/certsrv/jobs/IJob.java')
-rw-r--r-- | base/common/src/com/netscape/certsrv/jobs/IJob.java | 106 |
1 files changed, 106 insertions, 0 deletions
diff --git a/base/common/src/com/netscape/certsrv/jobs/IJob.java b/base/common/src/com/netscape/certsrv/jobs/IJob.java new file mode 100644 index 000000000..5584d68ff --- /dev/null +++ b/base/common/src/com/netscape/certsrv/jobs/IJob.java @@ -0,0 +1,106 @@ +// --- BEGIN COPYRIGHT BLOCK --- +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// (C) 2007 Red Hat, Inc. +// All rights reserved. +// --- END COPYRIGHT BLOCK --- +package com.netscape.certsrv.jobs; + +import com.netscape.certsrv.base.EBaseException; +import com.netscape.certsrv.base.IConfigStore; +import com.netscape.certsrv.base.ISubsystem; + +/** + * An interface to be implemented from for a job to be scheduled by + * the Jobs Scheduler. + * + * @version $Revision$, $Date$ + */ +public interface IJob { + + /** + * Initialize from the configuration file. + * + * @param id String name of this instance + * @param implName string name of this implementation + * @param config configuration store for this instance + * @exception EBaseException any initilization failure + */ + public void init(ISubsystem owner, String id, String implName, + IConfigStore config) throws EBaseException; + + /** + * tells if the job is enabled + * + * @return a boolean value indicating whether the job is enabled + * or not + */ + public boolean isEnabled(); + + /** + * set instance id. + * + * @param id String id of the instance + */ + public void setId(String id); + + /** + * get instance id. + * + * @return a String identifier + */ + public String getId(); + + /** + * get cron string associated with this job + * + * @return a JobCron object that represents the schedule of this job + */ + public IJobCron getJobCron(); + + /** + * Returns a list of configuration parameter names. + * The list is passed to the configuration console so instances of + * this implementation can be configured through the console. + * + * @return String array of configuration parameter names. + */ + public String[] getConfigParams(); + + /** + * gets the plugin name of this job. + * + * @return a String that is the name of this implementation + */ + public String getImplName(); + + /** + * Gets the configuration substore used by this job + * + * @return configuration store + */ + public IConfigStore getConfigStore(); + + /** + * Request the job to stop gracefully. The job may not stop immediately. + */ + public void stop(); + + /** + * Check whether the job has been asked to stop. Long running jobs should call + * this method occasionally inside the run() method and exit gracefully if it + * returns true. + */ + public boolean isStopped(); +} |