/**
* The contents of this file are subject to the OpenMRS Public License
* Version 1.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://license.openmrs.org
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations
* under the License.
*
* Copyright (C) OpenMRS, LLC. All Rights Reserved.
*/
package org.openmrs.scheduler;
public interface Task {
/**
* Executes the task defined in the task definition.
*/
public void execute();
/**
* Initializes the task and sets the task definition.
*
* @param definition
*/
public void initialize(TaskDefinition definition);
/**
* Returns the task definition associated with this task.
*
* @return a task definition
*/
public TaskDefinition getTaskDefinition();
/**
* Returns true if the task is currently in its execute() method.
*
* @return true if task is executing, false otherwise
*/
boolean isExecuting();
/**
* Callback method used to clean up resources used during the tasks execution.
*/
void shutdown();
}