/*
 * JBoss, the OpenSource J2EE webOS
 *
 * Distributable under LGPL license.
 * See terms of license at gnu.org.
 */
package org.jboss.varia.scheduler;

/**
 * MBean interface.
 */
public interface AbstractScheduleProviderMBean extends org.jboss.ha.singleton.HASingletonMBean
{

   //default object name
   public static final javax.management.ObjectName OBJECT_NAME = org.jboss.mx.util.ObjectNameFactory
         .create("jboss:service=ScheduleProvider");

   /**
    * Get the Schedule Manager Name
    */
   java.lang.String getScheduleManagerName();

   /**
    * Set the Schedule Manager Name
    */
   void setScheduleManagerName(java.lang.String pSchedulerManagerName)
         throws javax.management.MalformedObjectNameException;

   /**
    * Add the Schedules to the Schedule Manager
    */
   void startProviding() throws java.lang.Exception;

   /**
    * Stops the Provider from providing and causing him to remove all Schedules
    */
   void stopProviding();

   /**
    * determines whether or not the service is clustered singleton
    */
   boolean isHASingleton();

   /**
    * determines whether or not the service is clustered singleton
    */
   void setHASingleton(boolean hasingleton);

}
