mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-06 12:23:55 +00:00
Fixed the data retriever construction
This commit is contained in:
1 parent
42fefe478b
commit
36b46ca73d
2 files changed
+7
-2
No files matched your search
+1
-1
@@ -2,6 +2,6 @@ package com.sap.sailing.datamining.factories;
|
||||
|
||||
public enum SailingDataRetrievalLevels {
|
||||
|
||||
LeaderboardGroup, RegattaLeaderboard, TrackedLeg, TrackedLegOfCompetitor, GPSFix
|
||||
LeaderboardGroup, RegattaLeaderboard, TrackedRace, TrackedLeg, TrackedLegOfCompetitor, GPSFix
|
||||
|
||||
}
|
||||
+6
-1
@@ -10,11 +10,13 @@ import java.util.concurrent.ThreadPoolExecutor;
|
||||
import com.sap.sailing.datamining.data.HasGPSFixContext;
|
||||
import com.sap.sailing.datamining.data.HasTrackedLegContext;
|
||||
import com.sap.sailing.datamining.data.HasTrackedLegOfCompetitorContext;
|
||||
import com.sap.sailing.datamining.data.HasTrackedRaceContext;
|
||||
import com.sap.sailing.datamining.impl.components.GPSFixRetrievalProcessor;
|
||||
import com.sap.sailing.datamining.impl.components.LeaderboardGroupRetrievalProcessor;
|
||||
import com.sap.sailing.datamining.impl.components.RegattaLeaderboardFilteringRetrievalProcessor;
|
||||
import com.sap.sailing.datamining.impl.components.TrackedLegFilteringRetrievalProcessor;
|
||||
import com.sap.sailing.datamining.impl.components.TrackedLegOfCompetitorFilteringRetrievalProcessor;
|
||||
import com.sap.sailing.datamining.impl.components.TrackedRaceFilteringRetrievalProcessor;
|
||||
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
|
||||
import com.sap.sse.datamining.components.FilterCriteria;
|
||||
@@ -43,7 +45,7 @@ public final class SailingDataRetrieverFactory {
|
||||
@SuppressWarnings("unchecked")
|
||||
public static <DataSourceType, ElementType> Processor<DataSourceType> createRetrievalProcessorChain(SailingDataRetrievalLevels dataRetrievalLevel, Processor<ElementType> groupingProcessor, Map<FunctionDTO, Iterable<?>> filterSelection, FunctionProvider functionProvider) {
|
||||
Processor<?> resultReceiver = groupingProcessor;
|
||||
for (int i = dataRetrievalLevel.ordinal(); i <= 0; i--) {
|
||||
for (int i = dataRetrievalLevel.ordinal(); i >= 0; i--) {
|
||||
resultReceiver = createDataRetrieverFor(SailingDataRetrievalLevels.values()[i], resultReceiver, filterSelection, functionProvider);
|
||||
}
|
||||
return (Processor<DataSourceType>) resultReceiver;
|
||||
@@ -72,6 +74,9 @@ public final class SailingDataRetrieverFactory {
|
||||
case TrackedLegOfCompetitor:
|
||||
Processor<HasTrackedLegOfCompetitorContext> trackedLegOfCompetitorSpecificResultReceiver = (Processor<HasTrackedLegOfCompetitorContext>) resultReceiver;
|
||||
return new TrackedLegOfCompetitorFilteringRetrievalProcessor(executor, Arrays.asList(trackedLegOfCompetitorSpecificResultReceiver), getFilterCriteriaForBaseDataType(HasTrackedLegOfCompetitorContext.class, filterSelection, functionProvider));
|
||||
case TrackedRace:
|
||||
Processor<HasTrackedRaceContext> trackedRaceSpecificResultReceiver = (Processor<HasTrackedRaceContext>) resultReceiver;
|
||||
return new TrackedRaceFilteringRetrievalProcessor(executor, Arrays.asList(trackedRaceSpecificResultReceiver), getFilterCriteriaForBaseDataType(HasTrackedRaceContext.class, filterSelection, functionProvider));
|
||||
}
|
||||
throw new IllegalArgumentException("No data retriever implemented for the given data retrieval level '"
|
||||
+ dataRetrievalLevel + "'");
|
||||
|
||||
Reference in new issue
Block a user