From dddad93ef5bbaf876b6ba0763ea2c26a0d247ac0 Mon Sep 17 00:00:00 2001 From: Lennart Hensler Date: Mon, 29 Jul 2013 16:06:40 +0200 Subject: [PATCH] Simplified the selection algorithmus --- .../datamining/SelectionCriteriaFactory.java | 3 +- .../sailing/datamining/impl/SelectorImpl.java | 38 ++++--------------- 2 files changed, 9 insertions(+), 32 deletions(-) diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SelectionCriteriaFactory.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SelectionCriteriaFactory.java index c9cb7351a86..4f20f37dcdf 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SelectionCriteriaFactory.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SelectionCriteriaFactory.java @@ -41,9 +41,8 @@ public class SelectionCriteriaFactory { return new WindStrengthSelectionCriteria((Collection) selection); case Year: return new YearSelectionCriteria((Collection) selection); - default: - throw new IllegalArgumentException("Not yet implemented for the given selection type."); } + throw new IllegalArgumentException("Not yet implemented for the given selection type."); } } diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/SelectorImpl.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/SelectorImpl.java index 47b5c121776..839b908796c 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/SelectorImpl.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/SelectorImpl.java @@ -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 selectDataFromRacesOfRegatta(final TrackedRegatta trackedRegatta) { - Collection data = new ArrayList(); - 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 selectDataFromCompetitorsOfRace(final TrackedRegatta trackedRegatta, final TrackedRace trackedRace) { - Collection data = new ArrayList(); - 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;