Added the retrieved data amount to the query result

This commit is contained in:
Lennart Hensler committed 2013-08-18 12:08:36 +02:00
1 parent c39db1e707
commit ba555d7143
5 files changed
+21 -12

No files matched your search

@@ -36,8 +36,9 @@ public class QueryImpl<DataType, ExtractedType, AggregatedType> implements Query
public QueryResult<AggregatedType> run(RacingEventService racingEventService) {
final long startTime = System.nanoTime();
Collection<DataType> filteredData = filter.filter(retriever.retrieveData(racingEventService));
QueryResultImpl<AggregatedType> result = new QueryResultImpl<AggregatedType>(filteredData.size(), createResultSignifier());
Collection<DataType> retrievedData = retriever.retrieveData(racingEventService);
Collection<DataType> filteredData = filter.filter(retrievedData);
QueryResultImpl<AggregatedType> result = new QueryResultImpl<AggregatedType>(retrievedData.size(), filteredData.size(), createResultSignifier());
Map<GroupKey, Collection<DataType>> groupedFixes = grouper.group(filteredData);
for (Entry<GroupKey, Collection<DataType>> groupEntry : groupedFixes.entrySet()) {
Collection<ExtractedType> extractedData = extractor.extract(groupEntry.getValue());
@@ -5,8 +5,9 @@ import java.util.Map;
public interface QueryResult<AggregatedType> extends Serializable {
public int getDataSize();
int getRetrievedDataAmount();
public int getFilteredDataAmount();
public double getCalculationTimeInSeconds();
@@ -5,8 +5,9 @@ import java.util.Map;
public class QueryResultImpl<AggregatedType> implements QueryResult<AggregatedType> {
private static final long serialVersionUID = 351213515082955565L;
private int dataSize;
private int retrievedDataAmount;
private int filteredDataAmount;
private long calculationTimeInNanos;
private String resultSignifier;
@@ -18,15 +19,21 @@ public class QueryResultImpl<AggregatedType> implements QueryResult<AggregatedTy
@Deprecated
QueryResultImpl() { }
public QueryResultImpl(int dataSize, String resultSiginifier) {
this.dataSize = dataSize;
public QueryResultImpl(int retrievedDataAmount, int filteredDataAmount, String resultSiginifier) {
this.retrievedDataAmount = retrievedDataAmount;
this.filteredDataAmount = retrievedDataAmount;
results = new HashMap<GroupKey, AggregatedType>();
this.resultSignifier = resultSiginifier;
}
@Override
public int getDataSize() {
return dataSize;
public int getRetrievedDataAmount() {
return retrievedDataAmount;
}
@Override
public int getFilteredDataAmount() {
return filteredDataAmount;
}
@Override
@@ -84,7 +84,7 @@ public abstract class AbstractQueryBenchmarkPanel<DimensionType> extends FlowPan
private void updateResults(final ClientBenchmarkData<DimensionType> benchmarkData, double overallTimeInSeconds, QueryResult<Integer> result) {
resultsChart.addResult(new QueryBenchmarkResult(stringMessages.runAsSubstantive() + " " + benchmarkData.getCurrentRun(),
result.getDataSize(), result.getCalculationTimeInSeconds(), overallTimeInSeconds));
result.getFilteredDataAmount(), result.getCalculationTimeInSeconds(), overallTimeInSeconds));
if (benchmarkData.isFinished()) {
benchmarkStatusLabel.setText(" | " + stringMessages.done());
@@ -67,7 +67,7 @@ public class QueryResultsChart extends SimplePanel {
}
private void updateChartSubtitle(QueryResult<Integer> result) {
chart.setChartSubtitle(new ChartSubtitle().setText(stringMessages.queryResultsChartSubtitle(result.getDataSize(), result.getCalculationTimeInSeconds())));
chart.setChartSubtitle(new ChartSubtitle().setText(stringMessages.queryResultsChartSubtitle(result.getFilteredDataAmount(), result.getCalculationTimeInSeconds())));
//This is needed, so that the subtitle is updated. Otherwise the text would stay empty
this.setWidget(null);
this.setWidget(chart);