/******************************************************************************
* Copyright (c) 2007 g-Eclipse consortium
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Initial development of the original code was made for
* project g-Eclipse founded by European Union
* project number: FP6-IST-034327 http://www.geclipse.eu/
*
* Contributor(s):
* UCY (http://www.cs.ucy.ac.cy)
* - Harald Gjermundrod (harald@cs.ucy.ac.cy)
*
*****************************************************************************/
package eu.geclipse.batch;
import eu.geclipse.core.reporting.ProblemException;
/**
* This interface is the base for all classes that describe specialized
* batch services like pbs.
*
* @author harald
*/
public interface IBatchServiceDescription {
/**
* Create a service from this <code>IBatchServiceDescription</code>.
*
* @param name batch service name, i.e. the configuration file that were
* used to instantiate this service
* @return A new batch service that is created from the settings
* of this <code>IBatchServiceDescription</code>.
* @throws ProblemException If the service could not be created due
* to some error.
*/
public IBatchService createService( final String name ) throws ProblemException;
/**
* Get the name of the service type that is described by this description. This
* is a short name like "PBS" or "LSF" that is used in UI
* components to reference this description.
*
* @return The name of the type of service that is described by this description.
*/
public String getServiceTypeName();
/**
* Returns whether this implementation can support the requested service.
*
* @param service The service to test for
* @return Returns <code>true</code> if this implementation supports the service,
* <code>false</code> otherwise.
*/
public boolean supportsService( final String service );
}