diff --git a/java/com.sap.sailing.declination/src/com/sap/sailing/declination/impl/DeclinationRecordImpl.java b/java/com.sap.sailing.declination/src/com/sap/sailing/declination/impl/DeclinationRecordImpl.java index 071ab229adc..5fdf0e97491 100755 --- a/java/com.sap.sailing.declination/src/com/sap/sailing/declination/impl/DeclinationRecordImpl.java +++ b/java/com.sap.sailing.declination/src/com/sap/sailing/declination/impl/DeclinationRecordImpl.java @@ -7,6 +7,7 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; public class DeclinationRecordImpl implements Declination { + private static final long serialVersionUID = 6918630656182340186L; private final Position position; private final TimePoint timePoint; private final Bearing bearing; diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Named.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Named.java index 5891119ac73..780b9b83cbd 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Named.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Named.java @@ -1,5 +1,7 @@ package com.sap.sailing.domain.common; -public interface Named { +import java.io.Serializable; + +public interface Named extends Serializable { String getName(); } diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/TimePoint.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/TimePoint.java index fd0fd07609f..7d00234056a 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/TimePoint.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/TimePoint.java @@ -1,8 +1,9 @@ package com.sap.sailing.domain.common; +import java.io.Serializable; import java.util.Date; -public interface TimePoint extends Comparable { +public interface TimePoint extends Comparable, Serializable { long asMillis(); Date asDate(); diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/NamedImpl.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/NamedImpl.java index 41470f09d86..3e815cffa95 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/NamedImpl.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/NamedImpl.java @@ -3,6 +3,7 @@ package com.sap.sailing.domain.common.impl; import com.sap.sailing.domain.common.Named; public class NamedImpl implements Named { + private static final long serialVersionUID = -4815125282671451300L; private final String name; public NamedImpl(String name) { diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/LeaderboardImplWithDelayedCarriedPoints.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/LeaderboardImplWithDelayedCarriedPoints.java index 138d5c2f6b4..ae2831ec7a6 100755 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/LeaderboardImplWithDelayedCarriedPoints.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/LeaderboardImplWithDelayedCarriedPoints.java @@ -25,6 +25,7 @@ import com.sap.sailing.domain.tracking.TrackedRace; * */ public class LeaderboardImplWithDelayedCarriedPoints extends LeaderboardImpl { + private static final long serialVersionUID = -8933075542228571746L; private final Map carriedPointsByCompetitorName; private final Map> maxPointsReasonsByCompetitorName; private final Map> correctedScoresByCompetitorName; @@ -37,6 +38,8 @@ public class LeaderboardImplWithDelayedCarriedPoints extends LeaderboardImpl { * @author Axel Uhl (D043530) */ private class RaceInLeaderboardForDelayedCarriedPoints extends RaceInLeaderboardImpl { + private static final long serialVersionUID = -1243132535406059096L; + public RaceInLeaderboardForDelayedCarriedPoints(Leaderboard leaderboard, String name, boolean medalRace) { super(leaderboard, name, medalRace); } diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java index 5ba6fa3dfdb..110092a3fd1 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java @@ -19,7 +19,6 @@ import com.sap.sailing.domain.base.Person; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Team; import com.sap.sailing.domain.base.Waypoint; -import com.sap.sailing.domain.base.impl.BoatClassImpl; import com.sap.sailing.domain.base.impl.BoatImpl; import com.sap.sailing.domain.base.impl.CourseImpl; import com.sap.sailing.domain.base.impl.EventImpl; @@ -88,7 +87,7 @@ public class DomainFactoryImpl implements DomainFactory { olympicClassesByID.put("009", baseDomainFactory.getOrCreateBoatClass("49er", /* alwaysStartsUpwind */ true)); olympicClassesByID.put("007", baseDomainFactory.getOrCreateBoatClass("Star", /* typicallyStartsUpwind */ true)); olympicClassesByID.put("010", baseDomainFactory.getOrCreateBoatClass("Elliott 6M", /* typicallyStartsUpwind */ true)); - unknownBoatClass = new BoatClassImpl("Unknown", /* typicallyStartsUpwind */ true); + unknownBoatClass = baseDomainFactory.getOrCreateBoatClass("Unknown", /* typicallyStartsUpwind */ true); } @Override diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MockedTrackedRaceWithFixedRank.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MockedTrackedRaceWithFixedRank.java index 581d0f1b50b..016bcef0bf5 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MockedTrackedRaceWithFixedRank.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MockedTrackedRaceWithFixedRank.java @@ -21,6 +21,7 @@ public class MockedTrackedRaceWithFixedRank extends MockedTrackedRace { this.started = started; this.competitor = competitor; this.raceDefinition = new RaceDefinition() { + private static final long serialVersionUID = 6812543850545870357L; @Override public String getName() { return null; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MockedTrackedRaceWithFixedRankAndManyCompetitors.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MockedTrackedRaceWithFixedRankAndManyCompetitors.java index fed16b5b525..3fda4a9a6fc 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MockedTrackedRaceWithFixedRankAndManyCompetitors.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MockedTrackedRaceWithFixedRankAndManyCompetitors.java @@ -17,6 +17,7 @@ public class MockedTrackedRaceWithFixedRankAndManyCompetitors extends MockedTrac competitors = new HashSet(); competitors.add(competitor); this.raceDefinition = new RaceDefinition() { + private static final long serialVersionUID = 8878878939443845646L; @Override public String getName() { return null; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java index 3f38a9a0664..3d96bfa93ea 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java @@ -274,6 +274,8 @@ public class MockedTrackedRace implements DynamicTrackedRace { @Override public Event getEvent() { return new Event() { + private static final long serialVersionUID = -4908774269425170811L; + @Override public String getName() { return "A Mocked Test Event"; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Timed.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Timed.java index 3126bacc338..c993b50bf22 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Timed.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Timed.java @@ -1,7 +1,9 @@ package com.sap.sailing.domain.base; +import java.io.Serializable; + import com.sap.sailing.domain.common.TimePoint; -public interface Timed { +public interface Timed extends Serializable { TimePoint getTimePoint(); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/WithID.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/WithID.java index 4cfa0c8cbae..e89856a3a43 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/WithID.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/WithID.java @@ -1,10 +1,12 @@ package com.sap.sailing.domain.base; +import java.io.Serializable; + public interface WithID { /** * Something that uniquely identifies this object beyond his name */ - Object getId(); + Serializable getId(); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/AbstractTimePoint.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/AbstractTimePoint.java index 857c777dee9..f5d522c4706 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/AbstractTimePoint.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/AbstractTimePoint.java @@ -7,6 +7,8 @@ import java.util.Date; import com.sap.sailing.domain.common.TimePoint; public abstract class AbstractTimePoint implements TimePoint { + private static final long serialVersionUID = 8825508619301420378L; + private static SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); public static Comparator TIMEPOINT_COMPARATOR = new Comparator() { diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/BoatClassImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/BoatClassImpl.java index 92911c08042..dc84f339120 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/BoatClassImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/BoatClassImpl.java @@ -5,6 +5,8 @@ import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.impl.NamedImpl; public class BoatClassImpl extends NamedImpl implements BoatClass { + private static final long serialVersionUID = 7194912853476256420L; + /** * If the averaged courses over ground differ by at least this degree angle, a maneuver will * be assumed. Note that this should be much less than the tack angle because averaging may @@ -30,7 +32,7 @@ public class BoatClassImpl extends NamedImpl implements BoatClass { private final long approximateManeuverDurationInMilliseconds; - private final boolean typicallyStartsUpwind; + private final boolean typicallyStartsUpwind; private final Distance hullLength; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/BoatImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/BoatImpl.java index 0cd3d2ca706..45557592240 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/BoatImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/BoatImpl.java @@ -5,6 +5,7 @@ import com.sap.sailing.domain.base.BoatClass; import com.sap.sailing.domain.common.impl.NamedImpl; public class BoatImpl extends NamedImpl implements Boat { + private static final long serialVersionUID = 3489730487528955788L; private final BoatClass boatClass; private final String sailID; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/BuoyImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/BuoyImpl.java index ab8a83e2846..cfb2000e7fd 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/BuoyImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/BuoyImpl.java @@ -6,6 +6,7 @@ import com.sap.sailing.domain.base.Buoy; import com.sap.sailing.domain.common.impl.NamedImpl; public class BuoyImpl extends NamedImpl implements Buoy { + private static final long serialVersionUID = 1900673146064411979L; public BuoyImpl(String name) { super(name); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/CompetitorImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/CompetitorImpl.java index c71e0c2250e..a166f6342d2 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/CompetitorImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/CompetitorImpl.java @@ -1,16 +1,19 @@ package com.sap.sailing.domain.base.impl; +import java.io.Serializable; + import com.sap.sailing.domain.base.Boat; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Team; import com.sap.sailing.domain.common.impl.NamedImpl; public class CompetitorImpl extends NamedImpl implements Competitor { + private static final long serialVersionUID = 294603681016643157L; private final Team team; private final Boat boat; - private final Object id; + private final Serializable id; - public CompetitorImpl(Object id, String name, Team team, Boat boat) { + public CompetitorImpl(Serializable id, String name, Team team, Boat boat) { super(name); this.id = id; this.team = team; @@ -18,7 +21,7 @@ public class CompetitorImpl extends NamedImpl implements Competitor { } @Override - public Object getId() { + public Serializable getId() { return id; } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/CourseImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/CourseImpl.java index d9ca1e31674..375841cfbac 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/CourseImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/CourseImpl.java @@ -27,6 +27,8 @@ import difflib.Patch; import difflib.PatchFailedException; public class CourseImpl extends NamedImpl implements Course { + private static final long serialVersionUID = -4280487649617132403L; + private static final Logger logger = Logger.getLogger(CourseImpl.class.getName()); private final List waypoints; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/EventImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/EventImpl.java index 3917fbb78f4..65be2e89d7f 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/EventImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/EventImpl.java @@ -10,6 +10,7 @@ import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.common.impl.NamedImpl; public class EventImpl extends NamedImpl implements Event { + private static final long serialVersionUID = 6509564189552478869L; private final Set races; private final BoatClass boatClass; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/GateImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/GateImpl.java index 0f1fdf9ba5b..6dc1233ae29 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/GateImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/GateImpl.java @@ -7,6 +7,7 @@ import com.sap.sailing.domain.base.Buoy; import com.sap.sailing.domain.base.Gate; public class GateImpl implements Gate { + private static final long serialVersionUID = 2807354812133070574L; private final Buoy left; private final Buoy right; private final String name; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/MillisecondsTimePoint.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/MillisecondsTimePoint.java index 4e7382f7ec2..efe87d61dd7 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/MillisecondsTimePoint.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/MillisecondsTimePoint.java @@ -4,6 +4,7 @@ import java.util.Date; public class MillisecondsTimePoint extends AbstractTimePoint { + private static final long serialVersionUID = -1021748860232043166L; private final long millis; private Date date; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/NationalityImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/NationalityImpl.java index 8a497690cbd..e7a19b03745 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/NationalityImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/NationalityImpl.java @@ -7,6 +7,7 @@ import com.sap.sailing.domain.common.CountryCode; import com.sap.sailing.domain.common.CountryCodeFactory; public class NationalityImpl implements Nationality { + private static final long serialVersionUID = 238906193483424259L; private final String threeLetterIOCAcronym; public NationalityImpl(String name, String threeLetterIOCAcronym) { diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/PersonImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/PersonImpl.java index a62f340bcac..752bb658ef5 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/PersonImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/PersonImpl.java @@ -8,6 +8,7 @@ import com.sap.sailing.domain.base.Person; import com.sap.sailing.domain.common.impl.NamedImpl; public class PersonImpl extends NamedImpl implements Person { + private static final long serialVersionUID = -2104903799224233508L; private final Nationality nationality; private final Date dateOfBirth; private final String description; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RaceDefinitionImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RaceDefinitionImpl.java index fae2d20b9c3..cf11fc9a2d2 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RaceDefinitionImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RaceDefinitionImpl.java @@ -7,6 +7,7 @@ import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.common.impl.NamedImpl; public class RaceDefinitionImpl extends NamedImpl implements RaceDefinition { + private static final long serialVersionUID = -1900955198751393727L; private final Course course; private final Iterable competitors; private final BoatClass boatClass; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/TeamImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/TeamImpl.java index 30d2195fd8f..f417d0b1a36 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/TeamImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/TeamImpl.java @@ -6,6 +6,7 @@ import com.sap.sailing.domain.base.Team; import com.sap.sailing.domain.common.impl.NamedImpl; public class TeamImpl extends NamedImpl implements Team { + private static final long serialVersionUID = 4646922280429210183L; private final Iterable sailors; private final Person coach; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/WaypointImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/WaypointImpl.java index c424df2c927..4d7a86ba60b 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/WaypointImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/WaypointImpl.java @@ -5,6 +5,7 @@ import com.sap.sailing.domain.base.ControlPoint; import com.sap.sailing.domain.base.Waypoint; public class WaypointImpl implements Waypoint { + private static final long serialVersionUID = 1600863368078653897L; private final ControlPoint controlPoint; private static int idCounter = 1; private final int id; @@ -34,9 +35,6 @@ public class WaypointImpl implements Waypoint { return getControlPoint().getBuoys(); } - /** - * Note that a waypoint is not compared by its identity but by the control point it represents. - */ @Override public Integer getId() { return id; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LeaderboardGroupImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LeaderboardGroupImpl.java index a8e183e7b32..18583290d63 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LeaderboardGroupImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LeaderboardGroupImpl.java @@ -8,6 +8,7 @@ import com.sap.sailing.domain.leaderboard.LeaderboardGroup; public class LeaderboardGroupImpl implements LeaderboardGroup { + private static final long serialVersionUID = 2035927369446736934L; private String name; private String description; private List leaderboards; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LeaderboardImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LeaderboardImpl.java index 8f420df1f88..aaf96c605d7 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LeaderboardImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LeaderboardImpl.java @@ -23,6 +23,7 @@ import com.sap.sailing.domain.leaderboard.ThresholdBasedResultDiscardingRule; import com.sap.sailing.domain.tracking.TrackedRace; public class LeaderboardImpl implements Named, Leaderboard { + private static final long serialVersionUID = -328091952760083438L; private final List races; private final SettableScoreCorrection scoreCorrection; private ThresholdBasedResultDiscardingRule resultDiscardingRule; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/RaceInLeaderboardImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/RaceInLeaderboardImpl.java index f0b9aa7f565..7b1a430a6ed 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/RaceInLeaderboardImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/RaceInLeaderboardImpl.java @@ -10,6 +10,7 @@ import com.sap.sailing.domain.leaderboard.RaceInLeaderboard; import com.sap.sailing.domain.tracking.TrackedRace; public class RaceInLeaderboardImpl implements RaceInLeaderboard { + private static final long serialVersionUID = -7801617988982540470L; private TrackedRace trackedRace; private final Leaderboard leaderboard; private boolean medalRace; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/Positioned.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/Positioned.java index 82f97e325b4..bc96fcf3974 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/Positioned.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/Positioned.java @@ -1,7 +1,9 @@ package com.sap.sailing.domain.tracking; +import java.io.Serializable; + import com.sap.sailing.domain.common.Position; -public interface Positioned { +public interface Positioned extends Serializable { Position getPosition(); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/AbstractGPSFixImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/AbstractGPSFixImpl.java index caef9a7a4d5..17999d978ea 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/AbstractGPSFixImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/AbstractGPSFixImpl.java @@ -8,6 +8,8 @@ import com.sap.sailing.domain.common.Speed; import com.sap.sailing.domain.tracking.GPSFix; public abstract class AbstractGPSFixImpl implements GPSFix { + private static final long serialVersionUID = 9037068515469957639L; + @Override public int hashCode() { final int prime = 31; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CompactGPSFixImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CompactGPSFixImpl.java index cbe3376fa67..9b47c32d3de 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CompactGPSFixImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CompactGPSFixImpl.java @@ -18,6 +18,7 @@ import com.sap.sailing.domain.tracking.GPSFix; * */ public class CompactGPSFixImpl extends AbstractGPSFixImpl { + private static final long serialVersionUID = 8167588584536992501L; private final double latDeg; private final double lngDeg; private final long timePointAsMillis; @@ -43,6 +44,8 @@ public class CompactGPSFixImpl extends AbstractGPSFixImpl { } private class CompactTimePoint extends AbstractTimePoint implements TimePoint { + private static final long serialVersionUID = -2470922642359937437L; + @Override public long asMillis() { return timePointAsMillis; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CompactGPSFixMovingImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CompactGPSFixMovingImpl.java index be3f94086b6..a338fbf4d34 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CompactGPSFixMovingImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CompactGPSFixMovingImpl.java @@ -20,6 +20,7 @@ import com.sap.sailing.domain.tracking.GPSFixMoving; * */ public class CompactGPSFixMovingImpl extends CompactGPSFixImpl implements GPSFixMoving { + private static final long serialVersionUID = 761582024504236533L; private final double knotSpeed; private final double degBearing; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DummyMarkPassingWithTimePointOnly.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DummyMarkPassingWithTimePointOnly.java index 0bddcd275f7..cf79828d67c 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DummyMarkPassingWithTimePointOnly.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DummyMarkPassingWithTimePointOnly.java @@ -8,6 +8,7 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.tracking.MarkPassing; public class DummyMarkPassingWithTimePointOnly implements MarkPassing { + private static final long serialVersionUID = -5494669910047887984L; private final TimePoint timePoint; public DummyMarkPassingWithTimePointOnly(TimePoint timePoint) { @@ -28,13 +29,15 @@ public class DummyMarkPassingWithTimePointOnly implements MarkPassing { @Override public Competitor getCompetitor() { return new Competitor() { + private static final long serialVersionUID = 5663644650754031382L; + @Override public String getName() { return "Dummy"; } @Override - public Object getId() { + public String getId() { return "Dummy"; } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicGPSFixMovingTrackImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicGPSFixMovingTrackImpl.java index 37f384df959..1271934d400 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicGPSFixMovingTrackImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicGPSFixMovingTrackImpl.java @@ -152,6 +152,7 @@ public class DynamicGPSFixMovingTrackImpl extends DynamicTrackImpl extends TrackImpl } private class DummyGPSFix extends DummyTimed implements GPSFix { + private static final long serialVersionUID = -6258506654181816698L; + public DummyGPSFix(TimePoint timePoint) { super(timePoint); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/ManeuverImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/ManeuverImpl.java index dfd3d3e14a3..b85fd97466a 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/ManeuverImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/ManeuverImpl.java @@ -8,6 +8,7 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.tracking.Maneuver; public class ManeuverImpl extends AbstractGPSFixImpl implements Maneuver { + private static final long serialVersionUID = -5317959066507472580L; private final ManeuverType type; private final Tack newTack; private final Position position; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/MarkPassingImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/MarkPassingImpl.java index 8cc26caaf16..0dc36abd5a4 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/MarkPassingImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/MarkPassingImpl.java @@ -6,6 +6,7 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.tracking.MarkPassing; public class MarkPassingImpl implements MarkPassing { + private static final long serialVersionUID = -2673562761742403742L; private final TimePoint timePoint; private final Waypoint waypoint; private final Competitor competitor; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackImpl.java index 1c068b93054..d7fbb0ad27e 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackImpl.java @@ -17,6 +17,7 @@ public abstract class TrackImpl implements Track private final NavigableSet fixes; protected static class DummyTimed implements Timed { + private static final long serialVersionUID = 6047311973718918856L; private final TimePoint timePoint; public DummyTimed(TimePoint timePoint) { super(); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindImpl.java index d473cf6ca8e..4c6b3e459f3 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindImpl.java @@ -9,6 +9,7 @@ import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.tracking.Wind; public class WindImpl extends KnotSpeedWithBearingImpl implements Wind { + private static final long serialVersionUID = 5431592324949471980L; private final Position position; private final TimePoint timepoint; private final Bearing from; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java index 6e96cee72bd..c45b7e954fc 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java @@ -273,6 +273,7 @@ public class WindTrackImpl extends TrackImpl implements WindTrack { } protected static class DummyWind extends DummyTimed implements Wind { + private static final long serialVersionUID = -311172509910032149L; public DummyWind(TimePoint timePoint) { super(timePoint); } diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java index 84919d6ee7c..b2735c911aa 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java @@ -316,4 +316,14 @@ public interface RacingEventService extends TrackedEventRegistry { TrackedRace createTrackedRace(EventAndRaceIdentifier raceIdentifier, WindStore windStore, long millisecondsOverWhichToAverageWind, long millisecondsOverWhichToAverageSpeed); + void createEvent(String eventName, String boatClassName, boolean boatClassTypicallyStartsUpwind); + + /** + * Adds raceDefinition to the {@link Event} such that it will appear in {@link Event#getAllRaces()} + * and {@link Event#getRaceByName(String)}. + * + * @param addToEvent identifier of an event that must exist already + */ + void addRace(EventIdentifier addToEvent, RaceDefinition raceDefinition); + } diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java index f56942a5645..a42126c6720 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java @@ -26,6 +26,7 @@ import java.util.logging.Logger; import com.sap.sailing.domain.base.ControlPoint; import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.base.RaceDefinition; +import com.sap.sailing.domain.base.impl.EventImpl; import com.sap.sailing.domain.common.DefaultLeaderboardName; import com.sap.sailing.domain.common.EventAndRaceIdentifier; import com.sap.sailing.domain.common.EventFetcher; @@ -366,6 +367,13 @@ public class RacingEventServiceImpl implements RacingEventService, EventFetcher, return event; } + @Override + public void createEvent(String eventName, String boatClassName, boolean boatClassTypicallyStartsUpwind) { + Event event = new EventImpl(eventName, com.sap.sailing.domain.base.DomainFactory.INSTANCE.getOrCreateBoatClass( + boatClassName, boatClassTypicallyStartsUpwind)); + eventsByName.put(eventName, event); + } + @Override public Pair> getTracTracRaceRecords(URL jsonURL) throws IOException, ParseException, org.json.simple.parser.ParseException, URISyntaxException { JSONService jsonService = getDomainFactory().parseJSONURL(jsonURL); @@ -406,6 +414,12 @@ public class RacingEventServiceImpl implements RacingEventService, EventFetcher, /* endOfTracking */ null, windStore), windStore, timeoutInMilliseconds); } + @Override + public void addRace(EventIdentifier addToEvent, RaceDefinition raceDefinition) { + Event event = getEvent(addToEvent); + event.addRace(raceDefinition); + } + @Override public synchronized RacesHandle addRace(RaceTrackingConnectivityParameters params, WindStore windStore, long timeoutInMilliseconds) throws Exception { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddEvent.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddEvent.java new file mode 100755 index 00000000000..e6c2afc7667 --- /dev/null +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddEvent.java @@ -0,0 +1,36 @@ +package com.sap.sailing.server.operationaltransformation; + +import com.sap.sailing.server.RacingEventService; + +public class AddEvent extends AbstractRacingEventServiceOperation { + private static final long serialVersionUID = -3550383541066673065L; + private final String eventName; + private final String boatClassName; + private final boolean boatClassTypicallyStartsUpwind; + + public AddEvent(String eventName, String boatClassName, boolean boatClassTypicallyStartsUpwind) { + super(); + this.eventName = eventName; + this.boatClassName = boatClassName; + this.boatClassTypicallyStartsUpwind = boatClassTypicallyStartsUpwind; + } + + @Override + public RacingEventServiceOperation transformClientOp(RacingEventServiceOperation serverOp) { + // TODO Auto-generated method stub + return null; + } + + @Override + public RacingEventServiceOperation transformServerOp(RacingEventServiceOperation clientOp) { + // TODO Auto-generated method stub + return null; + } + + @Override + public RacingEventService applyTo(RacingEventService toState) { + toState.createEvent(eventName, boatClassName, boatClassTypicallyStartsUpwind); + return toState; + } + +}