Merge branch 'dataMining' into polars

Conflicts:
	java/com.sap.sse.datamining/src/com/sap/sse/datamining/impl/components/SimpleDataRetrieverChainBuilder.java
	java/com.sap.sse.datamining/src/com/sap/sse/datamining/impl/components/SimpleDataRetrieverChainDefinition.java
This commit is contained in:
Lennart Hensler committed 2015-09-16 15:32:22 +02:00
commit 9a4d340362
138 files changed
+1100 -767

No files matched your search

@@ -13,6 +13,7 @@ Require-Bundle: com.sap.sailing.domain,
com.sap.sailing.domain.common,
com.sap.sailing.datamining.shared,
com.sap.sse.datamining,
com.sap.sse.datamining.annotations;bundle-version="1.0.0",
com.sap.sse.datamining.shared,
com.sap.sse,
com.sap.sse.common,
@@ -91,7 +91,7 @@ public class Activator extends AbstractDataMiningActivator implements DataMining
}
@Override
public Iterable<DataRetrieverChainDefinition<?, ?, ?>> getDataRetrieverChainDefinitions() {
public Iterable<DataRetrieverChainDefinition<?, ?>> getDataRetrieverChainDefinitions() {
return dataRetrieverChainDefinitions.getDataRetrieverChainDefinitions();
}
@@ -24,57 +24,55 @@ import com.sap.sailing.datamining.impl.data.LeaderboardGroupWithContext;
import com.sap.sailing.server.RacingEventService;
import com.sap.sse.datamining.components.DataRetrieverChainDefinition;
import com.sap.sse.datamining.impl.components.SimpleDataRetrieverChainDefinition;
import com.sap.sse.datamining.impl.components.SimpleDataRetrieverChainDefinition.EmptySettings;
public class SailingDataRetrievalChainDefinitions {
private final Collection<DataRetrieverChainDefinition<?, ?, ?>> dataRetrieverChainDefinitions;
private final Collection<DataRetrieverChainDefinition<?, ?>> dataRetrieverChainDefinitions;
@SuppressWarnings("rawtypes")
public SailingDataRetrievalChainDefinitions() {
dataRetrieverChainDefinitions = new ArrayList<>();
final DataRetrieverChainDefinition<RacingEventService, HasLeaderboardContext, EmptySettings> leaderboardRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>(
final DataRetrieverChainDefinition<RacingEventService, HasLeaderboardContext> leaderboardRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>(
RacingEventService.class, HasLeaderboardContext.class, "LeaderboardSailingDomainRetrieverChain");
leaderboardRetrieverChainDefinition.startWith(LeaderboardGroupRetrievalProcessor.class, LeaderboardGroupWithContext.class, "LeaderboardGroup");
leaderboardRetrieverChainDefinition.endWith(LeaderboardGroupRetrievalProcessor.class, LeaderboardRetrievalProcessor.class,
HasLeaderboardContext.class, "Leaderboard");
final DataRetrieverChainDefinition<RacingEventService, HasRaceResultOfCompetitorContext, EmptySettings> raceResultOfCompetitorRetrieverChainDefinition =
final DataRetrieverChainDefinition<RacingEventService, HasRaceResultOfCompetitorContext> raceResultOfCompetitorRetrieverChainDefinition =
new SimpleDataRetrieverChainDefinition<>(leaderboardRetrieverChainDefinition, HasRaceResultOfCompetitorContext.class, "RaceResultSailingDomainRetrieverChain");
raceResultOfCompetitorRetrieverChainDefinition.endWith(LeaderboardRetrievalProcessor.class, CompetitorOfRaceInLeaderboardRetrievalProcessor.class, HasRaceResultOfCompetitorContext.class, "Competitor");
dataRetrieverChainDefinitions.add(raceResultOfCompetitorRetrieverChainDefinition);
final DataRetrieverChainDefinition<RacingEventService, HasTrackedRaceContext, EmptySettings> trackedRaceRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>(
final DataRetrieverChainDefinition<RacingEventService, HasTrackedRaceContext> trackedRaceRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>(
leaderboardRetrieverChainDefinition, HasTrackedRaceContext.class, "RaceSailingDomainRetrieverChain");
trackedRaceRetrieverChainDefinition.endWith(LeaderboardRetrievalProcessor.class, TrackedRaceRetrievalProcessor.class,
HasTrackedRaceContext.class, "Race");
final DataRetrieverChainDefinition<RacingEventService, HasMarkPassingContext, EmptySettings> markPassingRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>(
final DataRetrieverChainDefinition<RacingEventService, HasMarkPassingContext> markPassingRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>(
trackedRaceRetrieverChainDefinition, HasMarkPassingContext.class, "MarkPassingSailingDomainRetrieverChain");
markPassingRetrieverChainDefinition.endWith(TrackedRaceRetrievalProcessor.class, MarkPassingRetrievalProcessor.class, HasMarkPassingContext.class, "MarkPassing");
dataRetrieverChainDefinitions.add(markPassingRetrieverChainDefinition);
final DataRetrieverChainDefinition<RacingEventService, HasRaceOfCompetitorContext, EmptySettings> raceOfCompetitorRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>(
final DataRetrieverChainDefinition<RacingEventService, HasRaceOfCompetitorContext> raceOfCompetitorRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>(
trackedRaceRetrieverChainDefinition, HasRaceOfCompetitorContext.class, "RaceOfCompetitorSailingDomainRetrieverChain");
raceOfCompetitorRetrieverChainDefinition.endWith(TrackedRaceRetrievalProcessor.class, RaceOfCompetitorRetrievalProcessor.class, HasRaceOfCompetitorContext.class, "Competitor");
dataRetrieverChainDefinitions.add(raceOfCompetitorRetrieverChainDefinition);
final DataRetrieverChainDefinition<RacingEventService, HasTrackedLegOfCompetitorContext, EmptySettings> legOfCompetitorRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>(
final DataRetrieverChainDefinition<RacingEventService, HasTrackedLegOfCompetitorContext> legOfCompetitorRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>(
trackedRaceRetrieverChainDefinition, HasTrackedLegOfCompetitorContext.class, "LegSailingDomainRetrieverChain");
legOfCompetitorRetrieverChainDefinition.addAfter(TrackedRaceRetrievalProcessor.class, TrackedLegRetrievalProcessor.class, HasTrackedLegContext.class, "Leg");
legOfCompetitorRetrieverChainDefinition.endWith(TrackedLegRetrievalProcessor.class, TrackedLegOfCompetitorRetrievalProcessor.class,
HasTrackedLegOfCompetitorContext.class, "LegOfCompetitor");
dataRetrieverChainDefinitions.add(legOfCompetitorRetrieverChainDefinition);
final DataRetrieverChainDefinition<RacingEventService, HasGPSFixContext, EmptySettings> gpsFixRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>(
final DataRetrieverChainDefinition<RacingEventService, HasGPSFixContext> gpsFixRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>(
legOfCompetitorRetrieverChainDefinition, HasGPSFixContext.class, "GPSFixSailingDomainRetrieverChain");
gpsFixRetrieverChainDefinition.endWith(TrackedLegOfCompetitorRetrievalProcessor.class, GPSFixRetrievalProcessor.class,
HasGPSFixContext.class, "GpsFix");
dataRetrieverChainDefinitions.add(gpsFixRetrieverChainDefinition);
}
public Iterable<DataRetrieverChainDefinition<?, ?, ?>> getDataRetrieverChainDefinitions() {
public Iterable<DataRetrieverChainDefinition<?, ?>> getDataRetrieverChainDefinitions() {
return dataRetrieverChainDefinitions;
}
@@ -3,8 +3,8 @@ package com.sap.sailing.datamining.data;
import java.util.Locale;
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Connector;
import com.sap.sse.datamining.annotations.Dimension;
import com.sap.sse.datamining.shared.impl.dto.ClusterDTO;
import com.sap.sse.i18n.ResourceBundleStringMessages;
@@ -2,7 +2,7 @@ package com.sap.sailing.datamining.data;
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
import com.sap.sailing.domain.polars.PolarDataService;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.annotations.Connector;
public interface HasLeaderboardGroupContext {
@@ -4,8 +4,8 @@ import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.common.NoWindException;
import com.sap.sailing.domain.common.Speed;
import com.sap.sailing.domain.tracking.MarkPassing;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Connector;
import com.sap.sse.datamining.annotations.Dimension;
public interface HasMarkPassingContext {
@@ -3,9 +3,9 @@ package com.sap.sailing.datamining.data;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.common.Distance;
import com.sap.sailing.domain.common.Speed;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.shared.annotations.Statistic;
import com.sap.sse.datamining.shared.data.Unit;
import com.sap.sse.datamining.annotations.Connector;
import com.sap.sse.datamining.annotations.Statistic;
import com.sap.sse.datamining.annotations.data.Unit;
public interface HasRaceOfCompetitorContext {
@@ -1,9 +1,9 @@
package com.sap.sailing.datamining.data;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.shared.annotations.Statistic;
import com.sap.sse.datamining.annotations.Connector;
import com.sap.sse.datamining.annotations.Dimension;
import com.sap.sse.datamining.annotations.Statistic;
public interface HasRaceResultOfCompetitorContext {
@@ -2,8 +2,8 @@ package com.sap.sailing.datamining.data;
import com.sap.sailing.domain.common.LegType;
import com.sap.sailing.domain.tracking.TrackedLeg;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Connector;
import com.sap.sse.datamining.annotations.Dimension;
public interface HasTrackedLegContext {
@@ -3,9 +3,9 @@ package com.sap.sailing.datamining.data;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.common.Distance;
import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.shared.annotations.Statistic;
import com.sap.sse.datamining.shared.data.Unit;
import com.sap.sse.datamining.annotations.Connector;
import com.sap.sse.datamining.annotations.Statistic;
import com.sap.sse.datamining.annotations.data.Unit;
public interface HasTrackedLegOfCompetitorContext {
@@ -6,8 +6,8 @@ import com.sap.sailing.domain.base.Fleet;
import com.sap.sailing.domain.base.RaceDefinition;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Connector;
import com.sap.sse.datamining.annotations.Dimension;
public interface HasTrackedRaceContext {
@@ -24,6 +24,6 @@ Export-Package: com.sap.sailing.domain.common,
com.sap.sailing.domain.common.trackfiles,
com.sap.sailing.domain.common.tracking,
com.sap.sailing.domain.common.tracking.impl
Require-Bundle: com.sap.sse.datamining.shared,
com.sap.sse.common,
com.sap.sse.security.common
Require-Bundle: com.sap.sse.common,
com.sap.sse.security.common,
com.sap.sse.datamining.annotations;bundle-version="1.0.0"
@@ -1,6 +1,6 @@
package com.sap.sailing.domain.common;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.annotations.Connector;
public interface Moving {
@Connector(messageKey="Speed")
@@ -4,8 +4,8 @@ import java.io.Serializable;
import com.sap.sse.common.Duration;
import com.sap.sse.common.TimePoint;
import com.sap.sse.datamining.shared.annotations.Statistic;
import com.sap.sse.datamining.shared.data.Unit;
import com.sap.sse.datamining.annotations.Statistic;
import com.sap.sse.datamining.annotations.data.Unit;
/**
* A speed, convertible in various units of measure. Can be negative.
@@ -6,9 +6,9 @@ Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: SAP
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Require-Bundle: com.sap.sailing.domain.common,
com.sap.sse.datamining.shared,
com.sap.sse.common,
com.sap.sse.shared.android
com.sap.sse.shared.android,
com.sap.sse.datamining.annotations;bundle-version="1.0.0"
Export-Package: com.sap.sailing.domain.abstractlog,
com.sap.sailing.domain.abstractlog.impl,
com.sap.sailing.domain.abstractlog.race,
@@ -1,7 +1,7 @@
package com.sap.sailing.domain.base;
import com.sap.sse.common.Named;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Dimension;
public interface Boat extends Named {
BoatClass getBoatClass();
@@ -8,7 +8,7 @@ import com.sap.sse.common.Duration;
import com.sap.sse.common.IsManagedByCache;
import com.sap.sse.common.Named;
import com.sap.sse.common.WithID;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.annotations.Connector;
public interface Competitor extends Named, WithID, IsManagedByCache<SharedDomainFactory> {
@Connector(messageKey="Team", ordinal=9)
@@ -3,7 +3,7 @@ package com.sap.sailing.domain.base;
import com.sap.sse.common.CountryCode;
import com.sap.sse.common.IsManagedByCache;
import com.sap.sse.common.Named;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Dimension;
public interface Nationality extends Named, IsManagedByCache<SharedDomainFactory> {
@Dimension(messageKey="Acronym")
@@ -1,6 +1,6 @@
package com.sap.sailing.domain.base;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.annotations.Connector;
public interface WithNationality {
@Connector(messageKey="Nationality", ordinal=8)
+7
View File
@@ -337,6 +337,13 @@ Computes leaderboard information for sailing races and offers RESTful APIs to al
version="0.0.0"
unpack="false"/>
<plugin
id="com.sap.sse.datamining.annotations"
download-size="0"
install-size="0"
version="0.0.0"
unpack="false"/>
<plugin
id="com.sap.sse.datamining.shared"
download-size="0"
@@ -22,21 +22,22 @@ public interface DataMiningService extends RemoteService {
Date getComponentsChangedTimepoint();
HashSet<FunctionDTO> getAllStatistics(String localeInfoName);
HashSet<FunctionDTO> getStatisticsFor(DataRetrieverChainDefinitionDTO<SerializableSettings> retrieverChainDefinition, String localeInfoName);
HashSet<FunctionDTO> getStatisticsFor(DataRetrieverChainDefinitionDTO retrieverChainDefinition, String localeInfoName);
HashSet<AggregationProcessorDefinitionDTO> getAggregatorDefinitionsFor(FunctionDTO extractionFunction, String localeInfoName);
HashSet<FunctionDTO> getDimensionsFor(FunctionDTO statisticToCalculate, String localeInfoName);
HashMap<DataRetrieverLevelDTO, HashSet<FunctionDTO>> getDimensionsMappedByLevelFor(
DataRetrieverChainDefinitionDTO<SerializableSettings> dataRetrieverChainDefinitionDTO, String localeInfoName);
DataRetrieverChainDefinitionDTO dataRetrieverChainDefinitionDTO, String localeInfoName);
HashMap<DataRetrieverLevelDTO, HashSet<FunctionDTO>> getReducedDimensionsMappedByLevelFor(
DataRetrieverChainDefinitionDTO<SerializableSettings> dataRetrieverChainDefinitionDTO, String localeInfoName);
DataRetrieverChainDefinitionDTO dataRetrieverChainDefinitionDTO, String localeInfoName);
ArrayList<DataRetrieverChainDefinitionDTO<SerializableSettings>> getDataRetrieverChainDefinitions(String localeName);
ArrayList<DataRetrieverChainDefinitionDTO<SerializableSettings>> getDataRetrieverChainDefinitionsFor(FunctionDTO statisticToCalculate, String localeInfoName);
ArrayList<DataRetrieverChainDefinitionDTO> getDataRetrieverChainDefinitions(String localeName);
ArrayList<DataRetrieverChainDefinitionDTO> getDataRetrieverChainDefinitionsFor(FunctionDTO statisticToCalculate, String localeInfoName);
QueryResultDTO<HashSet<Object>> getDimensionValuesFor(DataMiningSession session, DataRetrieverChainDefinitionDTO<SerializableSettings> dataRetrieverChainDefinitionDTO, DataRetrieverLevelDTO retrieverLevel,
HashSet<FunctionDTO> dimensionDTOs, HashMap<DataRetrieverLevelDTO, HashMap<FunctionDTO, HashSet<? extends Serializable>>> filterSelectionDTO, String localeInfoName);
QueryResultDTO<HashSet<Object>> getDimensionValuesFor(DataMiningSession session, DataRetrieverChainDefinitionDTO dataRetrieverChainDefinitionDTO, DataRetrieverLevelDTO retrieverLevel,
HashSet<FunctionDTO> dimensionDTOs, HashMap<DataRetrieverLevelDTO, SerializableSettings> retrieverSettings,
HashMap<DataRetrieverLevelDTO, HashMap<FunctionDTO, HashSet<? extends Serializable>>> filterSelectionDTO, String localeInfoName);
<ResultType> QueryResultDTO<ResultType> runQuery(DataMiningSession session, StatisticQueryDefinitionDTO queryDefinition);
@@ -23,24 +23,25 @@ public interface DataMiningServiceAsync {
public void getComponentsChangedTimepoint(AsyncCallback<Date> asyncCallback);
void getAllStatistics(String localeInfoName, AsyncCallback<HashSet<FunctionDTO>> callback);
void getStatisticsFor(DataRetrieverChainDefinitionDTO<?> currentRetrieverChainDefinition, String localeName,
void getStatisticsFor(DataRetrieverChainDefinitionDTO currentRetrieverChainDefinition, String localeName,
AsyncCallback<HashSet<FunctionDTO>> asyncCallback);
void getAggregatorDefinitionsFor(FunctionDTO extractionFunction, String localeInfoName,
AsyncCallback<HashSet<AggregationProcessorDefinitionDTO>> asyncCallback);
void getDimensionsFor(FunctionDTO statisticToCalculate, String localeInfoName, AsyncCallback<HashSet<FunctionDTO>> callback);
void getDimensionsMappedByLevelFor(DataRetrieverChainDefinitionDTO<SerializableSettings> dataRetrieverChainDefinitionDTO, String localeInfoName,
void getDimensionsMappedByLevelFor(DataRetrieverChainDefinitionDTO dataRetrieverChainDefinitionDTO, String localeInfoName,
AsyncCallback<HashMap<DataRetrieverLevelDTO, HashSet<FunctionDTO>>> callback);
public void getReducedDimensionsMappedByLevelFor(DataRetrieverChainDefinitionDTO<SerializableSettings> dataRetrieverChainDefinitionDTO, String localeInfoName,
public void getReducedDimensionsMappedByLevelFor(DataRetrieverChainDefinitionDTO dataRetrieverChainDefinitionDTO, String localeInfoName,
AsyncCallback<HashMap<DataRetrieverLevelDTO, HashSet<FunctionDTO>>> callback);
void getDataRetrieverChainDefinitions(String localeInfoName, AsyncCallback<ArrayList<DataRetrieverChainDefinitionDTO<SerializableSettings>>> asyncCallback);
void getDataRetrieverChainDefinitions(String localeInfoName, AsyncCallback<ArrayList<DataRetrieverChainDefinitionDTO>> asyncCallback);
void getDataRetrieverChainDefinitionsFor(FunctionDTO statisticToCalculate, String localeInfoName,
AsyncCallback<ArrayList<DataRetrieverChainDefinitionDTO<SerializableSettings>>> callback);
AsyncCallback<ArrayList<DataRetrieverChainDefinitionDTO>> callback);
void getDimensionValuesFor(DataMiningSession session, DataRetrieverChainDefinitionDTO<SerializableSettings> dataRetrieverChainDefinitionDTO, DataRetrieverLevelDTO retrieverLevel,
HashSet<FunctionDTO> dimensionDTOs, HashMap<DataRetrieverLevelDTO, HashMap<FunctionDTO, HashSet<? extends Serializable>>> filterSelectionDTO,
void getDimensionValuesFor(DataMiningSession session, DataRetrieverChainDefinitionDTO dataRetrieverChainDefinitionDTO, DataRetrieverLevelDTO retrieverLevel,
HashSet<FunctionDTO> dimensionDTOs, HashMap<DataRetrieverLevelDTO, SerializableSettings> retrieverSettings,
HashMap<DataRetrieverLevelDTO, HashMap<FunctionDTO, HashSet<? extends Serializable>>> filterSelectionDTO,
String localeInfoName, AsyncCallback<QueryResultDTO<HashSet<Object>>> callback);
<ResultType> void runQuery(DataMiningSession session, StatisticQueryDefinitionDTO queryDefinition, AsyncCallback<QueryResultDTO<ResultType>> callback);
@@ -1,10 +1,9 @@
package com.sap.sailing.gwt.ui.datamining;
import com.sap.sse.common.settings.SerializableSettings;
import com.sap.sse.datamining.shared.impl.dto.DataRetrieverChainDefinitionDTO;
public interface DataRetrieverChainDefinitionChangedListener {
public void dataRetrieverChainDefinitionChanged(DataRetrieverChainDefinitionDTO<SerializableSettings> dataRetrieverChainDefinitionDTO);
public void dataRetrieverChainDefinitionChanged(DataRetrieverChainDefinitionDTO dataRetrieverChainDefinitionDTO);
}
@@ -1,15 +1,21 @@
package com.sap.sailing.gwt.ui.datamining;
import java.util.HashMap;
import com.sap.sse.common.settings.SerializableSettings;
import com.sap.sse.datamining.shared.dto.StatisticQueryDefinitionDTO;
import com.sap.sse.datamining.shared.impl.dto.DataRetrieverChainDefinitionDTO;
import com.sap.sse.datamining.shared.impl.dto.DataRetrieverLevelDTO;
public interface DataRetrieverChainDefinitionProvider extends DataMiningComponentProvider {
public DataRetrieverChainDefinitionDTO<SerializableSettings> getDataRetrieverChainDefinition();
public DataRetrieverChainDefinitionDTO getDataRetrieverChainDefinition();
public void addDataRetrieverChainDefinitionChangedListener(DataRetrieverChainDefinitionChangedListener listener);
public void applyQueryDefinition(StatisticQueryDefinitionDTO queryDefinition);
// TODO This is just a quick fix. Delete, after the settings have been improved.
public HashMap<DataRetrieverLevelDTO, SerializableSettings> getRetrieverSettings();
}
@@ -4,6 +4,7 @@ import java.io.Serializable;
import java.util.HashMap;
import java.util.HashSet;
import com.sap.sse.common.settings.SerializableSettings;
import com.sap.sse.datamining.shared.dto.StatisticQueryDefinitionDTO;
import com.sap.sse.datamining.shared.impl.dto.DataRetrieverLevelDTO;
import com.sap.sse.datamining.shared.impl.dto.FunctionDTO;
@@ -12,6 +13,8 @@ public interface FilterSelectionProvider extends DataMiningComponentProvider, Da
public void addSelectionChangedListener(FilterSelectionChangedListener listener);
public HashMap<DataRetrieverLevelDTO, SerializableSettings> getRetrieverSettings();
public HashMap<DataRetrieverLevelDTO, HashMap<FunctionDTO, HashSet<? extends Serializable>>> getSelection();
public void applySelection(StatisticQueryDefinitionDTO queryDefinition);
@@ -23,7 +23,6 @@ import com.sap.sailing.gwt.ui.datamining.FilterSelectionChangedListener;
import com.sap.sailing.gwt.ui.datamining.FilterSelectionPresenter;
import com.sap.sailing.gwt.ui.datamining.FilterSelectionProvider;
import com.sap.sse.common.settings.AbstractSettings;
import com.sap.sse.common.settings.SerializableSettings;
import com.sap.sse.datamining.shared.impl.dto.DataRetrieverChainDefinitionDTO;
import com.sap.sse.datamining.shared.impl.dto.DataRetrieverLevelDTO;
import com.sap.sse.datamining.shared.impl.dto.FunctionDTO;
@@ -33,7 +32,7 @@ public class PlainFilterSelectionPresenter implements FilterSelectionPresenter,
DataRetrieverChainDefinitionChangedListener {
private final FilterSelectionProvider filterSelectionProvider;
private DataRetrieverChainDefinitionDTO<SerializableSettings> retrieverChain;
private DataRetrieverChainDefinitionDTO retrieverChain;
private final HorizontalPanel mainPanel;
private final VerticalPanel presentationPanel;
@@ -55,7 +54,7 @@ public class PlainFilterSelectionPresenter implements FilterSelectionPresenter,
}
@Override
public void dataRetrieverChainDefinitionChanged(DataRetrieverChainDefinitionDTO<SerializableSettings> newDataRetrieverChainDefinition) {
public void dataRetrieverChainDefinitionChanged(DataRetrieverChainDefinitionDTO newDataRetrieverChainDefinition) {
if (!Objects.equals(retrieverChain, newDataRetrieverChainDefinition)) {
retrieverChain = newDataRetrieverChainDefinition;
presentationPanel.clear();
@@ -179,6 +179,10 @@ public class BufferingQueryDefinitionProviderWithControls extends AbstractQueryD
queryDTO.appendDimensionToGroupBy(dimension);
}
for (Entry<DataRetrieverLevelDTO, SerializableSettings> retrieverSettingsEntry : filterSelectionProvider.getRetrieverSettings().entrySet()) {
queryDTO.setRetrieverSettings(retrieverSettingsEntry.getKey(), retrieverSettingsEntry.getValue());
}
for (Entry<DataRetrieverLevelDTO, HashMap<FunctionDTO, HashSet<? extends Serializable>>> filterSelectionEntry : filterSelectionProvider.getSelection().entrySet()) {
queryDTO.setFilterSelectionFor(filterSelectionEntry.getKey(), filterSelectionEntry.getValue());
}
@@ -263,7 +267,7 @@ public class BufferingQueryDefinitionProviderWithControls extends AbstractQueryD
}
@Override
public void dataRetrieverChainDefinitionChanged(DataRetrieverChainDefinitionDTO<SerializableSettings> newDataRetrieverChainDefinition) {
public void dataRetrieverChainDefinitionChanged(DataRetrieverChainDefinitionDTO newDataRetrieverChainDefinition) {
if (isAwatingReload()) {
statisticProvider.dataRetrieverChainDefinitionChanged(retrieverChainProvider.getDataRetrieverChainDefinition());
statisticProvider.reloadComponents();
@@ -2,8 +2,9 @@ package com.sap.sailing.gwt.ui.datamining.selection;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.google.gwt.event.dom.client.ClickEvent;
@@ -30,6 +31,7 @@ import com.sap.sse.common.settings.SerializableSettings;
import com.sap.sse.common.settings.Settings;
import com.sap.sse.datamining.shared.dto.StatisticQueryDefinitionDTO;
import com.sap.sse.datamining.shared.impl.dto.DataRetrieverChainDefinitionDTO;
import com.sap.sse.datamining.shared.impl.dto.DataRetrieverLevelDTO;
import com.sap.sse.gwt.client.ErrorReporter;
import com.sap.sse.gwt.client.shared.components.SettingsDialog;
import com.sap.sse.gwt.client.shared.components.SettingsDialogComponent;
@@ -43,8 +45,11 @@ public class SimpleDataRetrieverChainDefinitionProvider implements DataRetriever
private boolean isAwaitingReload;
private final HorizontalPanel mainPanel;
private final ValueListBox<DataRetrieverChainDefinitionDTO<SerializableSettings>> retrieverChainsListBox;
private final ValueListBox<DataRetrieverChainDefinitionDTO> retrieverChainsListBox;
private Anchor settingsAnchor;
// TODO FIXME This is currently the only use case for processors with settings. That's why it's hard coded.
private Map<DataRetrieverChainDefinitionDTO, PolarSheetGenerationSettings> settingsMappedByRetrieverChain;
public SimpleDataRetrieverChainDefinitionProvider(final StringMessages stringMessages, DataMiningServiceAsync dataMiningService, ErrorReporter errorReporter) {
this.stringMessages = stringMessages;
@@ -52,6 +57,7 @@ public class SimpleDataRetrieverChainDefinitionProvider implements DataRetriever
this.errorReporter = errorReporter;
listeners = new HashSet<>();
isAwaitingReload = false;
settingsMappedByRetrieverChain = new HashMap<>();
mainPanel = new HorizontalPanel();
mainPanel.setSpacing(5);
@@ -75,17 +81,17 @@ public class SimpleDataRetrieverChainDefinitionProvider implements DataRetriever
updateRetrieverChains();
}
private ValueListBox<DataRetrieverChainDefinitionDTO<SerializableSettings>> createRetrieverChainsListBox() {
ValueListBox<DataRetrieverChainDefinitionDTO<SerializableSettings>> retrieverChainsListBox = new ValueListBox<>(new AbstractRenderer<DataRetrieverChainDefinitionDTO<SerializableSettings>>() {
private ValueListBox<DataRetrieverChainDefinitionDTO> createRetrieverChainsListBox() {
ValueListBox<DataRetrieverChainDefinitionDTO> retrieverChainsListBox = new ValueListBox<>(new AbstractRenderer<DataRetrieverChainDefinitionDTO>() {
@Override
public String render(DataRetrieverChainDefinitionDTO<SerializableSettings> retrieverChain) {
public String render(DataRetrieverChainDefinitionDTO retrieverChain) {
return retrieverChain == null ? "" : retrieverChain.getName();
}
});
retrieverChainsListBox.addValueChangeHandler(new ValueChangeHandler<DataRetrieverChainDefinitionDTO<SerializableSettings>>() {
retrieverChainsListBox.addValueChangeHandler(new ValueChangeHandler<DataRetrieverChainDefinitionDTO>() {
@Override
public void onValueChange(ValueChangeEvent<DataRetrieverChainDefinitionDTO<SerializableSettings>> event) {
public void onValueChange(ValueChangeEvent<DataRetrieverChainDefinitionDTO> event) {
notifyListeners();
}
});
@@ -109,23 +115,21 @@ public class SimpleDataRetrieverChainDefinitionProvider implements DataRetriever
private void updateRetrieverChains() {
dataMiningService.getDataRetrieverChainDefinitions(LocaleInfo.getCurrentLocale().getLocaleName(),
new AsyncCallback<ArrayList<DataRetrieverChainDefinitionDTO<SerializableSettings>>>() {
new AsyncCallback<ArrayList<DataRetrieverChainDefinitionDTO>>() {
@Override
public void onSuccess(ArrayList<DataRetrieverChainDefinitionDTO<SerializableSettings>> dataRetrieverChainDefinitions) {
if (dataRetrieverChainDefinitions.iterator().hasNext()) {
List<DataRetrieverChainDefinitionDTO<SerializableSettings>> sortedRetrieverChains = new ArrayList<>();
for (DataRetrieverChainDefinitionDTO<SerializableSettings> dataRetrieverChainDefinition : dataRetrieverChainDefinitions) {
sortedRetrieverChains.add(dataRetrieverChainDefinition);
}
Collections.sort(sortedRetrieverChains);
public void onSuccess(ArrayList<DataRetrieverChainDefinitionDTO> dataRetrieverChainDefinitions) {
settingsMappedByRetrieverChain.clear();
if (!dataRetrieverChainDefinitions.isEmpty()) {
fillSettings(dataRetrieverChainDefinitions);
Collections.sort(dataRetrieverChainDefinitions);
DataRetrieverChainDefinitionDTO<SerializableSettings> currentRetrieverChain = getDataRetrieverChainDefinition();
DataRetrieverChainDefinitionDTO<SerializableSettings> retrieverChainToBeSelected = sortedRetrieverChains.contains(currentRetrieverChain) ?
DataRetrieverChainDefinitionDTO currentRetrieverChain = getDataRetrieverChainDefinition();
DataRetrieverChainDefinitionDTO retrieverChainToBeSelected = dataRetrieverChainDefinitions.contains(currentRetrieverChain) ?
currentRetrieverChain :
sortedRetrieverChains.get(0);
dataRetrieverChainDefinitions.get(0);
retrieverChainsListBox.setValue(retrieverChainToBeSelected);
retrieverChainsListBox.setAcceptableValues(sortedRetrieverChains);
retrieverChainsListBox.setAcceptableValues(dataRetrieverChainDefinitions);
if (isAwaitingReload || !retrieverChainToBeSelected.equals(currentRetrieverChain)) {
isAwaitingReload = false;
@@ -133,7 +137,7 @@ public class SimpleDataRetrieverChainDefinitionProvider implements DataRetriever
}
} else {
retrieverChainsListBox.setValue(null);
retrieverChainsListBox.setAcceptableValues(new ArrayList<DataRetrieverChainDefinitionDTO<SerializableSettings>>());
retrieverChainsListBox.setAcceptableValues(new ArrayList<DataRetrieverChainDefinitionDTO>());
notifyListeners();
}
}
@@ -144,8 +148,21 @@ public class SimpleDataRetrieverChainDefinitionProvider implements DataRetriever
});
}
private void fillSettings(ArrayList<DataRetrieverChainDefinitionDTO> dataRetrieverChainDefinitions) {
for (DataRetrieverChainDefinitionDTO retrieverChain : dataRetrieverChainDefinitions) {
if (retrieverChain.hasSettings()) {
// TODO FIXME This is currently the only use case for processors with settings. That's why it's hard coded.
for (SerializableSettings settings : retrieverChain.getDefaultSettings().values()) {
if (settings instanceof PolarSheetGenerationSettings) {
settingsMappedByRetrieverChain.put(retrieverChain, (PolarSheetGenerationSettings) settings);
}
}
}
}
}
@Override
public DataRetrieverChainDefinitionDTO<SerializableSettings> getDataRetrieverChainDefinition() {
public DataRetrieverChainDefinitionDTO getDataRetrieverChainDefinition() {
return retrieverChainsListBox.getValue();
}
@@ -155,7 +172,7 @@ public class SimpleDataRetrieverChainDefinitionProvider implements DataRetriever
}
private void notifyListeners() {
DataRetrieverChainDefinitionDTO<SerializableSettings> dataRetrieverChainDefinition = getDataRetrieverChainDefinition();
DataRetrieverChainDefinitionDTO dataRetrieverChainDefinition = getDataRetrieverChainDefinition();
for (DataRetrieverChainDefinitionChangedListener listener : listeners) {
listener.dataRetrieverChainDefinitionChanged(dataRetrieverChainDefinition);
}
@@ -164,12 +181,9 @@ public class SimpleDataRetrieverChainDefinitionProvider implements DataRetriever
}
}
@SuppressWarnings("unchecked")
@Override
public void applyQueryDefinition(StatisticQueryDefinitionDTO queryDefinition) {
//FIXME since the sse.datamining.shared bundle cannot have a dependency on sse.common, we can't use extends-wildcards in the classes. They
// should be limited to Settings objects. This is enforced everywhere but in the shared classes.
retrieverChainsListBox.setValue((DataRetrieverChainDefinitionDTO<SerializableSettings>) queryDefinition.getDataRetrieverChainDefinition(), false);
retrieverChainsListBox.setValue(queryDefinition.getDataRetrieverChainDefinition(), false);
}
@Override
@@ -196,6 +210,20 @@ public class SimpleDataRetrieverChainDefinitionProvider implements DataRetriever
public String getDependentCssClassName() {
return "simpleDataRetrieverChainDefinition";
}
// TODO This is just a quick fix. Delete, after the settings have been improved.
@Override
public HashMap<DataRetrieverLevelDTO, SerializableSettings> getRetrieverSettings() {
HashMap<DataRetrieverLevelDTO, SerializableSettings> retrieverSettings = new HashMap<>();
if (settingsMappedByRetrieverChain.containsKey(getDataRetrieverChainDefinition())) {
for (DataRetrieverLevelDTO retrieverLevel : getDataRetrieverChainDefinition().getRetrieverLevels()) {
if (retrieverLevel.getDefaultSettings() instanceof PolarSheetGenerationSettings) {
retrieverSettings.put(retrieverLevel, settingsMappedByRetrieverChain.get(getDataRetrieverChainDefinition()));
}
}
}
return retrieverSettings;
}
@Override
public boolean hasSettings() {
@@ -206,21 +234,16 @@ public class SimpleDataRetrieverChainDefinitionProvider implements DataRetriever
@Override
public SettingsDialogComponent<SerializableSettings> getSettingsDialogComponent() {
SettingsDialogComponent<? extends Settings> result = null;
if (hasSettings()) {
Settings settings = getDataRetrieverChainDefinition().getSettings();
// FIXME here the association between settings and their dialogs is done
// Maybe someone will come up with something smarter
if (settings instanceof PolarSheetGenerationSettings) {
PolarSheetGenerationSettings polarSettings = (PolarSheetGenerationSettings) settings;
result = new PolarSheetGenerationSettingsDialogComponent(polarSettings);
}
if (settingsMappedByRetrieverChain.containsKey(getDataRetrieverChainDefinition())) {
result = new PolarSheetGenerationSettingsDialogComponent(settingsMappedByRetrieverChain.get(getDataRetrieverChainDefinition()));
}
return (SettingsDialogComponent<SerializableSettings>) result;
}
@Override
public void updateSettings(SerializableSettings newSettings) {
getDataRetrieverChainDefinition().setSettings(newSettings);
public void updateSettings(SerializableSettings newSettings) {
// TODO FIXME This is currently the only use case for processors with settings. That's why it's hard coded.
settingsMappedByRetrieverChain.put(getDataRetrieverChainDefinition(), (PolarSheetGenerationSettings) newSettings);
notifyListeners();
}
@@ -41,7 +41,7 @@ public class SimpleStatisticProvider implements StatisticProvider {
private final Set<StatisticChangedListener> listeners;
private boolean isAwaitingReload;
private DataRetrieverChainDefinitionDTO<SerializableSettings> currentRetrieverChainDefinition;
private DataRetrieverChainDefinitionDTO currentRetrieverChainDefinition;
private final Collection<FunctionDTO> extractionFunctions;
private final Collection<AggregationProcessorDefinitionDTO> aggregatorDefinitions;
@@ -95,7 +95,7 @@ public class SimpleStatisticProvider implements StatisticProvider {
}
@Override
public void dataRetrieverChainDefinitionChanged(DataRetrieverChainDefinitionDTO<SerializableSettings> newRetrieverChainDefinition) {
public void dataRetrieverChainDefinitionChanged(DataRetrieverChainDefinitionDTO newRetrieverChainDefinition) {
if (!Objects.equals(currentRetrieverChainDefinition, newRetrieverChainDefinition)) {
currentRetrieverChainDefinition = newRetrieverChainDefinition;
if (!isAwaitingReload && currentRetrieverChainDefinition != null) {
@@ -31,6 +31,7 @@ import com.sap.sailing.gwt.ui.datamining.FilterSelectionChangedListener;
import com.sap.sailing.gwt.ui.datamining.ManagedDataMiningQueriesCounter;
import com.sap.sailing.gwt.ui.datamining.execution.ManagedDataMiningQueryCallback;
import com.sap.sailing.gwt.ui.datamining.execution.SimpleManagedDataMiningQueriesCounter;
import com.sap.sse.common.settings.SerializableSettings;
import com.sap.sse.datamining.shared.DataMiningSession;
import com.sap.sse.datamining.shared.GroupKey;
import com.sap.sse.datamining.shared.impl.GenericGroupKey;
@@ -159,6 +160,7 @@ class DimensionFilterSelectionProvider {
final FunctionDTO dimension = getSelectedDimension();
HashSet<FunctionDTO> dimensionDTOs = new HashSet<>();
dimensionDTOs.add(dimension);
HashMap<DataRetrieverLevelDTO, SerializableSettings> retrieverSettingsDTO = retrieverLevelSelectionProvider.getRetrieverSettings();
HashMap<DataRetrieverLevelDTO, HashMap<FunctionDTO, HashSet<? extends Serializable>>> filterSelectionDTO = retrieverLevelSelectionProvider.getCompleteFilterSelection();
DataRetrieverLevelDTO retrieverLevel = retrieverLevelSelectionProvider.getRetrieverLevel();
if (filterSelectionDTO.containsKey(retrieverLevel)) {
@@ -167,7 +169,7 @@ class DimensionFilterSelectionProvider {
busyIndicator.setVisible(true);
counter.increase();
dataMiningService.getDimensionValuesFor(session, retrieverLevelSelectionProvider.getDataRetrieverChain(),
retrieverLevel, dimensionDTOs, filterSelectionDTO,
retrieverLevel, dimensionDTOs, retrieverSettingsDTO, filterSelectionDTO,
LocaleInfo.getCurrentLocale().getLocaleName(), new ManagedDataMiningQueryCallback<HashSet<Object>>(counter) {
@Override
protected void handleSuccess(QueryResultDTO<HashSet<Object>> result) {
@@ -49,7 +49,7 @@ public class ListRetrieverChainFilterSelectionProvider implements FilterSelectio
private boolean isAwaitingReload;
private boolean blockDataUpdates;
private DataRetrieverChainDefinitionDTO<SerializableSettings> retrieverChain;
private DataRetrieverChainDefinitionDTO retrieverChain;
private final Map<DataRetrieverLevelDTO, RetrieverLevelFilterSelectionProvider> selectionProvidersMappedByRetrievedDataType;
private final DockLayoutPanel mainPanel;
@@ -59,6 +59,9 @@ public class ListRetrieverChainFilterSelectionProvider implements FilterSelectio
private final ScrollPanel selectionPanel;
private final FilterSelectionPresenter selectionPresenter;
private final ScrollPanel selectionPresenterScrollPanel;
// TODO This is just a quick fix. Delete, after the settings have been improved.
private final DataRetrieverChainDefinitionProvider retrieverChainProvider;
public ListRetrieverChainFilterSelectionProvider(DataMiningSession session, StringMessages stringMessages,
DataMiningServiceAsync dataMiningService, ErrorReporter errorReporter,
@@ -67,6 +70,7 @@ public class ListRetrieverChainFilterSelectionProvider implements FilterSelectio
this.stringMessages = stringMessages;
this.dataMiningService = dataMiningService;
this.errorReporter = errorReporter;
this.retrieverChainProvider = retrieverChainProvider;
listeners = new HashSet<>();
retrieverChainProvider.addDataRetrieverChainDefinitionChangedListener(this);
@@ -115,7 +119,7 @@ public class ListRetrieverChainFilterSelectionProvider implements FilterSelectio
}
@Override
public void dataRetrieverChainDefinitionChanged(DataRetrieverChainDefinitionDTO<SerializableSettings> newDataRetrieverChainDefinition) {
public void dataRetrieverChainDefinitionChanged(DataRetrieverChainDefinitionDTO newDataRetrieverChainDefinition) {
if (!Objects.equals(retrieverChain, newDataRetrieverChainDefinition)) {
retrieverChain = newDataRetrieverChainDefinition;
if (!isAwaitingReload && retrieverChain != null) {
@@ -123,9 +127,8 @@ public class ListRetrieverChainFilterSelectionProvider implements FilterSelectio
} else if (!isAwaitingReload) {
clearContent();
}
} else if (retrieverChain != null && retrieverChain.settingsHaveChanged() && !isAwaitingReload) {
} else if (retrieverChain != null && !isAwaitingReload) {
updateRetrievalLevels();
retrieverChain.resetSettingsChangeFlag();
}
}
@@ -203,6 +206,11 @@ public class ListRetrieverChainFilterSelectionProvider implements FilterSelectio
mainPanel.setWidgetHidden(selectionPresenterScrollPanel, getSelection().isEmpty());
notifyListeners();
}
@Override
public HashMap<DataRetrieverLevelDTO, SerializableSettings> getRetrieverSettings() {
return retrieverChainProvider.getRetrieverSettings();
}
@Override
public HashMap<DataRetrieverLevelDTO, HashMap<FunctionDTO, HashSet<? extends Serializable>>> getSelection() {
@@ -31,7 +31,7 @@ public class RetrieverLevelFilterSelectionProvider implements Component<Abstract
private final DataMiningSession session;
private final ListRetrieverChainFilterSelectionProvider retrieverChainSelectionProvider;
private final DataRetrieverChainDefinitionDTO<SerializableSettings> retrieverChain;
private final DataRetrieverChainDefinitionDTO retrieverChain;
private final DataRetrieverLevelDTO retrieverLevel;
private final Collection<FunctionDTO> availableDimensions;
@@ -39,7 +39,7 @@ public class RetrieverLevelFilterSelectionProvider implements Component<Abstract
private final Collection<DimensionFilterSelectionProvider> dimensionSelectionProviders;
public RetrieverLevelFilterSelectionProvider(DataMiningSession session, DataMiningServiceAsync dataMiningService,
ErrorReporter errorReporter, ListRetrieverChainFilterSelectionProvider retrieverChainSelectionProvider, DataRetrieverChainDefinitionDTO<SerializableSettings> retrieverChain,
ErrorReporter errorReporter, ListRetrieverChainFilterSelectionProvider retrieverChainSelectionProvider, DataRetrieverChainDefinitionDTO retrieverChain,
DataRetrieverLevelDTO retrieverLevel) {
this.dataMiningService = dataMiningService;
this.errorReporter = errorReporter;
@@ -150,6 +150,10 @@ public class RetrieverLevelFilterSelectionProvider implements Component<Abstract
retrieverChainSelectionProvider.retrieverLevelFilterSelectionChanged(this, dimensionFilterSelectionProvider);
}
HashMap<DataRetrieverLevelDTO, SerializableSettings> getRetrieverSettings() {
return retrieverChainSelectionProvider.getRetrieverSettings();
}
HashMap<DataRetrieverLevelDTO, HashMap<FunctionDTO, HashSet<? extends Serializable>>> getCompleteFilterSelection() {
return retrieverChainSelectionProvider.getSelection();
}
@@ -189,7 +193,7 @@ public class RetrieverLevelFilterSelectionProvider implements Component<Abstract
initializeDimensionSelectionProviders();
}
DataRetrieverChainDefinitionDTO<SerializableSettings> getDataRetrieverChain() {
DataRetrieverChainDefinitionDTO getDataRetrieverChain() {
return retrieverChain;
}
@@ -76,7 +76,7 @@ public class DataMiningServiceImpl extends RemoteServiceServlet implements DataM
}
@Override
public HashSet<FunctionDTO> getStatisticsFor(DataRetrieverChainDefinitionDTO<SerializableSettings> retrieverChainDefinition, String localeInfoName) {
public HashSet<FunctionDTO> getStatisticsFor(DataRetrieverChainDefinitionDTO retrieverChainDefinition, String localeInfoName) {
Class<?> retrievedDataType = getDataMiningServer().getDataRetrieverChainDefinition(retrieverChainDefinition.getId()).getRetrievedDataType();
Iterable<Function<?>> statistics = getDataMiningServer().getStatisticsFor(retrievedDataType);
return functionsAsDTOs(statistics, localeInfoName);
@@ -120,8 +120,8 @@ public class DataMiningServiceImpl extends RemoteServiceServlet implements DataM
}
@Override
public HashMap<DataRetrieverLevelDTO, HashSet<FunctionDTO>> getDimensionsMappedByLevelFor(DataRetrieverChainDefinitionDTO<SerializableSettings> dataRetrieverChainDefinitionDTO, String localeInfoName) {
DataRetrieverChainDefinition<?, ?, ?> dataRetrieverChainDefinition = getDataMiningServer().getDataRetrieverChainDefinition(dataRetrieverChainDefinitionDTO.getId());
public HashMap<DataRetrieverLevelDTO, HashSet<FunctionDTO>> getDimensionsMappedByLevelFor(DataRetrieverChainDefinitionDTO dataRetrieverChainDefinitionDTO, String localeInfoName) {
DataRetrieverChainDefinition<?, ?> dataRetrieverChainDefinition = getDataMiningServer().getDataRetrieverChainDefinition(dataRetrieverChainDefinitionDTO.getId());
Map<DataRetrieverLevel<?, ?>, Iterable<Function<?>>> dimensions = getDataMiningServer()
.getDimensionsMappedByLevelFor(dataRetrieverChainDefinition);
return dimensionsMappedByLevelAsDTOs(dimensions, localeInfoName);
@@ -129,11 +129,8 @@ public class DataMiningServiceImpl extends RemoteServiceServlet implements DataM
@Override
public HashMap<DataRetrieverLevelDTO, HashSet<FunctionDTO>> getReducedDimensionsMappedByLevelFor(
DataRetrieverChainDefinitionDTO<SerializableSettings> dataRetrieverChainDefinitionDTO, String localeInfoName) {
DataRetrieverChainDefinition<?, ?, ?> dataRetrieverChainDefinition = getDataMiningServer().getDataRetrieverChainDefinition(dataRetrieverChainDefinitionDTO.getId());
if (dataRetrieverChainDefinitionDTO.hasSettings()) {
dataRetrieverChainDefinition.setSettings(dataRetrieverChainDefinitionDTO.getSettings());
}
DataRetrieverChainDefinitionDTO dataRetrieverChainDefinitionDTO, String localeInfoName) {
DataRetrieverChainDefinition<?, ?> dataRetrieverChainDefinition = getDataMiningServer().getDataRetrieverChainDefinition(dataRetrieverChainDefinitionDTO.getId());
Map<DataRetrieverLevel<?, ?>, Iterable<Function<?>>> reducedDimensions = getDataMiningServer()
.getReducedDimensionsMappedByLevelFor(dataRetrieverChainDefinition);
return dimensionsMappedByLevelAsDTOs(reducedDimensions, localeInfoName);
@@ -163,26 +160,26 @@ public class DataMiningServiceImpl extends RemoteServiceServlet implements DataM
}
@Override
public ArrayList<DataRetrieverChainDefinitionDTO<SerializableSettings>> getDataRetrieverChainDefinitions(String localeInfoName) {
Iterable<DataRetrieverChainDefinition<?, ?, ?>> dataRetrieverChainDefinitions = getDataMiningServer().getDataRetrieverChainDefinitions();
public ArrayList<DataRetrieverChainDefinitionDTO> getDataRetrieverChainDefinitions(String localeInfoName) {
Iterable<DataRetrieverChainDefinition<?, ?>> dataRetrieverChainDefinitions = getDataMiningServer().getDataRetrieverChainDefinitions();
return dataRetrieverChainDefinitionsAsDTOs(dataRetrieverChainDefinitions, localeInfoName);
}
@Override
public ArrayList<DataRetrieverChainDefinitionDTO<SerializableSettings>> getDataRetrieverChainDefinitionsFor(FunctionDTO statisticToCalculate, String localeInfoName) {
public ArrayList<DataRetrieverChainDefinitionDTO> getDataRetrieverChainDefinitionsFor(FunctionDTO statisticToCalculate, String localeInfoName) {
Class<?> baseDataType = getBaseDataType(statisticToCalculate);
@SuppressWarnings("unchecked")
Iterable<DataRetrieverChainDefinition<?, ?, ?>> dataRetrieverChainDefinitions = (Iterable<DataRetrieverChainDefinition<?, ?, ?>>)(Iterable<?>) getDataMiningServer().getDataRetrieverChainDefinitionsByDataType(baseDataType);
Iterable<DataRetrieverChainDefinition<?, ?>> dataRetrieverChainDefinitions = (Iterable<DataRetrieverChainDefinition<?, ?>>)(Iterable<?>) getDataMiningServer().getDataRetrieverChainDefinitionsByDataType(baseDataType);
return dataRetrieverChainDefinitionsAsDTOs(dataRetrieverChainDefinitions, localeInfoName);
}
private ArrayList<DataRetrieverChainDefinitionDTO<SerializableSettings>> dataRetrieverChainDefinitionsAsDTOs(
Iterable<DataRetrieverChainDefinition<?, ?, ?>> dataRetrieverChainDefinitions, String localeInfoName) {
private ArrayList<DataRetrieverChainDefinitionDTO> dataRetrieverChainDefinitionsAsDTOs(
Iterable<DataRetrieverChainDefinition<?, ?>> dataRetrieverChainDefinitions, String localeInfoName) {
ResourceBundleStringMessages serverStringMessages = getDataMiningServer().getStringMessages();
Locale locale = ResourceBundleStringMessages.Util.getLocaleFor(localeInfoName);
ArrayList<DataRetrieverChainDefinitionDTO<SerializableSettings>> DTOs = new ArrayList<>();
for (DataRetrieverChainDefinition<?, ?, ?> dataRetrieverChainDefinition : dataRetrieverChainDefinitions) {
ArrayList<DataRetrieverChainDefinitionDTO> DTOs = new ArrayList<>();
for (DataRetrieverChainDefinition<?, ?> dataRetrieverChainDefinition : dataRetrieverChainDefinitions) {
DTOs.add(dtoFactory.createDataRetrieverChainDefinitionDTO(dataRetrieverChainDefinition,
serverStringMessages, locale));
}
@@ -190,15 +187,17 @@ public class DataMiningServiceImpl extends RemoteServiceServlet implements DataM
}
@Override
public QueryResultDTO<HashSet<Object>> getDimensionValuesFor(DataMiningSession session, DataRetrieverChainDefinitionDTO<SerializableSettings> dataRetrieverChainDefinitionDTO,
DataRetrieverLevelDTO retrieverLevelDTO, HashSet<FunctionDTO> dimensionDTOs, HashMap<DataRetrieverLevelDTO, HashMap<FunctionDTO, HashSet<? extends Serializable>>> filterSelectionDTO, String localeInfoName) {
public QueryResultDTO<HashSet<Object>> getDimensionValuesFor(DataMiningSession session, DataRetrieverChainDefinitionDTO dataRetrieverChainDefinitionDTO,
DataRetrieverLevelDTO retrieverLevelDTO, HashSet<FunctionDTO> dimensionDTOs, HashMap<DataRetrieverLevelDTO, SerializableSettings> retrieverSettingsDTO,
HashMap<DataRetrieverLevelDTO, HashMap<FunctionDTO, HashSet<? extends Serializable>>> filterSelectionDTO, String localeInfoName) {
DataMiningServer dataMiningServer = getDataMiningServer();
DataRetrieverChainDefinition<RacingEventService, ?, ?> retrieverChainDefinition = dataMiningServer.getDataRetrieverChainDefinition(dataRetrieverChainDefinitionDTO.getId());
DataRetrieverChainDefinition<RacingEventService, ?> retrieverChainDefinition = dataMiningServer.getDataRetrieverChainDefinition(dataRetrieverChainDefinitionDTO.getId());
DataRetrieverLevel<?, ?> retrieverLevel = retrieverChainDefinition.getDataRetrieverLevel(retrieverLevelDTO.getLevel());
Iterable<Function<?>> dimensions = functionDTOsAsFunctions(dimensionDTOs);
Map<DataRetrieverLevel<?, ?>, SerializableSettings> retrieverSettings = retrieverSettingsDTOAsRetrieverSettings(retrieverSettingsDTO, retrieverChainDefinition);
Map<DataRetrieverLevel<?, ?>, Map<Function<?>, Collection<?>>> filterSelection = filterSelectionDTOAsFilterSelection(filterSelectionDTO, retrieverChainDefinition);
Locale locale = ResourceBundleStringMessages.Util.getLocaleFor(localeInfoName);
Query<HashSet<Object>> dimensionValuesQuery = dataMiningServer.createDimensionValuesQuery(retrieverChainDefinition, retrieverLevel, dimensions, filterSelection, locale);
Query<HashSet<Object>> dimensionValuesQuery = dataMiningServer.createDimensionValuesQuery(retrieverChainDefinition, retrieverLevel, dimensions, retrieverSettings, filterSelection, locale);
QueryResult<HashSet<Object>> result = dataMiningServer.runNewQueryAndAbortPreviousQueries(session, dimensionValuesQuery);
return dataMiningServer.convertToDTO(result);
}
@@ -215,9 +214,20 @@ public class DataMiningServiceImpl extends RemoteServiceServlet implements DataM
return functions;
}
private Map<DataRetrieverLevel<?, ?>, SerializableSettings> retrieverSettingsDTOAsRetrieverSettings(
HashMap<DataRetrieverLevelDTO, SerializableSettings> retrieverSettingsDTO,
DataRetrieverChainDefinition<RacingEventService, ?> retrieverChainDefinition) {
Map<DataRetrieverLevel<?, ?>, SerializableSettings> retrieverSettings = new HashMap<>();
for (DataRetrieverLevelDTO retrieverLevelDTO : retrieverSettingsDTO.keySet()) {
DataRetrieverLevel<?, ?> retrieverLevel = retrieverChainDefinition.getDataRetrieverLevel(retrieverLevelDTO.getLevel());
retrieverSettings.put(retrieverLevel, retrieverSettingsDTO.get(retrieverLevelDTO));
}
return retrieverSettings;
}
private Map<DataRetrieverLevel<?, ?>, Map<Function<?>, Collection<?>>> filterSelectionDTOAsFilterSelection(
HashMap<DataRetrieverLevelDTO, HashMap<FunctionDTO, HashSet<? extends Serializable>>> filterSelectionDTO,
DataRetrieverChainDefinition<?, ?, ?> retrieverChainDefinition) {
DataRetrieverChainDefinition<?, ?> retrieverChainDefinition) {
Map<DataRetrieverLevel<?, ?>, Map<Function<?>, Collection<?>>> filterSelection = new HashMap<>();
for (DataRetrieverLevelDTO retrieverLevelDTO : filterSelectionDTO.keySet()) {
HashMap<FunctionDTO, HashSet<? extends Serializable>> retrievalLevelSelection = filterSelectionDTO.get(retrieverLevelDTO);
@@ -8,6 +8,7 @@ Bundle-Vendor: SAP
Require-Bundle: org.eclipse.osgi;bundle-version="3.10.1",
com.sap.sse;bundle-version="1.0.0",
com.sap.sse.datamining;bundle-version="1.0.0",
com.sap.sse.datamining.annotations;bundle-version="1.0.0",
com.sap.sse.datamining.shared;bundle-version="1.0.0",
com.sap.sailing.datamining,
com.sap.sailing.server;bundle-version="1.0.0",
@@ -80,7 +80,7 @@ public class Activator extends AbstractDataMiningActivator implements DataMining
}
@Override
public Iterable<DataRetrieverChainDefinition<?, ?, ?>> getDataRetrieverChainDefinitions() {
public Iterable<DataRetrieverChainDefinition<?, ?>> getDataRetrieverChainDefinitions() {
return dataRetrieverChainDefinitions.getDataRetrieverChainDefinitions();
}
@@ -21,17 +21,16 @@ import com.sap.sailing.polars.datamining.data.HasLegPolarContext;
import com.sap.sailing.polars.datamining.data.HasRaceColumnPolarContext;
import com.sap.sailing.server.RacingEventService;
import com.sap.sse.datamining.components.DataRetrieverChainDefinition;
import com.sap.sse.datamining.impl.components.DataRetrieverChainDefinitionWithSettings;
import com.sap.sse.datamining.impl.components.SimpleDataRetrieverChainDefinition;
public class PolarsDataRetrievalChainDefinitions {
private final Collection<DataRetrieverChainDefinition<?, ?, ?>> dataRetrieverChainDefinitions;
private final Collection<DataRetrieverChainDefinition<?, ?>> dataRetrieverChainDefinitions;
public PolarsDataRetrievalChainDefinitions() {
dataRetrieverChainDefinitions = new ArrayList<>();
DataRetrieverChainDefinition<RacingEventService, HasGPSFixPolarContext, ?> definition1 = new DataRetrieverChainDefinitionWithSettings<RacingEventService, HasGPSFixPolarContext, PolarSheetGenerationSettings>(
RacingEventService.class, HasGPSFixPolarContext.class, "PolarChain1",
PolarSheetGenerationSettingsImpl.createStandardPolarSettings());
DataRetrieverChainDefinition<RacingEventService, HasGPSFixPolarContext> definition1 = new SimpleDataRetrieverChainDefinition<>(
RacingEventService.class, HasGPSFixPolarContext.class, "PolarChain1");
definition1.startWith(PolarLeaderboardGroupRetrievalProcessor.class, HasLeaderboardGroupPolarContext.class,
"LeaderboardGroup");
definition1.addAfter(PolarLeaderboardGroupRetrievalProcessor.class, PolarLeaderboardRetrievalProcessor.class,
@@ -45,11 +44,11 @@ public class PolarsDataRetrievalChainDefinitions {
definition1.addAfter(PolarLegRetrievalProcessor.class, PolarCompetitorRetrievalProcessor.class,
HasCompetitorPolarContext.class, "Competitor");
definition1.endWith(PolarCompetitorRetrievalProcessor.class, PolarGPSFixRetrievalProcessor.class,
HasGPSFixPolarContext.class, "GPSFix");
HasGPSFixPolarContext.class, PolarSheetGenerationSettings.class, PolarSheetGenerationSettingsImpl.createStandardPolarSettings(), "GPSFix");
dataRetrieverChainDefinitions.add(definition1);
}
public Iterable<DataRetrieverChainDefinition<?, ?, ?>> getDataRetrieverChainDefinitions() {
public Iterable<DataRetrieverChainDefinition<?, ?>> getDataRetrieverChainDefinitions() {
return dataRetrieverChainDefinitions;
}
@@ -25,14 +25,16 @@ import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor;
public class PolarGPSFixRetrievalProcessor extends AbstractRetrievalProcessor<HasCompetitorPolarContext, HasGPSFixPolarContext> {
public PolarGPSFixRetrievalProcessor(ExecutorService executor,
Collection<Processor<HasGPSFixPolarContext, ?>> resultReceivers, int retrievalLevel) {
private final PolarSheetGenerationSettings settings;
public PolarGPSFixRetrievalProcessor(ExecutorService executor, Collection<Processor<HasGPSFixPolarContext, ?>> resultReceivers,
PolarSheetGenerationSettings settings, int retrievalLevel) {
super(HasCompetitorPolarContext.class, HasGPSFixPolarContext.class, executor, resultReceivers, retrievalLevel);
this.settings = settings;
}
@Override
protected Iterable<HasGPSFixPolarContext> retrieveData(HasCompetitorPolarContext element) {
PolarSheetGenerationSettings settings = (PolarSheetGenerationSettings) getSettings();
ClusterGroup<Speed> windSpeedRangeGroup = toClusterGroup(settings.getWindSpeedStepping());
TrackedRace trackedRace = element.getTrackedRace();
Competitor competitor = element.getCompetitor();
@@ -3,7 +3,7 @@ package com.sap.sailing.polars.datamining.data;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.Leg;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.annotations.Connector;
public interface HasCompetitorPolarContext {
@@ -4,7 +4,7 @@ import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.base.Fleet;
import com.sap.sailing.domain.base.RaceColumn;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.annotations.Connector;
public interface HasFleetPolarContext {
@@ -1,9 +1,9 @@
package com.sap.sailing.polars.datamining.data;
import com.sap.sailing.polars.datamining.shared.PolarStatistic;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.shared.annotations.Statistic;
import com.sap.sse.datamining.annotations.Connector;
import com.sap.sse.datamining.annotations.Dimension;
import com.sap.sse.datamining.annotations.Statistic;
import com.sap.sse.datamining.shared.impl.dto.ClusterDTO;
public interface HasGPSFixPolarContext {
@@ -1,7 +1,7 @@
package com.sap.sailing.polars.datamining.data;
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.annotations.Connector;
public interface HasLeaderboardGroupPolarContext {
@@ -1,7 +1,7 @@
package com.sap.sailing.polars.datamining.data;
import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.annotations.Connector;
public interface HasLeaderboardPolarContext {
@@ -2,8 +2,8 @@ package com.sap.sailing.polars.datamining.data;
import com.sap.sailing.domain.base.Leg;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Connector;
import com.sap.sse.datamining.annotations.Dimension;
public interface HasLegPolarContext {
@@ -1,7 +1,7 @@
package com.sap.sailing.polars.datamining.data;
import com.sap.sailing.domain.base.RaceColumn;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.annotations.Connector;
public interface HasRaceColumnPolarContext {
@@ -15,6 +15,7 @@ Require-Bundle:
com.sap.sailing.domain.common;bundle-version="1.0.0",
com.sap.sailing.domain,
com.sap.sse.datamining,
com.sap.sse.datamining.annotations;bundle-version="1.0.0",
com.sap.sse.datamining.shared;bundle-version="1.0.0",
com.sap.sse.common,
com.sap.sse,
@@ -1,8 +1,8 @@
package com.sap.sailing.polars.mining;
import com.sap.sailing.domain.common.Bearing;
import com.sap.sse.datamining.annotations.Dimension;
import com.sap.sse.datamining.data.Cluster;
import com.sap.sse.datamining.shared.annotations.Dimension;
public interface AngleClusterPolarClusterKey extends BasePolarClusterKey {
@@ -1,7 +1,7 @@
package com.sap.sailing.polars.mining;
import com.sap.sailing.domain.base.BoatClass;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Dimension;
public interface BasePolarClusterKey {
@@ -17,7 +17,6 @@ import com.sap.sailing.domain.common.Speed;
import com.sap.sailing.domain.common.Tack;
import com.sap.sailing.domain.polars.NotEnoughDataHasBeenAddedException;
import com.sap.sailing.domain.polars.PolarsChangedListener;
import com.sap.sse.common.settings.SerializableSettings;
import com.sap.sse.datamining.components.AdditionalResultDataBuilder;
import com.sap.sse.datamining.components.Processor;
import com.sap.sse.datamining.factories.GroupKeyFactory;
@@ -193,16 +192,4 @@ public class CubicRegressionPerCourseProcessor implements
return null;
}
@Override
public SerializableSettings getSettings() {
// TODO Auto-generated method stub
return null;
}
@Override
public void setSettings(SerializableSettings settings) {
// TODO Auto-generated method stub
}
}
@@ -1,7 +1,7 @@
package com.sap.sailing.polars.mining;
import com.sap.sailing.domain.common.LegType;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Dimension;
public interface LegTypePolarClusterKey extends BasePolarClusterKey {
@@ -1,8 +1,8 @@
package com.sap.sailing.polars.mining;
import com.sap.sailing.domain.common.Speed;
import com.sap.sse.datamining.annotations.Dimension;
import com.sap.sse.datamining.data.Cluster;
import com.sap.sse.datamining.shared.annotations.Dimension;
public interface MovingAveragePolarClusterKey extends LegTypePolarClusterKey {
@@ -22,7 +22,6 @@ import com.sap.sailing.domain.tracking.WindWithConfidence;
import com.sap.sailing.polars.regression.MovingAverageBoatSpeedEstimator;
import com.sap.sse.common.TimePoint;
import com.sap.sse.common.Util.Pair;
import com.sap.sse.common.settings.SerializableSettings;
import com.sap.sse.datamining.components.AdditionalResultDataBuilder;
import com.sap.sse.datamining.data.Cluster;
import com.sap.sse.datamining.data.ClusterGroup;
@@ -221,16 +220,4 @@ public class MovingAverageProcessorImpl implements MovingAverageProcessor {
return speedClusterGroup;
}
@Override
public SerializableSettings getSettings() {
// TODO Auto-generated method stub
return null;
}
@Override
public void setSettings(SerializableSettings settings) {
// TODO Auto-generated method stub
}
}
@@ -21,7 +21,6 @@ import com.sap.sailing.domain.polars.NotEnoughDataHasBeenAddedException;
import com.sap.sailing.domain.polars.PolarsChangedListener;
import com.sap.sailing.polars.regression.IncrementalLeastSquares;
import com.sap.sailing.polars.regression.impl.IncrementalAnyOrderLeastSquaresImpl;
import com.sap.sse.common.settings.SerializableSettings;
import com.sap.sse.datamining.components.AdditionalResultDataBuilder;
import com.sap.sse.datamining.components.Processor;
import com.sap.sse.datamining.data.Cluster;
@@ -217,16 +216,4 @@ public class SpeedRegressionPerAngleClusterProcessor implements
return angleClusterGroup;
}
@Override
public SerializableSettings getSettings() {
// TODO Auto-generated method stub
return null;
}
@Override
public void setSettings(SerializableSettings settings) {
// TODO Auto-generated method stub
}
}
@@ -34,5 +34,5 @@
<booleanAttribute key="tracing" value="false"/>
<booleanAttribute key="useCustomFeatures" value="false"/>
<booleanAttribute key="useDefaultConfigArea" value="false"/>
<stringAttribute key="workspace_bundles" value="com.google.gwt.osgi@default:default,com.googlecode.java-diff-utils@default:default,com.googlecode.mgwt@default:default,com.sap.sailing.barbados.resultimport@default:default,com.sap.sailing.dashboards.gwt@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.datamining@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain.deckmanadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.igtimiadapter@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@3:default,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@default:default,com.sap.sailing.domain.tractracadapter@4:true,com.sap.sailing.domain@default:default,com.sap.sailing.ess40.resultimport@default:default,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.freg.resultimport@default:default,com.sap.sailing.geocoding@default:default,com.sap.sailing.gwt.ui@5:true,com.sap.sailing.kiworesultimport@default:default,com.sap.sailing.manage2sail.resultimport@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.monitoring@default:default,com.sap.sailing.news@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.polars.datamining@default:default,com.sap.sailing.polars@4:true,com.sap.sailing.resultimport@default:default,com.sap.sailing.sailwave.resultimport@default:default,com.sap.sailing.server.gateway.ess40@4:true,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway@5:true,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.server@default:default,com.sap.sailing.simulator@default:default,com.sap.sailing.udpconnector@default:default,com.sap.sailing.velum.resultimport@default:default,com.sap.sailing.www.events@4:true,com.sap.sailing.www@4:true,com.sap.sailing.xrr.resultimport@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.xrr.structureimport@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.datamining@default:default,com.sap.sse.filestorage@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.gwt.theme@5:true,com.sap.sse.gwt@default:default,com.sap.sse.mail@4:true,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@4:true,com.sap.sse.security.common@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse.security@5:true,com.sap.sse.shared.android@default:default,com.sap.sse@default:default,com.tractrac.clientmodule@default:default,org.json.simple@default:default,org.moxieapps.gwt.highcharts@default:default"/>
<stringAttribute key="workspace_bundles" value="com.google.gwt.osgi@default:default,com.googlecode.java-diff-utils@default:default,com.googlecode.mgwt@default:default,com.sap.sailing.barbados.resultimport@default:default,com.sap.sailing.dashboards.gwt@5:true,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.datamining@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain.deckmanadapter@4:true,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.igtimiadapter@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.racelogtrackingadapter@3:default,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@4:true,com.sap.sailing.domain.swisstimingreplayadapter@4:true,com.sap.sailing.domain.tractracadapter.persistence@default:default,com.sap.sailing.domain.tractracadapter@4:true,com.sap.sailing.domain@default:default,com.sap.sailing.ess40.resultimport@default:default,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.freg.resultimport@default:default,com.sap.sailing.geocoding@default:default,com.sap.sailing.gwt.ui@5:true,com.sap.sailing.kiworesultimport@default:default,com.sap.sailing.manage2sail.resultimport@default:default,com.sap.sailing.manage2sail@default:default,com.sap.sailing.monitoring@default:default,com.sap.sailing.news@default:default,com.sap.sailing.polars.datamining.shared@default:default,com.sap.sailing.polars.datamining@default:default,com.sap.sailing.polars@4:true,com.sap.sailing.resultimport@default:default,com.sap.sailing.sailwave.resultimport@default:default,com.sap.sailing.server.gateway.ess40@4:true,com.sap.sailing.server.gateway.serialization.shared.android@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway@5:true,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.server@default:default,com.sap.sailing.simulator@default:default,com.sap.sailing.udpconnector@default:default,com.sap.sailing.velum.resultimport@default:default,com.sap.sailing.www.events@4:true,com.sap.sailing.www@4:true,com.sap.sailing.xrr.resultimport@default:default,com.sap.sailing.xrr.schema@default:default,com.sap.sailing.xrr.structureimport@default:default,com.sap.sse.common@default:default,com.sap.sse.datamining.annotations@default:default,com.sap.sse.datamining.shared@default:default,com.sap.sse.datamining@default:default,com.sap.sse.filestorage@default:default,com.sap.sse.gwt.adminconsole@default:default,com.sap.sse.gwt.theme@5:true,com.sap.sse.gwt@default:default,com.sap.sse.mail@4:true,com.sap.sse.mongodb@default:default,com.sap.sse.operationaltransformation@default:default,com.sap.sse.replication@4:true,com.sap.sse.security.common@default:default,com.sap.sse.security.ui@6:true,com.sap.sse.security.userstore.mongodb@4:true,com.sap.sse.security@5:true,com.sap.sse.shared.android@default:default,com.sap.sse@default:default,com.tractrac.clientmodule@default:default,org.json.simple@default:default,org.moxieapps.gwt.highcharts@default:default"/>
</launchConfiguration>
+1 -1
View File
@@ -15,5 +15,5 @@ Export-Package: com.sap.sse.common,
com.sap.sse.common.settings,
com.sap.sse.common.util
Require-Bundle: org.json.simple;bundle-version="1.1.0",
com.sap.sse.datamining.shared
com.sap.sse.datamining.annotations;bundle-version="1.0.0"
Bundle-ActivationPolicy: lazy
@@ -2,7 +2,7 @@ package com.sap.sse.common;
import java.io.Serializable;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Dimension;
public interface Named extends Serializable {
@Dimension(messageKey="Name")
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="output" path="bin"/>
</classpath>
@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>com.sap.sse.datamining.annotations</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
@@ -0,0 +1,7 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8
@@ -0,0 +1,3 @@
eclipse.preferences.version=1
pluginProject.extensions=false
resolve.requirebundle=false
@@ -0,0 +1,9 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Data Mining Annotations
Bundle-SymbolicName: com.sap.sse.datamining.annotations
Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: SAP
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Export-Package: com.sap.sse.datamining.annotations,
com.sap.sse.datamining.annotations.data
@@ -0,0 +1,4 @@
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.
@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<project
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<artifactId>root</artifactId>
<groupId>com.sap.sailing</groupId>
<version>1.0.0-SNAPSHOT</version>
</parent>
<artifactId>com.sap.sse.datamining.annotations</artifactId>
<packaging>eclipse-plugin</packaging>
<build>
<plugins>
<plugin>
<groupId>org.eclipse.tycho</groupId>
<artifactId>tycho-source-plugin</artifactId>
<version>${tycho-version}</version>
<executions>
<execution>
<id>plugin-source</id>
<phase>generate-sources</phase>
<goals>
<goal>plugin-source</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
@@ -1,4 +1,4 @@
package com.sap.sse.datamining.shared.annotations;
package com.sap.sse.datamining.annotations;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
@@ -1,4 +1,4 @@
package com.sap.sse.datamining.shared.annotations;
package com.sap.sse.datamining.annotations;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
@@ -1,4 +1,4 @@
package com.sap.sse.datamining.shared.annotations;
package com.sap.sse.datamining.annotations;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
@@ -7,7 +7,7 @@ import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.Locale;
import com.sap.sse.datamining.shared.data.Unit;
import com.sap.sse.datamining.annotations.data.Unit;
/**
* Methods marked with this annotation will be used as computable statistic for the data mining framework. The method will be called,
@@ -0,0 +1,7 @@
package com.sap.sse.datamining.annotations.data;
public enum Unit {
None, Knots, Meters
}
@@ -6,10 +6,11 @@ Bundle-Version: 1.0.0.qualifier
Bundle-Vendor: SAP
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Export-Package: com.sap.sse.datamining.shared,
com.sap.sse.datamining.shared.annotations,
com.sap.sse.datamining.shared.data,
com.sap.sse.datamining.shared.dto,
com.sap.sse.datamining.shared.impl,
com.sap.sse.datamining.shared.impl.dto,
com.sap.sse.datamining.shared.util
Bundle-ActivationPolicy: lazy
Require-Bundle: com.sap.sse.datamining.annotations;bundle-version="1.0.0",
com.sap.sse.common;bundle-version="1.0.0"
@@ -2,7 +2,7 @@ package com.sap.sse.datamining.shared;
import java.io.Serializable;
import com.sap.sse.datamining.shared.data.Unit;
import com.sap.sse.datamining.annotations.data.Unit;
public interface AdditionalResultData extends Serializable {
@@ -3,8 +3,8 @@ package com.sap.sse.datamining.shared;
import java.io.Serializable;
import java.util.Map;
import com.sap.sse.datamining.annotations.data.Unit;
import com.sap.sse.datamining.shared.data.QueryResultState;
import com.sap.sse.datamining.shared.data.Unit;
public interface QueryResultBase<ResultType> extends Serializable {
@@ -1,7 +0,0 @@
package com.sap.sse.datamining.shared.data;
public enum Unit {
None, Knots, Meters
}
@@ -4,8 +4,8 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import com.sap.sse.common.settings.SerializableSettings;
import com.sap.sse.datamining.shared.impl.dto.AggregationProcessorDefinitionDTO;
import com.sap.sse.datamining.shared.impl.dto.DataRetrieverChainDefinitionDTO;
import com.sap.sse.datamining.shared.impl.dto.DataRetrieverLevelDTO;
@@ -15,8 +15,9 @@ public interface StatisticQueryDefinitionDTO extends Serializable {
public String getLocaleInfoName();
public DataRetrieverChainDefinitionDTO<?> getDataRetrieverChainDefinition();
public Map<DataRetrieverLevelDTO, HashMap<FunctionDTO, HashSet<? extends Serializable>>> getFilterSelection();
public DataRetrieverChainDefinitionDTO getDataRetrieverChainDefinition();
public HashMap<DataRetrieverLevelDTO, SerializableSettings> getRetrieverSettings();
public HashMap<DataRetrieverLevelDTO, HashMap<FunctionDTO, HashSet<? extends Serializable>>> getFilterSelection();
public ArrayList<FunctionDTO> getDimensionsToGroupBy();
public FunctionDTO getStatisticToCalculate();
public AggregationProcessorDefinitionDTO getAggregatorDefinition();
@@ -1,7 +1,7 @@
package com.sap.sse.datamining.shared.impl;
import com.sap.sse.datamining.annotations.data.Unit;
import com.sap.sse.datamining.shared.AdditionalResultData;
import com.sap.sse.datamining.shared.data.Unit;
public class AdditionalResultDataImpl implements AdditionalResultData {
private static final long serialVersionUID = -9054872418326676943L;
@@ -1,7 +1,7 @@
package com.sap.sse.datamining.shared.impl;
import com.sap.sse.datamining.annotations.data.Unit;
import com.sap.sse.datamining.shared.AdditionalResultData;
import com.sap.sse.datamining.shared.data.Unit;
/**
* Null Object pattern for {@link AdditionalResultData} with the values:
@@ -3,11 +3,11 @@ package com.sap.sse.datamining.shared.impl;
import java.util.HashMap;
import java.util.Map;
import com.sap.sse.datamining.annotations.data.Unit;
import com.sap.sse.datamining.shared.AdditionalResultData;
import com.sap.sse.datamining.shared.GroupKey;
import com.sap.sse.datamining.shared.QueryResultBase;
import com.sap.sse.datamining.shared.data.QueryResultState;
import com.sap.sse.datamining.shared.data.Unit;
public abstract class QueryResultBaseImpl<ResultType> implements QueryResultBase<ResultType> {
private static final long serialVersionUID = 5696532932535299241L;
@@ -2,32 +2,30 @@ package com.sap.sse.datamining.shared.impl.dto;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.UUID;
public class DataRetrieverChainDefinitionDTO<Settings extends Serializable> implements Serializable, Comparable<DataRetrieverChainDefinitionDTO<Settings>> {
import com.sap.sse.common.settings.SerializableSettings;
public class DataRetrieverChainDefinitionDTO implements Serializable, Comparable<DataRetrieverChainDefinitionDTO> {
private static final long serialVersionUID = 7806173601799997214L;
private UUID id;
private String name;
private String dataSourceTypeName;
private Settings settings;
private ArrayList<DataRetrieverLevelDTO> retrieverLevels;
private boolean settingsHaveChanged = false;
/**
* <b>Constructor for the GWT-Serialization. Don't use this!</b>
*/
@Deprecated
DataRetrieverChainDefinitionDTO() { }
public DataRetrieverChainDefinitionDTO(UUID id, String name, String dataSourceTypeName, ArrayList<DataRetrieverLevelDTO> retrieverLevels,
Settings settings) {
public DataRetrieverChainDefinitionDTO(UUID id, String name, String dataSourceTypeName, ArrayList<DataRetrieverLevelDTO> retrieverLevels) {
this.id = id;
this.name = name;
this.dataSourceTypeName = dataSourceTypeName;
this.settings = settings;
this.retrieverLevels = new ArrayList<>(retrieverLevels);
}
@@ -38,14 +36,6 @@ public class DataRetrieverChainDefinitionDTO<Settings extends Serializable> impl
public String getName() {
return name;
}
public boolean hasSettings() {
return settings != null;
}
public Settings getSettings() {
return settings;
}
public String getDataSourceTypeName() {
return dataSourceTypeName;
@@ -90,9 +80,35 @@ public class DataRetrieverChainDefinitionDTO<Settings extends Serializable> impl
return getRetrieverLevel(retrieverLevel.getLevel() - 1);
}
/**
* @return <code>true</code>, if any retriever level of this chain has settings.
*/
public boolean hasSettings() {
for (DataRetrieverLevelDTO retrieverLevel : retrieverLevels) {
if (retrieverLevel.hasSettings()) {
return true;
}
}
return false;
}
/**
*
* @return the default settings mapped by the retriever levels or an empty map, if there are {@link #hasSettings() no settings}.
*/
public HashMap<DataRetrieverLevelDTO, SerializableSettings> getDefaultSettings() {
HashMap<DataRetrieverLevelDTO, SerializableSettings> settings = new HashMap<>();
for (DataRetrieverLevelDTO retrieverLevel : retrieverLevels) {
if (retrieverLevel.hasSettings()) {
settings.put(retrieverLevel, retrieverLevel.getDefaultSettings());
}
}
return settings;
}
@Override
public int compareTo(DataRetrieverChainDefinitionDTO<Settings> d) {
return this.getName().compareTo(d.getName());
public int compareTo(DataRetrieverChainDefinitionDTO other) {
return this.getName().compareTo(other.getName());
}
@Override
@@ -117,7 +133,7 @@ public class DataRetrieverChainDefinitionDTO<Settings extends Serializable> impl
return false;
if (getClass() != obj.getClass())
return false;
DataRetrieverChainDefinitionDTO<?> other = (DataRetrieverChainDefinitionDTO<?>) obj;
DataRetrieverChainDefinitionDTO other = (DataRetrieverChainDefinitionDTO) obj;
if (id == null) {
if (other.id != null)
return false;
@@ -125,18 +141,5 @@ public class DataRetrieverChainDefinitionDTO<Settings extends Serializable> impl
return false;
return true;
}
public void setSettings(Settings newSettings) {
settings = newSettings;
settingsHaveChanged = true;
}
public boolean settingsHaveChanged() {
return settingsHaveChanged ;
}
public void resetSettingsChangeFlag() {
settingsHaveChanged = false;
}
}
@@ -2,12 +2,16 @@ package com.sap.sse.datamining.shared.impl.dto;
import java.io.Serializable;
import com.sap.sse.common.settings.SerializableSettings;
public class DataRetrieverLevelDTO implements Serializable, Comparable<DataRetrieverLevelDTO> {
private static final long serialVersionUID = 6911713148350359643L;
private int retrieverLevel;
private String retrieverTypeName;
private LocalizedTypeDTO retrievedDataType;
private SerializableSettings defaultSettings;
/**
* <b>Constructor for the GWT-Serialization. Don't use this!</b>
@@ -15,10 +19,12 @@ public class DataRetrieverLevelDTO implements Serializable, Comparable<DataRetri
@Deprecated
DataRetrieverLevelDTO() { }
public DataRetrieverLevelDTO(int retrieverLevel, String retrieverTypeName, LocalizedTypeDTO retrievedDataType) {
public DataRetrieverLevelDTO(int retrieverLevel, String retrieverTypeName,
LocalizedTypeDTO retrievedDataType, SerializableSettings defaultSettings) {
this.retrieverLevel = retrieverLevel;
this.retrieverTypeName = retrieverTypeName;
this.retrievedDataType = retrievedDataType;
this.defaultSettings = defaultSettings;
}
public int getLevel() {
@@ -32,6 +38,14 @@ public class DataRetrieverLevelDTO implements Serializable, Comparable<DataRetri
public LocalizedTypeDTO getRetrievedDataType() {
return retrievedDataType;
}
public boolean hasSettings() {
return getDefaultSettings() != null;
}
public SerializableSettings getDefaultSettings() {
return defaultSettings;
}
@Override
public int compareTo(DataRetrieverLevelDTO otherRetrieverLevel) {
@@ -5,6 +5,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import com.sap.sse.common.settings.SerializableSettings;
import com.sap.sse.datamining.shared.dto.StatisticQueryDefinitionDTO;
public class ModifiableStatisticQueryDefinitionDTO implements StatisticQueryDefinitionDTO {
@@ -14,7 +15,8 @@ public class ModifiableStatisticQueryDefinitionDTO implements StatisticQueryDefi
private FunctionDTO statisticToCalculate;
private AggregationProcessorDefinitionDTO aggregatorDefinition;
private ArrayList<FunctionDTO> dimensionsToGroupBy;
private DataRetrieverChainDefinitionDTO<? extends Serializable> dataRetrieverChainDefinition;
private DataRetrieverChainDefinitionDTO dataRetrieverChainDefinition;
private HashMap<DataRetrieverLevelDTO, SerializableSettings> retrieverSettings;
private HashMap<DataRetrieverLevelDTO, HashMap<FunctionDTO, HashSet<? extends Serializable>>> filterSelection;
/**
@@ -23,7 +25,7 @@ public class ModifiableStatisticQueryDefinitionDTO implements StatisticQueryDefi
@Deprecated
ModifiableStatisticQueryDefinitionDTO() { }
public ModifiableStatisticQueryDefinitionDTO(String localeInfoName, FunctionDTO statisticToCalculate, AggregationProcessorDefinitionDTO aggregatorDefinition, DataRetrieverChainDefinitionDTO<? extends Serializable> dataRetrieverChainDefinition) {
public ModifiableStatisticQueryDefinitionDTO(String localeInfoName, FunctionDTO statisticToCalculate, AggregationProcessorDefinitionDTO aggregatorDefinition, DataRetrieverChainDefinitionDTO dataRetrieverChainDefinition) {
this.localeInfoName = localeInfoName;
this.statisticToCalculate = statisticToCalculate;
this.aggregatorDefinition = aggregatorDefinition;
@@ -32,6 +34,10 @@ public class ModifiableStatisticQueryDefinitionDTO implements StatisticQueryDefi
this.dimensionsToGroupBy = new ArrayList<FunctionDTO>();
}
public void setRetrieverSettings(DataRetrieverLevelDTO retrieverLevel, SerializableSettings settings) {
retrieverSettings.put(retrieverLevel, settings);
}
public void setFilterSelectionFor(DataRetrieverLevelDTO retrieverLevel, HashMap<FunctionDTO, HashSet<? extends Serializable>> levelFilterSelection) {
filterSelection.put(retrieverLevel, levelFilterSelection);
}
@@ -46,9 +52,14 @@ public class ModifiableStatisticQueryDefinitionDTO implements StatisticQueryDefi
}
@Override
public DataRetrieverChainDefinitionDTO<?> getDataRetrieverChainDefinition() {
public DataRetrieverChainDefinitionDTO getDataRetrieverChainDefinition() {
return dataRetrieverChainDefinition;
}
@Override
public HashMap<DataRetrieverLevelDTO, SerializableSettings> getRetrieverSettings() {
return retrieverSettings;
}
@Override
public HashMap<DataRetrieverLevelDTO, HashMap<FunctionDTO, HashSet<? extends Serializable>>> getFilterSelection() {
@@ -7,7 +7,8 @@ Bundle-Vendor: SAP
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Fragment-Host: com.sap.sse.datamining
Require-Bundle: org.mockito.mockito-core;bundle-version="1.9.5",
org.hamcrest;bundle-version="1.1.0"
org.hamcrest;bundle-version="1.1.0",
com.sap.sse.datamining.annotations;bundle-version="1.0.0"
Import-Package: junit.framework;version="4.8.2",
org.junit;version="4.8.2",
org.junit.runner;version="4.8.2"
@@ -45,7 +45,7 @@ public class TestDimensionsValuesQuery {
private static final ResourceBundleStringMessages stringMessages = TestsUtil.getTestStringMessagesWithProductiveMessages();
private static final Locale locale = Locale.ENGLISH;
private DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext, ?> dataRetrieverChainDefinition;
private DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext> dataRetrieverChainDefinition;
private Collection<Test_Regatta> dataSource;
//Test_HasRaceContext dimensions
@@ -97,7 +97,7 @@ public class TestDimensionsValuesQuery {
raceDimensions.add(dimensionBoatClassName);
raceDimensions.add(dimensionYear);
Map<DataRetrieverLevel<?, ?>, Map<Function<?>, Collection<?>>> filterSelection = new HashMap<>();
Query<HashSet<Object>> dimensionsValueQuery = server.createDimensionValuesQuery(dataRetrieverChainDefinition, dataRetrieverChainDefinition.getDataRetrieverLevel(/*race*/ 1), raceDimensions, filterSelection, locale);
Query<HashSet<Object>> dimensionsValueQuery = server.createDimensionValuesQuery(dataRetrieverChainDefinition, dataRetrieverChainDefinition.getDataRetrieverLevel(/*race*/ 1), raceDimensions, new HashMap<>(), filterSelection, locale);
Map<GroupKey, HashSet<Object>> expectedRaceResultData = buildExpectedRaceResultData();
QueryResult<HashSet<Object>> result = dimensionsValueQuery.run();
@@ -107,7 +107,7 @@ public class TestDimensionsValuesQuery {
legDimensions.add(dimensionLegNumber);
legDimensions.add(dimensionCompetitorName);
legDimensions.add(dimensionCompetitorSailID);
dimensionsValueQuery = server.createDimensionValuesQuery(dataRetrieverChainDefinition, dataRetrieverChainDefinition.getDataRetrieverLevel(/*leg*/ 2), legDimensions, filterSelection, locale);
dimensionsValueQuery = server.createDimensionValuesQuery(dataRetrieverChainDefinition, dataRetrieverChainDefinition.getDataRetrieverLevel(/*leg*/ 2), legDimensions, new HashMap<>(), filterSelection, locale);
Map<GroupKey, HashSet<Object>> expectedLegResultData = buildExpectedLegResultData();
result = dimensionsValueQuery.run();
@@ -19,6 +19,7 @@ import com.sap.sse.datamining.ModifiableDataMiningServer;
import com.sap.sse.datamining.Query;
import com.sap.sse.datamining.QueryState;
import com.sap.sse.datamining.StatisticQueryDefinition;
import com.sap.sse.datamining.annotations.data.Unit;
import com.sap.sse.datamining.components.AggregationProcessorDefinition;
import com.sap.sse.datamining.components.DataRetrieverChainDefinition;
import com.sap.sse.datamining.components.Processor;
@@ -29,7 +30,6 @@ import com.sap.sse.datamining.impl.components.aggregators.ParallelGroupedNumberD
import com.sap.sse.datamining.impl.data.QueryResultImpl;
import com.sap.sse.datamining.shared.GroupKey;
import com.sap.sse.datamining.shared.data.QueryResultState;
import com.sap.sse.datamining.shared.data.Unit;
import com.sap.sse.datamining.shared.impl.AdditionalResultDataImpl;
import com.sap.sse.datamining.shared.impl.GenericGroupKey;
import com.sap.sse.datamining.test.util.FunctionTestsUtil;
@@ -70,7 +70,7 @@ public class TestStatisticQuery {
FunctionFactory functionFactory = FunctionTestsUtil.getFunctionFactory();
@SuppressWarnings("unchecked")
DataRetrieverChainDefinition<Collection<Number>, Number, ?> retrieverChain = new SingleDataRetrieverChainDefinition<>((Class<Collection<Number>>)(Class<?>) Collection.class, Number.class, "Number");
DataRetrieverChainDefinition<Collection<Number>, Number> retrieverChain = new SingleDataRetrieverChainDefinition<>((Class<Collection<Number>>)(Class<?>) Collection.class, Number.class, "Number");
retrieverChain.startWith(NumberRetrievalProcessor.class, Number.class, "Number");
Method getCrossSumMethod = FunctionTestsUtil.getMethodFromClass(Number.class, "getCrossSum");
@@ -1,8 +1,10 @@
package com.sap.sse.datamining.impl.components;
import static com.sap.sse.datamining.test.util.ConcurrencyTestsUtil.getExecutor;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.not;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.fail;
import java.util.Collection;
import java.util.List;
@@ -14,7 +16,6 @@ import com.sap.sse.datamining.components.DataRetrieverChainBuilder;
import com.sap.sse.datamining.components.DataRetrieverChainDefinition;
import com.sap.sse.datamining.components.FilterCriterion;
import com.sap.sse.datamining.components.Processor;
import com.sap.sse.datamining.impl.components.SimpleDataRetrieverChainDefinition.EmptySettings;
import com.sap.sse.datamining.impl.criterias.AbstractFilterCriterion;
import com.sap.sse.datamining.test.data.Test_HasLegOfCompetitorContext;
import com.sap.sse.datamining.test.data.Test_HasRaceContext;
@@ -23,13 +24,14 @@ import com.sap.sse.datamining.test.util.ComponentTestsUtil;
import com.sap.sse.datamining.test.util.ConcurrencyTestsUtil;
import com.sap.sse.datamining.test.util.components.NullProcessor;
import com.sap.sse.datamining.test.util.components.TestLegOfCompetitorWithContextRetrievalProcessor;
import com.sap.sse.datamining.test.util.components.TestNullRetrievalProcessorWithSettings;
import com.sap.sse.datamining.test.util.components.TestRaceWithContextRetrievalProcessor;
import com.sap.sse.datamining.test.util.components.TestRegattaRetrievalProcessor;
import com.sap.sse.datamining.test.util.components.Test_NullRetrievalProcessorSettings;
public class TestDataRetrieverChainCreation {
@SuppressWarnings("rawtypes")
private DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext, EmptySettings> dataRetrieverChainDefinition;
private DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext> dataRetrieverChainDefinition;
private FilterCriterion<Test_HasRaceContext> raceFilter;
private FilterCriterion<Test_HasLegOfCompetitorContext> legOfCompetitorFilter;
@@ -79,7 +81,7 @@ public class TestDataRetrieverChainCreation {
@SuppressWarnings("unchecked")
@Test(expected=IllegalStateException.class)
public void testCreationWithExistingChainDefinition() {
DataRetrieverChainDefinition<Collection<Test_Regatta>, ?, ?> chainClone = new SimpleDataRetrieverChainDefinition<>(dataRetrieverChainDefinition, Void.class, "TestRetrieverChain");
DataRetrieverChainDefinition<Collection<Test_Regatta>, ?> chainClone = new SimpleDataRetrieverChainDefinition<>(dataRetrieverChainDefinition, Void.class, "TestRetrieverChain");
assertThat(chainClone.getDataSourceType().equals(dataRetrieverChainDefinition.getDataSourceType()), is(true));
List<DataRetrieverLevel<?, ?>> cloneDataRetrieverTypesWithInformation = (List<DataRetrieverLevel<?, ?>>) chainClone.getDataRetrieverLevels();
@@ -96,18 +98,27 @@ public class TestDataRetrieverChainCreation {
try {
chainBuilder.getCurrentRetrievedDataType();
fail("An IllegalStateException is expected.");
} catch (IllegalStateException e) {
}
try {
chainBuilder.setFilter(null);
fail("An IllegalStateException is expected.");
} catch (IllegalStateException e) {
}
try {
chainBuilder.setSettings(null);
fail("An IllegalStateException is expected.");
} catch (IllegalStateException e) {
}
try {
chainBuilder.addResultReceiver(null);
fail("An IllegalStateException is expected.");
} catch (IllegalStateException e) {
}
try {
chainBuilder.build();
fail("An IllegalStateException is expected.");
} catch (IllegalStateException e) {
}
}
@@ -138,7 +149,7 @@ public class TestDataRetrieverChainCreation {
@SuppressWarnings("unchecked")
@Test(expected=IllegalStateException.class)
public void testAddAfterWithoutStarting() {
DataRetrieverChainDefinition<Collection<Test_Regatta>, ?, ?> dataRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>((Class<Collection<Test_Regatta>>)(Class<?>) Collection.class, Void.class, "TestRetrieverChain");
DataRetrieverChainDefinition<Collection<Test_Regatta>, ?> dataRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>((Class<Collection<Test_Regatta>>)(Class<?>) Collection.class, Void.class, "TestRetrieverChain");
Class<Processor<Collection<Test_Regatta>, Test_Regatta>> regattaRetrieverClass = (Class<Processor<Collection<Test_Regatta>, Test_Regatta>>)(Class<?>) TestRegattaRetrievalProcessor.class;
Class<Processor<Test_Regatta, Test_HasRaceContext>> raceRetrieverClass =
@@ -151,7 +162,7 @@ public class TestDataRetrieverChainCreation {
@SuppressWarnings("unchecked")
@Test(expected=IllegalStateException.class)
public void testStartingTwice() {
DataRetrieverChainDefinition<Collection<Test_Regatta>, ?, ?> dataRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>((Class<Collection<Test_Regatta>>)(Class<?>) Collection.class, Void.class, "TestRetrieverChain");
DataRetrieverChainDefinition<Collection<Test_Regatta>, ?> dataRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>((Class<Collection<Test_Regatta>>)(Class<?>) Collection.class, Void.class, "TestRetrieverChain");
Class<Processor<Collection<Test_Regatta>, Test_Regatta>> regattaRetrieverClass = (Class<Processor<Collection<Test_Regatta>, Test_Regatta>>)(Class<?>) TestRegattaRetrievalProcessor.class;
dataRetrieverChainDefinition.startWith(regattaRetrieverClass, Test_Regatta.class, "regatta");
dataRetrieverChainDefinition.startWith(regattaRetrieverClass, Test_Regatta.class, "regatta");
@@ -160,14 +171,14 @@ public class TestDataRetrieverChainCreation {
@SuppressWarnings("unchecked")
@Test(expected=IllegalArgumentException.class)
public void testStartingWithProcessorWithoutUsableConstructor() {
DataRetrieverChainDefinition<Collection<Test_Regatta>, ?, ?> dataRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>((Class<Collection<Test_Regatta>>)(Class<?>) Collection.class, Void.class, "TestRetrieverChain");
DataRetrieverChainDefinition<Collection<Test_Regatta>, ?> dataRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>((Class<Collection<Test_Regatta>>)(Class<?>) Collection.class, Void.class, "TestRetrieverChain");
dataRetrieverChainDefinition.startWith((Class<Processor<Collection<Test_Regatta>, Test_Regatta>>)(Class<?>) Processor.class, Test_Regatta.class, "regatta");
}
@SuppressWarnings("unchecked")
@Test(expected=IllegalArgumentException.class)
public void testAddingProcessorWithoutUsableConstructor() {
DataRetrieverChainDefinition<Collection<Test_Regatta>, ?, ?> dataRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>((Class<Collection<Test_Regatta>>)(Class<?>) Collection.class, Void.class, "TestRetrieverChain");
DataRetrieverChainDefinition<Collection<Test_Regatta>, ?> dataRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>((Class<Collection<Test_Regatta>>)(Class<?>) Collection.class, Void.class, "TestRetrieverChain");
Class<Processor<Collection<Test_Regatta>, Test_Regatta>> regattaRetrieverClass = (Class<Processor<Collection<Test_Regatta>, Test_Regatta>>)(Class<?>) TestRegattaRetrievalProcessor.class;
dataRetrieverChainDefinition.startWith(regattaRetrieverClass, Test_Regatta.class, "regatta");
@@ -179,7 +190,7 @@ public class TestDataRetrieverChainCreation {
@SuppressWarnings("unchecked")
@Test(expected=IllegalArgumentException.class)
public void testAddingRetrieverThatDoesntMatch() {
DataRetrieverChainDefinition<Collection<Test_Regatta>, ?, ?> dataRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>((Class<Collection<Test_Regatta>>)(Class<?>) Collection.class, Void.class, "TestRetrieverChain");
DataRetrieverChainDefinition<Collection<Test_Regatta>, ?> dataRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>((Class<Collection<Test_Regatta>>)(Class<?>) Collection.class, Void.class, "TestRetrieverChain");
Class<Processor<Collection<Test_Regatta>, Test_Regatta>> regattaRetrieverClass = (Class<Processor<Collection<Test_Regatta>, Test_Regatta>>)(Class<?>) TestRegattaRetrievalProcessor.class;
dataRetrieverChainDefinition.startWith(regattaRetrieverClass, Test_Regatta.class, "regatta");
@@ -231,7 +242,7 @@ public class TestDataRetrieverChainCreation {
@SuppressWarnings("unchecked")
@Test(expected=IllegalStateException.class)
public void testStartBuildingWithIncompleteChain() {
DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext, ?> dataRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>((Class<Collection<Test_Regatta>>)(Class<?>) Collection.class, Test_HasLegOfCompetitorContext.class, "TestRetrieverChain");
DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext> dataRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>((Class<Collection<Test_Regatta>>)(Class<?>) Collection.class, Test_HasLegOfCompetitorContext.class, "TestRetrieverChain");
Class<Processor<Collection<Test_Regatta>, Test_Regatta>> regattaRetrieverClass = (Class<Processor<Collection<Test_Regatta>, Test_Regatta>>)(Class<?>) TestRegattaRetrievalProcessor.class;
dataRetrieverChainDefinition.startWith(regattaRetrieverClass, Test_Regatta.class, "regatta");
@@ -243,5 +254,63 @@ public class TestDataRetrieverChainCreation {
dataRetrieverChainDefinition.startBuilding(ConcurrencyTestsUtil.getExecutor());
}
@Test(expected=IllegalStateException.class)
public void testSteppingToFar() {
DataRetrieverChainBuilder<Collection<Test_Regatta>> chainBuilder = dataRetrieverChainDefinition.startBuilding(ConcurrencyTestsUtil.getExecutor());
while (chainBuilder.canStepFurther()) {
chainBuilder.stepFurther();
}
chainBuilder.stepFurther();
}
@Test
public void testRetrieverChainWithSettingsCreation() {
DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext> chainWithSettings =
new SimpleDataRetrieverChainDefinition<>(dataRetrieverChainDefinition, Test_HasLegOfCompetitorContext.class, "TestRetrieverChain");
chainWithSettings.endWith(TestLegOfCompetitorWithContextRetrievalProcessor.class, TestNullRetrievalProcessorWithSettings.class, Test_HasLegOfCompetitorContext.class,
Test_NullRetrievalProcessorSettings.class, new Test_NullRetrievalProcessorSettings("Default Settings"), "legOfCompetitor");
DataRetrieverChainBuilder<Collection<Test_Regatta>> chainBuilder = chainWithSettings.startBuilding(getExecutor());
while (chainBuilder.canStepFurther()) {
chainBuilder.stepFurther();
}
chainBuilder.build();
Test_NullRetrievalProcessorSettings settings = new Test_NullRetrievalProcessorSettings("Settings Value");
chainBuilder.setSettings(settings);
chainBuilder.build();
}
@Test(expected=NullPointerException.class)
public void testRetrieverChainDefinitionWithSettingsButWithoutDefaultSettings() {
DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext> chainWithSettings =
new SimpleDataRetrieverChainDefinition<>(dataRetrieverChainDefinition, Test_HasLegOfCompetitorContext.class, "TestRetrieverChain");
chainWithSettings.endWith(TestLegOfCompetitorWithContextRetrievalProcessor.class, TestNullRetrievalProcessorWithSettings.class, Test_HasLegOfCompetitorContext.class,
Test_NullRetrievalProcessorSettings.class, null, "legOfCompetitor");
}
@Test(expected=IllegalArgumentException.class)
public void testRetrieverChainWithWrongSettingsCreation() {
DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext> chainWithSettings =
new SimpleDataRetrieverChainDefinition<>(dataRetrieverChainDefinition, Test_HasLegOfCompetitorContext.class, "TestRetrieverChain");
chainWithSettings.endWith(TestLegOfCompetitorWithContextRetrievalProcessor.class, TestNullRetrievalProcessorWithSettings.class, Test_HasLegOfCompetitorContext.class,
Test_NullRetrievalProcessorSettings.class, new Test_NullRetrievalProcessorSettings("Default Settings"), "legOfCompetitor");
DataRetrieverChainBuilder<Collection<Test_Regatta>> chainBuilder = chainWithSettings.startBuilding(getExecutor());
while (chainBuilder.canStepFurther()) {
chainBuilder.stepFurther();
}
chainBuilder.setSettings("Error");
}
@Test(expected=IllegalStateException.class)
public void testRetrieverWithNoSettingsButSettedSettingsCreated() {
DataRetrieverChainBuilder<Collection<Test_Regatta>> chainBuilder = dataRetrieverChainDefinition.startBuilding(ConcurrencyTestsUtil.getExecutor());
chainBuilder.stepFurther(); // Initialization
chainBuilder.setSettings("Error");
}
}
@@ -14,7 +14,6 @@ import com.sap.sse.datamining.ModifiableDataMiningServer;
import com.sap.sse.datamining.components.DataRetrieverChainDefinition;
import com.sap.sse.datamining.components.Processor;
import com.sap.sse.datamining.impl.components.SimpleDataRetrieverChainDefinition;
import com.sap.sse.datamining.impl.components.SimpleDataRetrieverChainDefinition.EmptySettings;
import com.sap.sse.datamining.test.data.Test_HasLegOfCompetitorContext;
import com.sap.sse.datamining.test.data.Test_HasRaceContext;
import com.sap.sse.datamining.test.data.Test_HasRaceContextImpl;
@@ -27,9 +26,8 @@ import com.sap.sse.datamining.test.util.components.TestRegattaRetrievalProcessor
public class TestDataRetrieverChainDefinitionManagement {
@SuppressWarnings("rawtypes")
private DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasRaceContext, EmptySettings> raceRetrieverChainDefinition;
private DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext, ?> legRetrieverChainDefinition;
private DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasRaceContext> raceRetrieverChainDefinition;
private DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext> legRetrieverChainDefinition;
private ModifiableDataMiningServer server;
@SuppressWarnings("unchecked")
@@ -63,7 +61,7 @@ public class TestDataRetrieverChainDefinitionManagement {
public void testGetDataRetrieverChainDefinitions() {
Class<Collection<Test_Regatta>> dataSourceType = (Class<Collection<Test_Regatta>>)(Class<?>) Collection.class;
Collection<DataRetrieverChainDefinition<?, ?, ?>> expectedRetrieverChainDefinitions = new HashSet<>();
Collection<DataRetrieverChainDefinition<?, ?>> expectedRetrieverChainDefinitions = new HashSet<>();
expectedRetrieverChainDefinitions.add(raceRetrieverChainDefinition);
assertThat(server.getDataRetrieverChainDefinitions(dataSourceType, Test_HasRaceContext.class), is(expectedRetrieverChainDefinitions));
@@ -109,7 +107,7 @@ public class TestDataRetrieverChainDefinitionManagement {
server.unregisterDataRetrieverChainDefinition(legRetrieverChainDefinition);
assertThat(server.getComponentsChangedTimepoint().after(beforeUnregistration), is(false));
Collection<DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext, ?>> expectedEmptyDataRetrieverChainDefinitions = new HashSet<>();
Collection<DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext>> expectedEmptyDataRetrieverChainDefinitions = new HashSet<>();
assertThat(server.getDataRetrieverChainDefinitions(dataSourceType, Test_HasLegOfCompetitorContext.class), is(expectedEmptyDataRetrieverChainDefinitions));
}
@@ -123,14 +121,14 @@ public class TestDataRetrieverChainDefinitionManagement {
server.registerDataRetrieverChainDefinition(legRetrieverChainDefinition);
assertThat(server.getComponentsChangedTimepoint().after(beforeRegistration), is(false));
Collection<DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext, ?>> expectedDataRetrieverChainDefinitions = new HashSet<>();
Collection<DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext>> expectedDataRetrieverChainDefinitions = new HashSet<>();
expectedDataRetrieverChainDefinitions.add(legRetrieverChainDefinition);
assertThat(server.getDataRetrieverChainDefinitions(dataSourceType, Test_HasLegOfCompetitorContext.class), is(expectedDataRetrieverChainDefinitions));
}
@Test
public void testGetDataRetrieverChainDefinitionsForNotRegisteredChain() {
Collection<DataRetrieverChainDefinition<Test_Regatta, Test_HasRaceContextImpl, ?>> expectedEmptyDataRetrieverChainDefinitions = new HashSet<>();
Collection<DataRetrieverChainDefinition<Test_Regatta, Test_HasRaceContextImpl>> expectedEmptyDataRetrieverChainDefinitions = new HashSet<>();
assertThat(server.getDataRetrieverChainDefinitions(Test_Regatta.class, Test_HasRaceContextImpl.class), is(expectedEmptyDataRetrieverChainDefinitions));
}
@@ -10,8 +10,8 @@ import java.util.Locale;
import org.junit.Before;
import org.junit.Test;
import com.sap.sse.datamining.annotations.data.Unit;
import com.sap.sse.datamining.functions.Function;
import com.sap.sse.datamining.shared.data.Unit;
import com.sap.sse.datamining.test.data.impl.ContainerElement;
import com.sap.sse.datamining.test.data.impl.ContainerElementImpl;
import com.sap.sse.datamining.test.data.impl.MarkedContainer;
@@ -81,7 +81,7 @@ public class TestFunctionManagerAsFunctionProvider {
@Test
public void testGetDimensionsForDataRetrieverChainDefinition() {
DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext, ?> dataRetrieverChainDefinition = createDataRetrieverChainDefinition();
DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext> dataRetrieverChainDefinition = createDataRetrieverChainDefinition();
List<? extends DataRetrieverLevel<?, ?>> dataRetrieverLevels = dataRetrieverChainDefinition.getDataRetrieverLevels();
Map<DataRetrieverLevel<?, ?>, Iterable<Function<?>>> expectedDimensions = new HashMap<>();
@@ -94,7 +94,7 @@ public class TestFunctionManagerAsFunctionProvider {
@Test
public void testGetReducedDimensionsForDataRetrieverChainDefinition() {
DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext, ?> retrieverChain = createDataRetrieverChainDefinition();
DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext> retrieverChain = createDataRetrieverChainDefinition();
Map<DataRetrieverLevel<?, ?>, Iterable<Function<?>>> expectedDimensions = server.getDimensionsMappedByLevelFor(retrieverChain);
for (DataRetrieverLevel<?, ?> retrieverLevel : expectedDimensions.keySet()) {
@@ -115,8 +115,8 @@ public class TestFunctionManagerAsFunctionProvider {
}
@SuppressWarnings("unchecked")
public DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext, ?> createDataRetrieverChainDefinition() {
DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext, ?> dataRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>((Class<Collection<Test_Regatta>>)(Class<?>) Collection.class, Test_HasLegOfCompetitorContext.class, "TestRetrieverChain");
public DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext> createDataRetrieverChainDefinition() {
DataRetrieverChainDefinition<Collection<Test_Regatta>, Test_HasLegOfCompetitorContext> dataRetrieverChainDefinition = new SimpleDataRetrieverChainDefinition<>((Class<Collection<Test_Regatta>>)(Class<?>) Collection.class, Test_HasLegOfCompetitorContext.class, "TestRetrieverChain");
Class<Processor<Collection<Test_Regatta>, Test_Regatta>> regattaRetrieverClass = (Class<Processor<Collection<Test_Regatta>, Test_Regatta>>)(Class<?>) TestRegattaRetrievalProcessor.class;
dataRetrieverChainDefinition.startWith(regattaRetrieverClass, Test_Regatta.class, "regatta");
@@ -1,9 +1,9 @@
package com.sap.sse.datamining.test.data;
import com.sap.sse.datamining.annotations.Connector;
import com.sap.sse.datamining.annotations.Dimension;
import com.sap.sse.datamining.annotations.Statistic;
import com.sap.sse.datamining.components.management.FunctionRegistry;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.shared.annotations.Statistic;
import com.sap.sse.datamining.test.domain.Test_DeadConnectorEnd;
/**
@@ -1,7 +1,7 @@
package com.sap.sse.datamining.test.data;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Connector;
import com.sap.sse.datamining.annotations.Dimension;
import com.sap.sse.datamining.test.domain.Test_Competitor;
import com.sap.sse.datamining.test.domain.Test_Leg;
@@ -1,7 +1,7 @@
package com.sap.sse.datamining.test.data;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Connector;
import com.sap.sse.datamining.annotations.Dimension;
import com.sap.sse.datamining.test.domain.Test_BoatClass;
import com.sap.sse.datamining.test.domain.Test_Race;
import com.sap.sse.datamining.test.domain.Test_Regatta;
@@ -1,6 +1,6 @@
package com.sap.sse.datamining.test.data.impl;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Dimension;
public interface ContainerElement {
@@ -1,7 +1,7 @@
package com.sap.sse.datamining.test.data.impl;
import com.sap.sse.datamining.shared.annotations.Statistic;
import com.sap.sse.datamining.shared.data.Unit;
import com.sap.sse.datamining.annotations.Statistic;
import com.sap.sse.datamining.annotations.data.Unit;
public interface DataTypeInterface {
@@ -1,6 +1,6 @@
package com.sap.sse.datamining.test.data.impl;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Dimension;
/*
* DON'T CHANGE THE METHOD/CLASS NAMES!
@@ -1,6 +1,6 @@
package com.sap.sse.datamining.test.data.impl;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.annotations.Connector;
public interface ExtendingInterface {
@@ -1,6 +1,6 @@
package com.sap.sse.datamining.test.data.impl;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.annotations.Connector;
public interface MarkedContainer {
@@ -2,8 +2,8 @@ package com.sap.sse.datamining.test.data.impl;
import java.util.Locale;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.shared.annotations.Statistic;
import com.sap.sse.datamining.annotations.Dimension;
import com.sap.sse.datamining.annotations.Statistic;
import com.sap.sse.i18n.ResourceBundleStringMessages;
/*
@@ -1,6 +1,6 @@
package com.sap.sse.datamining.test.domain;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Dimension;
public interface Test_Boat {
@@ -1,6 +1,6 @@
package com.sap.sse.datamining.test.domain;
import com.sap.sse.datamining.shared.annotations.Connector;
import com.sap.sse.datamining.annotations.Connector;
public interface Test_Competitor {
@@ -1,7 +1,7 @@
package com.sap.sse.datamining.test.domain;
import com.sap.sse.datamining.shared.annotations.Statistic;
import com.sap.sse.datamining.shared.data.Unit;
import com.sap.sse.datamining.annotations.Statistic;
import com.sap.sse.datamining.annotations.data.Unit;
public interface Test_Leg {
@@ -1,6 +1,6 @@
package com.sap.sse.datamining.test.domain;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Dimension;
public interface Test_Named {
@@ -2,7 +2,7 @@ package com.sap.sse.datamining.test.util.components;
import java.io.Serializable;
import com.sap.sse.datamining.shared.annotations.Dimension;
import com.sap.sse.datamining.annotations.Dimension;
/*
* DON'T CHANGE THE METHOD/CLASS NAMES!
@@ -0,0 +1,29 @@
package com.sap.sse.datamining.test.util.components;
import java.util.ArrayList;
import java.util.Collection;
import java.util.concurrent.ExecutorService;
import com.sap.sse.datamining.components.Processor;
import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor;
import com.sap.sse.datamining.test.data.Test_HasLegOfCompetitorContext;
public class TestNullRetrievalProcessorWithSettings extends AbstractRetrievalProcessor<Test_HasLegOfCompetitorContext, Test_HasLegOfCompetitorContext>{
@SuppressWarnings("unused")
private Test_NullRetrievalProcessorSettings settings;
public TestNullRetrievalProcessorWithSettings(ExecutorService executor, Collection<Processor<Test_HasLegOfCompetitorContext, ?>> resultReceivers,
Test_NullRetrievalProcessorSettings settings, int retrievalLevel) {
super(Test_HasLegOfCompetitorContext.class, Test_HasLegOfCompetitorContext.class, executor, resultReceivers, retrievalLevel);
this.settings = settings;
}
@Override
protected Iterable<Test_HasLegOfCompetitorContext> retrieveData(Test_HasLegOfCompetitorContext legWithContext) {
Collection<Test_HasLegOfCompetitorContext> legsWithContext = new ArrayList<>();
legsWithContext.add(legWithContext);
return legsWithContext;
}
}
@@ -0,0 +1,18 @@
package com.sap.sse.datamining.test.util.components;
import com.sap.sse.common.settings.SerializableSettings;
public class Test_NullRetrievalProcessorSettings extends SerializableSettings {
private static final long serialVersionUID = -373296620115384430L;
private final String value;
public Test_NullRetrievalProcessorSettings(String value) {
this.value = value;
}
public String getValue() {
return value;
}
}
Loaded 100 of 138 files, more files were not shown because too many files have changed in this diff. Show more