package org.pentaho.reporting.engine.classic.core.modules.misc.connections;
import org.pentaho.database.model.IDatabaseConnection;
import java.util.List;
/**
* A design-time interface.
*/
public interface DataSourceMgmtService {
/**
* Creates a JDBC datasource in a given repository and return an id
*
* @param databaseConnection
* @return id
* @throws DuplicateDatasourceException
* @throws DatasourceMgmtServiceException
*/
public String createDatasource( IDatabaseConnection databaseConnection ) throws DuplicateDatasourceException,
DatasourceMgmtServiceException;
/**
* Permanently deletes a JDBC datasource from a repository by id
*
* @param id
* @throws NonExistingDatasourceException
* @throws DatasourceMgmtServiceException
*/
public void deleteDatasourceById( String id ) throws NonExistingDatasourceException, DatasourceMgmtServiceException;
/**
* Retrieves a JDBC datasource form the repository by name
*
* @param name
* @return IDatabaseConnection
* @throws DatasourceMgmtServiceException
*/
public IDatabaseConnection getDatasourceByName( String name ) throws DatasourceMgmtServiceException;
/**
* Retrieves a JDBC datasource form the repository by id
*
* @param id
* @return IDatabaseConnection
* @throws DatasourceMgmtServiceException
*/
public IDatabaseConnection getDatasourceById( String id ) throws DatasourceMgmtServiceException;
/**
* Retrieves all JDBC datasources from the repository
*
* @return databaseConnection List
* @throws DatasourceMgmtServiceException
*/
public List<IDatabaseConnection> getDatasources() throws DatasourceMgmtServiceException;
/**
* Retrieves all JDBC datasource ids from the repository
*
* @return list of ids
* @throws DatasourceMgmtServiceException
*/
public List<String> getDatasourceIds() throws DatasourceMgmtServiceException;
/**
* Updates a given JDBC datasource by id
*
* @param id
* @param databaseConnection
* @return id
* @throws NonExistingDatasourceException
* @throws DatasourceMgmtServiceException
*/
public String updateDatasourceById( String id, IDatabaseConnection databaseConnection )
throws NonExistingDatasourceException, DatasourceMgmtServiceException;
}