package rocks.inspectit.ui.rcp.repository.service.storage; import java.util.Date; import java.util.List; import rocks.inspectit.shared.all.communication.data.SqlStatementData; import rocks.inspectit.shared.cs.cmr.service.ISqlDataAccessService; import rocks.inspectit.shared.cs.indexing.aggregation.Aggregators; import rocks.inspectit.shared.cs.indexing.query.factory.impl.SqlStatementDataQueryFactory; import rocks.inspectit.shared.cs.indexing.storage.IStorageTreeComponent; import rocks.inspectit.shared.cs.indexing.storage.impl.StorageIndexQuery; /** * {@link ISqlDataAccessService} for storage purposes. * * @author Ivan Senic * */ public class StorageSqlDataAccessService extends AbstractStorageService<SqlStatementData> implements ISqlDataAccessService { /** * Indexing tree. */ private IStorageTreeComponent<SqlStatementData> indexingTree; /** * Index query provider. */ private SqlStatementDataQueryFactory<StorageIndexQuery> sqlDataQueryFactory; /** * {@inheritDoc} */ @Override public List<SqlStatementData> getAggregatedSqlStatements(SqlStatementData sqlStatementData) { return this.getAggregatedSqlStatements(sqlStatementData, null, null); } /** * {@inheritDoc} */ @Override public List<SqlStatementData> getAggregatedSqlStatements(SqlStatementData sqlStatementData, Date fromDate, Date toDate) { StorageIndexQuery query = sqlDataQueryFactory.getAggregatedSqlStatementsQuery(sqlStatementData, fromDate, toDate); return super.executeQuery(query, Aggregators.SQL_STATEMENT_DATA_AGGREGATOR); } /** * {@inheritDoc} */ @Override public List<SqlStatementData> getParameterAggregatedSqlStatements(SqlStatementData sqlStatementData) { return this.getParameterAggregatedSqlStatements(sqlStatementData, null, null); } /** * {@inheritDoc} */ @Override public List<SqlStatementData> getParameterAggregatedSqlStatements(SqlStatementData sqlStatementData, Date fromDate, Date toDate) { StorageIndexQuery query = sqlDataQueryFactory.getAggregatedSqlStatementsQuery(sqlStatementData, fromDate, toDate); query.setSql(sqlStatementData.getSql()); return super.executeQuery(query, Aggregators.SQL_STATEMENT_DATA_PARAMETER_AGGREGATOR); } /** * {@inheritDoc} */ @Override protected IStorageTreeComponent<SqlStatementData> getIndexingTree() { return indexingTree; } /** * @param indexingTree * the indexingTree to set */ public void setIndexingTree(IStorageTreeComponent<SqlStatementData> indexingTree) { this.indexingTree = indexingTree; } /** * @param sqlDataQueryFactory * the sqlDataQueryFactory to set */ public void setSqlDataQueryFactory(SqlStatementDataQueryFactory<StorageIndexQuery> sqlDataQueryFactory) { this.sqlDataQueryFactory = sqlDataQueryFactory; } }