package rocks.inspectit.shared.cs.cmr.service;
import java.util.Date;
import java.util.List;
import rocks.inspectit.shared.all.cmr.service.ServiceExporterType;
import rocks.inspectit.shared.all.cmr.service.ServiceInterface;
import rocks.inspectit.shared.all.communication.data.SqlStatementData;
/**
* @author Patrice Bouillet
*
*/
@ServiceInterface(exporter = ServiceExporterType.HTTP)
public interface ISqlDataAccessService {
/**
* Returns a list of the SQL statements for a given template. In the template, only the platform
* id is extracted. If the template holds the SQL query string, only objects with this query
* string will be returned.
*
* @param sqlStatementData
* The template containing the platform id.
* @return The list of the SQL statements.
*/
List<SqlStatementData> getAggregatedSqlStatements(SqlStatementData sqlStatementData);
/**
* Returns a list of the SQL statements for a given template in a time frame. In the template,
* only the platform id is extracted. If the template holds the SQL query string, only objects
* with this query string will be returned.
*
* @param sqlStatementData
* The template containing the platform id.
* @param fromDate
* Date to include data from.
* @param toDate
* Date to include data to.
* @return The list of the SQL statements.
*/
List<SqlStatementData> getAggregatedSqlStatements(SqlStatementData sqlStatementData, Date fromDate, Date toDate);
/**
* Returns a list of the SQL statements for a given template aggregated by the parameters. In
* the template, only the platform id is extracted. If the template holds the SQL query string,
* only objects with this query string will be returned.
*
* @param sqlStatementData
* The template containing the platform id.
* @return The list of the SQL statements.
*/
List<SqlStatementData> getParameterAggregatedSqlStatements(SqlStatementData sqlStatementData);
/**
* Returns a list of the SQL statements for a given template in a time frame aggregated by the
* parameters. In the template, only the platform id is extracted. If the template holds the SQL
* query string, only objects with this query string will be returned.
*
* @param sqlStatementData
* The template containing the platform id.
* @param fromDate
* Date to include data from.
* @param toDate
* Date to include data to.
* @return The list of the SQL statements.
*/
List<SqlStatementData> getParameterAggregatedSqlStatements(SqlStatementData sqlStatementData, Date fromDate, Date toDate);
}