mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-08 21:30:57 +00:00
Implemented a workflow to enrich the result with additional data
This was problematic, because a processor can have multiple result receivers and every result receiver could add additional data. So I implemented an additional result data builder, that handles the conflicts, when a member of the additional data is set multiple times. There's a remaining problem with the StringMessagesForTests, because it isn't as rich as the string messages used in the productive environment. When this is resolved, the query tests should be successful.
This commit is contained in:
1 parent
4c7a1706d6
commit
0350a54dec
34 files changed
+426
-81
No files matched your search
+17
@@ -0,0 +1,17 @@
|
||||
package com.sap.sse.datamining.shared;
|
||||
|
||||
public interface AdditionalResultData {
|
||||
|
||||
public int getRetrievedDataAmount();
|
||||
|
||||
public int getFilteredDataAmount();
|
||||
|
||||
public double getCalculationTimeInSeconds();
|
||||
|
||||
public String getResultSignifier();
|
||||
|
||||
public Unit getUnit();
|
||||
|
||||
public int getValueDecimals();
|
||||
|
||||
}
|
||||
+1
-1
@@ -4,7 +4,7 @@ import java.io.Serializable;
|
||||
import java.util.Map;
|
||||
|
||||
public interface QueryResult<AggregatedType> extends Serializable {
|
||||
|
||||
|
||||
int getRetrievedDataAmount();
|
||||
public int getFilteredDataAmount();
|
||||
public double getCalculationTimeInSeconds();
|
||||
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
package com.sap.sse.datamining.shared.impl;
|
||||
|
||||
import com.sap.sse.datamining.shared.AdditionalResultData;
|
||||
import com.sap.sse.datamining.shared.Unit;
|
||||
|
||||
public class AdditionalResultDataImpl implements AdditionalResultData {
|
||||
|
||||
private final int retrievedDataAmount;
|
||||
private int filteredDataAmount;
|
||||
private String resultSignifier;
|
||||
private Unit unit;
|
||||
private int valueDecimals;
|
||||
private long calculationTimeInNanos;
|
||||
|
||||
public AdditionalResultDataImpl(int retrievedDataAmount, int filteredDataAmount, String resultSignifier, Unit unit, int valueDecimals,
|
||||
long calculationTimeInNanos) {
|
||||
this.retrievedDataAmount = retrievedDataAmount;
|
||||
this.filteredDataAmount = filteredDataAmount;
|
||||
this.resultSignifier = resultSignifier;
|
||||
this.unit = unit;
|
||||
this.valueDecimals = valueDecimals;
|
||||
this.calculationTimeInNanos = calculationTimeInNanos;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRetrievedDataAmount() {
|
||||
return retrievedDataAmount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getFilteredDataAmount() {
|
||||
return filteredDataAmount;
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getCalculationTimeInSeconds() {
|
||||
return calculationTimeInNanos;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getResultSignifier() {
|
||||
return resultSignifier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Unit getUnit() {
|
||||
return unit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getValueDecimals() {
|
||||
return valueDecimals;
|
||||
}
|
||||
|
||||
}
|
||||
+11
-25
@@ -3,6 +3,7 @@ package com.sap.sse.datamining.shared.impl;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sse.datamining.shared.AdditionalResultData;
|
||||
import com.sap.sse.datamining.shared.GroupKey;
|
||||
import com.sap.sse.datamining.shared.QueryResult;
|
||||
import com.sap.sse.datamining.shared.Unit;
|
||||
@@ -10,15 +11,8 @@ import com.sap.sse.datamining.shared.Unit;
|
||||
public class QueryResultImpl<AggregatedType> implements QueryResult<AggregatedType> {
|
||||
private static final long serialVersionUID = -8347731622150585715L;
|
||||
|
||||
private int retrievedDataAmount;
|
||||
private int filteredDataAmount;
|
||||
private long calculationTimeInNanos;
|
||||
|
||||
private String resultSignifier;
|
||||
private Unit unit;
|
||||
private int valueDecimals;
|
||||
|
||||
private Map<GroupKey, AggregatedType> results;
|
||||
private AdditionalResultData additionalData;
|
||||
|
||||
/**
|
||||
* Constructor for the GWT-Serialization. Don't use this!
|
||||
@@ -26,32 +20,24 @@ public class QueryResultImpl<AggregatedType> implements QueryResult<AggregatedTy
|
||||
@Deprecated
|
||||
QueryResultImpl() { }
|
||||
|
||||
public QueryResultImpl(int retrievedDataAmount, int filteredDataAmount, String resultSiginifier, Unit unit, int valueDecimals) {
|
||||
this.retrievedDataAmount = retrievedDataAmount;
|
||||
this.filteredDataAmount = filteredDataAmount;
|
||||
results = new HashMap<GroupKey, AggregatedType>();
|
||||
this.resultSignifier = resultSiginifier;
|
||||
this.unit = unit;
|
||||
this.valueDecimals = valueDecimals;
|
||||
public QueryResultImpl(Map<GroupKey, AggregatedType> results, AdditionalResultData additionalData) {
|
||||
this.results = new HashMap<GroupKey, AggregatedType>(results);
|
||||
this.additionalData = additionalData;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getRetrievedDataAmount() {
|
||||
return retrievedDataAmount;
|
||||
return additionalData.getRetrievedDataAmount();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getFilteredDataAmount() {
|
||||
return filteredDataAmount;
|
||||
return additionalData.getFilteredDataAmount();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getCalculationTimeInSeconds() {
|
||||
return calculationTimeInNanos / 1000000000.0;
|
||||
}
|
||||
|
||||
public void setCalculationTimeInNanos(long calculationTimeInNanos) {
|
||||
this.calculationTimeInNanos = calculationTimeInNanos;
|
||||
return additionalData.getCalculationTimeInSeconds();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -61,17 +47,17 @@ public class QueryResultImpl<AggregatedType> implements QueryResult<AggregatedTy
|
||||
|
||||
@Override
|
||||
public String getResultSignifier() {
|
||||
return resultSignifier;
|
||||
return additionalData.getResultSignifier();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Unit getUnit() {
|
||||
return unit;
|
||||
return additionalData.getUnit();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getValueDecimals() {
|
||||
return valueDecimals;
|
||||
return additionalData.getValueDecimals();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in new issue
Block a user