mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-07 11:32:16 +00:00
Simplified the selection algorithmus
This commit is contained in:
1 parent
f6333e83f7
commit
dddad93ef5
2 files changed
+9
-32
No files matched your search
+1
-2
@@ -41,9 +41,8 @@ public class SelectionCriteriaFactory {
|
||||
return new WindStrengthSelectionCriteria((Collection<WindStrength>) selection);
|
||||
case Year:
|
||||
return new YearSelectionCriteria((Collection<Integer>) selection);
|
||||
default:
|
||||
throw new IllegalArgumentException("Not yet implemented for the given selection type.");
|
||||
}
|
||||
throw new IllegalArgumentException("Not yet implemented for the given selection type.");
|
||||
}
|
||||
|
||||
}
|
||||
+8
-30
@@ -1,14 +1,12 @@
|
||||
package com.sap.sailing.datamining.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.datamining.GPSFixWithContext;
|
||||
import com.sap.sailing.datamining.SelectionContext;
|
||||
import com.sap.sailing.datamining.SelectionCriteria;
|
||||
import com.sap.sailing.datamining.Selector;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.domain.tracking.TrackedRegatta;
|
||||
@@ -28,39 +26,19 @@ public class SelectorImpl implements Selector {
|
||||
for (Regatta regatta : racingEventService.getAllRegattas()) {
|
||||
TrackedRegatta trackedRegatta = racingEventService.getTrackedRegatta(regatta);
|
||||
if (trackedRegatta != null) {
|
||||
SelectionContext context = new SelectionContextImpl(trackedRegatta, null, null);
|
||||
SelectionContext context = new SelectionContextImpl(trackedRegatta, null);
|
||||
if (criteria.matches(context)) {
|
||||
data.addAll(criteria.getDataRetriever(context).retrieveData());
|
||||
continue;
|
||||
}
|
||||
|
||||
data.addAll(selectDataFromRacesOfRegatta(trackedRegatta));
|
||||
}
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
private Collection<GPSFixWithContext> selectDataFromRacesOfRegatta(final TrackedRegatta trackedRegatta) {
|
||||
Collection<GPSFixWithContext> data = new ArrayList<GPSFixWithContext>();
|
||||
for (TrackedRace trackedRace : trackedRegatta.getTrackedRaces()) {
|
||||
SelectionContext context = new SelectionContextImpl(trackedRegatta, trackedRace, null);
|
||||
if (criteria.matches(context)) {
|
||||
data.addAll(criteria.getDataRetriever(context).retrieveData());
|
||||
continue;
|
||||
}
|
||||
|
||||
data.addAll(selectDataFromCompetitorsOfRace(trackedRegatta, trackedRace));
|
||||
}
|
||||
return data;
|
||||
}
|
||||
|
||||
private Collection<GPSFixWithContext> selectDataFromCompetitorsOfRace(final TrackedRegatta trackedRegatta, final TrackedRace trackedRace) {
|
||||
Collection<GPSFixWithContext> data = new ArrayList<GPSFixWithContext>();
|
||||
for (Competitor competitor : trackedRace.getRace().getCompetitors()) {
|
||||
SelectionContext context = new SelectionContextImpl(trackedRegatta, trackedRace, competitor);
|
||||
if (criteria.matches(context)) {
|
||||
data.addAll(criteria.getDataRetriever(context).retrieveData());
|
||||
continue;
|
||||
for (TrackedRace trackedRace : trackedRegatta.getTrackedRaces()) {
|
||||
context = new SelectionContextImpl(trackedRegatta, trackedRace);
|
||||
if (criteria.matches(context)) {
|
||||
data.addAll(criteria.getDataRetriever(context).retrieveData());
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return data;
|
||||
|
||||
Reference in new issue
Block a user