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.TimerDataDao; import rocks.inspectit.shared.all.communication.data.TimerData; 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.TimerDataQueryFactory; /** * Implementation of {@link TimerData} that searches for timer data in buffer. <br> * The query-Method of {@link AbstractBranch} without fork&join is executed, because much timer-data * is expected and querying with fork&join will be faster.<br> * * @author Ivan Senic * */ @Repository public class BufferTimerDataDaoImpl extends AbstractBufferDataDao<TimerData> implements TimerDataDao { /** * Index query factory. */ @Autowired private TimerDataQueryFactory<IIndexQuery> timerDataQueryFactory; /** * {@inheritDoc} */ @Override public List<TimerData> getAggregatedTimerData(TimerData timerData) { return this.getAggregatedTimerData(timerData, null, null); } /** * {@inheritDoc} */ @Override public List<TimerData> getAggregatedTimerData(TimerData timerData, Date fromDate, Date toDate) { IIndexQuery query = timerDataQueryFactory.getAggregatedTimerDataQuery(timerData, fromDate, toDate); return super.executeQuery(query, Aggregators.TIMER_DATA_AGGREGATOR, true); } }