mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-23 20:43:53 +00:00
Moved TopLevelMasterData to domain package
removed unused master data json facilities
This commit is contained in:
1 parent
ea5dae85a2
commit
89385d802f
55 files changed
+15
-2609
No files matched your search
-91
@@ -1,91 +0,0 @@
|
||||
package com.sap.sailing.domain.base;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.ThresholdBasedResultDiscardingRule;
|
||||
import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl;
|
||||
import com.sap.sailing.domain.masterdataimport.ScoreCorrectionMasterData;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
|
||||
public abstract class LeaderboardMasterData {
|
||||
|
||||
private String name;
|
||||
|
||||
private String displayName;
|
||||
|
||||
private int[] resultDiscardingRule;
|
||||
|
||||
private Map<Serializable, Competitor> competitorsById;
|
||||
|
||||
private ScoreCorrectionMasterData scoreCorrection;
|
||||
|
||||
private Map<Serializable, Double> carriedPoints;
|
||||
|
||||
private List<Serializable> suppressedCompetitors;
|
||||
|
||||
private Map<Serializable, String> displayNamesByCompetitorId;
|
||||
|
||||
private Map<String, Map<String, List<RaceLogEvent>>> raceLogEvents;
|
||||
|
||||
public LeaderboardMasterData(String name, String displayName, int[] resultDiscardingRule,
|
||||
Map<Serializable, Competitor> competitorsById, ScoreCorrectionMasterData scoreCorrection,
|
||||
Map<Serializable, Double> carriedPoints, List<Serializable> suppressedCompetitors,
|
||||
Map<Serializable, String> displayNamesByCompetitorId,
|
||||
Map<String, Map<String, List<RaceLogEvent>>> raceLogEvents) {
|
||||
this.name = name;
|
||||
this.displayName = displayName;
|
||||
this.resultDiscardingRule = resultDiscardingRule;
|
||||
this.competitorsById = competitorsById;
|
||||
this.scoreCorrection = scoreCorrection;
|
||||
this.carriedPoints = carriedPoints;
|
||||
this.suppressedCompetitors = suppressedCompetitors;
|
||||
this.displayNamesByCompetitorId = displayNamesByCompetitorId;
|
||||
this.raceLogEvents = raceLogEvents;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getDisplayName() {
|
||||
return displayName;
|
||||
}
|
||||
|
||||
public ThresholdBasedResultDiscardingRule getResultDiscardingRule() {
|
||||
if (resultDiscardingRule == null) {
|
||||
return null;
|
||||
}
|
||||
ThresholdBasedResultDiscardingRule rule = new ThresholdBasedResultDiscardingRuleImpl(resultDiscardingRule);
|
||||
return rule;
|
||||
}
|
||||
|
||||
public Map<Serializable, Competitor> getCompetitorsById() {
|
||||
return competitorsById;
|
||||
}
|
||||
|
||||
public ScoreCorrectionMasterData getScoreCorrection() {
|
||||
return scoreCorrection;
|
||||
}
|
||||
|
||||
public Map<Serializable, Double> getCarriedPoints() {
|
||||
return carriedPoints;
|
||||
}
|
||||
|
||||
public List<Serializable> getSuppressedCompetitors() {
|
||||
return suppressedCompetitors;
|
||||
}
|
||||
|
||||
public Map<Serializable, String> getDisplayNamesByCompetitorId() {
|
||||
return displayNamesByCompetitorId;
|
||||
}
|
||||
|
||||
public Map<String, Map<String, List<RaceLogEvent>>> getRaceLogEvents() {
|
||||
return raceLogEvents;
|
||||
}
|
||||
|
||||
public abstract Leaderboard getLeaderboard();
|
||||
|
||||
}
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
package com.sap.sailing.domain.masterdataimport;
|
||||
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
|
||||
public class EventMasterData {
|
||||
|
||||
private String id;
|
||||
private String name;
|
||||
private String venueName;
|
||||
private String pubUrl;
|
||||
private Iterable<Pair<String, String>> courseAreas;
|
||||
private boolean isPublic;
|
||||
|
||||
public EventMasterData(String id, String name, String venueName, String pubUrl, Iterable<Pair<String, String>> courseAreas, boolean isPublic) {
|
||||
this.id = id;
|
||||
this.name = name;
|
||||
this.venueName = venueName;
|
||||
this.pubUrl = pubUrl;
|
||||
this.courseAreas = courseAreas;
|
||||
this.isPublic = isPublic;
|
||||
}
|
||||
|
||||
public String getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getVenueName() {
|
||||
return venueName;
|
||||
}
|
||||
|
||||
public String getPubUrl() {
|
||||
return pubUrl;
|
||||
}
|
||||
|
||||
public Iterable<Pair<String, String>> getCourseAreas() {
|
||||
return courseAreas;
|
||||
}
|
||||
|
||||
public boolean isPublic() {
|
||||
return isPublic;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
-60
@@ -1,60 +0,0 @@
|
||||
package com.sap.sailing.domain.masterdataimport;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.base.LeaderboardMasterData;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.ScoringScheme;
|
||||
import com.sap.sailing.domain.leaderboard.impl.FlexibleLeaderboardImpl;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
|
||||
public class FlexibleLeaderboardMasterData extends LeaderboardMasterData {
|
||||
|
||||
private ScoringScheme scoringScheme;
|
||||
|
||||
private String courseAreaId;
|
||||
|
||||
private CourseArea courseArea;
|
||||
|
||||
private List<RaceColumnMasterData> raceColumns;
|
||||
|
||||
public FlexibleLeaderboardMasterData(String name, String displayName, int[] resultDiscardingRule,
|
||||
Map<Serializable, Competitor> competitorsById, ScoreCorrectionMasterData scoreCorrection,
|
||||
ScoringScheme scoringScheme, String courseAreaId, List<RaceColumnMasterData> raceColumns,
|
||||
Map<Serializable, Double> carriedPoints, List<Serializable> suppressedCompetitors,
|
||||
Map<Serializable, String> displayNamesByCompetitorId,
|
||||
Map<String, Map<String, List<RaceLogEvent>>> raceLogEvents) {
|
||||
super(name, displayName, resultDiscardingRule, competitorsById, scoreCorrection, carriedPoints,
|
||||
suppressedCompetitors, displayNamesByCompetitorId, raceLogEvents);
|
||||
this.scoringScheme = scoringScheme;
|
||||
this.courseAreaId = courseAreaId;
|
||||
this.raceColumns = raceColumns;
|
||||
}
|
||||
|
||||
public ScoringScheme getScoringScheme() {
|
||||
return scoringScheme;
|
||||
}
|
||||
|
||||
public String getCourseAreaId() {
|
||||
return courseAreaId;
|
||||
}
|
||||
|
||||
public void setCourseArea(CourseArea courseArea) {
|
||||
this.courseArea = courseArea;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Leaderboard getLeaderboard() {
|
||||
return new FlexibleLeaderboardImpl(getName(), getResultDiscardingRule(), scoringScheme,
|
||||
courseArea);
|
||||
}
|
||||
|
||||
public List<RaceColumnMasterData> getRaceColumns() {
|
||||
return raceColumns;
|
||||
}
|
||||
|
||||
}
|
||||
-97
@@ -1,97 +0,0 @@
|
||||
package com.sap.sailing.domain.masterdataimport;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.sap.sailing.domain.base.LeaderboardMasterData;
|
||||
import com.sap.sailing.domain.leaderboard.ScoringScheme;
|
||||
import com.sap.sailing.domain.leaderboard.ThresholdBasedResultDiscardingRule;
|
||||
import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl;
|
||||
|
||||
/**
|
||||
* Holds leaderboard group object AND its leaderboards, etc
|
||||
*
|
||||
* @author d054528 Frederik Petersen
|
||||
*
|
||||
*/
|
||||
public class LeaderboardGroupMasterData {
|
||||
|
||||
private final String name;
|
||||
private final String description;
|
||||
private final boolean hasOverallLeaderboard;
|
||||
private final ScoringScheme overallLeaderboardScoringScheme;
|
||||
private final int[] overallLeaderboardDiscardingRule;
|
||||
private final Iterable<LeaderboardMasterData> leaderboards;
|
||||
private final boolean displayGroupsRevese;
|
||||
private final Set<EventMasterData> events;
|
||||
private final Set<RegattaMasterData> regattas;
|
||||
private final Map<String, Double> metaColumnsWithFactors;
|
||||
private final List<Serializable> overallLeaderboardSuppressedCompetitorIds;
|
||||
|
||||
public LeaderboardGroupMasterData(String name, String description, boolean displayGroupsRevese,
|
||||
boolean hasOverallLeaderboard, ScoringScheme overallLeaderboardScoringScheme,
|
||||
int[] overallLeaderboardDiscardingRule, List<Serializable> overallLeaderboardAuppressedCompetitorIds,
|
||||
Map<String, Double> metaColumnsWithFactors, Iterable<LeaderboardMasterData> leaderboards, Set<EventMasterData> events, Set<RegattaMasterData> regattas) {
|
||||
super();
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
this.hasOverallLeaderboard = hasOverallLeaderboard;
|
||||
this.overallLeaderboardScoringScheme = overallLeaderboardScoringScheme;
|
||||
this.overallLeaderboardSuppressedCompetitorIds = overallLeaderboardAuppressedCompetitorIds;
|
||||
this.overallLeaderboardDiscardingRule = overallLeaderboardDiscardingRule;
|
||||
this.metaColumnsWithFactors = metaColumnsWithFactors;
|
||||
this.leaderboards = leaderboards;
|
||||
this.displayGroupsRevese = displayGroupsRevese;
|
||||
this.events = events;
|
||||
this.regattas = regattas;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public boolean hasOverallLeaderboard() {
|
||||
return hasOverallLeaderboard;
|
||||
}
|
||||
|
||||
public ScoringScheme getOverallLeaderboardScoringScheme() {
|
||||
return overallLeaderboardScoringScheme;
|
||||
}
|
||||
|
||||
public List<Serializable> getOverallLeaderboardSuppressedCompetitorIds() {
|
||||
return overallLeaderboardSuppressedCompetitorIds;
|
||||
}
|
||||
|
||||
public ThresholdBasedResultDiscardingRule getOverallLeaderboardDiscardingRule() {
|
||||
return overallLeaderboardDiscardingRule == null ? new ThresholdBasedResultDiscardingRuleImpl(new int[0]) :
|
||||
new ThresholdBasedResultDiscardingRuleImpl(overallLeaderboardDiscardingRule);
|
||||
}
|
||||
|
||||
public Iterable<LeaderboardMasterData> getLeaderboards() {
|
||||
return leaderboards;
|
||||
}
|
||||
|
||||
public boolean isDisplayGroupsRevese() {
|
||||
return displayGroupsRevese;
|
||||
}
|
||||
|
||||
public Set<EventMasterData> getEvents() {
|
||||
return events;
|
||||
}
|
||||
|
||||
public Set<RegattaMasterData> getRegattas() {
|
||||
return regattas;
|
||||
}
|
||||
|
||||
public Map<String, Double> getMetaColumnsWithFactors() {
|
||||
return metaColumnsWithFactors;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
-45
@@ -1,45 +0,0 @@
|
||||
package com.sap.sailing.domain.masterdataimport;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
|
||||
public class RaceColumnMasterData {
|
||||
private final String name;
|
||||
private final boolean medal;
|
||||
private final Map<String, RaceIdentifier> raceIdentifiersByFleetName;
|
||||
private Double factor;
|
||||
private Set<WindTrackMasterData> windTracks;
|
||||
|
||||
public RaceColumnMasterData(String name, boolean medal, Map<String, RaceIdentifier> raceIdentifiersByFleetName,
|
||||
Double factor, Set<WindTrackMasterData> windTracks) {
|
||||
super();
|
||||
this.name = name;
|
||||
this.medal = medal;
|
||||
this.raceIdentifiersByFleetName = raceIdentifiersByFleetName;
|
||||
this.factor = factor;
|
||||
this.windTracks = windTracks;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public boolean isMedal() {
|
||||
return medal;
|
||||
}
|
||||
|
||||
public Map<String, RaceIdentifier> getRaceIdentifiersByFleetName() {
|
||||
return raceIdentifiersByFleetName;
|
||||
}
|
||||
|
||||
public Double getFactor() {
|
||||
return factor;
|
||||
}
|
||||
|
||||
public Set<WindTrackMasterData> getWindTrackMasterData() {
|
||||
return windTracks;
|
||||
}
|
||||
|
||||
}
|
||||
-47
@@ -1,47 +0,0 @@
|
||||
package com.sap.sailing.domain.masterdataimport;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.LeaderboardMasterData;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.common.RegattaIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.impl.RegattaLeaderboardImpl;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
|
||||
public class RegattaLeaderboardMasterData extends LeaderboardMasterData {
|
||||
|
||||
private String regattaName;
|
||||
private Regatta regatta;
|
||||
|
||||
public RegattaLeaderboardMasterData(String name, String displayName, int[] resultDiscardingRule,
|
||||
Map<Serializable, Competitor> competitorsById, ScoreCorrectionMasterData scoreCorrection,
|
||||
String regattaName, Map<Serializable, Double> carriedPoints, List<Serializable> suppressedCompetitors,
|
||||
Map<Serializable, String> displayNamesByCompetitorId,
|
||||
Map<String, Map<String, List<RaceLogEvent>>> raceLogEvents) {
|
||||
super(name, displayName, resultDiscardingRule, competitorsById, scoreCorrection, carriedPoints,
|
||||
suppressedCompetitors, displayNamesByCompetitorId, raceLogEvents);
|
||||
this.regattaName = regattaName;
|
||||
}
|
||||
|
||||
public RegattaIdentifier getRegattaName() {
|
||||
return new RegattaName(regattaName);
|
||||
}
|
||||
|
||||
public void setRegatta(Regatta regatta) {
|
||||
this.regatta = regatta;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Leaderboard getLeaderboard() {
|
||||
if (regatta == null) {
|
||||
return null;
|
||||
}
|
||||
return new RegattaLeaderboardImpl(regatta, getResultDiscardingRule());
|
||||
}
|
||||
|
||||
}
|
||||
-74
@@ -1,74 +0,0 @@
|
||||
package com.sap.sailing.domain.masterdataimport;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.sap.sailing.domain.base.configuration.RegattaConfiguration;
|
||||
public class RegattaMasterData {
|
||||
|
||||
private Serializable id;
|
||||
private String baseName;
|
||||
private String defaultCourseAreaId;
|
||||
private String boatClassName;
|
||||
private String scoringSchemeType;
|
||||
private Iterable<SeriesMasterData> series;
|
||||
private final RegattaConfiguration configuration;
|
||||
private boolean isPersistent;
|
||||
private String regattaName;
|
||||
private Iterable<String> raceIdsAsStrings;
|
||||
public RegattaMasterData(Serializable id, String baseName, String defaultCourseAreaId, String boatClassName,
|
||||
String scoringSchemeType, Iterable<SeriesMasterData> series, boolean isPersistent, String regattaName,
|
||||
Iterable<String> raceIdsAsStrings,
|
||||
RegattaConfiguration configuration) {
|
||||
this.id = id;
|
||||
this.baseName = baseName;
|
||||
this.defaultCourseAreaId = defaultCourseAreaId;
|
||||
this.boatClassName = boatClassName;
|
||||
this.scoringSchemeType = scoringSchemeType;
|
||||
this.series = series;
|
||||
this.isPersistent = isPersistent;
|
||||
this.regattaName = regattaName;
|
||||
this.raceIdsAsStrings = raceIdsAsStrings;
|
||||
this.configuration = configuration;
|
||||
}
|
||||
|
||||
public Iterable<String> getRaceIdsAsStrings() {
|
||||
return raceIdsAsStrings;
|
||||
}
|
||||
|
||||
public Serializable getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public String getBaseName() {
|
||||
return baseName;
|
||||
}
|
||||
|
||||
public String getDefaultCourseAreaId() {
|
||||
return defaultCourseAreaId;
|
||||
}
|
||||
|
||||
public RegattaConfiguration getRegattaConfiguration() {
|
||||
return configuration;
|
||||
}
|
||||
|
||||
public String getBoatClassName() {
|
||||
return boatClassName;
|
||||
}
|
||||
|
||||
public String getScoringSchemeType() {
|
||||
return scoringSchemeType;
|
||||
}
|
||||
|
||||
public Iterable<SeriesMasterData> getSeries() {
|
||||
return series;
|
||||
}
|
||||
|
||||
public boolean isPersistent() {
|
||||
return isPersistent;
|
||||
}
|
||||
|
||||
public String getRegattaName() {
|
||||
return regattaName;
|
||||
}
|
||||
|
||||
}
|
||||
-29
@@ -1,29 +0,0 @@
|
||||
package com.sap.sailing.domain.masterdataimport;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class ScoreCorrectionMasterData {
|
||||
|
||||
private String comment;
|
||||
private Long timepointMillis;
|
||||
private Map<String, Iterable<SingleScoreCorrectionMasterData>> correctionForRaceColumns;
|
||||
|
||||
public ScoreCorrectionMasterData(String comment, Long timepointMillis,
|
||||
Map<String, Iterable<SingleScoreCorrectionMasterData>> correctionForRaceColumns) {
|
||||
this.comment = comment;
|
||||
this.timepointMillis = timepointMillis;
|
||||
this.correctionForRaceColumns = correctionForRaceColumns;
|
||||
}
|
||||
|
||||
public String getComment() {
|
||||
return comment;
|
||||
}
|
||||
|
||||
public Long getTimepointMillis() {
|
||||
return timepointMillis;
|
||||
}
|
||||
|
||||
public Map<String, Iterable<SingleScoreCorrectionMasterData>> getCorrectionForRaceColumns() {
|
||||
return correctionForRaceColumns;
|
||||
}
|
||||
}
|
||||
-42
@@ -1,42 +0,0 @@
|
||||
package com.sap.sailing.domain.masterdataimport;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
|
||||
public class SeriesMasterData {
|
||||
|
||||
private String name;
|
||||
private boolean isMedal;
|
||||
private Iterable<Fleet> fleets;
|
||||
private Iterable<RaceColumnMasterData> raceColumns;
|
||||
private int[] discardingRule;
|
||||
|
||||
public SeriesMasterData(String name, boolean isMedal, Iterable<Fleet> fleets, Iterable<RaceColumnMasterData> raceColumns, int[] discardingRule) {
|
||||
this.name = name;
|
||||
this.isMedal = isMedal;
|
||||
this.fleets = fleets;
|
||||
this.raceColumns = raceColumns;
|
||||
this.discardingRule = discardingRule;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public boolean isMedal() {
|
||||
return isMedal;
|
||||
}
|
||||
|
||||
public Iterable<Fleet> getFleets() {
|
||||
return fleets;
|
||||
}
|
||||
|
||||
public Iterable<RaceColumnMasterData> getRaceColumnNames() {
|
||||
return raceColumns;
|
||||
}
|
||||
|
||||
public int[] getDiscardingRule() {
|
||||
return discardingRule;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
-30
@@ -1,30 +0,0 @@
|
||||
package com.sap.sailing.domain.masterdataimport;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class SingleScoreCorrectionMasterData {
|
||||
|
||||
private Serializable competitorId;
|
||||
private Double explicitScoreCorrection;
|
||||
private String maxPointsReason;
|
||||
|
||||
public SingleScoreCorrectionMasterData(Serializable competitorId, Double explicitScoreCorrection,
|
||||
String maxPointsReason) {
|
||||
this.competitorId = competitorId;
|
||||
this.explicitScoreCorrection = explicitScoreCorrection;
|
||||
this.maxPointsReason = maxPointsReason;
|
||||
}
|
||||
|
||||
public Serializable getCompetitorId() {
|
||||
return competitorId;
|
||||
}
|
||||
|
||||
public Double getExplicitScoreCorrection() {
|
||||
return explicitScoreCorrection;
|
||||
}
|
||||
|
||||
public String getMaxPointsReason() {
|
||||
return maxPointsReason;
|
||||
}
|
||||
|
||||
}
|
||||
+1
-2
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.server.gateway.masterdata;
|
||||
package com.sap.sailing.domain.masterdataimport;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
@@ -18,7 +18,6 @@ import com.sap.sailing.domain.common.media.MediaTrack;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
|
||||
import com.sap.sailing.domain.masterdataimport.WindTrackMasterData;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.domain.tracking.WindTrack;
|
||||
|
||||
@@ -32,8 +32,7 @@ Require-Bundle: com.sap.sailing.domain,
|
||||
com.sap.sse.gwt;bundle-version="1.0.0"
|
||||
Bundle-Activator: com.sap.sailing.gwt.ui.server.Activator
|
||||
Bundle-ActivationPolicy: lazy
|
||||
Import-Package: com.sap.sailing.server.gateway.masterdata,
|
||||
javax.jms;version="1.1.0",
|
||||
Import-Package: javax.jms;version="1.1.0",
|
||||
javax.servlet;version="2.6.0",
|
||||
javax.servlet.descriptor;version="2.6.0",
|
||||
javax.servlet.http;version="2.6.0",
|
||||
|
||||
+1
-1
@@ -162,6 +162,7 @@ import com.sap.sailing.domain.leaderboard.MetaLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.ThresholdBasedResultDiscardingRule;
|
||||
import com.sap.sailing.domain.leaderboard.caching.LiveLeaderboardUpdater;
|
||||
import com.sap.sailing.domain.masterdataimport.TopLevelMasterData;
|
||||
import com.sap.sailing.domain.persistence.DomainObjectFactory;
|
||||
import com.sap.sailing.domain.persistence.MongoObjectFactory;
|
||||
import com.sap.sailing.domain.persistence.MongoRaceLogStoreFactory;
|
||||
@@ -269,7 +270,6 @@ import com.sap.sailing.resultimport.ResultUrlProvider;
|
||||
import com.sap.sailing.resultimport.ResultUrlRegistry;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
import com.sap.sailing.server.RacingEventServiceOperation;
|
||||
import com.sap.sailing.server.gateway.masterdata.TopLevelMasterData;
|
||||
import com.sap.sailing.server.masterdata.MasterDataImporter;
|
||||
import com.sap.sailing.server.operationaltransformation.AddColumnToLeaderboard;
|
||||
import com.sap.sailing.server.operationaltransformation.AddColumnToSeries;
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
<?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.7"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
@@ -1 +0,0 @@
|
||||
bin/
|
||||
@@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>com.sap.sailing.server.gateway.masterdata</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>
|
||||
@@ -1,7 +0,0 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.source=1.7
|
||||
@@ -1,3 +0,0 @@
|
||||
eclipse.preferences.version=1
|
||||
pluginProject.extensions=false
|
||||
resolve.requirebundle=false
|
||||
@@ -1,11 +0,0 @@
|
||||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: Sailing Server Gateway Master-Data
|
||||
Bundle-SymbolicName: com.sap.sailing.server.gateway.masterdata
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Vendor: SAP
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Require-Bundle: com.sap.sailing.domain,
|
||||
com.sap.sailing.domain.common
|
||||
Bundle-ClassPath: .
|
||||
Export-Package: com.sap.sailing.server.gateway.masterdata
|
||||
@@ -1,4 +0,0 @@
|
||||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
||||
@@ -1,12 +0,0 @@
|
||||
<?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.sailing.server.gateway.masterdata</artifactId>
|
||||
<packaging>eclipse-plugin</packaging>
|
||||
</project>
|
||||
@@ -12,11 +12,9 @@ Require-Bundle: com.sap.sailing.domain.common;bundle-version="1.0.0",
|
||||
Export-Package: com.sap.sailing.server.gateway.deserialization,
|
||||
com.sap.sailing.server.gateway.deserialization.coursedata.impl,
|
||||
com.sap.sailing.server.gateway.deserialization.impl,
|
||||
com.sap.sailing.server.gateway.deserialization.masterdata.impl,
|
||||
com.sap.sailing.server.gateway.deserialization.racelog.impl,
|
||||
com.sap.sailing.server.gateway.serialization,
|
||||
com.sap.sailing.server.gateway.serialization.coursedata.impl,
|
||||
com.sap.sailing.server.gateway.serialization.impl,
|
||||
com.sap.sailing.server.gateway.serialization.masterdata.impl,
|
||||
com.sap.sailing.server.gateway.serialization.racegroup.impl,
|
||||
com.sap.sailing.server.gateway.serialization.racelog.impl
|
||||
-84
@@ -1,84 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.masterdata.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.BoatClass;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.SharedDomainFactory;
|
||||
import com.sap.sailing.domain.base.impl.BoatImpl;
|
||||
import com.sap.sailing.domain.base.impl.DynamicBoat;
|
||||
import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||
import com.sap.sailing.domain.common.Color;
|
||||
import com.sap.sailing.domain.common.impl.RGBColor;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
|
||||
import com.sap.sailing.server.gateway.serialization.masterdata.impl.CompetitorMasterDataJsonSerializer;
|
||||
|
||||
public class CompetitorMasterDataDeserializer implements JsonDeserializer<Competitor> {
|
||||
|
||||
private final JsonDeserializer<BoatClass> boatClassDeserializer;
|
||||
|
||||
private final JsonDeserializer<DynamicTeam> teamDeserializer;
|
||||
|
||||
private final SharedDomainFactory domainFactory;
|
||||
|
||||
public CompetitorMasterDataDeserializer(JsonDeserializer<BoatClass> boatClassDeserializer,
|
||||
JsonDeserializer<DynamicTeam> teamDeserializer, SharedDomainFactory domainFactory) {
|
||||
this.boatClassDeserializer = boatClassDeserializer;
|
||||
this.teamDeserializer = teamDeserializer;
|
||||
this.domainFactory = domainFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Competitor deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
String name = (String) object.get(CompetitorMasterDataJsonSerializer.FIELD_NAME);
|
||||
String rgbDisplayColor = (String) object.get(CompetitorMasterDataJsonSerializer.FIELD_DISPLAY_COLOR);
|
||||
final Color displayColor;
|
||||
if (rgbDisplayColor == null || rgbDisplayColor.isEmpty()) {
|
||||
displayColor = null;
|
||||
} else {
|
||||
displayColor = new RGBColor(rgbDisplayColor);
|
||||
}
|
||||
Object idClassName = object.get(CompetitorMasterDataJsonSerializer.FIELD_ID_TYPE);
|
||||
Serializable id = (Serializable) object.get(CompetitorMasterDataJsonSerializer.FIELD_ID);
|
||||
if (idClassName != null) {
|
||||
try {
|
||||
Class<?> idClass = Class.forName((String) idClassName);
|
||||
if (Number.class.isAssignableFrom(idClass)) {
|
||||
Constructor<?> constructorFromString = idClass.getConstructor(String.class);
|
||||
id = (Serializable) constructorFromString.newInstance(id.toString());
|
||||
} else if (UUID.class.isAssignableFrom(idClass)) {
|
||||
id = Helpers.tryUuidConversion(id);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
} else {
|
||||
// To ensure some kind of a backward compability.
|
||||
try {
|
||||
id = UUID.fromString(id.toString());
|
||||
} catch (IllegalArgumentException e) {
|
||||
id = id.toString();
|
||||
}
|
||||
}
|
||||
DynamicBoat boat = createBoatFromJson((JSONObject) object.get(CompetitorMasterDataJsonSerializer.FIELD_BOAT));
|
||||
DynamicTeam team = teamDeserializer.deserialize((JSONObject) object.get(CompetitorMasterDataJsonSerializer.FIELD_TEAM));
|
||||
Competitor competitor;
|
||||
competitor = domainFactory.getOrCreateCompetitor(id, name, displayColor, team, boat);
|
||||
return competitor;
|
||||
|
||||
}
|
||||
|
||||
private DynamicBoat createBoatFromJson(JSONObject object) throws JsonDeserializationException {
|
||||
String name = (String) object.get(CompetitorMasterDataJsonSerializer.FIELD_NAME);
|
||||
String sailID = (String) object.get(CompetitorMasterDataJsonSerializer.FIELD_SAIL_ID);
|
||||
BoatClass boatClass = boatClassDeserializer.deserialize((JSONObject) object.get(CompetitorMasterDataJsonSerializer.FIELD_BOAT_CLASS));
|
||||
return new BoatImpl(name, boatClass, sailID);
|
||||
}
|
||||
|
||||
}
|
||||
-47
@@ -1,47 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.masterdata.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.List;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.common.impl.Util.Pair;
|
||||
import com.sap.sailing.domain.masterdataimport.EventMasterData;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.serialization.masterdata.impl.EventMasterDataJsonSerializer;
|
||||
|
||||
public class EventMasterDataJsonDeserializer implements JsonDeserializer<EventMasterData> {
|
||||
|
||||
@Override
|
||||
public EventMasterData deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
String id = (String) object.get(EventMasterDataJsonSerializer.FIELD_ID);
|
||||
String name = (String) object.get(EventMasterDataJsonSerializer.FIELD_NAME);
|
||||
String venueName = (String) object.get(EventMasterDataJsonSerializer.FIELD_VENUE_NAME);
|
||||
String pubUrl = (String) object.get(EventMasterDataJsonSerializer.FIELD_PUB_URL);
|
||||
boolean isPublic = (Boolean) object.get(EventMasterDataJsonSerializer.FIELD_IS_PUBLIC);
|
||||
Iterable<Pair<String, String>> courseAreas = deserializeCourseAreas((JSONArray) object.get(EventMasterDataJsonSerializer.FIELD_COURSE_AREAS));
|
||||
return new EventMasterData(id, name, venueName, pubUrl, courseAreas, isPublic);
|
||||
}
|
||||
|
||||
private Iterable<Pair<String, String>> deserializeCourseAreas(JSONArray jsonArray) {
|
||||
List<Pair<String, String>> courseAreas = new ArrayList<Pair<String,String>>();
|
||||
for (Object courseObject : jsonArray) {
|
||||
JSONObject courseJson = (JSONObject) courseObject;
|
||||
String id = (String) courseJson.get(EventMasterDataJsonSerializer.FIELD_ID);
|
||||
String name = (String) courseJson.get(EventMasterDataJsonSerializer.FIELD_NAME);
|
||||
courseAreas.add(new Pair<String, String>(id, name));
|
||||
}
|
||||
Collections.sort(courseAreas, new Comparator<Pair<String,String>>() {
|
||||
@Override
|
||||
public int compare(Pair<String, String> courseArea1, Pair<String, String> courseArea2) {
|
||||
return courseArea1.getB().compareTo(courseArea2.getB());
|
||||
}
|
||||
});
|
||||
return courseAreas;
|
||||
}
|
||||
|
||||
}
|
||||
-133
@@ -1,133 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.masterdata.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.BoatClass;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.LeaderboardMasterData;
|
||||
import com.sap.sailing.domain.base.Nationality;
|
||||
import com.sap.sailing.domain.base.configuration.RegattaConfiguration;
|
||||
import com.sap.sailing.domain.base.impl.DynamicPerson;
|
||||
import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||
import com.sap.sailing.domain.common.Color;
|
||||
import com.sap.sailing.domain.leaderboard.ScoringScheme;
|
||||
import com.sap.sailing.domain.masterdataimport.EventMasterData;
|
||||
import com.sap.sailing.domain.masterdataimport.LeaderboardGroupMasterData;
|
||||
import com.sap.sailing.domain.masterdataimport.RaceColumnMasterData;
|
||||
import com.sap.sailing.domain.masterdataimport.RegattaMasterData;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.BoatClassJsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.ColorDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.FleetDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.NationalityJsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.PersonJsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.RegattaConfigurationJsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.TeamJsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogEventDeserializer;
|
||||
import com.sap.sailing.server.gateway.serialization.masterdata.impl.LeaderboardGroupMasterDataJsonSerializer;
|
||||
|
||||
public class LeaderboardGroupMasterDataJsonDeserializer implements JsonDeserializer<LeaderboardGroupMasterData> {
|
||||
|
||||
private final JsonDeserializer<LeaderboardMasterData> leaderboardDeserializer;
|
||||
|
||||
private final JsonDeserializer<EventMasterData> eventDeserializer;
|
||||
|
||||
private final JsonDeserializer<RegattaMasterData> regattaDeserializer;
|
||||
|
||||
private final DomainFactory domainFactory;
|
||||
|
||||
public static JsonDeserializer<LeaderboardGroupMasterData> create(DomainFactory domainFactory) {
|
||||
JsonDeserializer<BoatClass> boatClassDeserializer = new BoatClassJsonDeserializer(domainFactory);
|
||||
JsonDeserializer<Nationality> nationalityDeserializer = new NationalityJsonDeserializer(domainFactory);
|
||||
JsonDeserializer<DynamicPerson> personDeserializer = new PersonJsonDeserializer(nationalityDeserializer);
|
||||
JsonDeserializer<DynamicTeam> teamDeserializer = new TeamJsonDeserializer(personDeserializer);
|
||||
JsonDeserializer<Competitor> competitorDeserializer = new CompetitorMasterDataDeserializer(
|
||||
boatClassDeserializer, teamDeserializer, domainFactory);
|
||||
JsonDeserializer<RaceLogEvent> raceLogEventDeserializer = RaceLogEventDeserializer.create(domainFactory);
|
||||
JsonDeserializer<LeaderboardMasterData> leaderboardDeserializer = new LeaderboardMasterDataJsonDeserializer(
|
||||
competitorDeserializer, domainFactory, raceLogEventDeserializer);
|
||||
JsonDeserializer<EventMasterData> eventDeserializer = new EventMasterDataJsonDeserializer();
|
||||
JsonDeserializer<Color> colorDeserializer = new ColorDeserializer();
|
||||
JsonDeserializer<Fleet> fleetDeserializer = new FleetDeserializer(colorDeserializer);
|
||||
JsonDeserializer<RegattaConfiguration> configurationDeserializer = RegattaConfigurationJsonDeserializer.create();
|
||||
JsonDeserializer<RaceColumnMasterData> raceColumnDeserializer = new RaceColumnMasterDataJsonDeserializer();
|
||||
JsonDeserializer<RegattaMasterData> regattaDeserializer = new RegattaMasterDataJsonDeserializer(
|
||||
fleetDeserializer, raceColumnDeserializer, configurationDeserializer);
|
||||
JsonDeserializer<LeaderboardGroupMasterData> leaderboardGroupMasterDataDeserializer = new LeaderboardGroupMasterDataJsonDeserializer(
|
||||
leaderboardDeserializer, eventDeserializer, regattaDeserializer, domainFactory);
|
||||
return leaderboardGroupMasterDataDeserializer;
|
||||
}
|
||||
|
||||
public LeaderboardGroupMasterDataJsonDeserializer(JsonDeserializer<LeaderboardMasterData> leaderboardDeserializer,
|
||||
JsonDeserializer<EventMasterData> eventDeserializer, JsonDeserializer<RegattaMasterData> regattaDeserializer, DomainFactory domainFactory) {
|
||||
this.leaderboardDeserializer = leaderboardDeserializer;
|
||||
this.eventDeserializer = eventDeserializer;
|
||||
this.regattaDeserializer = regattaDeserializer;
|
||||
this.domainFactory = domainFactory;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardGroupMasterData deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
List<LeaderboardMasterData> leaderboards = new ArrayList<LeaderboardMasterData>();
|
||||
JSONArray leaderboardsJson = (JSONArray) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_LEADERBOARDS);
|
||||
for (Object leaderboardObject : leaderboardsJson) {
|
||||
JSONObject leaderboardJson = (JSONObject) leaderboardObject;
|
||||
leaderboards.add(leaderboardDeserializer.deserialize(leaderboardJson));
|
||||
}
|
||||
JSONArray eventsJson = (JSONArray) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_EVENTS);
|
||||
Set<EventMasterData> events = new HashSet<EventMasterData>();
|
||||
for (Object eventObject : eventsJson) {
|
||||
JSONObject eventJson = (JSONObject) eventObject;
|
||||
events.add(eventDeserializer.deserialize(eventJson));
|
||||
}
|
||||
JSONArray regattasJson = (JSONArray) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_REGATTAS);
|
||||
Set<RegattaMasterData> regattas = new HashSet<RegattaMasterData>();
|
||||
for (Object regattaObject : regattasJson) {
|
||||
JSONObject regattaJson = (JSONObject) regattaObject;
|
||||
regattas.add(regattaDeserializer.deserialize(regattaJson));
|
||||
}
|
||||
String name = (String) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_NAME);
|
||||
String description = (String) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_DESCRIPTION);
|
||||
boolean displayGroupsReverse = (Boolean) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_DISPLAY_GROUPS_REVERSE);
|
||||
Boolean hasOverallLeaderboard = (Boolean) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_HAS_OVERALL_LEADERBOARD);
|
||||
if (hasOverallLeaderboard == null) {
|
||||
hasOverallLeaderboard = false;
|
||||
}
|
||||
ScoringScheme overallLeaderboardScoringScheme = !hasOverallLeaderboard ? null : LeaderboardMasterDataJsonDeserializer.deserializeScoringScheme((JSONObject) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_OVERALL_LEADERBOARD_SCORING_SCHEME), domainFactory);
|
||||
int[] overallLeaderboardResultDiscardingThresholds = !hasOverallLeaderboard ? null : LeaderboardMasterDataJsonDeserializer.deserializeResultDesicardingRule((JSONObject) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_OVERALL_LEADERBOARD_DISCARDING_THRESHOLDS));
|
||||
Map<String, Double> metaColumnsWithFactors = !hasOverallLeaderboard ? null : deserializeMetaColumnsWithFactor((JSONArray) object.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_OVERALL_LEADERBOARD_META_COLUMNS));
|
||||
List<Serializable> overallLeaderboardSuppressedCompetitorsIds = !hasOverallLeaderboard ? null
|
||||
: LeaderboardMasterDataJsonDeserializer
|
||||
.deserializeSuppressedCompetitors((JSONArray) object
|
||||
.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_OVERALL_LEADERBOARD_SUPPRESSED_COMPETITORS));
|
||||
return new LeaderboardGroupMasterData(name, description, displayGroupsReverse, hasOverallLeaderboard, overallLeaderboardScoringScheme, overallLeaderboardResultDiscardingThresholds, overallLeaderboardSuppressedCompetitorsIds, metaColumnsWithFactors, leaderboards, events, regattas);
|
||||
}
|
||||
|
||||
private Map<String, Double> deserializeMetaColumnsWithFactor(JSONArray jsonArray) {
|
||||
Map<String, Double> metaColumnsWithFactors = new HashMap<String, Double>();
|
||||
if (jsonArray != null) {
|
||||
for (Object obj : jsonArray) {
|
||||
JSONObject jsonObj = (JSONObject) obj;
|
||||
String name = (String) jsonObj.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_NAME);
|
||||
Double explicitFactor = (Double) jsonObj
|
||||
.get(LeaderboardGroupMasterDataJsonSerializer.FIELD_EXPLICIT_FACTOR);
|
||||
metaColumnsWithFactors.put(name, explicitFactor);
|
||||
}
|
||||
}
|
||||
return metaColumnsWithFactors;
|
||||
}
|
||||
|
||||
}
|
||||
-303
@@ -1,303 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.masterdata.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.base.LeaderboardMasterData;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
import com.sap.sailing.domain.leaderboard.ScoringScheme;
|
||||
import com.sap.sailing.domain.masterdataimport.FlexibleLeaderboardMasterData;
|
||||
import com.sap.sailing.domain.masterdataimport.RaceColumnMasterData;
|
||||
import com.sap.sailing.domain.masterdataimport.RegattaLeaderboardMasterData;
|
||||
import com.sap.sailing.domain.masterdataimport.ScoreCorrectionMasterData;
|
||||
import com.sap.sailing.domain.masterdataimport.SingleScoreCorrectionMasterData;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
|
||||
import com.sap.sailing.server.gateway.serialization.masterdata.impl.LeaderboardMasterDataJsonSerializer;
|
||||
|
||||
public class LeaderboardMasterDataJsonDeserializer implements JsonDeserializer<LeaderboardMasterData> {
|
||||
|
||||
private final JsonDeserializer<Competitor> competitorDeserializer;
|
||||
private final DomainFactory domainFactory;
|
||||
private final JsonDeserializer<RaceLogEvent> raceLogEventDeseriaizer;
|
||||
private final JsonDeserializer<RaceColumnMasterData> raceColumnDeserializer = new RaceColumnMasterDataJsonDeserializer();
|
||||
|
||||
public LeaderboardMasterDataJsonDeserializer(JsonDeserializer<Competitor> competitorDeserializer,
|
||||
DomainFactory domainFactory, JsonDeserializer<RaceLogEvent> raceLogEventDeseriaizer) {
|
||||
this.competitorDeserializer = competitorDeserializer;
|
||||
this.domainFactory = domainFactory;
|
||||
this.raceLogEventDeseriaizer = raceLogEventDeseriaizer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LeaderboardMasterData deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
if (object == null) {
|
||||
return null;
|
||||
}
|
||||
String name = (String) object.get(LeaderboardMasterDataJsonSerializer.FIELD_NAME);
|
||||
String displayName = (String) object.get(LeaderboardMasterDataJsonSerializer.FIELD_DISPLAY_NAME);
|
||||
Map<Serializable, String> displayNamesByCompetitorId = deserializeCompetitorDisplayNames((JSONArray) object
|
||||
.get(LeaderboardMasterDataJsonSerializer.FIELD_COMPETITOR_DISPLAY_NAMES));
|
||||
ScoreCorrectionMasterData scoreCorrection = deserializeScoreCorrection((JSONObject) object
|
||||
.get(LeaderboardMasterDataJsonSerializer.FIELD_SCORE_CORRECTION));
|
||||
Map<Serializable, Double> carriedPoints = deserializeCarriedPoints((JSONArray) object
|
||||
.get(LeaderboardMasterDataJsonSerializer.FIELD_CARRIED_POINTS));
|
||||
List<Serializable> suppressedCompetitors = deserializeSuppressedCompetitors((JSONArray) object
|
||||
.get(LeaderboardMasterDataJsonSerializer.FIELD_SUPPRESSED_COMPETITORS));
|
||||
Map<String, Map<String, List<RaceLogEvent>>> raceLogEvents = deserializeRaceLogEvents((JSONArray) object
|
||||
.get(LeaderboardMasterDataJsonSerializer.FIELD_RACE_LOG_EVENTS));
|
||||
int[] resultDiscardingRule = deserializeResultDesicardingRule((JSONObject) object
|
||||
.get(LeaderboardMasterDataJsonSerializer.FIELD_RESULT_DISCARDING_RULE));
|
||||
boolean isRegattaLeaderBoard = (Boolean) object
|
||||
.get(LeaderboardMasterDataJsonSerializer.FIELD_REGATTA_LEADERBOARD);
|
||||
|
||||
Map<Serializable, Competitor> competitorsById = new HashMap<Serializable, Competitor>();
|
||||
JSONArray competitorsJsonArray = (JSONArray) object.get(LeaderboardMasterDataJsonSerializer.FIELD_COMPETITORS);
|
||||
|
||||
for (Object obj : competitorsJsonArray) {
|
||||
JSONObject competitorJson = (JSONObject) obj;
|
||||
Competitor deserializedCompetitor = competitorDeserializer.deserialize(competitorJson);
|
||||
competitorsById.put(deserializedCompetitor, deserializedCompetitor);
|
||||
}
|
||||
final LeaderboardMasterData result;
|
||||
if (isRegattaLeaderBoard) {
|
||||
String regattaName = (String) object.get(LeaderboardMasterDataJsonSerializer.FIELD_REGATTA_NAME);
|
||||
result = new RegattaLeaderboardMasterData(name, displayName, resultDiscardingRule, competitorsById,
|
||||
scoreCorrection, regattaName, carriedPoints, suppressedCompetitors, displayNamesByCompetitorId,
|
||||
raceLogEvents);
|
||||
|
||||
} else {
|
||||
ScoringScheme scoringScheme = deserializeScoringScheme((JSONObject) object
|
||||
.get(LeaderboardMasterDataJsonSerializer.FIELD_SCORING_SCHEME), domainFactory);
|
||||
String courseAreaId = deserializeCourseAreaId((JSONObject) object
|
||||
.get(LeaderboardMasterDataJsonSerializer.FIELD_COURSE_AREA));
|
||||
List<RaceColumnMasterData> raceColumns = deserializeRaceColumns((JSONArray) object
|
||||
.get(LeaderboardMasterDataJsonSerializer.FIELD_RACE_COLUMNS));
|
||||
result = new FlexibleLeaderboardMasterData(name, displayName, resultDiscardingRule, competitorsById,
|
||||
scoreCorrection, scoringScheme, courseAreaId, raceColumns, carriedPoints, suppressedCompetitors,
|
||||
displayNamesByCompetitorId, raceLogEvents);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private Map<String, Map<String, List<RaceLogEvent>>> deserializeRaceLogEvents(JSONArray jsonArray) {
|
||||
Map<String, Map<String, List<RaceLogEvent>>> raceLogEvents = new HashMap<String, Map<String, List<RaceLogEvent>>>();
|
||||
for (Object obj : jsonArray) {
|
||||
JSONObject json = (JSONObject) obj;
|
||||
String raceColumnName = (String) json.get(LeaderboardMasterDataJsonSerializer.FIELD_RACE_COLUMN_NAME);
|
||||
Map<String, List<RaceLogEvent>> perFleet = deserializeRaceLogEventsForFleets((JSONArray) json
|
||||
.get(LeaderboardMasterDataJsonSerializer.FIELD_FLEETS));
|
||||
raceLogEvents.put(raceColumnName, perFleet);
|
||||
}
|
||||
return raceLogEvents;
|
||||
}
|
||||
|
||||
private Map<String, List<RaceLogEvent>> deserializeRaceLogEventsForFleets(JSONArray fleets) {
|
||||
Map<String, List<RaceLogEvent>> perFleet = new HashMap<String, List<RaceLogEvent>>();
|
||||
for (Object obj : fleets) {
|
||||
JSONObject json = (JSONObject) obj;
|
||||
String fleetName = (String) json.get(LeaderboardMasterDataJsonSerializer.FIELD_FLEET_NAME);
|
||||
List<RaceLogEvent> logEvents = deserializeRaceLogEventArray((JSONArray) json
|
||||
.get(LeaderboardMasterDataJsonSerializer.FIELD_RACE_LOG_EVENTS));
|
||||
perFleet.put(fleetName, logEvents);
|
||||
}
|
||||
return perFleet;
|
||||
}
|
||||
|
||||
private List<RaceLogEvent> deserializeRaceLogEventArray(JSONArray jsonArray) {
|
||||
List<RaceLogEvent> logEvents = new ArrayList<RaceLogEvent>();
|
||||
for (Object obj : jsonArray) {
|
||||
JSONObject json = (JSONObject) obj;
|
||||
try {
|
||||
logEvents.add(raceLogEventDeseriaizer.deserialize(json));
|
||||
} catch (JsonDeserializationException e) {
|
||||
// TODO Exception handling
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return logEvents;
|
||||
}
|
||||
|
||||
private Map<Serializable, String> deserializeCompetitorDisplayNames(JSONArray jsonArray) {
|
||||
Map<Serializable, String> result = new HashMap<Serializable, String>();
|
||||
for (Object obj : jsonArray) {
|
||||
JSONObject json = (JSONObject) obj;
|
||||
Serializable id;
|
||||
try {
|
||||
JSONObject object = (JSONObject) obj;
|
||||
id = extractId(object);
|
||||
} catch (Exception e) {
|
||||
// Backward compability
|
||||
id = (String) obj;
|
||||
}
|
||||
String displayName = (String) json.get(LeaderboardMasterDataJsonSerializer.FIELD_DISPLAY_NAME);
|
||||
result.put(id, displayName);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static List<Serializable> deserializeSuppressedCompetitors(JSONArray jsonArray) {
|
||||
List<Serializable> ids = new ArrayList<Serializable>();
|
||||
if (jsonArray != null) {
|
||||
for (Object obj : jsonArray) {
|
||||
Serializable id;
|
||||
try {
|
||||
JSONObject object = (JSONObject) obj;
|
||||
id = extractId(object);
|
||||
} catch (Exception e) {
|
||||
// Backward compability
|
||||
id = (String) obj;
|
||||
}
|
||||
ids.add(id);
|
||||
}
|
||||
}
|
||||
return ids;
|
||||
}
|
||||
|
||||
private static Serializable extractId(JSONObject object) {
|
||||
Serializable id;
|
||||
Object idClassName = object.get(LeaderboardMasterDataJsonSerializer.FIELD_TYPE);
|
||||
id = (Serializable) object.get(LeaderboardMasterDataJsonSerializer.FIELD_COMPETITOR_ID);
|
||||
if (idClassName != null) {
|
||||
try {
|
||||
Class<?> idClass = Class.forName((String) idClassName);
|
||||
if (Number.class.isAssignableFrom(idClass)) {
|
||||
Constructor<?> constructorFromString = idClass.getConstructor(String.class);
|
||||
id = (Serializable) constructorFromString.newInstance(id.toString());
|
||||
} else if (UUID.class.isAssignableFrom(idClass)) {
|
||||
id = Helpers.tryUuidConversion(id);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
} else {
|
||||
// To ensure some kind of a backward compability.
|
||||
try {
|
||||
id = UUID.fromString(id.toString());
|
||||
} catch (IllegalArgumentException e) {
|
||||
id = id.toString();
|
||||
}
|
||||
}
|
||||
return id;
|
||||
}
|
||||
|
||||
private Map<Serializable, Double> deserializeCarriedPoints(JSONArray jsonArray) {
|
||||
Map<Serializable, Double> carriedPoints = new HashMap<Serializable, Double>();
|
||||
for (Object obj : jsonArray) {
|
||||
JSONObject jsonCarriedPoints = (JSONObject) obj;
|
||||
Serializable id;
|
||||
try {
|
||||
id = extractId(jsonCarriedPoints);
|
||||
} catch (Exception e) {
|
||||
// Backward compability
|
||||
id = (String) obj;
|
||||
}
|
||||
Double carried = (Double) jsonCarriedPoints.get(LeaderboardMasterDataJsonSerializer.FIELD_CARRIED);
|
||||
carriedPoints.put(id, carried);
|
||||
}
|
||||
return carriedPoints;
|
||||
}
|
||||
|
||||
private ScoreCorrectionMasterData deserializeScoreCorrection(JSONObject jsonObject) {
|
||||
String comment = (String) jsonObject.get(LeaderboardMasterDataJsonSerializer.FIELD_COMMENT);
|
||||
Object timeObject = jsonObject.get(LeaderboardMasterDataJsonSerializer.FIELD_TIME_POINT);
|
||||
Long timepointMillis = null;
|
||||
if (timeObject != null) {
|
||||
timepointMillis = (Long) timeObject;
|
||||
}
|
||||
|
||||
JSONArray forRaceColumns = (JSONArray) jsonObject
|
||||
.get(LeaderboardMasterDataJsonSerializer.FIELD_FOR_RACE_COLUMNS);
|
||||
Map<String, Iterable<SingleScoreCorrectionMasterData>> correctionForRaceColumns = new HashMap<String, Iterable<SingleScoreCorrectionMasterData>>();
|
||||
for (Object obj : forRaceColumns) {
|
||||
JSONObject json = (JSONObject) obj;
|
||||
String raceColumnName = (String) json.get(LeaderboardMasterDataJsonSerializer.FIELD_RACE_COLUMN_NAME);
|
||||
Iterable<SingleScoreCorrectionMasterData> correctionsForRaceColumn = deserializeScoreCorrectionForRaceColumn((JSONArray) json
|
||||
.get(LeaderboardMasterDataJsonSerializer.FIELD_FOR_COMPETITORS));
|
||||
correctionForRaceColumns.put(raceColumnName, correctionsForRaceColumn);
|
||||
}
|
||||
return new ScoreCorrectionMasterData(comment, timepointMillis, correctionForRaceColumns);
|
||||
}
|
||||
|
||||
private Iterable<SingleScoreCorrectionMasterData> deserializeScoreCorrectionForRaceColumn(JSONArray jsonArray) {
|
||||
Set<SingleScoreCorrectionMasterData> result = new HashSet<SingleScoreCorrectionMasterData>();
|
||||
for (Object obj : jsonArray) {
|
||||
JSONObject json = (JSONObject) obj;
|
||||
result.add(deserializeScoreCorrectionForCompetitor(json));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private SingleScoreCorrectionMasterData deserializeScoreCorrectionForCompetitor(JSONObject json) {
|
||||
Serializable competitorId = extractId(json);
|
||||
Double explicitScoreCorrection = ((Double) json
|
||||
.get(LeaderboardMasterDataJsonSerializer.FIELD_EXPLICIT_SCORE_CORRECTION));
|
||||
String maxPointsReason = (String) json.get(LeaderboardMasterDataJsonSerializer.FIELD_MAX_POINTS_REASON);
|
||||
return new SingleScoreCorrectionMasterData(competitorId, explicitScoreCorrection, maxPointsReason);
|
||||
}
|
||||
|
||||
private List<RaceColumnMasterData> deserializeRaceColumns(JSONArray array) throws JsonDeserializationException {
|
||||
List<RaceColumnMasterData> columns = new ArrayList<RaceColumnMasterData>();
|
||||
for (Object columnObj : array) {
|
||||
JSONObject columnJson = (JSONObject) columnObj;
|
||||
columns.add(raceColumnDeserializer.deserialize(columnJson));
|
||||
}
|
||||
return columns;
|
||||
}
|
||||
|
||||
private String deserializeCourseAreaId(JSONObject jsonObject) {
|
||||
if (jsonObject == null) {
|
||||
return null;
|
||||
}
|
||||
String id = (String) jsonObject.get(LeaderboardMasterDataJsonSerializer.FIELD_ID);
|
||||
return id;
|
||||
|
||||
}
|
||||
|
||||
public static ScoringScheme deserializeScoringScheme(JSONObject jsonObject, DomainFactory domainFactory) {
|
||||
final ScoringScheme result;
|
||||
if (jsonObject == null) {
|
||||
result = null;
|
||||
} else {
|
||||
String type = (String) jsonObject.get(LeaderboardMasterDataJsonSerializer.FIELD_TYPE);
|
||||
if (type == null) {
|
||||
result = null;
|
||||
} else {
|
||||
result = domainFactory.createScoringScheme(ScoringSchemeType.valueOf(type));
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static int[] deserializeResultDesicardingRule(JSONObject jsonObject) {
|
||||
final int[] result;
|
||||
if (jsonObject == null) {
|
||||
result = null;
|
||||
} else {
|
||||
JSONArray indeces = (JSONArray) jsonObject.get(LeaderboardMasterDataJsonSerializer.FIELD_INDICES);
|
||||
if (indeces == null) {
|
||||
result = null;
|
||||
} else {
|
||||
result = new int[indeces.size()];
|
||||
for (int i = 0; i < result.length; i++) {
|
||||
result[i] = ((Long) indeces.get(i)).intValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
-31
@@ -1,31 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.masterdata.impl;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.common.media.MediaTrack;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.serialization.masterdata.impl.MediaTrackJsonSerializer;
|
||||
|
||||
public class MediaTrackJsonDeserializer implements JsonDeserializer<MediaTrack> {
|
||||
|
||||
@Override
|
||||
public MediaTrack deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
String dbId = (String) object.get(MediaTrackJsonSerializer.FIELD_DB_ID);
|
||||
int durationInMillis = ((Long) object.get(MediaTrackJsonSerializer.FIELD_DURATION)).intValue();
|
||||
MediaTrack.MimeType mimeType = MediaTrack.MimeType.valueOf((String) object
|
||||
.get(MediaTrackJsonSerializer.FIELD_MIME_TYPE));
|
||||
long startTimeInMillis = (Long) object.get(MediaTrackJsonSerializer.FIELD_START_TIME);
|
||||
Date startTime = new Date(startTimeInMillis);
|
||||
MediaTrack.Status status = MediaTrack.Status
|
||||
.valueOf((String) object.get(MediaTrackJsonSerializer.FIELD_STATUS));
|
||||
String title = (String) object.get(MediaTrackJsonSerializer.FIELD_TITLE);
|
||||
String url = (String) object.get(MediaTrackJsonSerializer.FIELD_URL);
|
||||
MediaTrack mediaTrack = new MediaTrack(dbId, title, url, startTime, durationInMillis, mimeType);
|
||||
mediaTrack.status = status;
|
||||
return mediaTrack;
|
||||
}
|
||||
|
||||
}
|
||||
-60
@@ -1,60 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.masterdata.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
|
||||
import com.sap.sailing.domain.masterdataimport.RaceColumnMasterData;
|
||||
import com.sap.sailing.domain.masterdataimport.WindTrackMasterData;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.serialization.masterdata.impl.RaceColumnMasterDataJsonSerializer;
|
||||
|
||||
public class RaceColumnMasterDataJsonDeserializer implements JsonDeserializer<RaceColumnMasterData> {
|
||||
|
||||
private final JsonDeserializer<WindTrackMasterData> windtrackDeserializer;
|
||||
|
||||
public RaceColumnMasterDataJsonDeserializer() {
|
||||
windtrackDeserializer = new WindTrackMasterDataJsonDeserializer();
|
||||
}
|
||||
|
||||
@Override
|
||||
public RaceColumnMasterData deserialize(JSONObject columnJson) throws JsonDeserializationException {
|
||||
String columnName = (String) columnJson
|
||||
.get(RaceColumnMasterDataJsonSerializer.FIELD_NAME);
|
||||
Boolean medal = (Boolean) columnJson
|
||||
.get(RaceColumnMasterDataJsonSerializer.FIELD_MEDAL_RACE);
|
||||
Map<String, RaceIdentifier> raceIdentifiers = new HashMap<String, RaceIdentifier>();
|
||||
Double factor = (Double) columnJson.get(RaceColumnMasterDataJsonSerializer.FIELD_FACTOR);
|
||||
JSONArray jsonRaceIdentifiers = (JSONArray) columnJson.get(RaceColumnMasterDataJsonSerializer.FIELD_RACE_IDENTIFIERS);
|
||||
for (Object raceIdentifierObject : jsonRaceIdentifiers) {
|
||||
JSONObject jsonRaceIdentifier = (JSONObject) raceIdentifierObject;
|
||||
String fleetName = (String) jsonRaceIdentifier.get(RaceColumnMasterDataJsonSerializer.FIELD_FLEET_NAME);
|
||||
String raceName = (String) jsonRaceIdentifier.get(RaceColumnMasterDataJsonSerializer.FIELD_RACE_NAME);
|
||||
String regattaName = (String) jsonRaceIdentifier.get(RaceColumnMasterDataJsonSerializer.FIELD_REGATTA_NAME);
|
||||
RaceIdentifier raceIdentifier = new RegattaNameAndRaceName(regattaName, raceName);
|
||||
raceIdentifiers.put(fleetName, raceIdentifier);
|
||||
}
|
||||
JSONArray windJson = (JSONArray) columnJson.get(RaceColumnMasterDataJsonSerializer.FIELD_WIND);
|
||||
Set<WindTrackMasterData> windTracks = null;
|
||||
if (windJson != null) {
|
||||
windTracks = deserializeWindTracks(windJson);
|
||||
}
|
||||
return new RaceColumnMasterData(columnName, medal, raceIdentifiers, factor, windTracks);
|
||||
}
|
||||
|
||||
private Set<WindTrackMasterData> deserializeWindTracks(JSONArray windJson) throws JsonDeserializationException {
|
||||
Set<WindTrackMasterData> tracks = new HashSet<WindTrackMasterData>();
|
||||
for (Object obj : windJson) {
|
||||
JSONObject json = (JSONObject) obj;
|
||||
tracks.add(windtrackDeserializer.deserialize(json));
|
||||
}
|
||||
return tracks;
|
||||
}
|
||||
}
|
||||
-144
@@ -1,144 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.masterdata.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.configuration.RegattaConfiguration;
|
||||
import com.sap.sailing.domain.masterdataimport.RaceColumnMasterData;
|
||||
import com.sap.sailing.domain.masterdataimport.RegattaMasterData;
|
||||
import com.sap.sailing.domain.masterdataimport.SeriesMasterData;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
|
||||
import com.sap.sailing.server.gateway.serialization.masterdata.impl.LeaderboardMasterDataJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.masterdata.impl.RegattaMasterDataJsonSerializer;
|
||||
|
||||
public class RegattaMasterDataJsonDeserializer implements JsonDeserializer<RegattaMasterData> {
|
||||
|
||||
private final JsonDeserializer<Fleet> fleetDeserializer;
|
||||
private final JsonDeserializer<RaceColumnMasterData> raceColumnDeserializer;
|
||||
private final JsonDeserializer<RegattaConfiguration> configurationDeserializer;
|
||||
|
||||
public RegattaMasterDataJsonDeserializer(JsonDeserializer<Fleet> fleetDeserializer, JsonDeserializer<RaceColumnMasterData> raceColumnDeserializer,
|
||||
JsonDeserializer<RegattaConfiguration> configurationDeserializer) {
|
||||
this.fleetDeserializer = fleetDeserializer;
|
||||
this.raceColumnDeserializer = raceColumnDeserializer;
|
||||
this.configurationDeserializer = configurationDeserializer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RegattaMasterData deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
Object idClassName = object.get(RegattaMasterDataJsonSerializer.FIELD_ID_TYPE);
|
||||
Serializable id = (Serializable) object.get(RegattaMasterDataJsonSerializer.FIELD_ID);
|
||||
if (idClassName != null) {
|
||||
try {
|
||||
Class<?> idClass = Class.forName((String) idClassName);
|
||||
if (Number.class.isAssignableFrom(idClass)) {
|
||||
Constructor<?> constructorFromString = idClass.getConstructor(String.class);
|
||||
id = (Serializable) constructorFromString.newInstance(id.toString());
|
||||
} else if (UUID.class.isAssignableFrom(idClass)) {
|
||||
id = Helpers.tryUuidConversion(id);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
} else {
|
||||
// To ensure some kind of a backward compability.
|
||||
try {
|
||||
id = UUID.fromString(id.toString());
|
||||
} catch (IllegalArgumentException e) {
|
||||
id = id.toString();
|
||||
}
|
||||
}
|
||||
String regattaName = (String) object.get(RegattaMasterDataJsonSerializer.FIELD_REGATTA_NAME);
|
||||
String baseName = (String) object.get(RegattaMasterDataJsonSerializer.FIELD_BASE_NAME);
|
||||
String defaultCourseAreaId = (String) object.get(RegattaMasterDataJsonSerializer.FIELD_DEFAULT_COURSE_AREA_ID);
|
||||
String boatClassName = (String) object.get(RegattaMasterDataJsonSerializer.FIELD_BOAT_CLASS_NAME);
|
||||
String scoringSchemeType = (String) object.get(RegattaMasterDataJsonSerializer.FIELD_SCORING_SCHEME_TYPE);
|
||||
boolean isPersistent = (Boolean) object.get(RegattaMasterDataJsonSerializer.FIELD_IS_PERSISTENT);
|
||||
Iterable<SeriesMasterData> series = deserializeSeries((JSONArray) object.get(RegattaMasterDataJsonSerializer.FIELD_SERIES));
|
||||
Iterable<String> raceIdsAsStrings = deserializeRaceIds((JSONArray) object.get(RegattaMasterDataJsonSerializer.FIELD_REGATTA_RACE_IDS));
|
||||
|
||||
RegattaConfiguration regattaConfiguration = null;
|
||||
if (object.containsKey(RegattaMasterDataJsonSerializer.FIELD_REGATTA_CONFIGURATION)) {
|
||||
regattaConfiguration = configurationDeserializer.deserialize(
|
||||
Helpers.getNestedObjectSafe(object, RegattaMasterDataJsonSerializer.FIELD_REGATTA_CONFIGURATION));
|
||||
}
|
||||
|
||||
return new RegattaMasterData(id, baseName, defaultCourseAreaId, boatClassName, scoringSchemeType,
|
||||
series, isPersistent, regattaName, raceIdsAsStrings, regattaConfiguration);
|
||||
}
|
||||
|
||||
private Iterable<String> deserializeRaceIds(JSONArray jsonArray) {
|
||||
Set<String> raceIdStrings = new HashSet<String>();
|
||||
for (Object obj : jsonArray) {
|
||||
String id = (String) obj;
|
||||
raceIdStrings.add(id);
|
||||
}
|
||||
return raceIdStrings;
|
||||
}
|
||||
|
||||
private Iterable<SeriesMasterData> deserializeSeries(JSONArray jsonArray) throws JsonDeserializationException {
|
||||
List<SeriesMasterData> series = new ArrayList<SeriesMasterData>();
|
||||
for (Object seriesObject : jsonArray) {
|
||||
JSONObject seriesJson = (JSONObject) seriesObject;
|
||||
String name = (String) seriesJson.get(RegattaMasterDataJsonSerializer.FIELD_NAME);
|
||||
boolean isMedal = (Boolean) seriesJson.get(RegattaMasterDataJsonSerializer.FIELD_IS_MEDAL);
|
||||
Iterable<Fleet> fleets = deserializeFleets((JSONArray) seriesJson.get(RegattaMasterDataJsonSerializer.FIELD_FLEETS));
|
||||
Iterable<RaceColumnMasterData> raceColumnNames = deserializeRaceColumnNames((JSONArray) seriesJson.get(RegattaMasterDataJsonSerializer.FIELD_RACE_COLUMNS));
|
||||
int[] discardingRule = deserializeResultDesicardingRule((JSONObject) seriesJson.get(RegattaMasterDataJsonSerializer.FIELD_RESULT_DISCARDING_RULE));
|
||||
series.add(new SeriesMasterData(name, isMedal, fleets, raceColumnNames, discardingRule));
|
||||
}
|
||||
|
||||
return series;
|
||||
}
|
||||
|
||||
private Iterable<RaceColumnMasterData> deserializeRaceColumnNames(JSONArray jsonArray) throws JsonDeserializationException {
|
||||
List<RaceColumnMasterData> raceColumns = new ArrayList<RaceColumnMasterData>();
|
||||
for (Object raceColumnObject : jsonArray) {
|
||||
JSONObject jsonRaceColumn = (JSONObject) raceColumnObject;
|
||||
raceColumns.add(raceColumnDeserializer.deserialize(jsonRaceColumn));
|
||||
}
|
||||
return raceColumns;
|
||||
}
|
||||
|
||||
private Iterable<Fleet> deserializeFleets(JSONArray jsonArray) {
|
||||
List<Fleet> fleets = new ArrayList<Fleet>();
|
||||
for (Object fleetObject : jsonArray) {
|
||||
JSONObject fleetJson = (JSONObject) fleetObject;
|
||||
try {
|
||||
fleets.add(fleetDeserializer.deserialize(fleetJson));
|
||||
} catch (JsonDeserializationException e) {
|
||||
// TODO exception handling
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
return fleets;
|
||||
}
|
||||
|
||||
private int[] deserializeResultDesicardingRule(JSONObject jsonObject) {
|
||||
if (jsonObject == null) {
|
||||
return null;
|
||||
}
|
||||
JSONArray indeces = (JSONArray) jsonObject.get(LeaderboardMasterDataJsonSerializer.FIELD_INDICES);
|
||||
if (indeces == null) {
|
||||
return null;
|
||||
}
|
||||
int[] result = new int[indeces.size()];
|
||||
for (int i = 0; i < result.length; i++) {
|
||||
result[i] = ((Long) indeces.get(i)).intValue();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
-72
@@ -1,72 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.masterdata.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
import com.sap.sailing.domain.masterdataimport.WindTrackMasterData;
|
||||
import com.sap.sailing.domain.tracking.Wind;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.PositionJsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.WindJsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.serialization.masterdata.impl.WindTrackMasterDataJsonSerializer;
|
||||
|
||||
public class WindTrackMasterDataJsonDeserializer implements JsonDeserializer<WindTrackMasterData> {
|
||||
|
||||
private final JsonDeserializer<Wind> windDeserializer;
|
||||
|
||||
public WindTrackMasterDataJsonDeserializer() {
|
||||
JsonDeserializer<Position> positionDeserializer = new PositionJsonDeserializer();
|
||||
windDeserializer = new WindJsonDeserializer(positionDeserializer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public WindTrackMasterData deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
String windSourceTypeName = (String) object.get(WindTrackMasterDataJsonSerializer.FIELD_WIND_SOURCE_TYPE);
|
||||
Serializable windSourceId = (Serializable) object.get(WindTrackMasterDataJsonSerializer.FIELD_WIND_SOURCE_ID);
|
||||
JSONArray fixesJson = (JSONArray) object.get(WindTrackMasterDataJsonSerializer.FIELD_FIXES);
|
||||
String regattaName = (String) object.get(WindTrackMasterDataJsonSerializer.FIELD_REGATTA_NAME);
|
||||
String raceName = (String) object.get(WindTrackMasterDataJsonSerializer.FIELD_RACE_NAME);
|
||||
Object idClassName = object.get(WindTrackMasterDataJsonSerializer.FIELD_ID_TYPE);
|
||||
Serializable id = (Serializable) object.get(WindTrackMasterDataJsonSerializer.FIELD_RACE_ID);
|
||||
if (id != null) {
|
||||
if (idClassName != null) {
|
||||
try {
|
||||
Class<?> idClass = Class.forName((String) idClassName);
|
||||
if (Number.class.isAssignableFrom(idClass)) {
|
||||
Constructor<?> constructorFromString = idClass.getConstructor(String.class);
|
||||
id = (Serializable) constructorFromString.newInstance(id.toString());
|
||||
} else if (UUID.class.isAssignableFrom(idClass)) {
|
||||
id = Helpers.tryUuidConversion(id);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
} else {
|
||||
// To ensure some kind of a backward compability.
|
||||
try {
|
||||
id = UUID.fromString(id.toString());
|
||||
} catch (IllegalArgumentException e) {
|
||||
id = id.toString();
|
||||
}
|
||||
}
|
||||
}
|
||||
Set<Wind> fixes = new HashSet<Wind>();
|
||||
for (Object obj : fixesJson) {
|
||||
JSONObject json = (JSONObject) obj;
|
||||
Wind wind = windDeserializer.deserialize(json);
|
||||
fixes.add(wind);
|
||||
}
|
||||
// return new WindTrackMasterData(windSourceTypeName, windSourceId, fixes, regattaName, raceName, id);
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
-67
@@ -1,67 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.serialization.masterdata.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.Boat;
|
||||
import com.sap.sailing.domain.base.BoatClass;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Team;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class CompetitorMasterDataJsonSerializer implements JsonSerializer<Competitor> {
|
||||
|
||||
public static final String FIELD_BOAT_CLASS = "boatClass";
|
||||
public static final String FIELD_SAIL_ID = "sailID";
|
||||
public static final String FIELD_TEAM = "team";
|
||||
public static final String FIELD_BOAT = "boat";
|
||||
public static final String FIELD_ID = "id";
|
||||
public static final String FIELD_NAME = "name";
|
||||
public static final String FIELD_ID_TYPE = "idType";
|
||||
public static final String FIELD_DISPLAY_COLOR = "displayColor";
|
||||
private final JsonSerializer<BoatClass> boatClassSerializer;
|
||||
private final JsonSerializer<Team> teamSerializer;
|
||||
|
||||
|
||||
|
||||
public CompetitorMasterDataJsonSerializer(JsonSerializer<BoatClass> boatClassSerializer,
|
||||
JsonSerializer<Team> teamSerializer) {
|
||||
this.boatClassSerializer = boatClassSerializer;
|
||||
this.teamSerializer = teamSerializer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(Competitor competitor) {
|
||||
//Check if it is null. This can happen for race log events that specify competitors
|
||||
// but where the race is not tracked.
|
||||
if (competitor == null) {
|
||||
return null;
|
||||
}
|
||||
JSONObject jsonCompetitor = new JSONObject();
|
||||
jsonCompetitor.put(FIELD_NAME, competitor.getName());
|
||||
jsonCompetitor.put(FIELD_DISPLAY_COLOR, competitor.getColor()==null?null:competitor.getColor().getAsHtml());
|
||||
// Special treatment for UUIDs. They are represented as String because JSON doesn't have a way to represent them
|
||||
// otherwise. However, other, e.g., numeric, types used to encode a serializable ID must be preserved according
|
||||
// to JSON semantics.
|
||||
// Also see the corresponding case distinction in the deserialized which first tries to parse a string as a UUID
|
||||
// becore returning the ID as is.
|
||||
jsonCompetitor.put(FIELD_ID_TYPE, competitor.getId().getClass().getName());
|
||||
Serializable competitorId = competitor.getId() instanceof UUID ? competitor.getId().toString() : competitor
|
||||
.getId();
|
||||
jsonCompetitor.put(FIELD_ID, competitorId);
|
||||
jsonCompetitor.put(FIELD_BOAT, createJsonForBoat(competitor.getBoat()));
|
||||
jsonCompetitor.put(FIELD_TEAM, teamSerializer.serialize(competitor.getTeam()));
|
||||
return jsonCompetitor;
|
||||
}
|
||||
|
||||
private JSONObject createJsonForBoat(Boat boat) {
|
||||
JSONObject jsonBoat = new JSONObject();
|
||||
jsonBoat.put(FIELD_NAME, boat.getName());
|
||||
jsonBoat.put(FIELD_SAIL_ID, boat.getSailID());
|
||||
jsonBoat.put(FIELD_BOAT_CLASS, boatClassSerializer.serialize(boat.getBoatClass()));
|
||||
return jsonBoat;
|
||||
}
|
||||
|
||||
}
|
||||
-49
@@ -1,49 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.serialization.masterdata.impl;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.base.Event;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class EventMasterDataJsonSerializer implements JsonSerializer<Event> {
|
||||
|
||||
public static final String FIELD_ID = "id";
|
||||
public static final String FIELD_NAME = "name";
|
||||
public static final String FIELD_VENUE_NAME = "venueName";
|
||||
public static final String FIELD_PUB_URL = "publicationUrl";
|
||||
public static final String FIELD_COURSE_AREAS = "courseAreas";
|
||||
public static final String FIELD_IS_PUBLIC = "isPublic";
|
||||
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(Event event) {
|
||||
JSONObject result = new JSONObject();
|
||||
result.put(FIELD_ID, event.getId().toString());
|
||||
result.put(FIELD_NAME, event.getName());
|
||||
result.put(FIELD_VENUE_NAME, event.getVenue().getName());
|
||||
result.put(FIELD_PUB_URL, event.getPublicationUrl());
|
||||
result.put(FIELD_IS_PUBLIC, event.isPublic());
|
||||
result.put(FIELD_COURSE_AREAS, createJsonArrayForCourseAreas(event.getVenue().getCourseAreas()));
|
||||
//TODO Sadly event.getRegattas() returns an empty collection
|
||||
//result.put(FIELD_REGATTAS, createJsonArrayForRegattas(event.getRegattas()));
|
||||
return result;
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForCourseAreas(Iterable<CourseArea> courseAreas) {
|
||||
JSONArray array = new JSONArray();
|
||||
for (CourseArea courseArea : courseAreas) {
|
||||
array.add(createJsonForCourseArea(courseArea));
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
private JSONObject createJsonForCourseArea(CourseArea courseArea) {
|
||||
JSONObject result = new JSONObject();
|
||||
result.put(FIELD_ID, courseArea.getId().toString());
|
||||
result.put(FIELD_NAME, courseArea.getName());
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
-164
@@ -1,164 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.serialization.masterdata.impl;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.base.Event;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.configuration.RegattaConfiguration;
|
||||
import com.sap.sailing.domain.common.Color;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||
import com.sap.sailing.domain.leaderboard.meta.LeaderboardGroupMetaLeaderboard;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.BoatClassJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.ColorJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.FleetJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.NationalityJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.PersonJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.RegattaConfigurationJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.TeamJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogEventSerializer;
|
||||
|
||||
public class LeaderboardGroupMasterDataJsonSerializer implements JsonSerializer<LeaderboardGroup> {
|
||||
|
||||
public static final String FIELD_LEADERBOARDS = "leaderboards";
|
||||
public static final String FIELD_HAS_OVERALL_LEADERBOARD = "overallLeaderboard";
|
||||
public static final String FIELD_OVERALL_LEADERBOARD_SCORING_SCHEME = "overallLeaderboardScoringScheme";
|
||||
public static final String FIELD_OVERALL_LEADERBOARD_DISCARDING_THRESHOLDS = "overallLeaderboardDiscardingThresholds";
|
||||
public static final String FIELD_DESCRIPTION = "description";
|
||||
public static final String FIELD_NAME = "name";
|
||||
public static final String FIELD_DISPLAY_GROUPS_REVERSE = "displayGroupsReverse";
|
||||
public static final String FIELD_EVENTS = "events";
|
||||
public static final String FIELD_REGATTAS = "regattas";
|
||||
public static final String FIELD_OVERALL_LEADERBOARD_META_COLUMNS = "overallLeaderboardMetaColumns";
|
||||
public static final String FIELD_OVERALL_LEADERBOARD_SUPPRESSED_COMPETITORS = "overallLeaderboardSuppressedCompetitors";
|
||||
public static final String FIELD_EXPLICIT_FACTOR = "explicitFactor";
|
||||
private final LeaderboardMasterDataJsonSerializer leadboardSerializer;
|
||||
private final Iterable<Event> allEvents;
|
||||
private final JsonSerializer<Event> eventSerializer;
|
||||
private final JsonSerializer<Regatta> regattaSerializer;
|
||||
|
||||
/**
|
||||
* If masterdata is imported from a server where exported races are not tracked, data like race log competitor
|
||||
* data may be lost in the process of serialization
|
||||
* @param events
|
||||
* @param regattaForRaceIdString
|
||||
*/
|
||||
public LeaderboardGroupMasterDataJsonSerializer(Iterable<Event> events, ConcurrentHashMap<String, Regatta> regattaForRaceIdStrings) {
|
||||
this.allEvents = events;
|
||||
NationalityJsonSerializer nationalityJsonSerializer = new NationalityJsonSerializer();
|
||||
PersonJsonSerializer personSerializer = new PersonJsonSerializer(nationalityJsonSerializer);
|
||||
TeamJsonSerializer teamSerializer = new TeamJsonSerializer(personSerializer);
|
||||
BoatClassJsonSerializer boatClassSerializer = new BoatClassJsonSerializer();
|
||||
CompetitorMasterDataJsonSerializer competitorSerializer = new CompetitorMasterDataJsonSerializer(
|
||||
boatClassSerializer, teamSerializer);
|
||||
JsonSerializer<Color> colorSerializer = new ColorJsonSerializer();
|
||||
JsonSerializer<Fleet> fleetSerializer = new FleetJsonSerializer(colorSerializer);
|
||||
JsonSerializer<RaceColumn> raceColumnSerializer = new RaceColumnMasterDataJsonSerializer();
|
||||
JsonSerializer<RegattaConfiguration> configurationSerializer = RegattaConfigurationJsonSerializer.create();
|
||||
JsonSerializer<RaceLogEvent> raceLogEventSerializer = RaceLogEventSerializer.create(competitorSerializer);
|
||||
eventSerializer = new EventMasterDataJsonSerializer();
|
||||
leadboardSerializer = new LeaderboardMasterDataJsonSerializer(competitorSerializer, raceColumnSerializer, raceLogEventSerializer);
|
||||
regattaSerializer = new RegattaMasterDataJsonSerializer(fleetSerializer, raceColumnSerializer, configurationSerializer, regattaForRaceIdStrings);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(LeaderboardGroup leaderboardGroup) {
|
||||
JSONObject jsonLeaderboardGroup = new JSONObject();
|
||||
jsonLeaderboardGroup.put(FIELD_NAME, leaderboardGroup.getName());
|
||||
jsonLeaderboardGroup.put(FIELD_DESCRIPTION, leaderboardGroup.getDescription());
|
||||
jsonLeaderboardGroup.put(FIELD_HAS_OVERALL_LEADERBOARD, leaderboardGroup.getOverallLeaderboard() != null);
|
||||
if (leaderboardGroup.getOverallLeaderboard() != null) {
|
||||
LeaderboardGroupMetaLeaderboard metaLeader = (LeaderboardGroupMetaLeaderboard) leaderboardGroup
|
||||
.getOverallLeaderboard();
|
||||
jsonLeaderboardGroup.put(FIELD_OVERALL_LEADERBOARD_DISCARDING_THRESHOLDS,
|
||||
LeaderboardMasterDataJsonSerializer.createJsonForResultDiscardingRule(metaLeader
|
||||
.getResultDiscardingRule()));
|
||||
jsonLeaderboardGroup.put(FIELD_OVERALL_LEADERBOARD_SCORING_SCHEME,
|
||||
LeaderboardMasterDataJsonSerializer.createJsonForScoringScheme(metaLeader.getScoringScheme()));
|
||||
jsonLeaderboardGroup.put(FIELD_OVERALL_LEADERBOARD_META_COLUMNS, createJsonArrayForMetaColumns(metaLeader));
|
||||
jsonLeaderboardGroup.put(FIELD_OVERALL_LEADERBOARD_SUPPRESSED_COMPETITORS, createJsonArrayForSuppressedCompetitors(metaLeader.getSuppressedCompetitors()));
|
||||
}
|
||||
jsonLeaderboardGroup.put(FIELD_LEADERBOARDS, createJsonArrayForLeaderboards(leaderboardGroup.getLeaderboards()));
|
||||
jsonLeaderboardGroup.put(FIELD_DISPLAY_GROUPS_REVERSE, leaderboardGroup.isDisplayGroupsInReverseOrder());
|
||||
// Important to call this after serializing leaderboards, as the leaderboard serializer has state
|
||||
jsonLeaderboardGroup.put(FIELD_EVENTS, createJsonArrayForEvents());
|
||||
jsonLeaderboardGroup.put(FIELD_REGATTAS, createJsonArrayForRegattas());
|
||||
return jsonLeaderboardGroup;
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForSuppressedCompetitors(Iterable<Competitor> suppressedCompetitors) {
|
||||
JSONArray array = new JSONArray();
|
||||
for (Competitor competitor : suppressedCompetitors) {
|
||||
array.add(competitor.getId().toString());
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForMetaColumns(LeaderboardGroupMetaLeaderboard metaLeader) {
|
||||
JSONArray array = new JSONArray();
|
||||
for (RaceColumn column : metaLeader.getRaceColumns()) {
|
||||
JSONObject metaColumn = new JSONObject();
|
||||
metaColumn.put(FIELD_NAME, column.getName());
|
||||
metaColumn.put(FIELD_EXPLICIT_FACTOR, column.getExplicitFactor());
|
||||
array.add(metaColumn);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForRegattas() {
|
||||
JSONArray array = new JSONArray();
|
||||
Iterable<Regatta> regattas = leadboardSerializer.getRegattas();
|
||||
for (Regatta regatta : regattas) {
|
||||
array.add(regattaSerializer.serialize(regatta));
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
/*
|
||||
* TODO, this is a hack to find out which events are needed for the exported
|
||||
* regatta leaderboards. should be replaced by a proper connection from regatta to event
|
||||
*/
|
||||
private JSONArray createJsonArrayForEvents() {
|
||||
Set<String> courseAreaIds = leadboardSerializer.getCourseAreaIds();
|
||||
Set<Event> eventsThatShouldBeExported = new HashSet<Event>();
|
||||
for (Event event : allEvents) {
|
||||
boolean shouldBeExported = false;
|
||||
for (CourseArea courseArea : event.getVenue().getCourseAreas()) {
|
||||
if (courseAreaIds.contains(courseArea.getId().toString())) {
|
||||
shouldBeExported = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (shouldBeExported) {
|
||||
eventsThatShouldBeExported.add(event);
|
||||
}
|
||||
}
|
||||
|
||||
JSONArray array = new JSONArray();
|
||||
for (Event event : eventsThatShouldBeExported) {
|
||||
array.add(eventSerializer.serialize(event));
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForLeaderboards(Iterable<Leaderboard> leaderboards) {
|
||||
JSONArray jsonLeaderBoards = new JSONArray();
|
||||
for (Leaderboard leaderboard : leaderboards) {
|
||||
JSONObject jsonLeaderboard = leadboardSerializer.serialize(leaderboard);
|
||||
jsonLeaderBoards.add(jsonLeaderboard);
|
||||
}
|
||||
return jsonLeaderBoards;
|
||||
}
|
||||
|
||||
}
|
||||
-339
@@ -1,339 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.serialization.masterdata.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.common.impl.MillisecondsTimePoint;
|
||||
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.ResultDiscardingRule;
|
||||
import com.sap.sailing.domain.leaderboard.ScoringScheme;
|
||||
import com.sap.sailing.domain.leaderboard.SettableScoreCorrection;
|
||||
import com.sap.sailing.domain.leaderboard.ThresholdBasedResultDiscardingRule;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class LeaderboardMasterDataJsonSerializer implements JsonSerializer<Leaderboard> {
|
||||
|
||||
public static final String FIELD_FOR_RACE_COLUMNS = "forRaceColumns";
|
||||
public static final String FIELD_TIME_POINT = "timePoint";
|
||||
public static final String FIELD_COMMENT = "comment";
|
||||
public static final String FIELD_MAX_POINTS_REASON = "maxPointsReason";
|
||||
public static final String FIELD_EXPLICIT_SCORE_CORRECTION = "explicitScoreCorrection";
|
||||
public static final String FIELD_FOR_COMPETITORS = "forCompetitors";
|
||||
public static final String FIELD_RACE_COLUMN_NAME = "raceColumnName";
|
||||
public static final String FIELD_RACE_COLUMNS = "raceColumns";
|
||||
public static final String FIELD_COMPETITORS = "competitors";
|
||||
public static final String FIELD_NAME = "name";
|
||||
public static final String FIELD_SCORE_CORRECTION = "scoreCorrection";
|
||||
public static final String FIELD_SCORING_SCHEME = "scoringScheme";
|
||||
public static final String FIELD_TYPE = "type";
|
||||
public static final String FIELD_REGATTA_LEADERBOARD = "regattaLeaderboard";
|
||||
public static final String FIELD_META_LEADERBOARD = "metaLeaderboard";
|
||||
public static final String FIELD_RESULT_DISCARDING_RULE = "resultDiscardingRule";
|
||||
public static final String FIELD_INDICES = "indices";
|
||||
public static final String FIELD_COURSE_AREA = "courseArea";
|
||||
public static final String FIELD_ID = "id";
|
||||
public static final String FIELD_REGATTA_NAME = "regattaName";
|
||||
public static final String FIELD_DISPLAY_NAME = "displayName";
|
||||
public static final String FIELD_COMPETITOR_ID = "competitorId";
|
||||
public static final String FIELD_CARRIED_POINTS = "carriedPoints";
|
||||
public static final String FIELD_CARRIED = "carried";
|
||||
public static final String FIELD_SUPPRESSED_COMPETITORS = "suppressedCompetitors";
|
||||
public static final String FIELD_COMPETITOR_DISPLAY_NAMES = "competitorDisplayNames";
|
||||
public static final String FIELD_RACE_LOG_EVENTS = "raceLogEvents";
|
||||
public static final String FIELD_FLEETS = "fleets";
|
||||
public static final String FIELD_FLEET_NAME = "fleetName";
|
||||
|
||||
private final JsonSerializer<Competitor> competitorSerializer;
|
||||
private final JsonSerializer<RaceColumn> raceColumnSerializer;
|
||||
private final JsonSerializer<RaceLogEvent> raceLogEventSerializer;
|
||||
private final Set<Competitor> competitors = new HashSet<Competitor>();
|
||||
|
||||
/*
|
||||
* TODO This is a hack to "remember" the course areas to allow finding the events which own the course areas. This
|
||||
* way regatta leaderboard can be completely exported, because all events, their regattas, etc can be exported too.
|
||||
* Their should be a proper connection between regatta and event soon.
|
||||
*/
|
||||
private final Set<String> courseAreaIds = new HashSet<String>();
|
||||
|
||||
private final Set<Regatta> regattas = new HashSet<Regatta>();
|
||||
|
||||
public LeaderboardMasterDataJsonSerializer(JsonSerializer<Competitor> competitorSerializer,
|
||||
JsonSerializer<RaceColumn> raceColumnSerializer, JsonSerializer<RaceLogEvent> raceLogEventSerializer) {
|
||||
this.competitorSerializer = competitorSerializer;
|
||||
this.raceColumnSerializer = raceColumnSerializer;
|
||||
this.raceLogEventSerializer = raceLogEventSerializer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(Leaderboard leaderboard) {
|
||||
if (leaderboard == null) {
|
||||
return null;
|
||||
}
|
||||
JSONObject jsonLeaderboard = new JSONObject();
|
||||
jsonLeaderboard.put(FIELD_NAME, leaderboard.getName());
|
||||
jsonLeaderboard.put(FIELD_SCORE_CORRECTION, createJsonForScoreCorrection(leaderboard));
|
||||
jsonLeaderboard.put(FIELD_CARRIED_POINTS, createJsonArrayForCarriedPoints(leaderboard));
|
||||
jsonLeaderboard.put(FIELD_RESULT_DISCARDING_RULE,
|
||||
createJsonForResultDiscardingRule(leaderboard.getResultDiscardingRule()));
|
||||
jsonLeaderboard.put(FIELD_DISPLAY_NAME, leaderboard.getDisplayName());
|
||||
jsonLeaderboard.put(FIELD_RACE_LOG_EVENTS, createJsonArrayForRaceLogEventsPerRaceColumn(leaderboard));
|
||||
boolean isRegattaLeaderboard = false;
|
||||
if (leaderboard instanceof FlexibleLeaderboard) {
|
||||
FlexibleLeaderboard flexibleLeaderboard = (FlexibleLeaderboard) leaderboard;
|
||||
jsonLeaderboard.put(FIELD_SCORING_SCHEME, createJsonForScoringScheme(leaderboard.getScoringScheme()));
|
||||
jsonLeaderboard.put(FIELD_COURSE_AREA, createJsonForCourseArea(flexibleLeaderboard.getDefaultCourseArea()));
|
||||
jsonLeaderboard.put(FIELD_RACE_COLUMNS, createJsonArrayForRaceColumns(leaderboard.getRaceColumns()));
|
||||
} else if (leaderboard instanceof RegattaLeaderboard) {
|
||||
RegattaLeaderboard regattaLeaderboard = (RegattaLeaderboard) leaderboard;
|
||||
jsonLeaderboard.put(FIELD_REGATTA_NAME, regattaLeaderboard.getRegatta().getName());
|
||||
CourseArea courseArea = regattaLeaderboard.getRegatta().getDefaultCourseArea();
|
||||
if (courseArea != null) {
|
||||
courseAreaIds.add(courseArea.getId().toString());
|
||||
}
|
||||
regattas.add(regattaLeaderboard.getRegatta());
|
||||
isRegattaLeaderboard = true;
|
||||
}
|
||||
jsonLeaderboard.put(FIELD_REGATTA_LEADERBOARD, isRegattaLeaderboard);
|
||||
jsonLeaderboard.put(FIELD_SUPPRESSED_COMPETITORS,
|
||||
createJsonArrayForSuppressedCompetitors(leaderboard.getSuppressedCompetitors()));
|
||||
|
||||
competitors.addAll(makeCollection(leaderboard.getAllCompetitors()));
|
||||
jsonLeaderboard.put(FIELD_COMPETITOR_DISPLAY_NAMES, createJsonArrayForCompetitorDisplayNames(leaderboard));
|
||||
jsonLeaderboard.put(FIELD_COMPETITORS, createJsonArrayForCompetitors());
|
||||
return jsonLeaderboard;
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForRaceLogEventsPerRaceColumn(Leaderboard leaderboard) {
|
||||
JSONArray array = new JSONArray();
|
||||
for (RaceColumn raceColumn : leaderboard.getRaceColumns()) {
|
||||
JSONObject raceColumnRaceLogJson = new JSONObject();
|
||||
raceColumnRaceLogJson.put(FIELD_RACE_COLUMN_NAME, raceColumn.getName());
|
||||
raceColumnRaceLogJson.put(FIELD_FLEETS, createJsonArrayForRaceLogEventsForFleets(raceColumn));
|
||||
array.add(raceColumnRaceLogJson);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForRaceLogEventsForFleets(RaceColumn raceColumn) {
|
||||
JSONArray array = new JSONArray();
|
||||
for (Fleet fleet : raceColumn.getFleets()) {
|
||||
JSONObject fleetRaceLogJson = new JSONObject();
|
||||
fleetRaceLogJson.put(FIELD_FLEET_NAME, fleet.getName());
|
||||
fleetRaceLogJson.put(FIELD_RACE_LOG_EVENTS, createRaceLogEventsForFleet(raceColumn, fleet));
|
||||
array.add(fleetRaceLogJson);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
private JSONArray createRaceLogEventsForFleet(RaceColumn raceColumn, Fleet fleet) {
|
||||
JSONArray array = new JSONArray();
|
||||
RaceLog raceLog = raceColumn.getRaceLog(fleet);
|
||||
if (raceLog != null) {
|
||||
raceLog.lockForRead();
|
||||
try {
|
||||
for (RaceLogEvent event : raceLog.getRawFixes()) {
|
||||
array.add(raceLogEventSerializer.serialize(event));
|
||||
}
|
||||
} finally {
|
||||
raceLog.unlockAfterRead();
|
||||
}
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForCompetitorDisplayNames(Leaderboard leaderboard) {
|
||||
JSONArray array = new JSONArray();
|
||||
for (Competitor competitor : competitors) {
|
||||
String displayName = leaderboard.getDisplayName(competitor);
|
||||
if (displayName != null) {
|
||||
JSONObject displayNameJson = new JSONObject();
|
||||
addCompetitorId(competitor, displayNameJson);
|
||||
displayNameJson.put(FIELD_DISPLAY_NAME, displayName);
|
||||
array.add(displayNameJson);
|
||||
}
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForSuppressedCompetitors(Iterable<Competitor> suppressedCompetitors) {
|
||||
competitors.addAll(makeCollection(suppressedCompetitors));
|
||||
JSONArray array = new JSONArray();
|
||||
for (Competitor competitor : suppressedCompetitors) {
|
||||
JSONObject obj = new JSONObject();
|
||||
addCompetitorId(competitor, obj);
|
||||
array.add(obj);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
private void addCompetitorId(Competitor competitor, JSONObject obj) {
|
||||
// Special treatment for UUIDs. They are represented as String because JSON doesn't have a way to represent
|
||||
// them otherwise. However, other, e.g., numeric, types used to encode a serializable ID must be preserved
|
||||
// according to JSON semantics. Also see the corresponding case distinction in the deserialized which first
|
||||
// tries to parse a string as a UUID becore returning the ID as is.
|
||||
obj.put(FIELD_TYPE, competitor.getId().getClass().getName());
|
||||
Serializable competitorId = competitor.getId() instanceof UUID ? competitor.getId().toString() : competitor
|
||||
.getId();
|
||||
obj.put(FIELD_COMPETITOR_ID, competitorId);
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForCarriedPoints(Leaderboard leaderboard) {
|
||||
JSONArray jsonArray = new JSONArray();
|
||||
Map<Competitor, Double> competitorsWithCarriedPoints = leaderboard
|
||||
.getCompetitorsForWhichThereAreCarriedPoints();
|
||||
competitors.addAll(competitorsWithCarriedPoints.keySet());
|
||||
for (Entry<Competitor, Double> entry : competitorsWithCarriedPoints.entrySet()) {
|
||||
Double carriedPoints = entry.getValue();
|
||||
if (carriedPoints != 0) {
|
||||
jsonArray.add(createJsonForCarriedPoints(entry.getKey(), carriedPoints));
|
||||
}
|
||||
}
|
||||
return jsonArray;
|
||||
}
|
||||
|
||||
private JSONObject createJsonForCarriedPoints(Competitor competitor, double carriedPoints) {
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
addCompetitorId(competitor, jsonObject);
|
||||
jsonObject.put(FIELD_CARRIED, carriedPoints);
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
private JSONObject createJsonForCourseArea(CourseArea defaultCourseArea) {
|
||||
if (defaultCourseArea == null) {
|
||||
return null;
|
||||
}
|
||||
JSONObject result = new JSONObject();
|
||||
result.put(FIELD_ID, defaultCourseArea.getId());
|
||||
result.put(FIELD_NAME, defaultCourseArea.getName());
|
||||
return null;
|
||||
}
|
||||
|
||||
public static JSONObject createJsonForResultDiscardingRule(ResultDiscardingRule resultDiscardingRule) {
|
||||
JSONObject result = new JSONObject();
|
||||
if (resultDiscardingRule instanceof ThresholdBasedResultDiscardingRule) {
|
||||
ThresholdBasedResultDiscardingRule rule = (ThresholdBasedResultDiscardingRule) resultDiscardingRule;
|
||||
JSONArray indices = new JSONArray();
|
||||
int[] rawValues = rule.getDiscardIndexResultsStartingWithHowManyRaces();
|
||||
for (int i = 0; i < rawValues.length; i++) {
|
||||
indices.add(new Integer(rawValues[i]));
|
||||
}
|
||||
result.put(FIELD_INDICES, indices);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public static JSONObject createJsonForScoringScheme(ScoringScheme scoringScheme) {
|
||||
JSONObject result = new JSONObject();
|
||||
result.put(FIELD_TYPE, scoringScheme.getType().name());
|
||||
return result;
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForRaceColumns(Iterable<RaceColumn> raceColumns) {
|
||||
JSONArray jsonRaceColumns = new JSONArray();
|
||||
for (RaceColumn raceColumn : raceColumns) {
|
||||
JSONObject jsonRaceColumn = raceColumnSerializer.serialize(raceColumn);
|
||||
jsonRaceColumns.add(jsonRaceColumn);
|
||||
}
|
||||
return jsonRaceColumns;
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForCompetitors() {
|
||||
JSONArray jsonCompetitors = new JSONArray();
|
||||
for (Competitor competitor : competitors) {
|
||||
JSONObject jsonCompetitor = competitorSerializer.serialize(competitor);
|
||||
jsonCompetitors.add(jsonCompetitor);
|
||||
}
|
||||
return jsonCompetitors;
|
||||
}
|
||||
|
||||
private JSONObject createJsonForScoreCorrection(Leaderboard leaderboard) {
|
||||
SettableScoreCorrection correction = leaderboard.getScoreCorrection();
|
||||
JSONObject jsonScoreCorrection = new JSONObject();
|
||||
jsonScoreCorrection.put(FIELD_COMMENT, correction.getComment());
|
||||
if (correction.getTimePointOfLastCorrectionsValidity() != null) {
|
||||
jsonScoreCorrection.put(FIELD_TIME_POINT, correction.getTimePointOfLastCorrectionsValidity().asMillis());
|
||||
} else {
|
||||
jsonScoreCorrection.put(FIELD_TIME_POINT, null);
|
||||
}
|
||||
|
||||
jsonScoreCorrection.put(FIELD_FOR_RACE_COLUMNS,
|
||||
createJSONArrayForScoreCorrectionsForRaceColumns(correction, leaderboard));
|
||||
|
||||
return jsonScoreCorrection;
|
||||
}
|
||||
|
||||
private JSONArray createJSONArrayForScoreCorrectionsForRaceColumns(SettableScoreCorrection correction,
|
||||
Leaderboard leaderboard) {
|
||||
JSONArray scoreCorrectionsForRaceColumns = new JSONArray();
|
||||
for (RaceColumn raceColumn : leaderboard.getRaceColumns()) {
|
||||
if (correction.hasCorrectionFor(raceColumn)) {
|
||||
JSONObject scoreCorrectionsForRaceColumn = new JSONObject();
|
||||
scoreCorrectionsForRaceColumn.put(FIELD_RACE_COLUMN_NAME, raceColumn.getName());
|
||||
scoreCorrectionsForRaceColumn.put(FIELD_FOR_COMPETITORS,
|
||||
createJsonForScoreCorrectionsForRaceColumnAndCompetitors(correction, raceColumn, leaderboard));
|
||||
scoreCorrectionsForRaceColumns.add(scoreCorrectionsForRaceColumn);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return scoreCorrectionsForRaceColumns;
|
||||
}
|
||||
|
||||
private JSONArray createJsonForScoreCorrectionsForRaceColumnAndCompetitors(SettableScoreCorrection correction,
|
||||
RaceColumn raceColumn, Leaderboard leaderboard) {
|
||||
JSONArray scoreCorrectionsForCompetitors = new JSONArray();
|
||||
Iterable<Competitor> competitorsThatHaveCorrectionsIn = correction
|
||||
.getCompetitorsThatHaveCorrectionsIn(raceColumn);
|
||||
competitors.addAll(makeCollection(competitorsThatHaveCorrectionsIn));
|
||||
for (Competitor competitor : competitorsThatHaveCorrectionsIn) {
|
||||
// TODO bug 655: score corrections shall be time dependent
|
||||
final MillisecondsTimePoint now = MillisecondsTimePoint.now();
|
||||
if (correction.isScoreCorrected(competitor, raceColumn, now)) {
|
||||
JSONObject scoreCorrectionForCompetitor = new JSONObject();
|
||||
scoreCorrectionForCompetitor.put(FIELD_EXPLICIT_SCORE_CORRECTION,
|
||||
correction.getExplicitScoreCorrection(competitor, raceColumn));
|
||||
scoreCorrectionForCompetitor.put(FIELD_MAX_POINTS_REASON,
|
||||
correction.getMaxPointsReason(competitor, raceColumn, now).toString());
|
||||
addCompetitorId(competitor, scoreCorrectionForCompetitor);
|
||||
scoreCorrectionsForCompetitors.add(scoreCorrectionForCompetitor);
|
||||
}
|
||||
}
|
||||
|
||||
return scoreCorrectionsForCompetitors;
|
||||
}
|
||||
|
||||
public Set<String> getCourseAreaIds() {
|
||||
return courseAreaIds;
|
||||
}
|
||||
|
||||
public Iterable<Regatta> getRegattas() {
|
||||
return regattas;
|
||||
}
|
||||
|
||||
public static <E> Collection<E> makeCollection(Iterable<E> iter) {
|
||||
Collection<E> list = new ArrayList<E>();
|
||||
for (E item : iter) {
|
||||
list.add(item);
|
||||
}
|
||||
return list;
|
||||
}
|
||||
|
||||
}
|
||||
-31
@@ -1,31 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.serialization.masterdata.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.common.media.MediaTrack;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class MediaTrackJsonSerializer implements JsonSerializer<MediaTrack> {
|
||||
|
||||
public static final String FIELD_DB_ID = "dbId";
|
||||
public static final String FIELD_DURATION = "duration";
|
||||
public static final String FIELD_MIME_TYPE = "mimeType";
|
||||
public static final String FIELD_START_TIME = "startTime";
|
||||
public static final String FIELD_STATUS = "status";
|
||||
public static final String FIELD_TITLE = "title";
|
||||
public static final String FIELD_URL = "url";
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(MediaTrack mediaTrack) {
|
||||
JSONObject result = new JSONObject();
|
||||
result.put(FIELD_DB_ID, mediaTrack.dbId);
|
||||
result.put(FIELD_DURATION, mediaTrack.durationInMillis);
|
||||
result.put(FIELD_MIME_TYPE, mediaTrack.mimeType.name());
|
||||
result.put(FIELD_START_TIME, mediaTrack.startTime.getTime());
|
||||
result.put(FIELD_STATUS, mediaTrack.status.name());
|
||||
result.put(FIELD_TITLE, mediaTrack.title);
|
||||
result.put(FIELD_URL, mediaTrack.url);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
-71
@@ -1,71 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.serialization.masterdata.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
import com.sap.sailing.domain.common.WindSource;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.domain.tracking.WindTrack;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class RaceColumnMasterDataJsonSerializer implements JsonSerializer<RaceColumn> {
|
||||
|
||||
public static final String FIELD_MEDAL_RACE = "medalRace";
|
||||
public static final String FIELD_NAME = "name";
|
||||
public static final String FIELD_RACE_IDENTIFIERS = "raceIdentifiers";
|
||||
public static final String FIELD_FLEET_NAME = "fleetName";
|
||||
public static final String FIELD_RACE_NAME = "raceName";
|
||||
public static final String FIELD_REGATTA_NAME = "regattaName";
|
||||
public static final String FIELD_FACTOR = "factor";
|
||||
public static final String FIELD_WIND = "wind";
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(RaceColumn raceColumn) {
|
||||
JSONObject jsonRaceColumn = new JSONObject();
|
||||
jsonRaceColumn.put(FIELD_NAME, raceColumn.getName());
|
||||
jsonRaceColumn.put(FIELD_MEDAL_RACE, raceColumn.isMedalRace());
|
||||
jsonRaceColumn.put(FIELD_FACTOR, raceColumn.getExplicitFactor());
|
||||
JSONArray raceIdentifiers = new JSONArray();
|
||||
jsonRaceColumn.put(FIELD_RACE_IDENTIFIERS, raceIdentifiers);
|
||||
for (Fleet fleet : raceColumn.getFleets()) {
|
||||
RaceIdentifier raceIdentifierForFleet = raceColumn.getRaceIdentifier(fleet);
|
||||
if (raceIdentifierForFleet != null) {
|
||||
JSONObject jsonRaceIdentifierForFleet = new JSONObject();
|
||||
jsonRaceIdentifierForFleet.put(FIELD_FLEET_NAME, fleet.getName());
|
||||
jsonRaceIdentifierForFleet.put(FIELD_RACE_NAME, raceIdentifierForFleet.getRaceName());
|
||||
jsonRaceIdentifierForFleet.put(FIELD_REGATTA_NAME, raceIdentifierForFleet.getRegattaName());
|
||||
raceIdentifiers.add(jsonRaceIdentifierForFleet);
|
||||
}
|
||||
TrackedRace trackedRace = raceColumn.getTrackedRace(fleet);
|
||||
if (trackedRace != null) {
|
||||
jsonRaceColumn.put(FIELD_WIND, serializeWindInformation(trackedRace));
|
||||
}
|
||||
}
|
||||
return jsonRaceColumn;
|
||||
}
|
||||
|
||||
private JSONArray serializeWindInformation(TrackedRace trackedRace) {
|
||||
JSONArray jsonWindInfo = new JSONArray();
|
||||
Iterable<WindSource> windSources = trackedRace.getWindSources();
|
||||
String raceName = trackedRace.getRace().getName();
|
||||
Serializable raceId = trackedRace.getRace().getId();
|
||||
String regattaName = trackedRace.getTrackedRegatta().getRegatta().getName();
|
||||
if (windSources != null) {
|
||||
for (WindSource source : windSources) {
|
||||
if (source.canBeStored()) {
|
||||
WindTrack track = trackedRace.getOrCreateWindTrack(source);
|
||||
JsonSerializer<WindTrack> windtrackSerializer = new WindTrackMasterDataJsonSerializer(source,
|
||||
regattaName, raceName, raceId);
|
||||
jsonWindInfo.add(windtrackSerializer.serialize(track));
|
||||
}
|
||||
}
|
||||
}
|
||||
return jsonWindInfo;
|
||||
}
|
||||
|
||||
}
|
||||
-160
@@ -1,160 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.serialization.masterdata.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Map.Entry;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.base.RaceColumnInSeries;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.configuration.RegattaConfiguration;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.leaderboard.ResultDiscardingRule;
|
||||
import com.sap.sailing.domain.leaderboard.ThresholdBasedResultDiscardingRule;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class RegattaMasterDataJsonSerializer implements JsonSerializer<Regatta> {
|
||||
|
||||
public static final String FIELD_ID = "id";
|
||||
public static final String FIELD_ID_TYPE = "idType";
|
||||
public static final String FIELD_NAME = "name";
|
||||
public static final String FIELD_BASE_NAME = "baseName";
|
||||
public static final String FIELD_REGATTAS = "regattas";
|
||||
public static final String FIELD_BOAT_CLASS_NAME = "boatClass";
|
||||
public static final String FIELD_DEFAULT_COURSE_AREA_ID = "defaultCourseAreaId";
|
||||
public static final String FIELD_REGATTA_CONFIGURATION = "procedures";
|
||||
public static final String FIELD_SCORING_SCHEME_TYPE = "scoringSchemeType";
|
||||
public static final String FIELD_SERIES = "series";
|
||||
public static final String FIELD_RACE_COLUMNS = "raceColumns";
|
||||
public static final String FIELD_IS_MEDAL = "isMedal";
|
||||
public static final String FIELD_FLEETS = "fleets";
|
||||
public static final String FIELD_IS_PERSISTENT = "isPersistent";
|
||||
public static final String FIELD_REGATTA_NAME = "regattaName";
|
||||
public static final String FIELD_RESULT_DISCARDING_RULE = "resultDiscardingRule";
|
||||
public static final String FIELD_INDICES = "indices";
|
||||
public static final String FIELD_REGATTA_RACE_IDS = "regattaRaceIds";
|
||||
|
||||
private final JsonSerializer<Fleet> fleetSerializer;
|
||||
private final JsonSerializer<RaceColumn> raceColumnSerializer;
|
||||
private final JsonSerializer<RegattaConfiguration> configurationSerializer;
|
||||
private final ConcurrentHashMap<String, Regatta> regattaForRaceIdStrings;
|
||||
|
||||
public RegattaMasterDataJsonSerializer(JsonSerializer<Fleet> fleetSerializer,
|
||||
JsonSerializer<RaceColumn> raceColumnSerializer,
|
||||
JsonSerializer<RegattaConfiguration> configurationSerializer,
|
||||
ConcurrentHashMap<String, Regatta> regattaForRaceIdStrings) {
|
||||
this.fleetSerializer = fleetSerializer;
|
||||
this.raceColumnSerializer = raceColumnSerializer;
|
||||
this.configurationSerializer = configurationSerializer;
|
||||
this.regattaForRaceIdStrings = regattaForRaceIdStrings;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(Regatta regatta) {
|
||||
return createJsonForRegatta(regatta);
|
||||
}
|
||||
|
||||
private JSONObject createJsonForRegatta(Regatta regatta) {
|
||||
JSONObject result = new JSONObject();
|
||||
// Special treatment for UUIDs. They are represented as String because JSON doesn't have a way to represent them
|
||||
// otherwise. However, other, e.g., numeric, types used to encode a serializable ID must be preserved according
|
||||
// to JSON semantics.
|
||||
// Also see the corresponding case distinction in the deserialized which first tries to parse a string as a UUID
|
||||
// becore returning the ID as is.
|
||||
result.put(FIELD_ID_TYPE, regatta.getId().getClass().getName());
|
||||
Serializable regattaId = regatta.getId() instanceof UUID ? regatta.getId().toString() : regatta.getId();
|
||||
result.put(FIELD_ID, regattaId);
|
||||
result.put(FIELD_BASE_NAME, regatta.getBaseName());
|
||||
result.put(FIELD_BOAT_CLASS_NAME, regatta.getBoatClass().getName());
|
||||
CourseArea defaultCourseArea = regatta.getDefaultCourseArea();
|
||||
if (defaultCourseArea != null) {
|
||||
result.put(FIELD_DEFAULT_COURSE_AREA_ID, defaultCourseArea.getId().toString());
|
||||
} else {
|
||||
result.put(FIELD_DEFAULT_COURSE_AREA_ID, null);
|
||||
}
|
||||
if (regatta.getRegattaConfiguration() != null) {
|
||||
result.put(FIELD_REGATTA_CONFIGURATION,
|
||||
configurationSerializer.serialize(regatta.getRegattaConfiguration()));
|
||||
}
|
||||
|
||||
result.put(FIELD_SCORING_SCHEME_TYPE, regatta.getScoringScheme().getType().toString());
|
||||
result.put(FIELD_SERIES, createJsonArrayForSeries(regatta.getSeries()));
|
||||
result.put(FIELD_IS_PERSISTENT, regatta.isPersistent());
|
||||
result.put(FIELD_REGATTA_NAME, ((RegattaName) regatta.getRegattaIdentifier()).getRegattaName());
|
||||
result.put(FIELD_REGATTA_RACE_IDS, createJsonArrayForRaceIdStrings(regatta));
|
||||
return result;
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForRaceIdStrings(Regatta regatta) {
|
||||
JSONArray result = new JSONArray();
|
||||
for (Entry<String, Regatta> entry: regattaForRaceIdStrings.entrySet()) {
|
||||
if (entry.getValue() == regatta) {
|
||||
result.add(entry.getKey());
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForSeries(Iterable<? extends Series> series) {
|
||||
JSONArray array = new JSONArray();
|
||||
for (Series oneSeries : series) {
|
||||
array.add(createJsonForSeries(oneSeries));
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
private JSONObject createJsonForSeries(Series series) {
|
||||
JSONObject result = new JSONObject();
|
||||
result.put(FIELD_NAME, series.getName());
|
||||
result.put(FIELD_IS_MEDAL, series.isMedal());
|
||||
result.put(FIELD_FLEETS, createJsonArrayForFleets(series.getFleets()));
|
||||
result.put(FIELD_RACE_COLUMNS, createJsonArrayForRaceColumns(series.getRaceColumns()));
|
||||
result.put(FIELD_RESULT_DISCARDING_RULE, createJsonForResultDiscardingRule(series.getResultDiscardingRule()));
|
||||
return result;
|
||||
}
|
||||
|
||||
private JSONObject createJsonForResultDiscardingRule(ResultDiscardingRule resultDiscardingRule) {
|
||||
if (resultDiscardingRule == null) {
|
||||
return null;
|
||||
}
|
||||
JSONObject result = new JSONObject();
|
||||
if (resultDiscardingRule instanceof ThresholdBasedResultDiscardingRule) {
|
||||
ThresholdBasedResultDiscardingRule rule = (ThresholdBasedResultDiscardingRule) resultDiscardingRule;
|
||||
JSONArray indices = new JSONArray();
|
||||
int[] rawValues = rule.getDiscardIndexResultsStartingWithHowManyRaces();
|
||||
for (int i = 0; i < rawValues.length; i++) {
|
||||
indices.add(new Integer(rawValues[i]));
|
||||
}
|
||||
result.put(FIELD_INDICES, indices);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForFleets(Iterable<? extends Fleet> fleets) {
|
||||
JSONArray array = new JSONArray();
|
||||
for (Fleet fleet : fleets) {
|
||||
array.add(fleetSerializer.serialize(fleet));
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForRaceColumns(Iterable<? extends RaceColumnInSeries> raceColumns) {
|
||||
JSONArray array = new JSONArray();
|
||||
for (RaceColumnInSeries raceColumn : raceColumns) {
|
||||
array.add(createJsonForRaceColumn(raceColumn));
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
private JSONObject createJsonForRaceColumn(RaceColumnInSeries raceColumn) {
|
||||
return raceColumnSerializer.serialize(raceColumn);
|
||||
}
|
||||
|
||||
}
|
||||
-72
@@ -1,72 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.serialization.masterdata.impl;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.Event;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.common.media.MediaTrack;
|
||||
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
/**
|
||||
* Will take care of serializing all master data connected to a set of leaderboard groups. They
|
||||
* are identified in {@link #serialize(Set)}. The serializer must be created with a reference to all
|
||||
* leaderboard groups and all events, so that all necessary data can be found and serialized.
|
||||
*
|
||||
* @author Frederik Petersen (D054528)
|
||||
*
|
||||
*/
|
||||
public class TopLevelMasterDataSerializer {
|
||||
|
||||
public static final String FIELD_PER_LG = "perLg";
|
||||
public static final String FIELD_MEDIA = "media";
|
||||
private final Map<String, LeaderboardGroup> allLeaderboardGroups;
|
||||
private final Iterable<Event> allEvents;
|
||||
private final ConcurrentHashMap<String, Regatta> regattaForRaceIdStrings;
|
||||
private final Collection<MediaTrack> allMediaTracks;
|
||||
|
||||
private final JsonSerializer<MediaTrack> mediaTrackSerializer;
|
||||
|
||||
public TopLevelMasterDataSerializer(Map<String, LeaderboardGroup> allLeaderboardGroups, Iterable<Event> allEvents,
|
||||
ConcurrentHashMap<String, Regatta> regattaForRaceIdString, Collection<MediaTrack> allMediaTracks) {
|
||||
this.allLeaderboardGroups = allLeaderboardGroups;
|
||||
this.allEvents = allEvents;
|
||||
this.regattaForRaceIdStrings = regattaForRaceIdString;
|
||||
this.allMediaTracks = allMediaTracks;
|
||||
mediaTrackSerializer = new MediaTrackJsonSerializer();
|
||||
}
|
||||
|
||||
public JSONObject serialize(Set<String> requestedLeaderboardGroupNames) {
|
||||
JSONObject masterData = new JSONObject();
|
||||
|
||||
JSONArray masterDataPerLg = new JSONArray();
|
||||
|
||||
for (String name : requestedLeaderboardGroupNames) {
|
||||
LeaderboardGroup leaderboardGroup = allLeaderboardGroups.get(name);
|
||||
if (leaderboardGroup == null) {
|
||||
continue;
|
||||
}
|
||||
JsonSerializer<LeaderboardGroup> serializer = new LeaderboardGroupMasterDataJsonSerializer(allEvents, regattaForRaceIdStrings);
|
||||
masterDataPerLg.add(serializer.serialize(leaderboardGroup));
|
||||
}
|
||||
masterData.put(FIELD_PER_LG, masterDataPerLg);
|
||||
masterData.put(FIELD_MEDIA, createJsonArrayForMediaTracks());
|
||||
|
||||
return masterData;
|
||||
}
|
||||
|
||||
private JSONArray createJsonArrayForMediaTracks() {
|
||||
JSONArray array = new JSONArray();
|
||||
for (MediaTrack mediaTrack : allMediaTracks) {
|
||||
array.add(mediaTrackSerializer.serialize(mediaTrack));
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
}
|
||||
-75
@@ -1,75 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.serialization.masterdata.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.UUID;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
import com.sap.sailing.domain.common.WindSource;
|
||||
import com.sap.sailing.domain.tracking.Wind;
|
||||
import com.sap.sailing.domain.tracking.WindTrack;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.PositionJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.WindJsonSerializer;
|
||||
|
||||
public class WindTrackMasterDataJsonSerializer implements JsonSerializer<WindTrack>{
|
||||
|
||||
public static final String FIELD_WIND_SOURCE_TYPE = "windSourceType";
|
||||
public static final String FIELD_WIND_SOURCE_ID = "windSourceId";
|
||||
public static final String FIELD_FIXES = "fixes";
|
||||
public static final String FIELD_RACE_NAME = "raceName";
|
||||
public static final String FIELD_RACE_ID = "raceId";
|
||||
public static final String FIELD_ID_TYPE = "idType";
|
||||
public static final String FIELD_REGATTA_NAME = "regattaName";
|
||||
|
||||
|
||||
private final WindSource source;
|
||||
private final JsonSerializer<Wind> windSerializer;
|
||||
private final String regattaName;
|
||||
private final String raceName;
|
||||
private final Serializable raceId;
|
||||
|
||||
public WindTrackMasterDataJsonSerializer(WindSource source, String regattaName, String raceName, Serializable raceId) {
|
||||
this.source = source;
|
||||
this.regattaName = regattaName;
|
||||
this.raceName = raceName;
|
||||
this.raceId = raceId;
|
||||
JsonSerializer<Position> positionSerializer = new PositionJsonSerializer();
|
||||
this.windSerializer = new WindJsonSerializer(positionSerializer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(WindTrack windTrack) {
|
||||
JSONObject windTrackJson = new JSONObject();
|
||||
windTrack.lockForRead();
|
||||
try {
|
||||
windTrackJson.put(FIELD_WIND_SOURCE_TYPE, source.getType().name());
|
||||
if (source.getId() != null) {
|
||||
windTrackJson.put(FIELD_WIND_SOURCE_ID, source.getId().toString());
|
||||
}
|
||||
windTrackJson.put(FIELD_RACE_NAME, raceName);
|
||||
if (raceId != null) {
|
||||
// Special treatment for UUIDs. They are represented as String because JSON doesn't have a way to
|
||||
// otherwise. However, other, e.g., numeric, types used to encode a serializable ID must be preserved
|
||||
// to JSON semantics. Also see the corresponding case distinction in the deserialized which first tries
|
||||
// to parse a string as a UUID becore returning the ID as is.
|
||||
windTrackJson.put(FIELD_ID_TYPE, raceId.getClass().getName());
|
||||
Serializable raceIdAdapted = raceId instanceof UUID ? raceId.toString() : raceId;
|
||||
windTrackJson.put(FIELD_RACE_ID, raceIdAdapted);
|
||||
}
|
||||
windTrackJson.put(FIELD_REGATTA_NAME, regattaName);
|
||||
JSONArray fixes = new JSONArray();
|
||||
Iterable<Wind> fixesIterator = windTrack.getFixes();
|
||||
for (Wind wind : fixesIterator) {
|
||||
fixes.add(windSerializer.serialize(wind));
|
||||
}
|
||||
windTrackJson.put(FIELD_FIXES, fixes);
|
||||
} finally {
|
||||
windTrack.unlockAfterRead();
|
||||
}
|
||||
return windTrackJson;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -6,7 +6,6 @@ Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Vendor: SAP
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Import-Package: com.sap.sailing.server,
|
||||
com.sap.sailing.server.gateway.masterdata,
|
||||
com.sap.sailing.server.operationaltransformation,
|
||||
javax.ws.rs;version="1.1.1",
|
||||
javax.ws.rs.core;version="1.1.1",
|
||||
|
||||
+1
-1
@@ -22,8 +22,8 @@ import javax.ws.rs.core.Response.ResponseBuilder;
|
||||
import javax.ws.rs.core.StreamingOutput;
|
||||
|
||||
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||
import com.sap.sailing.domain.masterdataimport.TopLevelMasterData;
|
||||
import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource;
|
||||
import com.sap.sailing.server.gateway.masterdata.TopLevelMasterData;
|
||||
|
||||
@Path("/v1/masterdata")
|
||||
public class MasterDataResource extends AbstractSailingServerResource {
|
||||
|
||||
-46
@@ -1,46 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.jaxrs.spi;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.ws.rs.GET;
|
||||
import javax.ws.rs.Path;
|
||||
import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.QueryParam;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||
import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource;
|
||||
import com.sap.sailing.server.gateway.serialization.masterdata.impl.TopLevelMasterDataSerializer;
|
||||
|
||||
@Path("/v1/leaderboardgroups/structure")
|
||||
public class LeaderboardGroupsStructureResource extends AbstractSailingServerResource {
|
||||
|
||||
@GET
|
||||
@Produces("application/json;charset=UTF-8")
|
||||
public Response getStructureOfLeaderboardGroups(@QueryParam("names") List<String> leaderboardGroupNames) {
|
||||
Map<String, LeaderboardGroup> leaderboardGroups = getService().getLeaderboardGroups();
|
||||
Set<String> requestedLeaderboardGroupNames = new HashSet<String>();
|
||||
|
||||
if (leaderboardGroupNames != null && !leaderboardGroupNames.isEmpty()) {
|
||||
requestedLeaderboardGroupNames.addAll(leaderboardGroupNames);
|
||||
} else {
|
||||
// No range supplied. Export all for now
|
||||
requestedLeaderboardGroupNames.addAll(leaderboardGroups.keySet());
|
||||
}
|
||||
|
||||
TopLevelMasterDataSerializer masterSerializer = new TopLevelMasterDataSerializer(leaderboardGroups,
|
||||
getService().getAllEvents(), getService().getPersistentRegattasForRaceIDs(), getService().getAllMediaTracks());
|
||||
|
||||
JSONObject masterData = masterSerializer.serialize(requestedLeaderboardGroupNames);
|
||||
|
||||
String json = masterData.toJSONString();
|
||||
return Response.ok(json, MediaType.APPLICATION_JSON).build();
|
||||
}
|
||||
}
|
||||
|
||||
-1
@@ -9,7 +9,6 @@ import javax.ws.rs.core.Application;
|
||||
public class RestSpiApplication extends Application {
|
||||
public Set<Class<?>> getClasses() {
|
||||
HashSet<Class<?>> classes = new HashSet<>();
|
||||
classes.add(LeaderboardGroupsStructureResource.class);
|
||||
|
||||
return classes;
|
||||
}
|
||||
|
||||
+1
-1
@@ -75,6 +75,7 @@ import com.sap.sailing.domain.leaderboard.ThresholdBasedResultDiscardingRule;
|
||||
import com.sap.sailing.domain.leaderboard.impl.FlexibleLeaderboardImpl;
|
||||
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
|
||||
import com.sap.sailing.domain.leaderboard.meta.LeaderboardGroupMetaLeaderboard;
|
||||
import com.sap.sailing.domain.masterdataimport.TopLevelMasterData;
|
||||
import com.sap.sailing.domain.persistence.PersistenceFactory;
|
||||
import com.sap.sailing.domain.persistence.media.MediaDBFactory;
|
||||
import com.sap.sailing.domain.racelog.CompetitorResults;
|
||||
@@ -92,7 +93,6 @@ import com.sap.sailing.domain.tracking.impl.EmptyWindStore;
|
||||
import com.sap.sailing.domain.tracking.impl.WindImpl;
|
||||
import com.sap.sailing.mongodb.MongoDBService;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
import com.sap.sailing.server.gateway.masterdata.TopLevelMasterData;
|
||||
import com.sap.sailing.server.impl.RacingEventServiceImpl;
|
||||
import com.sap.sailing.server.masterdata.MasterDataImporter;
|
||||
import com.sap.sailing.server.operationaltransformation.DummyTrackedRace;
|
||||
|
||||
@@ -7,9 +7,6 @@ Bundle-Activator: com.sap.sailing.server.impl.Activator
|
||||
Bundle-Vendor: SAP
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
|
||||
Import-Package: com.sap.sailing.server.gateway.deserialization,
|
||||
com.sap.sailing.server.gateway.deserialization.masterdata.impl,
|
||||
com.sap.sailing.server.gateway.masterdata,
|
||||
com.sap.sailing.server.gateway.serialization.masterdata.impl,
|
||||
org.json.simple,
|
||||
org.json.simple.parser,
|
||||
org.osgi.framework;version="1.3.0",
|
||||
|
||||
@@ -32,5 +32,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.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,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.igtimiadapter.persistence@default:default,com.sap.sailing.domain.igtimiadapter@default:default,com.sap.sailing.domain.persistence@default: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.mongodb@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.operationaltransformation@default:default,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.masterdata*1.0.0.qualifier@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway@5:true,com.sap.sailing.server.replication@4: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.sse.gwt@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@default:default,net.sf.marineapi@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.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,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.igtimiadapter.persistence@default:default,com.sap.sailing.domain.igtimiadapter@default:default,com.sap.sailing.domain.persistence@default: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.mongodb@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.operationaltransformation@default:default,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@default:default,com.sap.sailing.server.gateway@5:true,com.sap.sailing.server.replication@4: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.sse.gwt@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@default:default,net.sf.marineapi@default:default,org.json.simple@default:default,org.moxieapps.gwt.highcharts@default:default"/>
|
||||
</launchConfiguration>
|
||||
@@ -26,6 +26,6 @@
|
||||
<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.test@default:false,com.googlecode.java-diff-utils@default:default,com.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.datamining@default:default,com.sap.sailing.declination.test@default:false,com.sap.sailing.declination@default:default,com.sap.sailing.domain.common@default:default,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.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@5:true,com.sap.sailing.domain.test@default:default,com.sap.sailing.domain.tractracadapter.persistence@default:default,com.sap.sailing.domain.tractracadapter.test@default:false,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.domain@default:default,com.sap.sailing.ess40.resultimport.test@default:false,com.sap.sailing.ess40.resultimport@default:default,com.sap.sailing.expeditionconnector.test@default:false,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.freg.resultimport.test@default:false,com.sap.sailing.freg.resultimport@default:default,com.sap.sailing.geocoding.test@default:false,com.sap.sailing.geocoding@default:default,com.sap.sailing.gwt.ui.test@default:false,com.sap.sailing.gwt.ui@default:default,com.sap.sailing.kiworesultimport.test@default:false,com.sap.sailing.kiworesultimport@default:default,com.sap.sailing.manage2sail.resultimport@default:default,com.sap.sailing.mongodb.test@default:false,com.sap.sailing.mongodb@default:default,com.sap.sailing.operationaltransformation.test@default:false,com.sap.sailing.operationaltransformation@default:default,com.sap.sailing.resultimport@default:default,com.sap.sailing.sailwave.resultimport@default:default,com.sap.sailing.server.gateway.ess40@default:default,com.sap.sailing.server.gateway.masterdata*1.0.0.qualifier@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway.test@default:false,com.sap.sailing.server.gateway@default:default,com.sap.sailing.server.replication.test@default:false,com.sap.sailing.server.replication@default:default,com.sap.sailing.server.test@default:false,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@default:default,com.sap.sailing.www@default:default,com.sap.sailing.xmlexport@default:default,com.sap.sailing.xrr.resultimport.test@default:false,com.sap.sailing.xrr.resultimport@default:default,com.sap.sse.gwt@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@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.test@default:false,com.googlecode.java-diff-utils@default:default,com.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,com.sap.sailing.datamining.shared@default:default,com.sap.sailing.datamining@default:default,com.sap.sailing.declination.test@default:false,com.sap.sailing.declination@default:default,com.sap.sailing.domain.common@default:default,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.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@5:true,com.sap.sailing.domain.test@default:default,com.sap.sailing.domain.tractracadapter.persistence@default:default,com.sap.sailing.domain.tractracadapter.test@default:false,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.domain@default:default,com.sap.sailing.ess40.resultimport.test@default:false,com.sap.sailing.ess40.resultimport@default:default,com.sap.sailing.expeditionconnector.test@default:false,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.freg.resultimport.test@default:false,com.sap.sailing.freg.resultimport@default:default,com.sap.sailing.geocoding.test@default:false,com.sap.sailing.geocoding@default:default,com.sap.sailing.gwt.ui.test@default:false,com.sap.sailing.gwt.ui@default:default,com.sap.sailing.kiworesultimport.test@default:false,com.sap.sailing.kiworesultimport@default:default,com.sap.sailing.manage2sail.resultimport@default:default,com.sap.sailing.mongodb.test@default:false,com.sap.sailing.mongodb@default:default,com.sap.sailing.operationaltransformation.test@default:false,com.sap.sailing.operationaltransformation@default:default,com.sap.sailing.resultimport@default:default,com.sap.sailing.sailwave.resultimport@default:default,com.sap.sailing.server.gateway.ess40@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway.test@default:false,com.sap.sailing.server.gateway@default:default,com.sap.sailing.server.replication.test@default:false,com.sap.sailing.server.replication@default:default,com.sap.sailing.server.test@default:false,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@default:default,com.sap.sailing.www@default:default,com.sap.sailing.xmlexport@default:default,com.sap.sailing.xrr.resultimport.test@default:false,com.sap.sailing.xrr.resultimport@default:default,com.sap.sse.gwt@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@default:default,org.json.simple@default:default,org.moxieapps.gwt.highcharts@default:default"/>
|
||||
<stringAttribute key="yk-options" value=" additional-options2=onexit\=snapshot "/>
|
||||
</launchConfiguration>
|
||||
+1
-1
@@ -26,6 +26,6 @@
|
||||
<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.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,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.igtimiadapter.persistence@default:default,com.sap.sailing.domain.igtimiadapter@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@5:true,com.sap.sailing.domain.tractracadapter.persistence@default:default,com.sap.sailing.domain.tractracadapter@5: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@default:default,com.sap.sailing.kiworesultimport@default:default,com.sap.sailing.manage2sail.resultimport@default:default,com.sap.sailing.mongodb@default:default,com.sap.sailing.monitoring@5:true,com.sap.sailing.operationaltransformation@default:default,com.sap.sailing.resultimport@default:default,com.sap.sailing.sailwave.resultimport@default:default,com.sap.sailing.server.gateway.ess40@default:default,com.sap.sailing.server.gateway.masterdata*1.0.0.qualifier@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway@default:default,com.sap.sailing.server.replication@default:default,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@default:default,com.sap.sailing.www@default:default,com.sap.sailing.xrr.resultimport@default:default,com.sap.sse.gwt@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@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.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,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.igtimiadapter.persistence@default:default,com.sap.sailing.domain.igtimiadapter@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@5:true,com.sap.sailing.domain.tractracadapter.persistence@default:default,com.sap.sailing.domain.tractracadapter@5: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@default:default,com.sap.sailing.kiworesultimport@default:default,com.sap.sailing.manage2sail.resultimport@default:default,com.sap.sailing.mongodb@default:default,com.sap.sailing.monitoring@5:true,com.sap.sailing.operationaltransformation@default:default,com.sap.sailing.resultimport@default:default,com.sap.sailing.sailwave.resultimport@default:default,com.sap.sailing.server.gateway.ess40@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway@default:default,com.sap.sailing.server.replication@default:default,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@default:default,com.sap.sailing.www@default:default,com.sap.sailing.xrr.resultimport@default:default,com.sap.sse.gwt@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@default:default,org.json.simple@default:default,org.moxieapps.gwt.highcharts@default:default"/>
|
||||
<stringAttribute key="yk-options" value=" additional-options2=onexit\=snapshot "/>
|
||||
</launchConfiguration>
|
||||
@@ -25,5 +25,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.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.common@default:default,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.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@5:true,com.sap.sailing.domain.tractracadapter.persistence@default:default,com.sap.sailing.domain.tractracadapter@5: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@default:default,com.sap.sailing.kiworesultimport@default:default,com.sap.sailing.manage2sail.resultimport@default:default,com.sap.sailing.mongodb@default:default,com.sap.sailing.monitoring@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.operationaltransformation@default:default,com.sap.sailing.sailwave.resultimport@default:default,com.sap.sailing.server.gateway.ess40@default:default,com.sap.sailing.server.gateway.masterdata*1.0.0.qualifier@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway@default:default,com.sap.sailing.server.replication@default:default,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@default:default,com.sap.sailing.www@default:default,com.sap.sailing.xrr.resultimport@default:default,com.sap.sse.gwt@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@default:default,net.sf.marineapi@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.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.common@default:default,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.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@5:true,com.sap.sailing.domain.tractracadapter.persistence@default:default,com.sap.sailing.domain.tractracadapter@5: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@default:default,com.sap.sailing.kiworesultimport@default:default,com.sap.sailing.manage2sail.resultimport@default:default,com.sap.sailing.mongodb@default:default,com.sap.sailing.monitoring@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.operationaltransformation@default:default,com.sap.sailing.sailwave.resultimport@default:default,com.sap.sailing.server.gateway.ess40@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway@default:default,com.sap.sailing.server.replication@default:default,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@default:default,com.sap.sailing.www@default:default,com.sap.sailing.xrr.resultimport@default:default,com.sap.sse.gwt@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@default:default,net.sf.marineapi@default:default,org.json.simple@default:default,org.moxieapps.gwt.highcharts@default:default"/>
|
||||
</launchConfiguration>
|
||||
@@ -26,6 +26,6 @@
|
||||
<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.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,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.igtimiadapter.persistence@default:default,com.sap.sailing.domain.igtimiadapter@default:default,com.sap.sailing.domain.persistence@default: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.mongodb@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.operationaltransformation@default:default,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.masterdata*1.0.0.qualifier@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway@5:true,com.sap.sailing.server.replication@4: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.sse.gwt@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@default:default,net.sf.marineapi@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.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,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.igtimiadapter.persistence@default:default,com.sap.sailing.domain.igtimiadapter@default:default,com.sap.sailing.domain.persistence@default: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.mongodb@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.operationaltransformation@default:default,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@default:default,com.sap.sailing.server.gateway@5:true,com.sap.sailing.server.replication@4: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.sse.gwt@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@default:default,net.sf.marineapi@default:default,org.json.simple@default:default,org.moxieapps.gwt.highcharts@default:default"/>
|
||||
<stringAttribute key="yk-options" value=" additional-options2=onexit\=snapshot "/>
|
||||
</launchConfiguration>
|
||||
@@ -26,6 +26,6 @@
|
||||
<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.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.common@default:default,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.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@5:true,com.sap.sailing.domain.tractracadapter.persistence@default:default,com.sap.sailing.domain.tractracadapter@5: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@default:default,com.sap.sailing.kiworesultimport@default:default,com.sap.sailing.manage2sail.resultimport@default:default,com.sap.sailing.mongodb@default:default,com.sap.sailing.operationaltransformation@default:default,com.sap.sailing.resultimport@default:default,com.sap.sailing.sailwave.resultimport@default:default,com.sap.sailing.server.gateway.ess40@default:default,com.sap.sailing.server.gateway.masterdata*1.0.0.qualifier@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway@default:default,com.sap.sailing.server.replication@default:default,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@default:default,com.sap.sailing.www@default:default,com.sap.sailing.xrr.resultimport@default:default,com.sap.sse.gwt@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@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.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.common@default:default,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.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@5:true,com.sap.sailing.domain.tractracadapter.persistence@default:default,com.sap.sailing.domain.tractracadapter@5: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@default:default,com.sap.sailing.kiworesultimport@default:default,com.sap.sailing.manage2sail.resultimport@default:default,com.sap.sailing.mongodb@default:default,com.sap.sailing.operationaltransformation@default:default,com.sap.sailing.resultimport@default:default,com.sap.sailing.sailwave.resultimport@default:default,com.sap.sailing.server.gateway.ess40@default:default,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway@default:default,com.sap.sailing.server.replication@default:default,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@default:default,com.sap.sailing.www@default:default,com.sap.sailing.xrr.resultimport@default:default,com.sap.sse.gwt@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@default:default,org.json.simple@default:default,org.moxieapps.gwt.highcharts@default:default"/>
|
||||
<stringAttribute key="yk-options" value=" additional-options2=onexit\=snapshot "/>
|
||||
</launchConfiguration>
|
||||
@@ -26,5 +26,5 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="true"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.google.gwt.osgi@default:default,com.googlecode.java-diff-utils@default:default,com.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.common@default:default,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.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@5:true,com.sap.sailing.domain.tractracadapter.persistence@default:default,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.domain@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@default:default,com.sap.sailing.kiworesultimport@default:default,com.sap.sailing.manage2sail.resultimport@default:default,com.sap.sailing.mongodb@default:default,com.sap.sailing.operationaltransformation@default:default,com.sap.sailing.resultimport@default:default,com.sap.sailing.sailwave.resultimport@default:default,com.sap.sailing.server.gateway.ess40@default:default,com.sap.sailing.server.gateway.masterdata*1.0.0.qualifier@default:default,com.sap.sailing.server.gateway@default:default,com.sap.sailing.server.replication@default:default,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@default:default,com.sap.sailing.www@default:default,com.sap.sailing.xrr.resultimport@default:default,com.sap.sse.gwt@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@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.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.common@default:default,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.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@5:true,com.sap.sailing.domain.tractracadapter.persistence@default:default,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.domain@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@default:default,com.sap.sailing.kiworesultimport@default:default,com.sap.sailing.manage2sail.resultimport@default:default,com.sap.sailing.mongodb@default:default,com.sap.sailing.operationaltransformation@default:default,com.sap.sailing.resultimport@default:default,com.sap.sailing.sailwave.resultimport@default:default,com.sap.sailing.server.gateway.ess40@default:default,com.sap.sailing.server.gateway@default:default,com.sap.sailing.server.replication@default:default,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@default:default,com.sap.sailing.www@default:default,com.sap.sailing.xrr.resultimport@default:default,com.sap.sse.gwt@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@default:default,org.json.simple@default:default,org.moxieapps.gwt.highcharts@default:default"/>
|
||||
</launchConfiguration>
|
||||
+1
-1
@@ -25,5 +25,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.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.common@default:default,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.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@5:true,com.sap.sailing.domain.tractracadapter.persistence@default:default,com.sap.sailing.domain.tractracadapter@5: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@default:default,com.sap.sailing.kiworesultimport@default:default,com.sap.sailing.manage2sail.resultimport@default:default,com.sap.sailing.mongodb@default:default,com.sap.sailing.operationaltransformation@default:default,com.sap.sailing.sailwave.resultimport@default:default,com.sap.sailing.server.gateway.ess40@default:default,com.sap.sailing.server.gateway.masterdata*1.0.0.qualifier@default:default,com.sap.sailing.server.gateway@default:default,com.sap.sailing.server.replication@default:default,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@default:default,com.sap.sailing.www@default:default,com.sap.sailing.xrr.resultimport@default:default,com.sap.sse.gwt@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@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.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.common@default:default,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.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@5:true,com.sap.sailing.domain.tractracadapter.persistence@default:default,com.sap.sailing.domain.tractracadapter@5: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@default:default,com.sap.sailing.kiworesultimport@default:default,com.sap.sailing.manage2sail.resultimport@default:default,com.sap.sailing.mongodb@default:default,com.sap.sailing.operationaltransformation@default:default,com.sap.sailing.sailwave.resultimport@default:default,com.sap.sailing.server.gateway.ess40@default:default,com.sap.sailing.server.gateway@default:default,com.sap.sailing.server.replication@default:default,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@default:default,com.sap.sailing.www@default:default,com.sap.sailing.xrr.resultimport@default:default,com.sap.sse.gwt@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@default:default,org.json.simple@default:default,org.moxieapps.gwt.highcharts@default:default"/>
|
||||
</launchConfiguration>
|
||||
+1
-1
@@ -8,8 +8,8 @@ import com.sap.sailing.domain.base.DomainFactory;
|
||||
import com.sap.sailing.domain.common.MasterDataImportObjectCreationCount;
|
||||
import com.sap.sailing.domain.common.impl.MasterDataImportObjectCreationCountImpl;
|
||||
import com.sap.sailing.domain.common.media.MediaTrack;
|
||||
import com.sap.sailing.domain.masterdataimport.TopLevelMasterData;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
import com.sap.sailing.server.gateway.masterdata.TopLevelMasterData;
|
||||
import com.sap.sailing.server.operationaltransformation.ImportMasterDataOperation;
|
||||
|
||||
public class MasterDataImporter {
|
||||
|
||||
+1
-1
@@ -30,6 +30,7 @@ import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.ThresholdBasedResultDiscardingRule;
|
||||
import com.sap.sailing.domain.leaderboard.meta.LeaderboardGroupMetaLeaderboard;
|
||||
import com.sap.sailing.domain.masterdataimport.TopLevelMasterData;
|
||||
import com.sap.sailing.domain.masterdataimport.WindTrackMasterData;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
@@ -40,7 +41,6 @@ import com.sap.sailing.domain.tracking.Wind;
|
||||
import com.sap.sailing.domain.tracking.WindTrack;
|
||||
import com.sap.sailing.server.RacingEventService;
|
||||
import com.sap.sailing.server.RacingEventServiceOperation;
|
||||
import com.sap.sailing.server.gateway.masterdata.TopLevelMasterData;
|
||||
|
||||
public class ImportMasterDataOperation extends
|
||||
AbstractRacingEventServiceOperation<MasterDataImportObjectCreationCountImpl> {
|
||||
|
||||
Reference in new issue
Block a user