package rocks.inspectit.server.dao.impl; import java.util.Date; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; import rocks.inspectit.server.dao.SqlDataDao; import rocks.inspectit.shared.all.communication.data.SqlStatementData; import rocks.inspectit.shared.all.indexing.IIndexQuery; import rocks.inspectit.shared.cs.indexing.AbstractBranch; import rocks.inspectit.shared.cs.indexing.aggregation.Aggregators; import rocks.inspectit.shared.cs.indexing.query.factory.impl.SqlStatementDataQueryFactory; /** * Implementation of the {@link SqlDataDao} that searches for the SQL statements in the indexing * tree. <br> * The query-Method of {@link AbstractBranch} which uses fork&join is executed, because much SQL- * data is expected and querying with fork&join will be faster.<br> * * @author Ivan Senic * */ @Repository public class BufferSqlDataDaoImpl extends AbstractBufferDataDao<SqlStatementData> implements SqlDataDao { /** * Index query provider. */ @Autowired private SqlStatementDataQueryFactory<IIndexQuery> 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) { IIndexQuery query = sqlDataQueryFactory.getAggregatedSqlStatementsQuery(sqlStatementData, fromDate, toDate); return super.executeQuery(query, Aggregators.SQL_STATEMENT_DATA_AGGREGATOR, true); } /** * {@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) { IIndexQuery query = sqlDataQueryFactory.getAggregatedSqlStatementsQuery(sqlStatementData, fromDate, toDate); return super.executeQuery(query, Aggregators.SQL_STATEMENT_DATA_PARAMETER_AGGREGATOR, true); } }