package jeffaschenk.commons.system.internal.scheduling;
import jeffaschenk.commons.system.internal.file.services.ServiceTask;
import java.util.Date;
/**
*
* Provides Interface for Local Scheduling Services
*
*
* @author jeffaschenk@gmail.com
*
*/
public interface LocalSchedulingService {
/**
* Schedule Runnable Wrapper Interface
*
* @param runnableTask
* @param scheduledTask
* @return boolean indicating if Task Scheduled or not.
*/
boolean scheduleTask(ServiceTask runnableTask, Date scheduledTask);
/**
* Schedule Runnable Wrapper Interface
* @return int providing active Thread count.
*/
int getActiveThreadPoolTasks();
/**
* Obtain our current schedule
* @return String - HTML Current Schedule Status.
*/
String getCurrentSchedule();
/**
* Obtain our current schedule
*
* @return String - HTML Current Schedule Status.
*/
String getFullCurrentSchedule();
/**
* Provides ability to schedule an Action based upon a
* cron Expression.
*
* @param actionBeanName
* @param cronExpression
* @return boolean indicating if Action Scheduled or not.
*/
boolean scheduleAction(String actionBeanName, String cronExpression);
/**
* Provides ability to remove an Action based upon a
* the name of the Action.
*
* @param actionBeanName
* @return boolean indicating if Action has een removed.
*/
boolean removeAction(String actionBeanName);
/**
* Resolve the CRON Key Class
*
* @param cronClassKey
* @return String
*/
String resolveCronClassKey(String cronClassKey);
}