mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-07 21:01:03 +00:00
The selection panels is now able to apply a QueryDefinition
This commit is contained in:
1 parent
c629303777
commit
920e596cfd
14 files changed
+150
-72
No files matched your search
+9
-9
@@ -24,7 +24,7 @@ import com.sap.sailing.datamining.impl.gpsfix.SimpleGPSFixRetriever;
|
||||
import com.sap.sailing.datamining.impl.gpsfix.GroupGPSFixesByDimension;
|
||||
import com.sap.sailing.datamining.shared.AggregatorType;
|
||||
import com.sap.sailing.datamining.shared.DataTypes;
|
||||
import com.sap.sailing.datamining.shared.SharedDimensions;
|
||||
import com.sap.sailing.datamining.shared.SharedDimension;
|
||||
import com.sap.sailing.datamining.shared.QueryDefinition;
|
||||
import com.sap.sailing.datamining.shared.StatisticType;
|
||||
import com.sap.sailing.domain.base.Moving;
|
||||
@@ -87,13 +87,13 @@ public class DataMiningFactory {
|
||||
private static <DataType> Filter<DataType> createDimensionFilter(DataTypes dataType, Map<?, Iterable<?>> selection) {
|
||||
switch (dataType) {
|
||||
case GPSFix:
|
||||
return (Filter<DataType>) createGPSFixDimensionFilter((Map<SharedDimensions, Iterable<?>>) selection);
|
||||
return (Filter<DataType>) createGPSFixDimensionFilter((Map<SharedDimension, Iterable<?>>) selection);
|
||||
}
|
||||
throw new IllegalArgumentException("Not yet implemented for the given data type: "
|
||||
+ dataType.toString());
|
||||
}
|
||||
|
||||
public static Filter<GPSFixWithContext> createGPSFixDimensionFilter(Map<SharedDimensions, Iterable<?>> selection) {
|
||||
public static Filter<GPSFixWithContext> createGPSFixDimensionFilter(Map<SharedDimension, Iterable<?>> selection) {
|
||||
if (selection.isEmpty()) {
|
||||
return createNoFilter();
|
||||
}
|
||||
@@ -101,16 +101,16 @@ public class DataMiningFactory {
|
||||
return createCriteriaFilter(createGPSFixDimensionFilterCriteria(selection));
|
||||
}
|
||||
|
||||
public static FilterCriteria<GPSFixWithContext> createGPSFixDimensionFilterCriteria(Map<SharedDimensions, Iterable<?>> selection) {
|
||||
public static FilterCriteria<GPSFixWithContext> createGPSFixDimensionFilterCriteria(Map<SharedDimension, Iterable<?>> selection) {
|
||||
CompoundFilterCriteria<GPSFixWithContext> compoundFilterCriteria = new AndCompoundFilterCriteria<GPSFixWithContext>();
|
||||
for (Entry<SharedDimensions, Iterable<?>> selectionEntry : selection.entrySet()) {
|
||||
for (Entry<SharedDimension, Iterable<?>> selectionEntry : selection.entrySet()) {
|
||||
FilterCriteria<GPSFixWithContext> criteria = createGPSFixDimensionFilterCriteria(selectionEntry.getKey(), selectionEntry.getValue());
|
||||
compoundFilterCriteria.addCriteria(criteria);
|
||||
}
|
||||
return compoundFilterCriteria;
|
||||
}
|
||||
|
||||
public static <ValueType> FilterCriteria<GPSFixWithContext> createGPSFixDimensionFilterCriteria(SharedDimensions gpsFix, Iterable<?> values) {
|
||||
public static <ValueType> FilterCriteria<GPSFixWithContext> createGPSFixDimensionFilterCriteria(SharedDimension gpsFix, Iterable<?> values) {
|
||||
Dimension<GPSFixWithContext, ValueType> dimension = Dimensions.GPSFix.getDimensionFor(gpsFix);
|
||||
return createDimensionFilterCriteria(dimension, values);
|
||||
}
|
||||
@@ -150,15 +150,15 @@ public class DataMiningFactory {
|
||||
private static <DataType> Grouper<DataType> createByDimensionGrouper(DataTypes dataType, List<?> dimensionsToGroupBy) {
|
||||
switch (dataType) {
|
||||
case GPSFix:
|
||||
return (Grouper<DataType>) createGPSFixByDimensionGrouper((Collection<SharedDimensions>) dimensionsToGroupBy);
|
||||
return (Grouper<DataType>) createGPSFixByDimensionGrouper((Collection<SharedDimension>) dimensionsToGroupBy);
|
||||
}
|
||||
throw new IllegalArgumentException("Not yet implemented for the given data type: "
|
||||
+ dataType.toString());
|
||||
}
|
||||
|
||||
public static <ValueType> Grouper<GPSFixWithContext> createGPSFixByDimensionGrouper(Collection<SharedDimensions> dimensionsToGroupBy) {
|
||||
public static <ValueType> Grouper<GPSFixWithContext> createGPSFixByDimensionGrouper(Collection<SharedDimension> dimensionsToGroupBy) {
|
||||
Collection<Dimension<GPSFixWithContext, ValueType>> dimensions = new LinkedHashSet<Dimension<GPSFixWithContext, ValueType>>();
|
||||
for (SharedDimensions dimensionType : dimensionsToGroupBy) {
|
||||
for (SharedDimension dimensionType : dimensionsToGroupBy) {
|
||||
Dimension<GPSFixWithContext, ValueType> dimension = Dimensions.GPSFix.getDimensionFor(dimensionType);
|
||||
dimensions.add(dimension);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.sap.sailing.datamining;
|
||||
|
||||
import com.sap.sailing.datamining.impl.AbstractDimension;
|
||||
import com.sap.sailing.datamining.shared.SharedDimensions;
|
||||
import com.sap.sailing.datamining.shared.SharedDimension;
|
||||
import com.sap.sailing.domain.common.LegType;
|
||||
|
||||
public class Dimensions {
|
||||
@@ -101,7 +101,7 @@ public class Dimensions {
|
||||
* @return The dimension for the given dimension type. Throws an exception, if the used <code>ValueType</code> doesn't match the <code>ValueType</code> of the returning dimension.
|
||||
*/
|
||||
@SuppressWarnings("unchecked")
|
||||
public static <ValueType> Dimension<GPSFixWithContext, ValueType> getDimensionFor(SharedDimensions dimension) {
|
||||
public static <ValueType> Dimension<GPSFixWithContext, ValueType> getDimensionFor(SharedDimension dimension) {
|
||||
switch (dimension) {
|
||||
case BoatClassName:
|
||||
return (Dimension<GPSFixWithContext, ValueType>) BoatClassName;
|
||||
|
||||
+3
-3
@@ -7,7 +7,7 @@ import com.sap.sailing.datamining.shared.AggregatorType;
|
||||
import com.sap.sailing.datamining.shared.Components.GrouperType;
|
||||
import com.sap.sailing.datamining.shared.DataTypes;
|
||||
import com.sap.sailing.datamining.shared.QueryDefinition;
|
||||
import com.sap.sailing.datamining.shared.SharedDimensions;
|
||||
import com.sap.sailing.datamining.shared.SharedDimension;
|
||||
import com.sap.sailing.datamining.shared.StatisticType;
|
||||
|
||||
public class SmartQueryDefinition implements QueryDefinition {
|
||||
@@ -40,12 +40,12 @@ public class SmartQueryDefinition implements QueryDefinition {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SharedDimensions> getDimensionsToGroupBy() {
|
||||
public List<SharedDimension> getDimensionsToGroupBy() {
|
||||
return queryDefinition.getDimensionsToGroupBy();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<SharedDimensions, Iterable<?>> getSelection() {
|
||||
public Map<SharedDimension, Iterable<?>> getSelection() {
|
||||
return queryDefinition.getSelection();
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -16,8 +16,8 @@ public interface QueryDefinition extends Serializable {
|
||||
|
||||
public String getCustomGrouperScriptText();
|
||||
|
||||
public List<SharedDimensions> getDimensionsToGroupBy();
|
||||
public List<SharedDimension> getDimensionsToGroupBy();
|
||||
|
||||
public Map<SharedDimensions, Iterable<?>> getSelection();
|
||||
public Map<SharedDimension, Iterable<?>> getSelection();
|
||||
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
package com.sap.sailing.datamining.shared;
|
||||
|
||||
public enum SharedDimensions {
|
||||
public enum SharedDimension {
|
||||
RegattaName, RaceName, LegNumber, CourseAreaName, FleetName, BoatClassName, Year, LegType, CompetitorName, SailID, Nationality, WindStrength
|
||||
}
|
||||
+8
-8
@@ -16,8 +16,8 @@ public class SimpleQueryDefinition implements QueryDefinition {
|
||||
private AggregatorType aggregatorType;
|
||||
|
||||
private String customGrouperScriptText;
|
||||
private List<SharedDimensions> dimensionsToGroupBy;
|
||||
private Map<SharedDimensions, Iterable<?>> selectionMappedByDimension;
|
||||
private List<SharedDimension> dimensionsToGroupBy;
|
||||
private Map<SharedDimension, Iterable<?>> selectionMappedByDimension;
|
||||
|
||||
/**
|
||||
* Constructor for the GWT-Serialization. Don't use this!
|
||||
@@ -31,8 +31,8 @@ public class SimpleQueryDefinition implements QueryDefinition {
|
||||
this.aggregatorType = aggregatorType;
|
||||
|
||||
customGrouperScriptText = "";
|
||||
dimensionsToGroupBy = new ArrayList<SharedDimensions>();
|
||||
selectionMappedByDimension = new HashMap<SharedDimensions, Iterable<?>>();
|
||||
dimensionsToGroupBy = new ArrayList<SharedDimension>();
|
||||
selectionMappedByDimension = new HashMap<SharedDimension, Iterable<?>>();
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -56,20 +56,20 @@ public class SimpleQueryDefinition implements QueryDefinition {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<SharedDimensions> getDimensionsToGroupBy() {
|
||||
public List<SharedDimension> getDimensionsToGroupBy() {
|
||||
return dimensionsToGroupBy;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<SharedDimensions, Iterable<?>> getSelection() {
|
||||
public Map<SharedDimension, Iterable<?>> getSelection() {
|
||||
return selectionMappedByDimension;
|
||||
}
|
||||
|
||||
public void appendDimensionToGroupBy(SharedDimensions dimension) {
|
||||
public void appendDimensionToGroupBy(SharedDimension dimension) {
|
||||
dimensionsToGroupBy.add(dimension);
|
||||
}
|
||||
|
||||
public void setSelectionFor(SharedDimensions dimension, Collection<?> selection) {
|
||||
public void setSelectionFor(SharedDimension dimension, Collection<?> selection) {
|
||||
selectionMappedByDimension.put(dimension, selection);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user