mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-04 10:09:42 +00:00
Removed some unnecessary interfaces and generalized grouper and extractor
This commit is contained in:
1 parent
289e6d63e8
commit
9447ea6f20
10 files changed
+45
-58
No files matched your search
+2
-2
@@ -6,7 +6,7 @@ import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import com.sap.sailing.datamining.impl.AverageAggregator;
|
||||
import com.sap.sailing.datamining.impl.GroupByDimension;
|
||||
import com.sap.sailing.datamining.impl.AbstractGrouper;
|
||||
import com.sap.sailing.datamining.impl.QueryImpl;
|
||||
import com.sap.sailing.datamining.impl.SelectorImpl;
|
||||
import com.sap.sailing.datamining.impl.SumAggregator;
|
||||
@@ -35,7 +35,7 @@ public class DataMiningFactory {
|
||||
}
|
||||
|
||||
protected static Grouper createGrouper(Dimension dimension) {
|
||||
return new GroupByDimension(dimension);
|
||||
return new AbstractGrouper(dimension);
|
||||
}
|
||||
|
||||
protected static Extractor createExtractor(StatisticType statisticType) {
|
||||
|
||||
@@ -2,8 +2,10 @@ package com.sap.sailing.datamining;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
public interface Extractor {
|
||||
import com.sap.sailing.domain.confidence.ScalableValue;
|
||||
|
||||
public Collection<Double> extract(Collection<GPSFixWithContext> data);
|
||||
public interface Extractor<DataType, ExtractedType, AveragesTo> {
|
||||
|
||||
public Collection<ScalableValue<ExtractedType, AveragesTo>> extract(Collection<DataType> data);
|
||||
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package com.sap.sailing.datamining;
|
||||
|
||||
public interface GPSFixFilter extends Filter<GPSFixWithContext> {
|
||||
|
||||
}
|
||||
-5
@@ -1,5 +0,0 @@
|
||||
package com.sap.sailing.datamining;
|
||||
|
||||
public interface GPSFixFilterCriteria extends FilterCriteria<GPSFixWithContext> {
|
||||
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package com.sap.sailing.datamining;
|
||||
|
||||
public interface GPSFixRetriever extends DataRetriever<GPSFixWithContext> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.sap.sailing.datamining;
|
||||
|
||||
public interface GroupKey {
|
||||
|
||||
}
|
||||
@@ -3,8 +3,8 @@ package com.sap.sailing.datamining;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
public interface Grouper {
|
||||
public interface Grouper<DataType> {
|
||||
|
||||
public Map<String, Collection<GPSFixWithContext>> group(Collection<GPSFixWithContext> data);
|
||||
public Map<GroupKey, Collection<DataType>> group(Collection<DataType> data);
|
||||
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package com.sap.sailing.datamining.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.datamining.GroupKey;
|
||||
import com.sap.sailing.datamining.Grouper;
|
||||
|
||||
public abstract class AbstractGrouper<DataType> implements Grouper<DataType> {
|
||||
|
||||
@Override
|
||||
public Map<GroupKey, Collection<DataType>> group(Collection<DataType> data) {
|
||||
Map<GroupKey, Collection<DataType>> groupedData = new HashMap<GroupKey, Collection<DataType>>();
|
||||
for (DataType dataEntry : data) {
|
||||
GroupKey key = getGroupKeyFor(dataEntry);
|
||||
if (key != null) {
|
||||
if (!groupedData.containsKey(key)) {
|
||||
groupedData.put(key, new ArrayList<DataType>());
|
||||
}
|
||||
groupedData.get(key).add(dataEntry);
|
||||
}
|
||||
}
|
||||
return groupedData;
|
||||
}
|
||||
|
||||
protected abstract GroupKey getGroupKeyFor(DataType dataEntry);
|
||||
|
||||
}
|
||||
+2
-2
@@ -4,8 +4,8 @@ import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.datamining.DataRetriever;
|
||||
import com.sap.sailing.datamining.GPSFixContext;
|
||||
import com.sap.sailing.datamining.GPSFixRetriever;
|
||||
import com.sap.sailing.datamining.GPSFixWithContext;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
@@ -21,7 +21,7 @@ import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
|
||||
public class GPSFixRetrieverImpl implements GPSFixRetriever {
|
||||
public class GPSFixRetrieverImpl implements DataRetriever<GPSFixWithContext> {
|
||||
|
||||
|
||||
@Override
|
||||
|
||||
-35
@@ -1,35 +0,0 @@
|
||||
package com.sap.sailing.datamining.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.datamining.GPSFixWithContext;
|
||||
import com.sap.sailing.datamining.Grouper;
|
||||
import com.sap.sailing.datamining.shared.Dimension;
|
||||
|
||||
public class GroupByDimension implements Grouper {
|
||||
|
||||
private Dimension dimension;
|
||||
|
||||
public GroupByDimension(Dimension dimension) {
|
||||
this.dimension = dimension;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Collection<GPSFixWithContext>> group(Collection<GPSFixWithContext> data) {
|
||||
Map<String, Collection<GPSFixWithContext>> groupedData = new HashMap<String, Collection<GPSFixWithContext>>();
|
||||
for (GPSFixWithContext gpsFix : data) {
|
||||
String dimensionValueAsString = gpsFix.getStringRepresentation(dimension);
|
||||
if (dimensionValueAsString != null) {
|
||||
if (!groupedData.containsKey(dimensionValueAsString)) {
|
||||
groupedData.put(dimensionValueAsString, new ArrayList<GPSFixWithContext>());
|
||||
}
|
||||
groupedData.get(dimensionValueAsString).add(gpsFix);
|
||||
}
|
||||
}
|
||||
return groupedData;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user