java/com.sap.sailing.dashboards.gwt/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/gwt/ui/shared/GPSFixDTOWithSpeedWindTackAndLegTypeIterable_CustomFieldSerializer.java
... ...
@@ -9,14 +9,14 @@ import com.google.gwt.user.client.rpc.SerializationException;
9 9
import com.google.gwt.user.client.rpc.SerializationStreamReader;
10 10
import com.google.gwt.user.client.rpc.SerializationStreamWriter;
11 11
import com.sap.sailing.domain.common.LegType;
12
-import com.sap.sailing.domain.common.Position;
13 12
import com.sap.sailing.domain.common.Tack;
14
-import com.sap.sailing.domain.common.impl.DegreePosition;
15 13
import com.sap.sailing.gwt.ui.shared.GPSFixDTOWithSpeedWindTackAndLegType;
16 14
import com.sap.sailing.gwt.ui.shared.GPSFixDTOWithSpeedWindTackAndLegTypeIterable;
17 15
import com.sap.sailing.gwt.ui.shared.SpeedWithBearingDTO;
18 16
import com.sap.sse.common.Bearing;
17
+import com.sap.sse.common.Position;
19 18
import com.sap.sse.common.impl.DegreeBearingImpl;
19
+import com.sap.sse.common.impl.DegreePosition;
20 20
21 21
/**
22 22
* Serializes the {@link GPSFixDTOWithSpeedWindTackAndLegType} objects one by one, writing only primitive values to the
java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/client/widgets/windbot/compass/LocationPointerCompass.java
... ...
@@ -11,7 +11,7 @@ import com.google.gwt.user.client.ui.Composite;
11 11
import com.google.gwt.user.client.ui.HasWidgets;
12 12
import com.google.gwt.user.client.ui.Image;
13 13
import com.google.gwt.user.client.ui.Widget;
14
-import com.sap.sailing.domain.common.Position;
14
+import com.sap.sse.common.Position;
15 15
16 16
/**
17 17
* @author Alexander Ries (D062114)
java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/client/widgets/windbot/compass/LocationPointerCompassAngleDistance.java
... ...
@@ -10,9 +10,9 @@ import com.sap.sailing.dashboards.gwt.client.device.LocationListener;
10 10
import com.sap.sailing.dashboards.gwt.client.device.Orientation;
11 11
import com.sap.sailing.dashboards.gwt.client.device.OrientationListener;
12 12
import com.sap.sailing.dashboards.gwt.client.device.OrientationType;
13
-import com.sap.sailing.domain.common.Position;
14
-import com.sap.sailing.domain.common.impl.DegreePosition;
13
+import com.sap.sse.common.Position;
15 14
import com.sap.sse.common.Util.Pair;
15
+import com.sap.sse.common.impl.DegreePosition;
16 16
17 17
/**
18 18
* The classes task is to notify its listeners about changes in distance and angle from the actual device to a pointed
java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/server/util/actions/startanalysis/StartAnalysisDTOFactory.java
... ...
@@ -19,13 +19,13 @@ import com.sap.sailing.domain.base.Competitor;
19 19
import com.sap.sailing.domain.base.Waypoint;
20 20
import com.sap.sailing.domain.common.LegType;
21 21
import com.sap.sailing.domain.common.NoWindException;
22
-import com.sap.sailing.domain.common.Position;
23 22
import com.sap.sailing.domain.common.Wind;
24 23
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
25 24
import com.sap.sailing.domain.shared.tracking.LineDetails;
26 25
import com.sap.sailing.domain.tracking.MarkPassing;
27 26
import com.sap.sailing.domain.tracking.TrackedLeg;
28 27
import com.sap.sailing.domain.tracking.TrackedRace;
28
+import com.sap.sse.common.Position;
29 29
import com.sap.sse.common.TimePoint;
30 30
import com.sap.sse.common.impl.MillisecondsTimePoint;
31 31
java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/server/util/actions/startlineadvantage/DefaultPolarWindAngleBoatSpeedFunction.java
... ...
@@ -6,9 +6,9 @@ import org.apache.commons.math.analysis.polynomials.PolynomialSplineFunction;
6 6
7 7
import com.sap.sailing.domain.base.SpeedWithConfidence;
8 8
import com.sap.sailing.domain.base.impl.SpeedWithConfidenceImpl;
9
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
10 9
import com.sap.sse.common.Bearing;
11 10
import com.sap.sse.common.Speed;
11
+import com.sap.sse.common.impl.KnotSpeedImpl;
12 12
13 13
/**
14 14
* Contains a {@link PolynomialSplineFunction} that describes the boat speed at incoming wind angles from 0 to 180 degrees.
java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/server/util/actions/startlineadvantage/StartlineAdvantageByGeometryCalculator.java
... ...
@@ -6,11 +6,11 @@ import com.google.gwt.core.shared.GwtIncompatible;
6 6
import com.sap.sailing.domain.base.Course;
7 7
import com.sap.sailing.domain.base.Mark;
8 8
import com.sap.sailing.domain.base.Waypoint;
9
-import com.sap.sailing.domain.common.Position;
10 9
import com.sap.sailing.domain.common.tracking.GPSFix;
11 10
import com.sap.sailing.domain.tracking.GPSFixTrack;
12 11
import com.sap.sailing.domain.tracking.TrackedRace;
13 12
import com.sap.sse.common.Distance;
13
+import com.sap.sse.common.Position;
14 14
import com.sap.sse.common.TimePoint;
15 15
import com.sap.sse.common.Util.Pair;
16 16
import com.sap.sse.common.impl.MillisecondsTimePoint;
java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/server/util/actions/startlineadvantage/StartlineAdvantagesByWindCalculator.java
... ...
@@ -13,17 +13,17 @@ import com.sap.sailing.dashboards.gwt.shared.dto.StartLineAdvantageDTO;
13 13
import com.sap.sailing.dashboards.gwt.shared.dto.StartlineAdvantagesWithMaxAndAverageDTO;
14 14
import com.sap.sailing.domain.base.DomainFactory;
15 15
import com.sap.sailing.domain.base.SpeedWithConfidence;
16
-import com.sap.sailing.domain.common.Position;
17
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
18
-import com.sap.sailing.domain.common.impl.MeterDistance;
19 16
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
20 17
import com.sap.sailing.domain.tracking.TrackedRace;
21 18
import com.sap.sse.common.Bearing;
22 19
import com.sap.sse.common.Distance;
20
+import com.sap.sse.common.Position;
23 21
import com.sap.sse.common.Speed;
24 22
import com.sap.sse.common.TimePoint;
25 23
import com.sap.sse.common.Util.Pair;
26 24
import com.sap.sse.common.impl.DegreeBearingImpl;
25
+import com.sap.sse.common.impl.KnotSpeedImpl;
26
+import com.sap.sse.common.impl.MeterDistance;
27 27
28 28
/**
29 29
* @author Alexander Ries (D062114)
java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/server/util/actions/startlineadvantage/precalculation/StartlineAdvantageCalculationData.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.dashboards.gwt.server.util.actions.startlineadvantage.precalculation;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sailing.domain.common.Wind;
4
+import com.sap.sse.common.Position;
5 5
6 6
/**
7 7
* In order to calculate the startline adavantage by wind, the data objects defined in this class
java/com.sap.sailing.dashboards.gwt/src/main/java/com/sap/sailing/dashboards/gwt/server/util/actions/startlineadvantage/precalculation/StartlineAdvantageCalculationDataRetriever.java
... ...
@@ -9,18 +9,18 @@ import com.sap.sailing.domain.base.DomainFactory;
9 9
import com.sap.sailing.domain.base.Mark;
10 10
import com.sap.sailing.domain.base.Waypoint;
11 11
import com.sap.sailing.domain.common.ManeuverType;
12
-import com.sap.sailing.domain.common.Position;
13 12
import com.sap.sailing.domain.common.Wind;
14
-import com.sap.sailing.domain.common.confidence.BearingWithConfidence;
15 13
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
16 14
import com.sap.sailing.domain.common.tracking.GPSFix;
17 15
import com.sap.sailing.domain.polars.PolarDataService;
18 16
import com.sap.sailing.domain.shared.tracking.LineDetails;
19 17
import com.sap.sailing.domain.tracking.GPSFixTrack;
20 18
import com.sap.sailing.domain.tracking.TrackedRace;
19
+import com.sap.sse.common.Position;
21 20
import com.sap.sse.common.Speed;
22 21
import com.sap.sse.common.TimePoint;
23 22
import com.sap.sse.common.Util.Pair;
23
+import com.sap.sse.common.confidence.BearingWithConfidence;
24 24
import com.sap.sse.common.impl.MillisecondsTimePoint;
25 25
26 26
/**
java/com.sap.sailing.datamining.shared/src/com/sap/sailing/datamining/shared/SailingDataMiningSerializationDummy.java
... ...
@@ -4,13 +4,13 @@ import com.sap.sailing.domain.common.LegType;
4 4
import com.sap.sailing.domain.common.ManeuverType;
5 5
import com.sap.sailing.domain.common.NauticalSide;
6 6
import com.sap.sailing.domain.common.Tack;
7
-import com.sap.sailing.domain.common.impl.CentralAngleDistance;
8
-import com.sap.sailing.domain.common.impl.MeterDistance;
9
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
10 7
import com.sap.sse.common.Bearing;
11 8
import com.sap.sse.common.Distance;
12 9
import com.sap.sse.common.Duration;
13 10
import com.sap.sse.common.Speed;
11
+import com.sap.sse.common.impl.CentralAngleDistance;
12
+import com.sap.sse.common.impl.MeterDistance;
13
+import com.sap.sse.common.impl.NauticalMileDistance;
14 14
import com.sap.sse.datamining.shared.SerializationDummy;
15 15
import com.sap.sse.datamining.shared.data.AverageWithStats;
16 16
java/com.sap.sailing.datamining.test/src/com/sap/sailing/datamining/impl/components/TestSegmentsTackType.java
... ...
@@ -24,9 +24,6 @@ import com.sap.sailing.domain.base.Competitor;
24 24
import com.sap.sailing.domain.base.CompetitorWithBoat;
25 25
import com.sap.sailing.domain.base.Waypoint;
26 26
import com.sap.sailing.domain.base.impl.CourseAreaImpl;
27
-import com.sap.sailing.domain.common.Position;
28
-import com.sap.sailing.domain.common.impl.DegreePosition;
29
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
30 27
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
31 28
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
32 29
import com.sap.sailing.domain.leaderboard.Leaderboard;
... ...
@@ -42,9 +39,12 @@ import com.sap.sailing.domain.tracking.impl.MarkPassingImpl;
42 39
import com.sap.sse.common.Distance;
43 40
import com.sap.sse.common.Distance.NullDistance;
44 41
import com.sap.sse.common.Duration;
42
+import com.sap.sse.common.Position;
45 43
import com.sap.sse.common.TimePoint;
46 44
import com.sap.sse.common.Util;
47 45
import com.sap.sse.common.impl.DegreeBearingImpl;
46
+import com.sap.sse.common.impl.DegreePosition;
47
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
48 48
import com.sap.sse.common.impl.MillisecondsTimePoint;
49 49
50 50
public class TestSegmentsTackType extends StoredTrackBasedTest {
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/SailingClusterGroups.java
... ...
@@ -3,8 +3,8 @@ package com.sap.sailing.datamining;
3 3
import java.util.ArrayList;
4 4
import java.util.Collection;
5 5
6
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
7 6
import com.sap.sse.common.Speed;
7
+import com.sap.sse.common.impl.KnotSpeedImpl;
8 8
import com.sap.sse.datamining.data.Cluster;
9 9
import com.sap.sse.datamining.data.ClusterBoundary;
10 10
import com.sap.sse.datamining.data.ClusterFormatter;
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/data/HasBravoFixContext.java
... ...
@@ -1,10 +1,10 @@
1 1
package com.sap.sailing.datamining.data;
2 2
3 3
import com.sap.sailing.domain.common.NoWindException;
4
-import com.sap.sailing.domain.common.SpeedWithBearing;
5 4
import com.sap.sailing.domain.common.tracking.BravoFix;
6 5
import com.sap.sse.common.Bearing;
7 6
import com.sap.sse.common.Speed;
7
+import com.sap.sse.common.SpeedWithBearing;
8 8
import com.sap.sse.datamining.annotations.Connector;
9 9
import com.sap.sse.datamining.annotations.Statistic;
10 10
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/data/HasGPSFixContext.java
... ...
@@ -1,12 +1,12 @@
1 1
package com.sap.sailing.datamining.data;
2 2
3 3
import com.sap.sailing.domain.common.NoWindException;
4
-import com.sap.sailing.domain.common.SpeedWithBearing;
5 4
import com.sap.sailing.domain.common.TackType;
6 5
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
7 6
import com.sap.sse.common.Bearing;
8 7
import com.sap.sse.common.Distance;
9 8
import com.sap.sse.common.Speed;
9
+import com.sap.sse.common.SpeedWithBearing;
10 10
import com.sap.sse.datamining.annotations.Connector;
11 11
import com.sap.sse.datamining.annotations.Dimension;
12 12
import com.sap.sse.datamining.annotations.Statistic;
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/data/HasManeuver.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.datamining.data;
2 2
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.Positioned;
5 3
import com.sap.sailing.domain.tracking.Maneuver;
4
+import com.sap.sse.common.Position;
5
+import com.sap.sse.common.Positioned;
6 6
import com.sap.sse.common.TimePoint;
7 7
import com.sap.sse.common.Timed;
8 8
import com.sap.sse.datamining.annotations.Connector;
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/data/HasWind.java
... ...
@@ -3,8 +3,8 @@ package com.sap.sailing.datamining.data;
3 3
import java.util.Locale;
4 4
5 5
import com.sap.sailing.datamining.Activator;
6
-import com.sap.sailing.domain.common.Positioned;
7 6
import com.sap.sailing.domain.common.Wind;
7
+import com.sap.sse.common.Positioned;
8 8
import com.sap.sse.common.Timed;
9 9
import com.sap.sse.datamining.annotations.Dimension;
10 10
import com.sap.sse.datamining.data.Cluster;
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/data/HasWindFixContext.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.datamining.data;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sailing.domain.common.Wind;
4
+import com.sap.sse.common.Position;
5 5
import com.sap.sse.common.TimePoint;
6 6
import com.sap.sse.datamining.annotations.Connector;
7 7
import com.sap.sse.datamining.annotations.Dimension;
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/ManeuverSpeedDetailsRetrievalProcessor.java
... ...
@@ -11,13 +11,13 @@ import com.sap.sailing.datamining.impl.data.ManeuverSpeedDetailsWithContext;
11 11
import com.sap.sailing.datamining.shared.ManeuverSpeedDetailsSettings;
12 12
import com.sap.sailing.domain.base.Competitor;
13 13
import com.sap.sailing.domain.common.NauticalSide;
14
-import com.sap.sailing.domain.common.SpeedWithBearing;
15 14
import com.sap.sailing.domain.common.Wind;
16 15
import com.sap.sailing.domain.tracking.Maneuver;
17 16
import com.sap.sailing.domain.tracking.SpeedWithBearingStep;
18 17
import com.sap.sailing.domain.tracking.SpeedWithBearingStepsIterable;
19 18
import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
20 19
import com.sap.sailing.domain.tracking.TrackedRace;
20
+import com.sap.sse.common.SpeedWithBearing;
21 21
import com.sap.sse.common.TimePoint;
22 22
import com.sap.sse.datamining.components.Processor;
23 23
import com.sap.sse.datamining.impl.components.AbstractRetrievalProcessor;
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/aggregators/ParallelBearingAverageDegreesAggregationProcessor.java
... ...
@@ -6,8 +6,8 @@ import java.util.Map;
6 6
import java.util.Map.Entry;
7 7
import java.util.concurrent.ExecutorService;
8 8
9
-import com.sap.sailing.domain.common.BearingCluster;
10 9
import com.sap.sse.common.Bearing;
10
+import com.sap.sse.common.BearingCluster;
11 11
import com.sap.sse.datamining.components.AggregationProcessorDefinition;
12 12
import com.sap.sse.datamining.components.Processor;
13 13
import com.sap.sse.datamining.impl.components.GroupedDataEntry;
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/aggregators/ParallelDistanceMedianAggregationProcessor.java
... ...
@@ -9,8 +9,8 @@ import java.util.Map;
9 9
import java.util.Map.Entry;
10 10
import java.util.concurrent.ExecutorService;
11 11
12
-import com.sap.sailing.domain.common.impl.MeterDistance;
13 12
import com.sap.sse.common.Distance;
13
+import com.sap.sse.common.impl.MeterDistance;
14 14
import com.sap.sse.datamining.components.AggregationProcessorDefinition;
15 15
import com.sap.sse.datamining.components.Processor;
16 16
import com.sap.sse.datamining.impl.components.GroupedDataEntry;
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/aggregators/ParallelSpeedMedianAggregationProcessor.java
... ...
@@ -9,8 +9,8 @@ import java.util.Map;
9 9
import java.util.Map.Entry;
10 10
import java.util.concurrent.ExecutorService;
11 11
12
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
13 12
import com.sap.sse.common.Speed;
13
+import com.sap.sse.common.impl.KnotSpeedImpl;
14 14
import com.sap.sse.datamining.components.AggregationProcessorDefinition;
15 15
import com.sap.sse.datamining.components.Processor;
16 16
import com.sap.sse.datamining.impl.components.GroupedDataEntry;
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/aggregators/ParallelSpeedSumAggregationProcessor.java
... ...
@@ -4,8 +4,8 @@ import java.util.Collection;
4 4
import java.util.Map;
5 5
import java.util.concurrent.ExecutorService;
6 6
7
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
8 7
import com.sap.sse.common.Speed;
8
+import com.sap.sse.common.impl.KnotSpeedImpl;
9 9
import com.sap.sse.datamining.components.AggregationProcessorDefinition;
10 10
import com.sap.sse.datamining.components.Processor;
11 11
import com.sap.sse.datamining.impl.components.SimpleAggregationProcessorDefinition;
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/AbstractTrackedLegSliceOfCompetitorWithContext.java
... ...
@@ -20,8 +20,6 @@ import com.sap.sailing.domain.base.Competitor;
20 20
import com.sap.sailing.domain.common.LegType;
21 21
import com.sap.sailing.domain.common.ManeuverType;
22 22
import com.sap.sailing.domain.common.NoWindException;
23
-import com.sap.sailing.domain.common.Position;
24
-import com.sap.sailing.domain.common.Positioned;
25 23
import com.sap.sailing.domain.leaderboard.Leaderboard;
26 24
import com.sap.sailing.domain.leaderboard.caching.LeaderboardDTOCalculationReuseCache;
27 25
import com.sap.sailing.domain.tracking.BravoFixTrack;
... ...
@@ -32,6 +30,8 @@ import com.sap.sailing.domain.tracking.TrackedRace;
32 30
import com.sap.sailing.domain.tracking.WindLegTypeAndLegBearingAndORCPerformanceCurveCache;
33 31
import com.sap.sse.common.Distance;
34 32
import com.sap.sse.common.Duration;
33
+import com.sap.sse.common.Position;
34
+import com.sap.sse.common.Positioned;
35 35
import com.sap.sse.common.Speed;
36 36
import com.sap.sse.common.TimePoint;
37 37
import com.sap.sse.common.TimeRange;
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/BravoFixWithContext.java
... ...
@@ -3,8 +3,6 @@ package com.sap.sailing.datamining.impl.data;
3 3
import com.sap.sailing.datamining.data.HasBravoFixContext;
4 4
import com.sap.sailing.datamining.data.HasTrackedLegOfCompetitorContext;
5 5
import com.sap.sailing.domain.base.Competitor;
6
-import com.sap.sailing.domain.common.Position;
7
-import com.sap.sailing.domain.common.SpeedWithBearing;
8 6
import com.sap.sailing.domain.common.Wind;
9 7
import com.sap.sailing.domain.common.tracking.BravoFix;
10 8
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -12,7 +10,9 @@ import com.sap.sailing.domain.tracking.GPSFixTrack;
12 10
import com.sap.sailing.domain.tracking.TrackedRace;
13 11
import com.sap.sailing.domain.tracking.WindPositionMode;
14 12
import com.sap.sse.common.Bearing;
13
+import com.sap.sse.common.Position;
15 14
import com.sap.sse.common.Speed;
15
+import com.sap.sse.common.SpeedWithBearing;
16 16
import com.sap.sse.common.TimePoint;
17 17
18 18
/**
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/CompleteManeuverCurveWithEstimationDataWithContext.java
... ...
@@ -5,11 +5,11 @@ import com.sap.sailing.datamining.data.HasRaceOfCompetitorContext;
5 5
import com.sap.sailing.datamining.shared.ManeuverSettings;
6 6
import com.sap.sailing.domain.common.ManeuverType;
7 7
import com.sap.sailing.domain.common.NauticalSide;
8
-import com.sap.sailing.domain.common.SpeedWithBearing;
9 8
import com.sap.sailing.domain.maneuverdetection.CompleteManeuverCurveWithEstimationData;
10 9
import com.sap.sailing.domain.tracking.ManeuverCurveBoundaries;
11 10
import com.sap.sse.common.Bearing;
12 11
import com.sap.sse.common.Duration;
12
+import com.sap.sse.common.SpeedWithBearing;
13 13
import com.sap.sse.common.TimePoint;
14 14
import com.sap.sse.common.impl.DegreeBearingImpl;
15 15
import com.sap.sse.datamining.shared.impl.dto.ClusterDTO;
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/FoilingSegmentWithContext.java
... ...
@@ -7,10 +7,8 @@ import com.sap.sailing.datamining.Activator;
7 7
import com.sap.sailing.datamining.data.HasBravoFixTrackContext;
8 8
import com.sap.sailing.datamining.data.HasFoilingSegmentContext;
9 9
import com.sap.sailing.domain.base.Competitor;
10
-import com.sap.sailing.domain.common.BearingCluster;
11 10
import com.sap.sailing.domain.common.LegType;
12 11
import com.sap.sailing.domain.common.NoWindException;
13
-import com.sap.sailing.domain.common.SpeedWithBearing;
14 12
import com.sap.sailing.domain.common.Wind;
15 13
import com.sap.sailing.domain.common.tracking.BravoFix;
16 14
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -18,8 +16,10 @@ import com.sap.sailing.domain.tracking.BravoFixTrack;
18 16
import com.sap.sailing.domain.tracking.GPSFixTrack;
19 17
import com.sap.sailing.domain.tracking.TrackedRace;
20 18
import com.sap.sse.common.Bearing;
19
+import com.sap.sse.common.BearingCluster;
21 20
import com.sap.sse.common.Distance;
22 21
import com.sap.sse.common.Duration;
22
+import com.sap.sse.common.SpeedWithBearing;
23 23
import com.sap.sse.common.TimePoint;
24 24
import com.sap.sse.datamining.data.Cluster;
25 25
import com.sap.sse.datamining.shared.impl.dto.ClusterDTO;
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/GPSFixWithContext.java
... ...
@@ -5,8 +5,6 @@ import java.util.function.BiFunction;
5 5
import com.sap.sailing.datamining.data.HasGPSFixContext;
6 6
import com.sap.sailing.datamining.data.HasTrackedLegOfCompetitorContext;
7 7
import com.sap.sailing.domain.common.NoWindException;
8
-import com.sap.sailing.domain.common.Position;
9
-import com.sap.sailing.domain.common.SpeedWithBearing;
10 8
import com.sap.sailing.domain.common.TackType;
11 9
import com.sap.sailing.domain.common.Wind;
12 10
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -15,7 +13,9 @@ import com.sap.sailing.domain.tracking.TrackedRace;
15 13
import com.sap.sailing.domain.tracking.WindPositionMode;
16 14
import com.sap.sse.common.Bearing;
17 15
import com.sap.sse.common.Distance;
16
+import com.sap.sse.common.Position;
18 17
import com.sap.sse.common.Speed;
18
+import com.sap.sse.common.SpeedWithBearing;
19 19
import com.sap.sse.common.TimePoint;
20 20
21 21
/**
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/ManeuverWithContext.java
... ...
@@ -4,10 +4,8 @@ import com.sap.sailing.datamining.data.HasManeuverContext;
4 4
import com.sap.sailing.datamining.data.HasTrackedLegOfCompetitorContext;
5 5
import com.sap.sailing.domain.base.Competitor;
6 6
import com.sap.sailing.domain.common.ManeuverType;
7
-import com.sap.sailing.domain.common.SpeedWithBearing;
8 7
import com.sap.sailing.domain.common.Tack;
9 8
import com.sap.sailing.domain.common.Wind;
10
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
11 9
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
12 10
import com.sap.sailing.domain.tracking.GPSFixTrack;
13 11
import com.sap.sailing.domain.tracking.Maneuver;
... ...
@@ -15,8 +13,10 @@ import com.sap.sailing.domain.tracking.ManeuverCurveBoundaries;
15 13
import com.sap.sailing.domain.tracking.TrackedRace;
16 14
import com.sap.sse.common.Distance;
17 15
import com.sap.sse.common.Speed;
16
+import com.sap.sse.common.SpeedWithBearing;
18 17
import com.sap.sse.common.TimePoint;
19 18
import com.sap.sse.common.Util.Pair;
19
+import com.sap.sse.common.impl.KnotSpeedImpl;
20 20
21 21
/**
22 22
* Equality is based on the {@link #getManeuver() maneuver} only.
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/RaceOfCompetitorWithContext.java
... ...
@@ -24,7 +24,6 @@ import com.sap.sailing.domain.base.Waypoint;
24 24
import com.sap.sailing.domain.common.ManeuverType;
25 25
import com.sap.sailing.domain.common.MaxPointsReason;
26 26
import com.sap.sailing.domain.common.NoWindException;
27
-import com.sap.sailing.domain.common.Position;
28 27
import com.sap.sailing.domain.common.Tack;
29 28
import com.sap.sailing.domain.common.tracking.GPSFix;
30 29
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -41,6 +40,7 @@ import com.sap.sailing.domain.tracking.WindPositionMode;
41 40
import com.sap.sse.common.Bearing;
42 41
import com.sap.sse.common.Distance;
43 42
import com.sap.sse.common.Duration;
43
+import com.sap.sse.common.Position;
44 44
import com.sap.sse.common.Speed;
45 45
import com.sap.sse.common.TimePoint;
46 46
import com.sap.sse.common.Util;
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/RaceResultOfCompetitorWithContext.java
... ...
@@ -18,10 +18,7 @@ import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
18 18
import com.sap.sailing.domain.common.LegType;
19 19
import com.sap.sailing.domain.common.MaxPointsReason;
20 20
import com.sap.sailing.domain.common.NoWindException;
21
-import com.sap.sailing.domain.common.Position;
22
-import com.sap.sailing.domain.common.SpeedWithBearing;
23 21
import com.sap.sailing.domain.common.Tack;
24
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableSpeed;
25 22
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
26 23
import com.sap.sailing.domain.leaderboard.Leaderboard;
27 24
import com.sap.sailing.domain.leaderboard.caching.LeaderboardDTOCalculationReuseCache;
... ...
@@ -31,11 +28,14 @@ import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
31 28
import com.sap.sailing.domain.tracking.TrackedRace;
32 29
import com.sap.sailing.domain.tracking.WindWithConfidence;
33 30
import com.sap.sse.common.Duration;
31
+import com.sap.sse.common.Position;
34 32
import com.sap.sse.common.Speed;
33
+import com.sap.sse.common.SpeedWithBearing;
35 34
import com.sap.sse.common.TimePoint;
36 35
import com.sap.sse.common.Util;
37 36
import com.sap.sse.common.Util.Pair;
38 37
import com.sap.sse.common.impl.MillisecondsTimePoint;
38
+import com.sap.sse.common.scalablevalue.impl.ScalableSpeed;
39 39
import com.sap.sse.datamining.data.Cluster;
40 40
import com.sap.sse.datamining.shared.impl.dto.ClusterDTO;
41 41
java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/data/TrackedRaceWithContext.java
... ...
@@ -31,7 +31,6 @@ import com.sap.sailing.domain.base.Regatta;
31 31
import com.sap.sailing.domain.common.LegType;
32 32
import com.sap.sailing.domain.common.NauticalSide;
33 33
import com.sap.sailing.domain.common.NoWindException;
34
-import com.sap.sailing.domain.common.Position;
35 34
import com.sap.sailing.domain.common.WindSource;
36 35
import com.sap.sailing.domain.common.WindSourceType;
37 36
import com.sap.sailing.domain.shared.tracking.LineDetails;
... ...
@@ -42,6 +41,7 @@ import com.sap.sailing.geocoding.ReverseGeocoder;
42 41
import com.sap.sse.common.Bearing;
43 42
import com.sap.sse.common.Distance;
44 43
import com.sap.sse.common.Duration;
44
+import com.sap.sse.common.Position;
45 45
import com.sap.sse.common.TimePoint;
46 46
import com.sap.sse.common.Util;
47 47
import com.sap.sse.common.impl.DegreeBearingImpl;
java/com.sap.sailing.declination.test/src/com/sap/sailing/declination/impl/WMMFileTest.java
... ...
@@ -14,8 +14,8 @@ import org.junit.jupiter.api.Test;
14 14
15 15
import com.sap.sailing.declination.Declination;
16 16
import com.sap.sailing.declination.DeclinationService;
17
-import com.sap.sailing.domain.common.impl.DegreePosition;
18 17
import com.sap.sse.common.TimePoint;
18
+import com.sap.sse.common.impl.DegreePosition;
19 19
20 20
public class WMMFileTest {
21 21
private static Geomagnetism g;
java/com.sap.sailing.declination.test/src/com/sap/sailing/declination/test/BGSDeclinationServiceTest.java
... ...
@@ -11,7 +11,7 @@ import org.junit.jupiter.api.Test;
11 11
12 12
import com.sap.sailing.declination.Declination;
13 13
import com.sap.sailing.declination.impl.BGSImporter;
14
-import com.sap.sailing.domain.common.impl.DegreePosition;
14
+import com.sap.sse.common.impl.DegreePosition;
15 15
import com.sap.sse.common.impl.MillisecondsTimePoint;
16 16
17 17
public class BGSDeclinationServiceTest extends DeclinationServiceTest<BGSImporter> {
java/com.sap.sailing.declination.test/src/com/sap/sailing/declination/test/ColoradoDeclinationServiceTest.java
... ...
@@ -12,7 +12,7 @@ import org.junit.jupiter.api.Test;
12 12
13 13
import com.sap.sailing.declination.Declination;
14 14
import com.sap.sailing.declination.impl.ColoradoImporter;
15
-import com.sap.sailing.domain.common.impl.DegreePosition;
15
+import com.sap.sse.common.impl.DegreePosition;
16 16
import com.sap.sse.common.impl.MillisecondsTimePoint;
17 17
18 18
@Disabled("currently, http://magcalc.geomag.info/ seems down")
java/com.sap.sailing.declination.test/src/com/sap/sailing/declination/test/ColoradoTest.java
... ...
@@ -15,7 +15,7 @@ import org.xml.sax.SAXException;
15 15
16 16
import com.sap.sailing.declination.Declination;
17 17
import com.sap.sailing.declination.impl.ColoradoImporter;
18
-import com.sap.sailing.domain.common.impl.DegreePosition;
18
+import com.sap.sse.common.impl.DegreePosition;
19 19
import com.sap.sse.common.impl.MillisecondsTimePoint;
20 20
21 21
@Disabled("currently, http://magcalc.geomag.info/ seems down")
java/com.sap.sailing.declination.test/src/com/sap/sailing/declination/test/DeclinationImportTest.java
... ...
@@ -13,7 +13,7 @@ import org.xml.sax.SAXException;
13 13
14 14
import com.sap.sailing.declination.Declination;
15 15
import com.sap.sailing.declination.impl.DeclinationImporter;
16
-import com.sap.sailing.domain.common.impl.DegreePosition;
16
+import com.sap.sse.common.impl.DegreePosition;
17 17
import com.sap.sse.common.impl.MillisecondsTimePoint;
18 18
19 19
public abstract class DeclinationImportTest<I extends DeclinationImporter> extends AbstractDeclinationTest<I> {
java/com.sap.sailing.declination.test/src/com/sap/sailing/declination/test/DeclinationServiceTest.java
... ...
@@ -14,8 +14,8 @@ import com.sap.sailing.declination.Declination;
14 14
import com.sap.sailing.declination.DeclinationService;
15 15
import com.sap.sailing.declination.impl.DeclinationImporter;
16 16
import com.sap.sailing.declination.impl.DeclinationServiceImplWithStore;
17
-import com.sap.sailing.domain.common.impl.CentralAngleDistance;
18
-import com.sap.sailing.domain.common.impl.DegreePosition;
17
+import com.sap.sse.common.impl.CentralAngleDistance;
18
+import com.sap.sse.common.impl.DegreePosition;
19 19
import com.sap.sse.common.impl.MillisecondsTimePoint;
20 20
21 21
public abstract class DeclinationServiceTest<I extends DeclinationImporter> extends AbstractDeclinationTest<I> {
java/com.sap.sailing.declination.test/src/com/sap/sailing/declination/test/DeclinationStoreTest.java
... ...
@@ -31,12 +31,12 @@ import com.sap.sailing.declination.Declination;
31 31
import com.sap.sailing.declination.impl.DeclinationImporter;
32 32
import com.sap.sailing.declination.impl.DeclinationRecordImpl;
33 33
import com.sap.sailing.declination.impl.DeclinationStore;
34
-import com.sap.sailing.domain.common.Position;
35
-import com.sap.sailing.domain.common.impl.DegreePosition;
36 34
import com.sap.sailing.domain.common.quadtree.QuadTree;
37 35
import com.sap.sse.common.Bearing;
36
+import com.sap.sse.common.Position;
38 37
import com.sap.sse.common.TimePoint;
39 38
import com.sap.sse.common.impl.DegreeBearingImpl;
39
+import com.sap.sse.common.impl.DegreePosition;
40 40
import com.sap.sse.common.impl.MillisecondsTimePoint;
41 41
42 42
public abstract class DeclinationStoreTest<I extends DeclinationImporter> extends AbstractDeclinationTest<I> {
java/com.sap.sailing.declination.test/src/com/sap/sailing/declination/test/SimpleDeclinationTest.java
... ...
@@ -12,10 +12,10 @@ import org.xml.sax.SAXException;
12 12
13 13
import com.sap.sailing.declination.Declination;
14 14
import com.sap.sailing.declination.impl.DeclinationImporter;
15
-import com.sap.sailing.domain.common.impl.DegreePosition;
16 15
import com.sap.sse.common.Bearing;
17 16
import com.sap.sse.common.Duration;
18 17
import com.sap.sse.common.TimePoint;
18
+import com.sap.sse.common.impl.DegreePosition;
19 19
import com.sap.sse.common.impl.MillisecondsTimePoint;
20 20
21 21
public abstract class SimpleDeclinationTest<I extends DeclinationImporter> extends AbstractDeclinationTest<I> {
java/com.sap.sailing.declination.test/src/com/sap/sailing/declination/test/WMMDeclinationServiceTest.java
... ...
@@ -12,7 +12,7 @@ import org.junit.jupiter.api.Test;
12 12
13 13
import com.sap.sailing.declination.Declination;
14 14
import com.sap.sailing.declination.impl.WMMCalculatorDeclinationService;
15
-import com.sap.sailing.domain.common.impl.DegreePosition;
15
+import com.sap.sse.common.impl.DegreePosition;
16 16
import com.sap.sse.common.impl.MillisecondsTimePoint;
17 17
18 18
public class WMMDeclinationServiceTest {
java/com.sap.sailing.declination/src/com/sap/sailing/declination/Declination.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.declination;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sse.common.Bearing;
4
+import com.sap.sse.common.Position;
5 5
import com.sap.sse.common.TimePoint;
6 6
import com.sap.sse.common.Timed;
7 7
java/com.sap.sailing.declination/src/com/sap/sailing/declination/DeclinationService.java
... ...
@@ -5,9 +5,9 @@ import java.text.ParseException;
5 5
6 6
import com.sap.sailing.declination.impl.DeclinationImporter;
7 7
import com.sap.sailing.declination.impl.WMMCalculatorDeclinationService;
8
-import com.sap.sailing.domain.common.Mile;
9
-import com.sap.sailing.domain.common.Position;
10 8
import com.sap.sse.common.Distance;
9
+import com.sap.sse.common.Mile;
10
+import com.sap.sse.common.Position;
11 11
import com.sap.sse.common.TimePoint;
12 12
13 13
public interface DeclinationService {
java/com.sap.sailing.declination/src/com/sap/sailing/declination/impl/AbstractDeclinationRecord.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.declination.impl;
2 2
3 3
import com.sap.sailing.declination.Declination;
4
-import com.sap.sailing.domain.common.Position;
5 4
import com.sap.sse.common.Bearing;
5
+import com.sap.sse.common.Position;
6 6
import com.sap.sse.common.TimePoint;
7 7
8 8
public abstract class AbstractDeclinationRecord implements Declination {
java/com.sap.sailing.declination/src/com/sap/sailing/declination/impl/BGSImporter.java
... ...
@@ -18,10 +18,10 @@ import org.xml.sax.SAXException;
18 18
import org.xml.sax.helpers.DefaultHandler;
19 19
20 20
import com.sap.sailing.declination.Declination;
21
-import com.sap.sailing.domain.common.Position;
22
-import com.sap.sailing.domain.common.impl.DegreePosition;
21
+import com.sap.sse.common.Position;
23 22
import com.sap.sse.common.TimePoint;
24 23
import com.sap.sse.common.impl.DegreeBearingImpl;
24
+import com.sap.sse.common.impl.DegreePosition;
25 25
import com.sap.sse.common.impl.MillisecondsTimePoint;
26 26
27 27
/**
java/com.sap.sailing.declination/src/com/sap/sailing/declination/impl/ColoradoImporter.java
... ...
@@ -15,10 +15,10 @@ import org.xml.sax.SAXException;
15 15
import org.xml.sax.helpers.DefaultHandler;
16 16
17 17
import com.sap.sailing.declination.Declination;
18
-import com.sap.sailing.domain.common.Position;
19
-import com.sap.sailing.domain.common.impl.DegreePosition;
18
+import com.sap.sse.common.Position;
20 19
import com.sap.sse.common.TimePoint;
21 20
import com.sap.sse.common.impl.DegreeBearingImpl;
21
+import com.sap.sse.common.impl.DegreePosition;
22 22
import com.sap.sse.common.impl.MillisecondsTimePoint;
23 23
24 24
/**
java/com.sap.sailing.declination/src/com/sap/sailing/declination/impl/DeclinationImporter.java
... ...
@@ -14,7 +14,7 @@ import javax.xml.parsers.ParserConfigurationException;
14 14
import org.xml.sax.SAXException;
15 15
16 16
import com.sap.sailing.declination.Declination;
17
-import com.sap.sailing.domain.common.Position;
17
+import com.sap.sse.common.Position;
18 18
import com.sap.sse.common.TimePoint;
19 19
import com.sap.sse.util.ThreadPoolUtil;
20 20
java/com.sap.sailing.declination/src/com/sap/sailing/declination/impl/DeclinationRecordForExactTimePoint.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.declination.impl;
2 2
3 3
import com.sap.sailing.declination.Declination;
4
-import com.sap.sailing.domain.common.Position;
5 4
import com.sap.sse.common.Bearing;
5
+import com.sap.sse.common.Position;
6 6
import com.sap.sse.common.TimePoint;
7 7
import com.sap.sse.common.Util;
8 8
java/com.sap.sailing.declination/src/com/sap/sailing/declination/impl/DeclinationRecordImpl.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.declination.impl;
2 2
3 3
import com.sap.sailing.declination.Declination;
4
-import com.sap.sailing.domain.common.Position;
5 4
import com.sap.sse.common.Bearing;
5
+import com.sap.sse.common.Position;
6 6
import com.sap.sse.common.TimePoint;
7 7
import com.sap.sse.common.impl.DegreeBearingImpl;
8 8
java/com.sap.sailing.declination/src/com/sap/sailing/declination/impl/DeclinationServiceImplWithStore.java
... ...
@@ -9,9 +9,9 @@ import java.util.Map;
9 9
10 10
import com.sap.sailing.declination.Declination;
11 11
import com.sap.sailing.declination.DeclinationService;
12
-import com.sap.sailing.domain.common.Position;
13 12
import com.sap.sailing.domain.common.quadtree.QuadTree;
14 13
import com.sap.sse.common.Distance;
14
+import com.sap.sse.common.Position;
15 15
import com.sap.sse.common.TimePoint;
16 16
17 17
public class DeclinationServiceImplWithStore implements DeclinationService {
java/com.sap.sailing.declination/src/com/sap/sailing/declination/impl/DeclinationStore.java
... ...
@@ -19,12 +19,12 @@ import javax.xml.parsers.ParserConfigurationException;
19 19
import org.xml.sax.SAXException;
20 20
21 21
import com.sap.sailing.declination.Declination;
22
-import com.sap.sailing.domain.common.Position;
23
-import com.sap.sailing.domain.common.impl.DegreePosition;
24 22
import com.sap.sailing.domain.common.quadtree.QuadTree;
25 23
import com.sap.sse.common.Bearing;
24
+import com.sap.sse.common.Position;
26 25
import com.sap.sse.common.TimePoint;
27 26
import com.sap.sse.common.impl.DegreeBearingImpl;
27
+import com.sap.sse.common.impl.DegreePosition;
28 28
import com.sap.sse.common.impl.MillisecondsTimePoint;
29 29
30 30
/**
java/com.sap.sailing.declination/src/com/sap/sailing/declination/impl/NOAAImporter.java
... ...
@@ -17,7 +17,7 @@ import org.w3c.dom.Element;
17 17
import org.xml.sax.SAXException;
18 18
19 19
import com.sap.sailing.declination.Declination;
20
-import com.sap.sailing.domain.common.Position;
20
+import com.sap.sse.common.Position;
21 21
import com.sap.sse.common.TimePoint;
22 22
import com.sap.sse.common.impl.DegreeBearingImpl;
23 23
import com.sap.sse.util.XmlUtil;
java/com.sap.sailing.declination/src/com/sap/sailing/declination/impl/WMMCalculatorDeclinationService.java
... ...
@@ -10,8 +10,8 @@ import java.util.TreeMap;
10 10
import com.sap.sailing.declination.Declination;
11 11
import com.sap.sailing.declination.DeclinationService;
12 12
import com.sap.sailing.declination.impl.Geomagnetism.Result;
13
-import com.sap.sailing.domain.common.Position;
14 13
import com.sap.sse.common.Distance;
14
+import com.sap.sse.common.Position;
15 15
import com.sap.sse.common.TimePoint;
16 16
import com.sap.sse.common.impl.DegreeBearingImpl;
17 17
java/com.sap.sailing.domain.bravoadapter/src/com/sap/sailing/domain/bravoadapter/impl/BravoGPSFixImporter.java
... ...
@@ -11,8 +11,6 @@ import java.util.logging.Level;
11 11
import java.util.logging.Logger;
12 12
13 13
import com.sap.sailing.declination.DeclinationService;
14
-import com.sap.sailing.domain.common.impl.DegreePosition;
15
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
16 14
import com.sap.sailing.domain.common.sensordata.BravoExtendedSensorDataMetadata;
17 15
import com.sap.sailing.domain.common.tracking.DoubleVectorFix;
18 16
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -25,6 +23,8 @@ import com.sap.sailing.server.gateway.windimport.bravo.FunnyDegreeConverter;
25 23
import com.sap.sailing.server.trackfiles.impl.BravoExtendedDataImporterImpl;
26 24
import com.sap.sse.common.Bearing;
27 25
import com.sap.sse.common.impl.DegreeBearingImpl;
26
+import com.sap.sse.common.impl.DegreePosition;
27
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
28 28
29 29
public class BravoGPSFixImporter implements GPSFixImporter {
30 30
private static final Logger logger = Logger.getLogger(BravoGPSFixImporter.class.getName());
java/com.sap.sailing.domain.common/.settings/org.eclipse.core.resources.prefs
... ...
@@ -1,10 +1,6 @@
1 1
eclipse.preferences.version=1
2
-encoding//src/com/sap/sailing/domain/common/AbstractPosition.java=UTF-8
3 2
encoding//src/com/sap/sailing/domain/common/BoatClassMasterdata.java=UTF-8
4 3
encoding//src/com/sap/sailing/domain/common/LegType.java=UTF-8
5
-encoding//src/com/sap/sailing/domain/common/Position.java=UTF-8
6
-encoding//src/com/sap/sailing/domain/common/confidence/impl/ConfidenceBasedAveragerImpl.java=utf-8
7
-encoding//src/com/sap/sailing/domain/common/impl/AbstractSpeedWithAbstractBearingImpl.java=UTF-8
8 4
encoding//src/com/sap/sailing/domain/common/orc/impl/ORCPerformanceCurveLegImpl.java=UTF-8
9 5
encoding//src/com/sap/sailing/domain/common/tracking/impl/AbstractCompactGPSFixMovingImpl.java=UTF-8
10 6
encoding//src/com/sap/sailing/domain/common/tracking/impl/CompactPositionHelper.java=UTF-8
java/com.sap.sailing.domain.common/META-INF/MANIFEST.MF
... ...
@@ -8,7 +8,6 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.8
8 8
Bundle-ActivationPolicy: lazy
9 9
Export-Package: com.sap.sailing.domain.common,
10 10
com.sap.sailing.domain.common.abstractlog,
11
- com.sap.sailing.domain.common.confidence,
12 11
com.sap.sailing.domain.common.confidence.impl,
13 12
com.sap.sailing.domain.common.dto,
14 13
com.sap.sailing.domain.common.i18n,
... ...
@@ -22,7 +21,6 @@ Export-Package: com.sap.sailing.domain.common,
22 21
com.sap.sailing.domain.common.racelog,
23 22
com.sap.sailing.domain.common.racelog.tracking,
24 23
com.sap.sailing.domain.common.racelog.utils,
25
- com.sap.sailing.domain.common.scalablevalue.impl,
26 24
com.sap.sailing.domain.common.security,
27 25
com.sap.sailing.domain.common.subscription,
28 26
com.sap.sailing.domain.common.sensordata,
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/AbstractDistance.java
... ...
@@ -1,110 +0,0 @@
1
-package com.sap.sailing.domain.common;
2
-
3
-import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
4
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
5
-import com.sap.sse.common.Distance;
6
-import com.sap.sse.common.Duration;
7
-import com.sap.sse.common.Speed;
8
-import com.sap.sse.common.impl.SecondsDurationImpl;
9
-
10
-public abstract class AbstractDistance implements Distance {
11
-
12
- private static final long serialVersionUID = 4393500221539639333L;
13
-
14
- @Override
15
- public boolean equals(Object o) {
16
- return (o instanceof Distance) && this.compareTo((Distance) o) == 0;
17
- }
18
-
19
- @Override
20
- public int hashCode() {
21
- return 9128347 ^ (int) getMeters();
22
- }
23
-
24
- @Override
25
- public int compareTo(Distance o) {
26
- final double meters = getMeters();
27
- final double otherMeters = o.getMeters();
28
- return meters > otherMeters ? 1 : meters == otherMeters ? 0 : -1;
29
- }
30
-
31
- private Speed inSeconds(double seconds) {
32
- return new KilometersPerHourSpeedImpl(getKilometers() * 3600 / seconds);
33
- }
34
-
35
- @Override
36
- public Speed inTime(long milliseconds) {
37
- return new KilometersPerHourSpeedImpl(getKilometers() * 1000. * 3600. / milliseconds);
38
- }
39
-
40
- @Override
41
- public Speed inTime(Duration duration) {
42
- return inSeconds(duration.asSeconds());
43
- }
44
-
45
- @Override
46
- public Duration atSpeed(Speed speed) {
47
- return new SecondsDurationImpl(getMeters() / speed.getMetersPerSecond());
48
- }
49
-
50
- @Override
51
- public double getNauticalMiles() {
52
- return getMeters() / Mile.METERS_PER_NAUTICAL_MILE;
53
- }
54
-
55
- @Override
56
- public double getMeters() {
57
- return getNauticalMiles() * Mile.METERS_PER_NAUTICAL_MILE;
58
- }
59
-
60
- @Override
61
- public double getKilometers() {
62
- return getMeters() / 1000;
63
- }
64
-
65
- @Override
66
- public double getGeographicalMiles() {
67
- return getMeters() / Mile.METERS_PER_GEOGRAPHICAL_MILE;
68
- }
69
-
70
- @Override
71
- public double getSeaMiles() {
72
- return getMeters() / Mile.METERS_PER_SEA_MILE;
73
- }
74
-
75
- @Override
76
- public double getCentralAngleDeg() {
77
- return getCentralAngleRad() / Math.PI * 180.; // one geographical mile equals one minute
78
- }
79
-
80
- @Override
81
- public double getCentralAngleRad() {
82
- return getCentralAngleDeg() * Math.PI / 180.;
83
- }
84
-
85
- @Override
86
- public String toString() {
87
- return getMeters()+"m";
88
- }
89
-
90
- @Override
91
- public Distance add(Distance d) {
92
- return new NauticalMileDistance(getNauticalMiles()+d.getNauticalMiles());
93
- }
94
-
95
- @Override
96
- public double divide(Distance other) {
97
- return getMeters() / other.getMeters();
98
- }
99
-
100
- @Override
101
- public Distance abs() {
102
- final Distance result;
103
- if (getMeters() >= 0) {
104
- result = this;
105
- } else {
106
- result = scale(-1);
107
- }
108
- return result;
109
- }
110
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/AbstractPosition.java
... ...
@@ -1,284 +0,0 @@
1
-package com.sap.sailing.domain.common;
2
-
3
-import com.sap.sailing.domain.common.impl.CentralAngleDistance;
4
-import com.sap.sailing.domain.common.impl.DegreePosition;
5
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
6
-import com.sap.sailing.domain.common.impl.RadianBearingImpl;
7
-import com.sap.sailing.domain.common.impl.RadianPosition;
8
-import com.sap.sse.common.Bearing;
9
-import com.sap.sse.common.Distance;
10
-import com.sap.sse.common.Duration;
11
-import com.sap.sse.common.Speed;
12
-import com.sap.sse.common.Util;
13
-import com.sap.sse.common.impl.DegreeBearingImpl;
14
-import com.sap.sse.common.util.RoundingUtil;
15
-
16
-public class AbstractPosition implements Position {
17
- private static final long serialVersionUID = -3057027562787541064L;
18
-
19
- public int hashCode() {
20
- return (int) (4711. * getLngRad() * getLatRad());
21
- }
22
-
23
- public boolean equals(Object o) {
24
- if (o == null) {
25
- return false;
26
- } if (this == o) {
27
- return true;
28
- } else {
29
- return o instanceof Position && getLatRad() == ((Position) o).getLatRad()
30
- && getLngRad() == ((Position) o).getLngRad();
31
- }
32
- }
33
-
34
- @Override
35
- public double getLngRad() {
36
- return getLngDeg() / 180. * Math.PI;
37
- }
38
-
39
- @Override
40
- public double getLatRad() {
41
- return getLatDeg() / 180. * Math.PI;
42
- }
43
-
44
- @Override
45
- public double getLatDeg() {
46
- return getLatRad() / Math.PI * 180.;
47
- }
48
-
49
- @Override
50
- public double getLngDeg() {
51
- return getLngRad() / Math.PI * 180.;
52
- }
53
-
54
- @Override
55
- public double getCentralAngleRad(Position p) {
56
- // Sinnott:
57
- double dLat = p.getLatRad() - getLatRad();
58
- double dLon = p.getLngRad() - getLngRad();
59
- double a = Math.sin(dLat / 2.) * Math.sin(dLat / 2.) + Math.cos(getLatRad()) * Math.cos(p.getLatRad())
60
- * Math.sin(dLon / 2.) * Math.sin(dLon / 2.);
61
- return 2. * Math.atan2(Math.sqrt(a), Math.sqrt(1. - a));
62
- // Spherical Law of Cosines; simpler formula, but doesn't work well for very small distances
63
- // return Math.acos(Math.sin(getLatRad()) * Math.sin(p.getLatRad())
64
- // + Math.cos(getLatRad()) * Math.cos(p.getLatRad())
65
- // * Math.cos(p.getLngRad() - getLngRad()));
66
- }
67
-
68
- @Override
69
- public Distance getDistance(Position p) {
70
- final Distance result;
71
- if (p == this || this.equals(p)) {
72
- result = Distance.NULL;
73
- } else {
74
- result = new CentralAngleDistance(getCentralAngleRad(p));
75
- }
76
- return result;
77
- }
78
-
79
- @Override
80
- public double getQuickApproximateNauticalMileDistance(Position p) {
81
- double latDeg = getLatDeg();
82
- double pLatDeg = p.getLatDeg();
83
- final double latDiffDeg = Math.abs(latDeg - pLatDeg);
84
- double cosineOfAverageLatitude = Math.cos((latDeg+pLatDeg)/2./180.*Math.PI);
85
- final double normalizedLngDiffDeg = cosineOfAverageLatitude * Math.abs(getLngDeg() - p.getLngDeg());
86
- // One degree of latitude or one degree of longitude at the equator each correspond to 60 nautical miles.
87
- return Math.sqrt(latDiffDeg*latDiffDeg + normalizedLngDiffDeg*normalizedLngDiffDeg) * 60.;
88
- }
89
-
90
- @Override
91
- public Bearing getBearingGreatCircle(Position p) {
92
- final Bearing bearing;
93
- if (p != null) {
94
- double result = Math.atan2(Math.sin(p.getLngRad() - getLngRad()) * Math.cos(p.getLatRad()),
95
- Math.cos(getLatRad()) * Math.sin(p.getLatRad())
96
- - Math.sin(getLatRad()) * Math.cos(p.getLatRad()) * Math.cos(p.getLngRad() - getLngRad()));
97
- if (result < 0) {
98
- result = result + 2 * Math.PI;
99
- }
100
- bearing = new RadianBearingImpl(result);
101
- } else {
102
- bearing = null;
103
- }
104
- return bearing;
105
- }
106
-
107
- @Override
108
- public Position translateRhumb(Bearing bearing, Distance distance) {
109
- /*
110
- * This algorithm is limited to distances such that dlon < pi/2, i.e those that extend around less than one
111
- * quarter of the circumference of the earth in longitude. A completely general, but more complicated algorithm
112
- * is necessary if greater distances are allowed.
113
- */
114
- double distanceRad = distance.getKilometers() / 6371.0; // r = 6371 means earth's radius in km
115
- double lat1 = getLatRad();
116
- double lon1 = getLngRad();
117
- double bearingRad = bearing.getRadians();
118
- double lat2 = Math.asin(Math.sin(lat1) * Math.cos(distanceRad) + Math.cos(lat1) * Math.sin(distanceRad)
119
- * Math.cos(bearingRad));
120
- double lon2 = lon1
121
- + Math.atan2(Math.sin(bearingRad) * Math.sin(distanceRad) * Math.cos(lat1), Math.cos(distanceRad)
122
- - Math.sin(lat1) * Math.sin(lat2));
123
- lon2 = (lon2 + 3 * Math.PI) % (2 * Math.PI) - Math.PI; // normalize to -180..+180
124
- return new DegreePosition(lat2 / Math.PI * 180., lon2 / Math.PI * 180.);
125
- }
126
-
127
- @Override
128
- public Position translateGreatCircle(Bearing bearing, Distance distance) {
129
- double lat = Math.asin(Math.sin(getLatRad()) * Math.cos(distance.getCentralAngleRad()) + Math.cos(getLatRad())
130
- * Math.sin(distance.getCentralAngleRad()) * Math.cos(bearing.getRadians()));
131
- double lng = getLngRad()
132
- + Math.atan2(
133
- Math.sin(bearing.getRadians()) * Math.sin(distance.getCentralAngleRad())
134
- * Math.cos(getLatRad()),
135
- Math.cos(distance.getCentralAngleRad()) - Math.sin(getLatRad()) * Math.sin(lat));
136
- return new RadianPosition(lat, lng);
137
- }
138
-
139
- @Override
140
- public Distance absoluteCrossTrackError(Position p, Bearing bearing) {
141
- return new CentralAngleDistance(Math.abs(crossTrackError(p, bearing).getCentralAngleRad()));
142
- }
143
-
144
- @Override
145
- public Distance crossTrackError(Position p, Bearing bearing) {
146
- return new CentralAngleDistance(Math.asin(Math.sin(p.getCentralAngleRad(this))
147
- * Math.sin(p.getBearingGreatCircle(this).getRadians() - bearing.getRadians())));
148
- }
149
-
150
- @Override
151
- public Position projectToLineThrough(Position pos, Bearing bearing) {
152
- return pos.translateGreatCircle(bearing, this.alongTrackDistance(pos, bearing));
153
- }
154
-
155
- @Override
156
- public Distance alongTrackDistance(Position from, Bearing bearing) {
157
- final Distance result;
158
- if (from != null && bearing != null) {
159
- double direction = Math.signum(Math.cos(from.getBearingGreatCircle(this).getRadians() - bearing.getRadians()));
160
- // Test if denominator gets ridiculously small; if so, the cross-track error is about 90� central angle.
161
- // This means that the cross-track error is maximized, and that there is no way to determine how far along
162
- // the great circle described by pos2 and bearing we should travel. This is an exception which will
163
- // surface as a division-by-zero exception or a NaN result
164
- result = new CentralAngleDistance(direction
165
- * Math.acos(Math.cos(from.getCentralAngleRad(this))
166
- / Math.cos(crossTrackError(from, bearing).getCentralAngleRad())));
167
- } else {
168
- result = null;
169
- }
170
- return result;
171
- }
172
-
173
- @Override
174
- public Distance getDistanceToLine(Position left, Position right) {
175
- final Distance result;
176
- final Distance crossTrackError = this.crossTrackError(left, left.getBearingGreatCircle(right));
177
- final int factor = crossTrackError.getMeters()>0?1:-1;
178
- double toLeft = Math.abs(left.getBearingGreatCircle(this).getDifferenceTo(left.getBearingGreatCircle(right))
179
- .getDegrees());
180
- double toRight = Math.abs(right.getBearingGreatCircle(this).getDifferenceTo(right.getBearingGreatCircle(left))
181
- .getDegrees());
182
- if (toLeft > 90) {
183
- result = this.getDistance(left).scale(factor);
184
- } else if (toRight > 90) {
185
- result = this.getDistance(right).scale(factor);
186
- } else {
187
- result = crossTrackError;
188
- }
189
- return result;
190
- }
191
-
192
- @Override
193
- public Position getLocalCoordinates(Position localOrigin, Bearing localEquatorBearing) {
194
- return this.getTargetCoordinates(localOrigin, localEquatorBearing, new DegreePosition(0.0, 0.0), new DegreeBearingImpl(90.0));
195
- }
196
-
197
- @Override
198
- public Position getTargetCoordinates(Position localOrigin, Bearing localEquatorBearing, Position targetOrigin, Bearing targetEquatorBearing) {
199
- Bearing localBearing = localEquatorBearing.getDifferenceTo(localOrigin.getBearingGreatCircle(this));
200
- Distance localDistance = this.getDistance(localOrigin);
201
- return targetOrigin.translateGreatCircle(targetEquatorBearing.add(localBearing), localDistance);
202
- }
203
-
204
- @Override
205
- public String toString() {
206
- return "(" + getLatDeg() + "," + getLngDeg() + ")";
207
- }
208
-
209
- @Override
210
- public Position getIntersection(Bearing thisBearing, Position to, Bearing toBearing) {
211
- /*
212
- * See http://www.movable-type.co.uk/scripts/latlong-vectors.html#intersection for explanation
213
- */
214
- double radBearing1 = thisBearing.getRadians();
215
- double radLatPos1 = getLatRad();
216
- double radLngPos1 = getLngRad();
217
- double[] greatCircle1 = createGreatCircleVector(radBearing1, radLatPos1, radLngPos1);
218
- double radBearing2 = toBearing.getRadians();
219
- double radLatPos2 = to.getLatRad();
220
- double radLngPos2 = to.getLngRad();
221
- double[] greatCircle2 = createGreatCircleVector(radBearing2, radLatPos2, radLngPos2);
222
- double[] intersection1 = computeCrossProductOf3PartVectors(greatCircle1, greatCircle2);
223
- double[] intersection2 = computeCrossProductOf3PartVectors(greatCircle2, greatCircle1);
224
- Position intersectionPosition1 = cartesianVectorToPosition(intersection1);
225
- Position intersectionPosition2 = cartesianVectorToPosition(intersection2);
226
- Distance sumOfDistances1 = getDistance(intersectionPosition1).add(intersectionPosition1.getDistance(to));
227
- Distance sumOfDistances2 = getDistance(intersectionPosition2).add(intersectionPosition2.getDistance(to));
228
- return sumOfDistances1.compareTo(sumOfDistances2) < 0 ? intersectionPosition1 : intersectionPosition2;
229
- }
230
-
231
- @Override
232
- public SpeedWithBearing getSpeedWithBearingToReachOnGreatCircle(Position to, Duration inTime) {
233
- final Bearing bearing = getBearingGreatCircle(to);
234
- final Distance distance = getDistance(to);
235
- final Speed speed = distance.inTime(inTime);
236
- return new KnotSpeedWithBearingImpl(speed.getKnots(), bearing);
237
- }
238
-
239
- private Position cartesianVectorToPosition(double[] vector) {
240
- double lat = Math.atan2(vector[2], Math.sqrt(vector[0]*vector[0] + vector[1]*vector[1]));
241
- double lng = Math.atan2(vector[1], vector[0]);
242
- return new RadianPosition(lat, lng);
243
- }
244
-
245
- private double[] computeCrossProductOf3PartVectors(double[] vec1, double[] vec2) {
246
- double[] crossProduct= new double[3];
247
- crossProduct[0] = vec1[1]*vec2[2] - vec1[2]*vec2[1];
248
- crossProduct[1] = vec1[2]*vec2[0] - vec1[0]*vec2[2];
249
- crossProduct[2] = vec1[0]*vec2[1] - vec1[1]*vec2[0];
250
- return crossProduct;
251
- }
252
-
253
- private double[] createGreatCircleVector(double radBearing, double radLatPos, double radLngPos) {
254
- double[] greatCircle = new double[3];
255
- greatCircle[0] = Math.sin(radLngPos) * Math.cos(radBearing) - Math.sin(radLatPos) * Math.cos(radLngPos) * Math.sin(radBearing);
256
- greatCircle[1] = -Math.cos(radLngPos) * Math.cos(radBearing) - Math.sin(radLatPos) * Math.sin(radLngPos) * Math.sin(radBearing);
257
- greatCircle[2] = Math.cos(radLatPos) * Math.sin(radBearing);
258
- return greatCircle;
259
- }
260
-
261
- @Override
262
- public String getAsDegreesAndDecimalMinutesWithCardinalPoints() {
263
- final String lat = (getLatDeg()>=0 ? "N" : "S") + getDegreesAndDecimalMinutesOfNonNegativeAngle(Math.abs(getLatDeg()), /* degreePlaces */ 2, /* minuteDecimals */ 3);
264
- final String lng = (getLngDeg()>=0 ? "E" : "W") + getDegreesAndDecimalMinutesOfNonNegativeAngle(Math.abs(getLngDeg()), /* degreePlaces */ 3, /* minuteDecimals */ 3);
265
- return lat+" "+lng;
266
- }
267
-
268
- private String getDegreesAndDecimalMinutesOfNonNegativeAngle(double nonNegativeAngle, int degreePlaces, int minuteDecimals) {
269
- final double abs = Math.abs(nonNegativeAngle);
270
- int integerDegrees = (int) nonNegativeAngle;
271
- double minutes = RoundingUtil.format((abs-(int) abs)*60.0, 3);
272
- if (minutes >= 60.0) {
273
- minutes -= 60.0;
274
- integerDegrees++;
275
- }
276
- return Util.padPositiveValue(integerDegrees, degreePlaces, 0, /* round */ true) + "°"+
277
- Util.padPositiveValue(minutes, 2, minuteDecimals, /* round */ true)+"'";
278
- }
279
-
280
- @Override
281
- public String getAsSignedDecimalDegrees() {
282
- return "("+getLatDeg()+", "+getLngDeg()+")";
283
- }
284
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/AbstractSpeedImpl.java
... ...
@@ -1,89 +0,0 @@
1
-package com.sap.sailing.domain.common;
2
-
3
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
4
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
5
-import com.sap.sse.common.Distance;
6
-import com.sap.sse.common.Duration;
7
-import com.sap.sse.common.Speed;
8
-import com.sap.sse.common.TimePoint;
9
-import com.sap.sse.common.impl.SecondsDurationImpl;
10
-
11
-public abstract class AbstractSpeedImpl implements Speed {
12
-
13
- private static final long serialVersionUID = 4910662213901175982L;
14
-
15
- @Override
16
- public double getBeaufort() {
17
- return Math.exp(Math.log(getMetersPerSecond()/0.8360) * 2./3.);
18
- }
19
-
20
- @Override
21
- public Distance travel(TimePoint t1, TimePoint t2) {
22
- return travel(t1.until(t2));
23
- }
24
-
25
- @Override
26
- public Distance travel(Duration duration) {
27
- return new NauticalMileDistance(duration.asHours() * getKnots());
28
- }
29
-
30
- @Override
31
- public Duration getDuration(Distance distance) {
32
- return distance == null ? null : new SecondsDurationImpl(distance.getMeters() / getMetersPerSecond());
33
- }
34
-
35
- @Override
36
- public double getMetersPerSecond() {
37
- return getKnots() * Mile.METERS_PER_NAUTICAL_MILE / 3600;
38
- }
39
-
40
- @Override
41
- public double getKilometersPerHour() {
42
- return getKnots() * Mile.METERS_PER_NAUTICAL_MILE / 1000;
43
- }
44
-
45
- @Override
46
- public double getStatuteMilesPerHour() {
47
- return getMetersPerSecond() * 2.2369;
48
- }
49
-
50
- @Override
51
- public int compareTo(Speed speed) {
52
- final double metersPerSecond = getMetersPerSecond();
53
- final double otherMetersPerSecond = speed.getMetersPerSecond();
54
- return Double.compare(metersPerSecond, otherMetersPerSecond);
55
- }
56
-
57
- @Override
58
- public String toString() {
59
- return ""+getKnots()+"kn";
60
- }
61
-
62
- @Override
63
- public int hashCode() {
64
- return 31 * (int) getMetersPerSecond();
65
- }
66
-
67
- @Override
68
- public boolean equals(Object object) {
69
- if (object == null || !(object instanceof Speed)) {
70
- return false;
71
- }
72
- return getMetersPerSecond() == ((Speed) object).getMetersPerSecond();
73
- }
74
-
75
- @Override
76
- public double getKnots() {
77
- return getKilometersPerHour() * 1000. / Mile.METERS_PER_NAUTICAL_MILE;
78
- }
79
-
80
- @Override
81
- public double divide(Speed speed) {
82
- return getKnots() / speed.getKnots();
83
- }
84
-
85
- @Override
86
- public Speed scale(double d) {
87
- return new KnotSpeedImpl(getKnots()*d);
88
- }
89
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/BearingChangeAnalyzer.java
... ...
@@ -1,37 +0,0 @@
1
-package com.sap.sailing.domain.common;
2
-
3
-import com.sap.sailing.domain.common.impl.BearingChangeAnalyzerImpl;
4
-import com.sap.sse.common.Bearing;
5
-
6
-/**
7
- * Helps analyze a change of a course over ground / {@link Bearing} and in particular can judge whether
8
- * such a course change passed over a certain other course over ground / {@link Bearing}.
9
- *
10
- * @author Axel Uhl (d043530)
11
- *
12
- */
13
-public interface BearingChangeAnalyzer {
14
- BearingChangeAnalyzer INSTANCE = new BearingChangeAnalyzerImpl();
15
-
16
- /**
17
- * Determines whether during a maneuver a certain course was reached and crossed. When used with the wind direction,
18
- * this can tell whether a boat tacked or jibed.
19
- *
20
- * @param totalCourseChangeInDegrees
21
- * tells how far and to which direction the course was changed. Positive values mean a change to
22
- * {@link NauticalSide#STARBOARD}, negative values to {@link NauticalSide#PORT}. This is required to
23
- * understand over which side the competitor reached the new course from the old course; if could have
24
- * been either way. Example: if the <code>courseBeforeManeuver</code> was 355deg and the
25
- * <code>courseAfterManeuver</code> was 005deg then if the <code>totalCourseChangeInDegrees</code> was
26
- * positive then the competitor passed the 000deg course, whereas had the
27
- * <code>totalCourseChangeInDegrees</code> been negative and less than 370deg then the competitor would
28
- * have passed the 180deg course but not the 000deg course.
29
- * @return the number of times that the course identified by
30
- * <code>wasThisCourseReachedAndCrossedDuringManeuver</code> was crossed; <code>0</code> means it was not
31
- * crossed; any positive number tells how many times it was crossed, otherwise. Numbers greater than
32
- * <code>1</code> require <code>totalCourseChangeInDegrees</code> to be greater than 360 degrees.
33
- *
34
- */
35
- int didPass(Bearing courseBeforeManeuver, double totalCourseChangeInDegrees,
36
- Bearing courseAfterManeuver, Bearing wasThisCourseReachedAndCrossedDuringManeuver);
37
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/BearingCluster.java
... ...
@@ -1,58 +0,0 @@
1
-package com.sap.sailing.domain.common;
2
-
3
-import com.sap.sailing.domain.common.confidence.BearingWithConfidence;
4
-import com.sap.sailing.domain.common.confidence.BearingWithConfidenceCluster;
5
-import com.sap.sailing.domain.common.confidence.impl.BearingWithConfidenceImpl;
6
-import com.sap.sse.common.Bearing;
7
-
8
-/**
9
- * Contains a number of {@link Bearing} objects and maintains the average bearing. For a given {@link Bearing} it
10
- * can determine the difference to this cluster's average bearing. It can also split the cluster into two, based
11
- * on the two bearings farthest apart. The cluster can contain multiple occurrences of the same and also
12
- * multiple occurrences of mutually equal {@link Bearing} objects which is one possible way of computing a
13
- * weighted average.<p>
14
- *
15
- * It is assumed that bearings added to this cluster are no further than 180 degrees apart. Violating this
16
- * rule will lead to unpredictable results.
17
- *
18
- * @author Axel Uhl (d043530)
19
- *
20
- */
21
-public class BearingCluster {
22
- private final BearingWithConfidenceCluster<Void> cluster;
23
-
24
- public BearingCluster() {
25
- cluster = new BearingWithConfidenceCluster<Void>(/* weigher */ null);
26
- }
27
-
28
- private BearingCluster(BearingWithConfidenceCluster<Void> cluster) {
29
- this.cluster = cluster;
30
- }
31
-
32
- public BearingCluster[] splitInTwo(double minimumDegreeDifferenceBetweenTacks) {
33
- BearingWithConfidenceCluster<Void>[] array = cluster.splitInTwo(minimumDegreeDifferenceBetweenTacks, /* relativeTo */ null);
34
- BearingCluster[] result = new BearingCluster[array.length];
35
- int i=0;
36
- for (BearingWithConfidenceCluster<Void> element : array) {
37
- result[i++] = new BearingCluster(element);
38
- }
39
- return result;
40
- }
41
-
42
- public Bearing getAverage() {
43
- BearingWithConfidence<Void> average = cluster.getAverage(null);
44
- return average == null ? null : average.getObject();
45
- }
46
-
47
- public boolean isEmpty() {
48
- return cluster.isEmpty();
49
- }
50
-
51
- public int size() {
52
- return cluster.size();
53
- }
54
-
55
- public void add(Bearing bearing) {
56
- cluster.add(new BearingWithConfidenceImpl<Void>(bearing, /* confidence */ 1.0, /* relativeTo */ null));
57
- }
58
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/BoatClassMasterdata.java
... ...
@@ -5,8 +5,8 @@ import java.util.HashMap;
5 5
import java.util.List;
6 6
import java.util.Map;
7 7
8
-import com.sap.sailing.domain.common.impl.MeterDistance;
9 8
import com.sap.sse.common.Distance;
9
+import com.sap.sse.common.impl.MeterDistance;
10 10
11 11
12 12
public enum BoatClassMasterdata {
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Bounds.java
... ...
@@ -1,44 +0,0 @@
1
-package com.sap.sailing.domain.common;
2
-
3
-import com.sap.sse.common.Distance;
4
-
5
-public interface Bounds {
6
- Position getNorthEast();
7
-
8
- Position getSouthWest();
9
-
10
- Position getNorthWest();
11
-
12
- Position getSouthEast();
13
-
14
- Bounds intersect(Bounds other);
15
-
16
- /**
17
- * A short-hand for {@link #union}
18
- */
19
- Bounds extend(Bounds other);
20
-
21
- Bounds extend(Position p);
22
-
23
- Bounds union(Bounds other);
24
-
25
- boolean intersects(Bounds other);
26
-
27
- boolean contains(Position other);
28
-
29
- boolean contains(Bounds other);
30
-
31
- boolean isCrossesDateLine();
32
-
33
- boolean containsLatDeg(double latDeg);
34
-
35
- boolean containsLngDeg(double lngDeg);
36
-
37
- boolean isEmpty();
38
-
39
- /**
40
- * @return the length of the diagonal from the {@link #getNorthWest() NW} to the {@link #getSouthEast() SE} corner
41
- * of this bounding box
42
- */
43
- Distance getDiameter();
44
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CourseChange.java
... ...
@@ -1,17 +0,0 @@
1
-package com.sap.sailing.domain.common;
2
-
3
-
4
-
5
-/**
6
- * A course change represents a change of the course over ground as well as the speed over ground.
7
- * {@link SpeedWithBearing#applyCourseChange(CourseChange) Applying} this {@link CourseChange} object to a
8
- * {@link SpeedWithBearing} results in the {@link SpeedWithBearing} as it was after this course change.
9
- *
10
- * @author Axel Uhl (d043530)
11
- *
12
- */
13
-public interface CourseChange {
14
- double getCourseChangeInDegrees();
15
-
16
- double getSpeedChangeInKnots();
17
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DoublePair.java
... ...
@@ -1,20 +0,0 @@
1
-package com.sap.sailing.domain.common;
2
-
3
-public class DoublePair {
4
- private final double a;
5
- private final double b;
6
-
7
- public DoublePair(double a, double b) {
8
- super();
9
- this.a = a;
10
- this.b = b;
11
- }
12
-
13
- public double getA() {
14
- return a;
15
- }
16
-
17
- public double getB() {
18
- return b;
19
- }
20
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DoubleTriple.java
... ...
@@ -1,26 +0,0 @@
1
-package com.sap.sailing.domain.common;
2
-
3
-public class DoubleTriple {
4
- private final double a;
5
- private final double b;
6
- private final double c;
7
-
8
- public DoubleTriple(double a, double b, double c) {
9
- super();
10
- this.a = a;
11
- this.b = b;
12
- this.c = c;
13
- }
14
-
15
- public double getA() {
16
- return a;
17
- }
18
-
19
- public double getB() {
20
- return b;
21
- }
22
-
23
- public double getC() {
24
- return c;
25
- }
26
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Mile.java
... ...
@@ -1,9 +0,0 @@
1
-package com.sap.sailing.domain.common;
2
-
3
-public interface Mile {
4
- static double METERS_PER_SEA_MILE = 1852.3;
5
- static double METERS_PER_NAUTICAL_MILE = 1852;
6
- static double METERS_PER_GEOGRAPHICAL_MILE = 400080. / 216. /* = 40008000/360/60 */;
7
- static double METERS_PER_STATUTE_MILE = 1609.344;
8
- static double METERS_PER_SECOND_PER_KNOT = METERS_PER_NAUTICAL_MILE / 3600.;
9
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Moving.java
... ...
@@ -1,5 +1,6 @@
1 1
package com.sap.sailing.domain.common;
2 2
3
+import com.sap.sse.common.SpeedWithBearing;
3 4
import com.sap.sse.datamining.annotations.Connector;
4 5
5 6
public interface Moving {
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/NonCardinalBounds.java
... ...
@@ -2,7 +2,9 @@ package com.sap.sailing.domain.common;
2 2
3 3
import com.sap.sailing.domain.common.impl.NonCardinalBoundsImpl;
4 4
import com.sap.sse.common.Bearing;
5
+import com.sap.sse.common.Bounds;
5 6
import com.sap.sse.common.Distance;
7
+import com.sap.sse.common.Position;
6 8
import com.sap.sse.common.impl.DegreeBearingImpl;
7 9
8 10
/**
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Placemark.java
... ...
@@ -4,6 +4,7 @@ import java.io.Serializable;
4 4
import java.util.Comparator;
5 5
6 6
import com.sap.sse.common.Distance;
7
+import com.sap.sse.common.Position;
7 8
8 9
/**
9 10
* Used to define a populated place in the world.<br />
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Position.java
... ...
@@ -1,148 +0,0 @@
1
-package com.sap.sailing.domain.common;
2
-
3
-import java.io.Serializable;
4
-
5
-import com.sap.sse.common.Bearing;
6
-import com.sap.sse.common.Distance;
7
-import com.sap.sse.common.Duration;
8
-
9
-
10
-public interface Position extends Serializable {
11
- double getLatRad();
12
-
13
- double getLngRad();
14
-
15
- double getLatDeg();
16
-
17
- double getLngDeg();
18
-
19
- /**
20
- * Generates a string representation of the form S03°45.235' E003°22.837'
21
- */
22
- String getAsDegreesAndDecimalMinutesWithCardinalPoints();
23
-
24
- /**
25
- * Generates a string representation of the form (-3.7539166666, 3.3806166666)
26
- */
27
- String getAsSignedDecimalDegrees();
28
-
29
- /**
30
- * Central angle between this position and the other position, in radians
31
- */
32
- double getCentralAngleRad(Position p);
33
-
34
- Distance getDistance(Position p);
35
-
36
- /**
37
- * The bearing from this position towards <code>p</code> on a great circle, using the shortest path.
38
- *
39
- * @return {@code null} if {@code p} is {@code null}, otherwise the bearing from {@code this} {@link Position} to
40
- * {@code p} along a great circle
41
- */
42
- Bearing getBearingGreatCircle(Position p);
43
-
44
- /**
45
- * Translates along a rhumb line, assuming travel at constant bearing. This
46
- * is therfore not translating along a great circle but as a straight line, e.g.,
47
- * on a Marcator projection.
48
- */
49
- Position translateRhumb(Bearing bearing, Distance distance);
50
-
51
- /**
52
- * Translates along a great circle, assuming travel at varying bearing where
53
- * <code>bearing</code> tells the bearing at this position. Invariant:
54
- * <code>translate(getBearingGreatCircle(p), getDistance(p)).equals(p)</code>
55
- */
56
- Position translateGreatCircle(Bearing bearing, Distance distance);
57
-
58
- /**
59
- * Projects this position onto the great circle through <code>p</code> with bearing <code>bearing</code>. Note that
60
- * if the angle between this position and the great circle is 90 degrees then there is no solution, and a
61
- * <code>NaN</code> or exception will result.
62
- */
63
- Position projectToLineThrough(Position p, Bearing bearing);
64
-
65
- /**
66
- * @return an unsigned distance
67
- */
68
- Distance absoluteCrossTrackError(Position p, Bearing bearing);
69
-
70
- /**
71
- * @return a signed distance; positive distances mean that this position is to the right (starboard) of the
72
- * line one gets when traveling from <code>p</code> with <code>bearing</code>
73
- */
74
- Distance crossTrackError(Position p, Bearing bearing);
75
-
76
- /**
77
- * Computes how far along the great circle starting at <code>from</code> and pointing to <code>bearing</code> one
78
- * has to travel to reach the projection of this position onto the great circle described by <code>from</code> and
79
- * <code>bearing</code>. Note that if the angle between this position and the great circle is 90 degrees then there
80
- * is no solution, and a <code>NaN</code> or exception will result.
81
- * <p>
82
- *
83
- * The distance returned will be negative if one needs to travel towards the reverse of {@code bearing} to reach this
84
- * position starting at {@code from} on the shortest path.<p>
85
- *
86
- * If either <code>from</code> or <code>bearing</code> or both are <code>null</code>, <code>null</code> is returned.
87
- */
88
-
89
- Distance alongTrackDistance(Position from, Bearing bearing);
90
-
91
- /**
92
- * Computes the distance from this position to the line between <code>left</code> and <code>right</code>. This distance
93
- * is positive if <code>left</code> is actually the position farther to the left, as seen from this position; negative
94
- * otherwise.
95
- */
96
- Distance getDistanceToLine(Position left, Position right);
97
-
98
- /**
99
- * Transform a position into its representation in a local geo-coordinate frame where <code>localOrigin</code> is
100
- * locally represented as <code>(latitude, longitude) = (0,0)</code> and <code>localEquatorBearing</code> is locally
101
- * represented as <code>East = 90 degrees</code>.
102
- * <p>
103
- *
104
- * This can be used to move a GPS-track to the origin <code>(0,0)</code> and aligning wind direction with North, or
105
- * bearing of start line with East.
106
- */
107
- Position getLocalCoordinates(Position localOrigin, Bearing localEquatorBearing);
108
-
109
- /**
110
- * Transform a position from local geo-coordinate frame <code>(localOrigin, localEquatorBearing)</code>
111
- * into the corresponding position in target geo-coordinate frame <code>(targetOrigin, targetEquatorBearing)</code>.
112
- * The transformation is equivalent to a rotation of the earth, which moves <code>localOrigin</code>
113
- * to <code>targetOrigin</code> while aligning <code>localEquatorBearing</code> to <code>targetEquatorBearing</code>.<p>
114
- *
115
- * This can be used to move a GPS-track from one location to another, in order to compare GPS-tracks from different areas
116
- * by superposing and aligning them based on wind direction or bearing of start line.
117
- */
118
- Position getTargetCoordinates(Position localOrigin, Bearing localEquatorBearing, Position targetOrigin, Bearing targetEquatorBearing);
119
-
120
- /**
121
- * Computes an approximate distance between this position and <code>p</code> by
122
- * using the average latitude's cosine to scale the longitudes and then calculate
123
- * the distance non-spherically in an imaginary Euklidian plane. The error is below
124
- * 1% even for several hundred nautical miles of randomly chosen distances, and even
125
- * lower (~.1%) for distances below ten nautical miles.<p>
126
- *
127
- * The method executes efficiently and requires only one call to the cosine method.
128
- */
129
- double getQuickApproximateNauticalMileDistance(Position p);
130
-
131
- /**
132
- * Computes the intersection of two paths. The first path is defined by the underlying position and the parameter
133
- * <code>thisBearing</code>. The second path is defined by parameters <code>to</code> and <code>toBearing</code>
134
- *
135
- * @param thisBearing defines first path with <code>this</code> position
136
- * @param to defines second path with <code>toBearing</code>
137
- * @param toBearing defines second path <code>to</code> position
138
- * @return position of intersection. Since there are usually 2 intersections, we return the smaller intersection.
139
- */
140
- Position getIntersection(Bearing thisBearing, Position to, Bearing toBearing);
141
-
142
- /**
143
- * Calculates the speed vector needed to reach the {@code to} position from this position in time
144
- * {@code inTime}. A {@link NullPointerException} will be thrown if either {@code to} or {@code inTime}
145
- * is {@code null}.
146
- */
147
- SpeedWithBearing getSpeedWithBearingToReachOnGreatCircle(Position to, Duration inTime);
148
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Positioned.java
... ...
@@ -1,7 +0,0 @@
1
-package com.sap.sailing.domain.common;
2
-
3
-import java.io.Serializable;
4
-
5
-public interface Positioned extends Serializable {
6
- Position getPosition();
7
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/SpeedWithBearing.java
... ...
@@ -1,52 +0,0 @@
1
-package com.sap.sailing.domain.common;
2
-
3
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
4
-import com.sap.sse.common.Bearing;
5
-import com.sap.sse.common.Duration;
6
-import com.sap.sse.common.Speed;
7
-import com.sap.sse.common.TimePoint;
8
-import com.sap.sse.datamining.annotations.Statistic;
9
-
10
-
11
-
12
-public interface SpeedWithBearing extends Speed {
13
- @Statistic(messageKey="bearing", resultDecimals=1)
14
- Bearing getBearing();
15
-
16
- /**
17
- * Traveling at this speed starting at time <code>from</code> in position <code>pos</code> until time
18
- * </code>to</code>, how far have we traveled? If <code>to</code> is before </code>from</code>, the speed will be
19
- * applied in reverse.
20
- */
21
- Position travelTo(Position pos, TimePoint from, TimePoint to);
22
-
23
- default Position travelTo(Position from, Duration duration) {
24
- return from.translateGreatCircle(getBearing(), travel(duration));
25
- }
26
-
27
- /**
28
- * Computes the minimal (in terms of bearing change) course and speed change required to reach the
29
- * target speed and bearing specified.
30
- */
31
- CourseChange getCourseChangeRequiredToReach(SpeedWithBearing targetSpeedWithBearing);
32
-
33
- SpeedWithBearing applyCourseChange(CourseChange courseChange);
34
-
35
- /**
36
- * Projects this speed onto <code>bearing</code>. The speed will keep its sign, regardless of whether the <code>bearing</code> points in
37
- * the opposite direction or not. The resulting speed can never be greater than this speed. If this speed's bearing is orthogonal to
38
- * <code>bearing</code>, a zero speed will result.
39
- *
40
- * @param position the position at which to perform the projection; the angle between the bearings depends on the position
41
- */
42
- Speed projectTo(Position position, Bearing bearing);
43
-
44
- /**
45
- * Adds two directed speeds onto each other using vector addition.
46
- */
47
- SpeedWithBearing add(SpeedWithBearing other);
48
-
49
- default SpeedWithBearing scale(double d) {
50
- return new KnotSpeedWithBearingImpl(getKnots(), getBearing());
51
- }
52
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Wind.java
... ...
@@ -1,6 +1,8 @@
1 1
package com.sap.sailing.domain.common;
2 2
3 3
import com.sap.sse.common.Bearing;
4
+import com.sap.sse.common.Positioned;
5
+import com.sap.sse.common.SpeedWithBearing;
4 6
import com.sap.sse.common.Timed;
5 7
6 8
/**
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/BearingWithConfidence.java
... ...
@@ -1,9 +0,0 @@
1
-package com.sap.sailing.domain.common.confidence;
2
-
3
-import com.sap.sailing.domain.common.DoublePair;
4
-import com.sap.sse.common.Bearing;
5
-import com.sap.sse.common.scalablevalue.HasConfidenceAndIsScalable;
6
-
7
-
8
-public interface BearingWithConfidence<RelativeTo> extends HasConfidenceAndIsScalable<DoublePair, Bearing, RelativeTo> {
9
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/BearingWithConfidenceCluster.java
... ...
@@ -1,180 +0,0 @@
1
-package com.sap.sailing.domain.common.confidence;
2
-
3
-import java.util.ArrayList;
4
-import java.util.Collections;
5
-import java.util.List;
6
-
7
-import com.sap.sailing.domain.common.DoublePair;
8
-import com.sap.sailing.domain.common.confidence.impl.BearingWithConfidenceImpl;
9
-import com.sap.sse.common.Bearing;
10
-import com.sap.sse.common.Util;
11
-import com.sap.sse.common.scalablevalue.HasConfidence;
12
-
13
-/**
14
- * Contains a number of {@link Bearing} objects and maintains the average bearing. For a given {@link Bearing} it
15
- * can determine the difference to this cluster's average bearing. It can also split the cluster into two, based
16
- * on the two bearings farthest apart. The cluster can contain multiple occurrences of the same and also
17
- * multiple occurrences of mutually equal {@link Bearing} objects which is one possible way of computing a
18
- * weighted average.<p>
19
- *
20
- * It is assumed that bearings added to this cluster are no further than 180 degrees apart. Violating this
21
- * rule will lead to unpredictable results.
22
- *
23
- * @author Axel Uhl (d043530)
24
- *
25
- */
26
-public class BearingWithConfidenceCluster<RelativeTo> {
27
- private final List<BearingWithConfidence<RelativeTo>> bearings;
28
- private final Weigher<RelativeTo> weigher;
29
- private final ConfidenceBasedAverager<DoublePair, Bearing, RelativeTo> averager;
30
-
31
- /**
32
- * @param weigher
33
- * if <code>null</code>, the <code>relativeTo</code> parameter of {@link #getAverage(Object)} will be ignored,
34
- * and only the confidences provided by the {@link BearingWithConfidence} objects will be taken into
35
- * account. Otherwise, the <code>weigher</code> will be used to determine the confidence relative to
36
- * the <code>relativeTo</code> argument of {@link #getAverage(Object)}.
37
- */
38
- public BearingWithConfidenceCluster(Weigher<RelativeTo> weigher) {
39
- bearings = new ArrayList<BearingWithConfidence<RelativeTo>>();
40
- this.weigher = weigher;
41
- averager = ConfidenceFactory.INSTANCE.createAverager(weigher);
42
- }
43
-
44
- /**
45
- * Finds the two bearings in the cluster that are farthest apart (at least <code>minimumDegreeDifferenceBetweenTacks</code>).
46
- * Then, the remaining bearings in this cluster are associated with the one of the two extreme bearings to which they are
47
- * closer. The two resulting clusters are returned.
48
- *
49
- * @param minimumDegreeDifferenceBetweenTacks
50
- * tells the minimum degree difference that must exist between the two extreme bearings before they are
51
- * considered to represent boats on different tacks. If more than one bearing exists in this cluster
52
- * but no two bearings are at least <code>minimumDegreeDifferenceBetweenTacks</code> degrees apart from
53
- * each other, only fir first of the two clusters returned will contain bearings while the second one
54
- * remains empty.
55
- * @return two bearing clusters; both empty if this cluster is empty; only the second one empty if this cluster
56
- * contains only one bearing. Otherwise, the two bearings farthest apart (greatest absolute
57
- * {@link Bearing#getDifferenceTo(Bearing) difference}) are guaranteed to be in different clusters, and
58
- * all other bearings contained in this cluster will be contained in the cluster that contains the extreme
59
- * bearing to which it's closer.
60
- */
61
- public BearingWithConfidenceCluster<RelativeTo>[] splitInTwo(double minimumDegreeDifferenceBetweenTacks, RelativeTo relativeTo) {
62
- BearingWithConfidenceCluster<RelativeTo>[] result = createBearingClusterArraySizeTwo();
63
- result[0] = createEmptyCluster();
64
- result[1] = createEmptyCluster();
65
- if (bearings.size() >= 2) {
66
- Util.Pair<BearingWithConfidence<RelativeTo>, BearingWithConfidence<RelativeTo>> extremeBearings = getExtremeBearings(minimumDegreeDifferenceBetweenTacks);
67
- if (extremeBearings != null) {
68
- result[0].add(extremeBearings.getA());
69
- result[1].add(extremeBearings.getB());
70
- }
71
- for (BearingWithConfidence<RelativeTo> bearing : bearings) {
72
- if (extremeBearings == null || (bearing != extremeBearings.getA() && bearing != extremeBearings.getB())) {
73
- if (extremeBearings == null
74
- || result[0].getDifferenceFromAverage(bearing.getObject(), relativeTo) <= result[1]
75
- .getDifferenceFromAverage(bearing.getObject(), relativeTo)) {
76
- result[0].add(bearing);
77
- } else {
78
- result[1].add(bearing);
79
- }
80
- }
81
- }
82
- } else if (!bearings.isEmpty()) {
83
- // add the only bearing to the first of the two resulting clusters
84
- result[0].add(bearings.get(0));
85
- }
86
- return result;
87
- }
88
-
89
- @SuppressWarnings("unchecked")
90
- protected BearingWithConfidenceCluster<RelativeTo>[] createBearingClusterArraySizeTwo() {
91
- return (BearingWithConfidenceCluster<RelativeTo>[]) new BearingWithConfidenceCluster<?>[2];
92
- }
93
-
94
- /**
95
- * To avoid that a bearing with low confidence decides about the clustering, the difference between two bearings
96
- * is scaled by their confidences. This scaled distance is then maximized for those bearings at least
97
- * <code>minimumDegreeDifferenceBetweenTacks</code> degrees apart.
98
- */
99
- private Util.Pair<BearingWithConfidence<RelativeTo>, BearingWithConfidence<RelativeTo>> getExtremeBearings(double minimumDegreeDifferenceBetweenTacks) {
100
- assert bearings.size() >= 2;
101
- double maxAbsDegDiff = 0;
102
- Util.Pair<BearingWithConfidence<RelativeTo>, BearingWithConfidence<RelativeTo>> result = null;
103
- for (int i=0; i<bearings.size(); i++) {
104
- for (int j=i+1; j<bearings.size(); j++) {
105
- final double confidenceScaledDifference = getConfidenceScaledDifference(bearings.get(i), bearings.get(j));
106
- if (Math.abs(bearings.get(i).getObject().getDifferenceTo(bearings.get(j).getObject()).getDegrees()) >= minimumDegreeDifferenceBetweenTacks
107
- && confidenceScaledDifference > maxAbsDegDiff) {
108
- result = new Util.Pair<BearingWithConfidence<RelativeTo>, BearingWithConfidence<RelativeTo>>(bearings.get(i), bearings.get(j));
109
- maxAbsDegDiff = confidenceScaledDifference;
110
- assert Math.abs(bearings.get(i).getObject().getDifferenceTo(bearings.get(j).getObject()).getDegrees()) <= 180.;
111
- }
112
- }
113
- }
114
- return result;
115
- }
116
-
117
- private double getConfidenceScaledDifference(BearingWithConfidence<RelativeTo> bearingWithConfidence1,
118
- BearingWithConfidence<RelativeTo> bearingWithConfidence2) {
119
- return Math.abs(bearingWithConfidence1.getObject().getDifferenceTo(bearingWithConfidence2.getObject()).getDegrees()) *
120
- bearingWithConfidence1.getConfidence() * bearingWithConfidence2.getConfidence();
121
- }
122
-
123
- public boolean isEmpty() {
124
- return bearings.isEmpty();
125
- }
126
-
127
- public int size() {
128
- return bearings.size();
129
- }
130
-
131
- /**
132
- * Adds the <code>bearing</code> if its {@link BearingWithConfidence#getConfidence() confidence} is greater than 0.0
133
- */
134
- public void add(BearingWithConfidence<RelativeTo> bearing) {
135
- if (bearing.getConfidence() > 0) {
136
- bearings.add(bearing);
137
- }
138
- }
139
-
140
- /**
141
- * If the cluster contains no bearings, <code>null</code> is returned. Otherwise, the average angle is computed
142
- * by adding up the sin and cos values of the individual bearings, then computing the atan2 of the ratio. If the
143
- * combined confidence of the bearings in the cluster is 0.0, the result will contain <code>null</code> as
144
- * {@link BearingWithConfidence#getObject() object}.
145
- *
146
- * TODO bug5576 comment 40: we could analyze the cluster's variance and let greater variances reduce the confidence
147
- */
148
- public BearingWithConfidence<RelativeTo> getAverage(RelativeTo relativeTo) {
149
- HasConfidence<DoublePair, Bearing, RelativeTo> average = averager.getAverage(getBearings(), relativeTo);
150
- return average == null ? null : new BearingWithConfidenceImpl<RelativeTo>(average.getObject(), average.getConfidence(), average.getRelativeTo());
151
- }
152
-
153
- /**
154
- * Absolute difference to {@link #getAverage() this cluster's average bearing} in degrees. If there is no bearing stored in
155
- * this cluster yet, or the combined confidence of the values in the cluster is 0.0, 0.0 is returned.
156
- *
157
- * @return a value <code>&gt;=0.0</code>
158
- */
159
- private double getDifferenceFromAverage(Bearing bearing, RelativeTo relativeTo) {
160
- Bearing averageBearing = getAverage(relativeTo).getObject();
161
- return averageBearing == null ? 0.0 : Math.abs(averageBearing.getDifferenceTo(bearing).getDegrees());
162
- }
163
-
164
- protected Iterable<BearingWithConfidence<RelativeTo>> getBearings() {
165
- return Collections.unmodifiableCollection(bearings);
166
- }
167
-
168
- @Override
169
- public String toString() {
170
- return bearings.toString();
171
- }
172
-
173
- private BearingWithConfidenceCluster<RelativeTo> createEmptyCluster() {
174
- return new BearingWithConfidenceCluster<RelativeTo>(weigher);
175
- }
176
-
177
- public void clear() {
178
- bearings.clear();
179
- }
180
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/ConfidenceBasedAverager.java
... ...
@@ -1,26 +0,0 @@
1
-package com.sap.sailing.domain.common.confidence;
2
-
3
-import java.util.Iterator;
4
-
5
-import com.sap.sse.common.scalablevalue.HasConfidence;
6
-import com.sap.sse.common.scalablevalue.HasConfidenceAndIsScalable;
7
-
8
-public interface ConfidenceBasedAverager<ValueType, BaseType, RelativeTo> {
9
- /**
10
- * If a non-<code>null</code> weigher has been set for this averager, <code>at</code> must be a valid reference
11
- * point to which the weigher will determine the difference and from it the confidence for each of the
12
- * <code>values</code>. Otherwise, the <code>at</code> argument is ignored.
13
- *
14
- * @return <code>null</code> if <code>values==null</code> or <code>values</code> is empty; otherwise, a non-
15
- * <code>null</code> average with confidence is returned. Note, however, that the
16
- * {@link HasConfidence#getObject() object} in the {@link HasConfidence} result may be <code>null</code>,
17
- * e.g., if the combined confidence went to 0.0 and the averager was unable to determine a reasonable
18
- * average value. The result's confidence is the arithmetic average of the confidences of all values
19
- * that contributed to the result.
20
- */
21
- HasConfidence<ValueType, BaseType, RelativeTo> getAverage(
22
- Iterable<? extends HasConfidenceAndIsScalable<ValueType, BaseType, RelativeTo>> values, RelativeTo at);
23
-
24
- HasConfidence<ValueType, BaseType, RelativeTo> getAverage(
25
- Iterator<? extends HasConfidenceAndIsScalable<ValueType, BaseType, RelativeTo>> values, RelativeTo at);
26
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/ConfidenceFactory.java
... ...
@@ -1,47 +0,0 @@
1
-package com.sap.sailing.domain.common.confidence;
2
-
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.confidence.impl.ConfidenceBasedAveragerFactoryImpl;
5
-import com.sap.sse.common.Distance;
6
-import com.sap.sse.common.Duration;
7
-import com.sap.sse.common.TimePoint;
8
-
9
-public interface ConfidenceFactory {
10
- ConfidenceFactory INSTANCE = new ConfidenceBasedAveragerFactoryImpl();
11
-
12
- /**
13
- * @param weigher
14
- * used to determine the confidence of the elements to be averaged, relative to the reference point given
15
- * as parameter to {@link ConfidenceBasedAverager#getAverage(Iterable, Object)}. If <code>null</code>,
16
- * 1.0 will be assumed as default confidence for all values provided, regardless the reference point
17
- * relative to which the average is to be computed
18
- */
19
- <ValueType, BaseType, RelativeTo> ConfidenceBasedAverager<ValueType, BaseType, RelativeTo> createAverager(Weigher<RelativeTo> weigher);
20
-
21
- <RelativeTo> Weigher<RelativeTo> createConstantWeigher(double constantConfidence);
22
-
23
- /**
24
- * Creates a weigher for time points. With increasing time difference the weight/confidence decreases exponentially.
25
- * It is halved every <code>halfConfidenceAfterMilliseconds</code> milliseconds.
26
- */
27
- Weigher<TimePoint> createExponentialTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds);
28
-
29
- /**
30
- * Like {@link #createExponentialTimeDifferenceWeigher(long)}, only that additionally a minimum confidence value is defined.
31
- * This can be useful for averagers that have trouble with values scaled down with 0.0.
32
- */
33
- Weigher<TimePoint> createExponentialTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds, double minimumConfidence);
34
-
35
- Weigher<TimePoint> createHyperbolicTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds);
36
-
37
- Weigher<TimePoint> createStandardDistributionTimeDifferenceWeigher(Duration standardDeviation);
38
-
39
- Weigher<TimePoint> createHyperbolicSquaredTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds);
40
-
41
- /**
42
- * Constructs a weigher that determines a confidence based on a distance. A {@link Distance#NULL zero distance}
43
- * will yield a confidence of 1; a distance of <code>halfConfidence</code> will return a confidence of .5, and the
44
- * confidence will decrease hyperbolically with increasing distance.
45
- */
46
- Weigher<Position> createHyperbolicDistanceWeigher(Distance halfConfidence);
47
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/Weigher.java
... ...
@@ -1,19 +0,0 @@
1
-package com.sap.sailing.domain.common.confidence;
2
-
3
-import java.io.Serializable;
4
-
5
-/**
6
- * A weigher can compute a confidence value for a distance of two <code>RelativeTo</code> objects.
7
- *
8
- * @author Axel Uhl (d043530)
9
- */
10
-public interface Weigher<RelativeTo> extends Serializable {
11
- /**
12
- * Computes a confidence, based on some weighed notion of "distance" between the two <code>RelativeTo</code> objects.
13
- *
14
- * @param fix the reference point of some object for which to determine the confidence value
15
- * @param request the reference point provided with some aggregation request; the confidence value returned for the fix is
16
- * relative to the request's reference point.
17
- */
18
- double getConfidence(RelativeTo fix, RelativeTo request);
19
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/impl/BearingWithConfidenceImpl.java
... ...
@@ -1,22 +0,0 @@
1
-package com.sap.sailing.domain.common.confidence.impl;
2
-
3
-import com.sap.sailing.domain.common.DoublePair;
4
-import com.sap.sailing.domain.common.confidence.BearingWithConfidence;
5
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
6
-import com.sap.sse.common.Bearing;
7
-import com.sap.sse.common.scalablevalue.IsScalable;
8
-import com.sap.sse.common.scalablevalue.ScalableValue;
9
-
10
-public class BearingWithConfidenceImpl<RelativeTo> extends HasConfidenceImpl<DoublePair, Bearing, RelativeTo>
11
-implements BearingWithConfidence<RelativeTo>, IsScalable<DoublePair, Bearing> {
12
- private static final long serialVersionUID = 1624026377840747818L;
13
-
14
- public BearingWithConfidenceImpl(Bearing bearing, double confidence, RelativeTo relativeTo) {
15
- super(bearing, confidence, relativeTo);
16
- }
17
-
18
- @Override
19
- public ScalableValue<DoublePair, Bearing> getScalableValue() {
20
- return new ScalableBearing(getObject());
21
- }
22
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/impl/ConfidenceBasedAveragerFactoryImpl.java
... ...
@@ -1,58 +0,0 @@
1
-package com.sap.sailing.domain.common.confidence.impl;
2
-
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
5
-import com.sap.sailing.domain.common.confidence.ConfidenceFactory;
6
-import com.sap.sailing.domain.common.confidence.Weigher;
7
-import com.sap.sse.common.Distance;
8
-import com.sap.sse.common.Duration;
9
-import com.sap.sse.common.TimePoint;
10
-
11
-public class ConfidenceBasedAveragerFactoryImpl implements ConfidenceFactory {
12
- @Override
13
- public <RelativeTo> Weigher<RelativeTo> createConstantWeigher(final double constantConfidence) {
14
- return new Weigher<RelativeTo>() {
15
- private static final long serialVersionUID = 8693131975511149792L;
16
-
17
- @Override
18
- public double getConfidence(RelativeTo fix, RelativeTo request) {
19
- return constantConfidence;
20
- }
21
- };
22
- }
23
-
24
- @Override
25
- public <ValueType, BaseType, RelativeTo> ConfidenceBasedAverager<ValueType, BaseType, RelativeTo> createAverager(Weigher<RelativeTo> weigher) {
26
- return new ConfidenceBasedAveragerImpl<ValueType, BaseType, RelativeTo>(weigher);
27
- }
28
-
29
- @Override
30
- public Weigher<TimePoint> createHyperbolicTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds) {
31
- return new HyperbolicTimeDifferenceWeigher(halfConfidenceAfterMilliseconds);
32
- }
33
-
34
- @Override
35
- public Weigher<TimePoint> createStandardDistributionTimeDifferenceWeigher(Duration standardDeviation) {
36
- return new StandardDistributionTimeDifferenceWeigher(standardDeviation);
37
- }
38
-
39
- @Override
40
- public Weigher<Position> createHyperbolicDistanceWeigher(Distance halfConfidence) {
41
- return new HyperbolicDistanceWeigher(halfConfidence);
42
- }
43
-
44
- @Override
45
- public Weigher<TimePoint> createHyperbolicSquaredTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds) {
46
- return new HyperbolicSquaredTimeDifferenceWeigher(halfConfidenceAfterMilliseconds);
47
- }
48
-
49
- @Override
50
- public Weigher<TimePoint> createExponentialTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds) {
51
- return new ExponentialTimeDifferenceWeigher(halfConfidenceAfterMilliseconds);
52
- }
53
-
54
- @Override
55
- public Weigher<TimePoint> createExponentialTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds, double minimumConfidence) {
56
- return new ExponentialTimeDifferenceWeigher(halfConfidenceAfterMilliseconds, minimumConfidence);
57
- }
58
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/impl/ConfidenceBasedAveragerImpl.java
... ...
@@ -1,87 +0,0 @@
1
-package com.sap.sailing.domain.common.confidence.impl;
2
-
3
-import java.util.Iterator;
4
-
5
-import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
6
-import com.sap.sailing.domain.common.confidence.Weigher;
7
-import com.sap.sse.common.scalablevalue.HasConfidence;
8
-import com.sap.sse.common.scalablevalue.HasConfidenceAndIsScalable;
9
-import com.sap.sse.common.scalablevalue.ScalableValue;
10
-
11
-
12
-/**
13
- * A set of values that {@link HasConfidence have a confidence attached} can be averaged using the confidence value to
14
- * weigh values with greater confidence more than those with lesser confidence. It implements the following algorithm
15
- * for a sequence of <code>n</code> tuples <code>(v1, c1), ..., (vn, cn)</code> of a value <code>vi</code> with a
16
- * confidence <code>ci</code> each:<p>
17
- *
18
- * <code>a := (c1*v1 + ... + cn*vn) / (c1 + ... + cn)</code>. For a single value with a confidence this trivially
19
- * results in <code>c1*v1 / (c1)</code> which is equivalent to <code>v1</code>. As another example, consider two values
20
- * with equal confidence <code>0.8</code>. Then, <code>a := (0.8*v1 + 0.8*vn) / (0.8 + 0.8)</code> which resolves to
21
- * <code>0.5*v1 + 0.5*v2</code> which is obviously the arithmetic mean of the two values. If one value has confidence
22
- * <code>0.8</code> and the other <code>0.4</code>, then <code>a := (0.8*v1 + 0.4*vn) / (0.8 + 0.4)</code> which
23
- * resolves to <code>2/3*v1 + 1/3*v2</code> which is a weighed average.
24
- * <p>
25
- *
26
- * Note, that this doesn't exactly take facts for facts. In other words, if one value is provided with a confidence of
27
- * <code>1.0</code>, the average may still be influenced by other values. However, this cleanly resolves otherwise
28
- * mutually contradictory "facts" such a <code>(v1, 1.0), (v2, 1.0)</code> with <code>v1 != v2</code>. It is considered
29
- * bad practice to claim a fact as soon as it results from any kind of measurement or estimation. All measurement
30
- * devices produce some statistical errors, no matter how small (cf. Heisenberg ;-) ).
31
- *
32
- * @author Axel Uhl (d043530)
33
- */
34
-public class ConfidenceBasedAveragerImpl<ValueType, BaseType, RelativeTo> implements ConfidenceBasedAverager<ValueType, BaseType, RelativeTo> {
35
- private final Weigher<RelativeTo> weigher;
36
-
37
- /**
38
- * @param weigher
39
- * If <code>null</code>, 1.0 will be assumed as default confidence for all values provided, regardless
40
- * the reference point relative to which the average is to be computed
41
- */
42
- public ConfidenceBasedAveragerImpl(Weigher<RelativeTo> weigher) {
43
- this.weigher = weigher;
44
- }
45
-
46
- @Override
47
- public HasConfidence<ValueType, BaseType, RelativeTo> getAverage(
48
- Iterable<? extends HasConfidenceAndIsScalable<ValueType, BaseType, RelativeTo>> values, RelativeTo at) {
49
- return values == null ? null : getAverage(values.iterator(), at);
50
- }
51
-
52
- @Override
53
- public HasConfidence<ValueType, BaseType, RelativeTo> getAverage(
54
- Iterator<? extends HasConfidenceAndIsScalable<ValueType, BaseType, RelativeTo>> values, RelativeTo at) {
55
- if (values == null || !values.hasNext()) {
56
- return null;
57
- } else {
58
- ScalableValue<ValueType, BaseType> numerator = null;
59
- double confidenceSum = 0;
60
- int count = 0;
61
- while (values.hasNext()) {
62
- HasConfidenceAndIsScalable<ValueType, BaseType, RelativeTo> next = values.next();
63
- double relativeWeight = getWeight(next, at);
64
- ScalableValue<ValueType, BaseType> weightedNext = next.getScalableValue().multiply(relativeWeight);
65
- if (numerator == null) {
66
- numerator = weightedNext;
67
- } else {
68
- numerator = numerator.add(weightedNext);
69
- }
70
- confidenceSum += relativeWeight;
71
- count++;
72
- }
73
- // TODO consider greater variance to reduce the confidence
74
- double newConfidence = confidenceSum / count;
75
- BaseType result = numerator.divide(confidenceSum);
76
- return new HasConfidenceImpl<ValueType, BaseType, RelativeTo>(result, newConfidence, at);
77
- }
78
- }
79
-
80
- protected double getWeight(HasConfidenceAndIsScalable<ValueType, BaseType, RelativeTo> next, RelativeTo at) {
81
- return (getWeigher() == null ? 1.0 : getWeigher().getConfidence(next.getRelativeTo(), at)) * next.getConfidence();
82
- }
83
-
84
- private Weigher<RelativeTo> getWeigher() {
85
- return weigher;
86
- }
87
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/impl/ExponentialTimeDifferenceWeigher.java
... ...
@@ -1,37 +0,0 @@
1
-package com.sap.sailing.domain.common.confidence.impl;
2
-
3
-import com.sap.sailing.domain.common.confidence.Weigher;
4
-import com.sap.sse.common.TimePoint;
5
-
6
-/**
7
- * The weigher computes an exponentially-decreasing weight based on the time difference of two {@link TimePoint}s.
8
- * The weigher can be configured by the time difference after which the confidence is halved. A minimum confidence can
9
- * optionally be set.
10
- *
11
- * @author Axel Uhl (d043530)
12
- */
13
-public class ExponentialTimeDifferenceWeigher implements Weigher<TimePoint> {
14
- private static final long serialVersionUID = 1832731495731693670L;
15
-
16
- private final static double logHalf = Math.log(0.5);
17
-
18
- private final long halfConfidenceAfterMilliseconds;
19
-
20
- private final double minimumConfidence;
21
-
22
- public ExponentialTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds, double minimumConfidence) {
23
- this.halfConfidenceAfterMilliseconds = halfConfidenceAfterMilliseconds;
24
- this.minimumConfidence = minimumConfidence;
25
- }
26
-
27
- public ExponentialTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds) {
28
- this(halfConfidenceAfterMilliseconds, /* minimumConfidence */ 0);
29
- }
30
-
31
- @Override
32
- public double getConfidence(TimePoint fix, TimePoint request) {
33
- return Math.max(minimumConfidence,
34
- Math.exp(logHalf * ((double) (Math.abs(request.asMillis() - fix.asMillis())) / (double) halfConfidenceAfterMilliseconds)));
35
- }
36
-
37
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/impl/HasConfidenceImpl.java
... ...
@@ -1,36 +0,0 @@
1
-package com.sap.sailing.domain.common.confidence.impl;
2
-
3
-import com.sap.sse.common.scalablevalue.HasConfidence;
4
-
5
-public class HasConfidenceImpl<ValueType, BaseType, RelativeTo> implements HasConfidence<ValueType, BaseType, RelativeTo> {
6
- private static final long serialVersionUID = -1635823148449693024L;
7
- private final double confidence;
8
- private final RelativeTo relativeTo;
9
- private final BaseType object;
10
-
11
- public HasConfidenceImpl(BaseType object, double confidence, RelativeTo relativeTo) {
12
- this.confidence = confidence;
13
- this.relativeTo = relativeTo;
14
- this.object = object;
15
- }
16
-
17
- @Override
18
- public double getConfidence() {
19
- return confidence;
20
- }
21
-
22
- @Override
23
- public RelativeTo getRelativeTo() {
24
- return relativeTo;
25
- }
26
-
27
- @Override
28
- public BaseType getObject() {
29
- return object;
30
- }
31
-
32
- @Override
33
- public String toString() {
34
- return ""+getObject()+"@"+getConfidence();
35
- }
36
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/impl/HyperbolicDistanceWeigher.java
... ...
@@ -1,53 +0,0 @@
1
-package com.sap.sailing.domain.common.confidence.impl;
2
-
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.confidence.Weigher;
5
-import com.sap.sse.common.Distance;
6
-
7
-/**
8
- * Uses {@link Position#getQuickApproximateNauticalMileDistance(Position)} to come
9
- * to a quick and reasonably fair weight for distances where the weight asymptotically
10
- * decreases hyperbolically with distance.
11
- *
12
- * @author Axel Uhl (d043530)
13
- *
14
- */
15
-public class HyperbolicDistanceWeigher implements Weigher<Position> {
16
- private static final long serialVersionUID = 5521299690322077224L;
17
-
18
- private final Distance halfConfidence;
19
-
20
- public HyperbolicDistanceWeigher(Distance halfConfidence) {
21
- this.halfConfidence = halfConfidence;
22
- }
23
-
24
- /**
25
- * Postconditions:
26
- * <pre>
27
- * |fix-request|=halfConfidence ==&gt; result==0.5
28
- * 0 &lt;= result &lt;= 1
29
- * fix==request ==&gt; result==1
30
- * </pre>
31
- *
32
- * This implies the following formula for result := f(x):
33
- *
34
- * <pre>
35
- * for x := |fix-request| with x&gt;=0:
36
- * f(x) := c/(x+y)
37
- * f(0) = 1 = c/y ==&gt; c = y
38
- * f(halfConfidence) = 0.5 = c/(halfConfidence+y)
39
- * =&gt; c/y = 2c/(halfConfidence+y)
40
- * &lt;=&gt; 1/y = 2/(halfConfidence+y)
41
- * &lt;=&gt; halfConfidence + y = 2y
42
- * &lt;=&gt; y = halfConfidence
43
- * =&gt; c = halfConfidence
44
- * </pre>
45
- */
46
- @Override
47
- public double getConfidence(Position fix, Position request) {
48
- double x = fix.getQuickApproximateNauticalMileDistance(request);
49
- double c = halfConfidence.getNauticalMiles();
50
- double y = c;
51
- return c/(x+y);
52
- }
53
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/impl/HyperbolicSquaredTimeDifferenceWeigher.java
... ...
@@ -1,44 +0,0 @@
1
-package com.sap.sailing.domain.common.confidence.impl;
2
-
3
-import com.sap.sailing.domain.common.confidence.Weigher;
4
-import com.sap.sse.common.TimePoint;
5
-
6
-public class HyperbolicSquaredTimeDifferenceWeigher implements Weigher<TimePoint> {
7
- private static final long serialVersionUID = 4378168079868145134L;
8
- private final long halfConfidenceAfterMilliseconds;
9
-
10
- public HyperbolicSquaredTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds) {
11
- this.halfConfidenceAfterMilliseconds = halfConfidenceAfterMilliseconds;
12
- }
13
-
14
- /**
15
- * Postconditions:
16
- * <pre>
17
- * |fix-request|=halfConfidenceAfterMilliseconds ==&gt; result==0.5
18
- * 0 &lt;= result &lt;= 1
19
- * fix=request ==&gt; result==1
20
- * With request approaching infinity, the function grows with the reciprocal of request squared
21
- * </pre>
22
- *
23
- * This implies the following formula for result := f(x):
24
- *
25
- * <pre>
26
- * for x := |fix-request| with x&gt;=0:
27
- * f(x) := c/(x^2+y)
28
- * f(0) = 1 = c/y ==&gt; c = y
29
- * f(halfConfidenceAfterMilliseconds) = 0.5 = c/(halfConfidenceAfterMilliseconds+y)
30
- * =&gt; c/y = 2c/(halfConfidenceAfterMilliseconds+y)
31
- * &lt;=&gt; 1/y = 2/(halfConfidenceAfterMilliseconds+y)
32
- * &lt;=&gt; halfConfidenceAfterMilliseconds + y = 2y
33
- * &lt;=&gt; y = halfConfidenceAfterMilliseconds
34
- * =&gt; c = halfConfidenceAfterMilliseconds
35
- * </pre>
36
- */
37
- @Override
38
- public double getConfidence(TimePoint fix, TimePoint request) {
39
- double x = Math.abs(fix.asMillis() - request.asMillis());
40
- double c = halfConfidenceAfterMilliseconds*halfConfidenceAfterMilliseconds;
41
- double y = c;
42
- return c/(x*x+y);
43
- }
44
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/impl/HyperbolicTimeDifferenceWeigher.java
... ...
@@ -1,43 +0,0 @@
1
-package com.sap.sailing.domain.common.confidence.impl;
2
-
3
-import com.sap.sailing.domain.common.confidence.Weigher;
4
-import com.sap.sse.common.TimePoint;
5
-
6
-public class HyperbolicTimeDifferenceWeigher implements Weigher<TimePoint> {
7
- private static final long serialVersionUID = 4378168079868145134L;
8
- private final long halfConfidenceAfterMilliseconds;
9
-
10
- public HyperbolicTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds) {
11
- this.halfConfidenceAfterMilliseconds = halfConfidenceAfterMilliseconds;
12
- }
13
-
14
- /**
15
- * Postconditions:
16
- * <pre>
17
- * |fix-request|=halfConfidenceAfterMilliseconds ==&gt; result==0.5
18
- * 0 &lt;= result &lt;= 1
19
- * fix==request ==&gt; result==1
20
- * </pre>
21
- *
22
- * This implies the following formula for result := f(x):
23
- *
24
- * <pre>
25
- * for x := |fix-request| with x&gt;=0:
26
- * f(x) := c/(x+y)
27
- * f(0) = 1 = c/y ==&gt; c = y
28
- * f(halfConfidenceAfterMilliseconds) = 0.5 = c/(halfConfidenceAfterMilliseconds+y)
29
- * =&gt; c/y = 2c/(halfConfidenceAfterMilliseconds+y)
30
- * &lt;=&gt; 1/y = 2/(halfConfidenceAfterMilliseconds+y)
31
- * &lt;=&gt; halfConfidenceAfterMilliseconds + y = 2y
32
- * &lt;=&gt; y = halfConfidenceAfterMilliseconds
33
- * =&gt; c = halfConfidenceAfterMilliseconds
34
- * </pre>
35
- */
36
- @Override
37
- public double getConfidence(TimePoint fix, TimePoint request) {
38
- double x = Math.abs(fix.asMillis() - request.asMillis());
39
- double c = halfConfidenceAfterMilliseconds;
40
- double y = halfConfidenceAfterMilliseconds;
41
- return c/(x+y);
42
- }
43
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/impl/LazyDividedScaledPosition.java
... ...
@@ -1,47 +0,0 @@
1
-package com.sap.sailing.domain.common.confidence.impl;
2
-
3
-import com.sap.sailing.domain.common.AbstractPosition;
4
-import com.sap.sailing.domain.common.Position;
5
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition;
6
-
7
-/**
8
- * A wind object's position is currently not very frequently used. However, during averaging, computing the average
9
- * position of a number of wind fixes costs quite a few CPU cycles. By making this calculation lazy / on-demand we may
10
- * save some of them.
11
- *
12
- * @author Axel Uhl (d043530)
13
- *
14
- */
15
-public class LazyDividedScaledPosition extends AbstractPosition {
16
- private static final long serialVersionUID = -4755705843467806809L;
17
- private final ScalablePosition scalablePosition;
18
- private final double divisor;
19
- private Position position;
20
-
21
- public LazyDividedScaledPosition(ScalablePosition scalablePosition, double divisor) {
22
- super();
23
- this.scalablePosition = scalablePosition;
24
- this.divisor = divisor;
25
- this.position = null;
26
- }
27
-
28
- @Override
29
- public synchronized double getLatRad() {
30
- if (position == null) {
31
- resolve();
32
- }
33
- return position.getLatRad();
34
- }
35
-
36
- @Override
37
- public synchronized double getLngRad() {
38
- if (position == null) {
39
- resolve();
40
- }
41
- return position.getLngRad();
42
- }
43
-
44
- private synchronized void resolve() {
45
- position = scalablePosition.divide(divisor);
46
- }
47
-}
... ...
\ No newline at end of file
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/impl/PositionAndTimePointWeigher.java
... ...
@@ -1,53 +0,0 @@
1
-package com.sap.sailing.domain.common.confidence.impl;
2
-
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.confidence.ConfidenceFactory;
5
-import com.sap.sailing.domain.common.confidence.Weigher;
6
-import com.sap.sse.common.Distance;
7
-import com.sap.sse.common.Duration;
8
-import com.sap.sse.common.TimePoint;
9
-import com.sap.sse.common.Util;
10
-
11
-/**
12
- * A weigher that uses a {@link Position} and a {@link TimePoint} to compute a confidence based on
13
- * time and space distance. If the <code>fix</code> or the <code>request</code> parameter in a call
14
- * to {@link #getConfidence(com.sap.sse.common.Util.Pair, com.sap.sse.common.Util.Pair)} have a <code>null</code>
15
- * {@link Position} then no distance-based confidence is considered, and only the time difference is taken
16
- * into account. Otherwise, the time-based confidence and the distance-based confidence are multiplied to
17
- * result in the total confidence.<p>
18
- *
19
- * @author Axel Uhl (d043530)
20
- *
21
- */
22
-public class PositionAndTimePointWeigher implements Weigher<Util.Pair<Position, TimePoint>> {
23
- private final static String USE_POSITION_SYSTEM_PROPERTY_NAME = "spatialWind";
24
- private static final long serialVersionUID = -262428237738496818L;
25
- private final Weigher<TimePoint> timeWeigher;
26
- private final Weigher<Position> distanceWeigher;
27
- private final boolean usePosition;
28
-
29
- public PositionAndTimePointWeigher(Duration halfConfidenceAfter, Distance halfConfidenceDistance) {
30
- timeWeigher = ConfidenceFactory.INSTANCE.createHyperbolicTimeDifferenceWeigher(
31
- /* use as standard deviation */ halfConfidenceAfter.asMillis());
32
- distanceWeigher = ConfidenceFactory.INSTANCE.createHyperbolicDistanceWeigher(halfConfidenceDistance);
33
- this.usePosition = Boolean.valueOf(System.getProperty(USE_POSITION_SYSTEM_PROPERTY_NAME, "true"));
34
- }
35
-
36
- @Override
37
- public double getConfidence(Util.Pair<Position, TimePoint> fix, Util.Pair<Position, TimePoint> reference) {
38
- final double timeConfidence = timeWeigher.getConfidence(fix.getB(), reference.getB());
39
- final double distanceConfidence;
40
- // For now, we make the use of the position for spatial wind field calculation optional. It has to be turned
41
- // on by providing a system property using -DspatialWind=true
42
- if (usePosition && reference != null) {
43
- if (fix.getA() != null && reference.getA() != null) {
44
- distanceConfidence = distanceWeigher.getConfidence(fix.getA(), reference.getA());
45
- } else {
46
- distanceConfidence = 0.1;
47
- }
48
- } else {
49
- distanceConfidence = 1;
50
- }
51
- return timeConfidence * distanceConfidence;
52
- }
53
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/impl/ScalableWind.java
... ...
@@ -1,12 +1,13 @@
1 1
package com.sap.sailing.domain.common.confidence.impl;
2 2
3
-import com.sap.sailing.domain.common.DoubleTriple;
4 3
import com.sap.sailing.domain.common.Wind;
5 4
import com.sap.sailing.domain.common.impl.WindImpl;
6
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition;
7
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableSpeedWithBearing;
5
+import com.sap.sse.common.DoubleTriple;
6
+import com.sap.sse.common.confidence.impl.LazyDividedScaledPosition;
8 7
import com.sap.sse.common.impl.MillisecondsTimePoint;
9 8
import com.sap.sse.common.scalablevalue.ScalableValue;
9
+import com.sap.sse.common.scalablevalue.impl.ScalablePosition;
10
+import com.sap.sse.common.scalablevalue.impl.ScalableSpeedWithBearing;
10 11
11 12
/**
12 13
* Wind values are scaled by separately scaling their speed and bearing, and separately scaling their time point, and
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/confidence/impl/StandardDistributionTimeDifferenceWeigher.java
... ...
@@ -1,23 +0,0 @@
1
-package com.sap.sailing.domain.common.confidence.impl;
2
-
3
-import com.sap.sailing.domain.common.confidence.Weigher;
4
-import com.sap.sse.common.Duration;
5
-import com.sap.sse.common.TimePoint;
6
-
7
-public class StandardDistributionTimeDifferenceWeigher implements Weigher<TimePoint> {
8
- private static final long serialVersionUID = 4378168079868145134L;
9
- private final double standardDeviationAsMillis;
10
- private final double oneDividedByStandardDeviationTimesSquareRootOfTwoPi;
11
-
12
- public StandardDistributionTimeDifferenceWeigher(Duration standardDeviation) {
13
- this.standardDeviationAsMillis = standardDeviation.asMillis();
14
- this.oneDividedByStandardDeviationTimesSquareRootOfTwoPi = 1/(this.standardDeviationAsMillis*Math.sqrt(2*Math.PI));
15
- }
16
-
17
- @Override
18
- public double getConfidence(TimePoint fix, TimePoint request) {
19
- double xMinusMu = Math.abs(fix.asMillis() - request.asMillis());
20
- double xMinusMuDividedByStandardDeviation = xMinusMu/standardDeviationAsMillis;
21
- return oneDividedByStandardDeviationTimesSquareRootOfTwoPi * Math.exp(-0.5*xMinusMuDividedByStandardDeviation*xMinusMuDividedByStandardDeviation);
22
- }
23
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/CourseAreaDTO.java
... ...
@@ -2,8 +2,8 @@ package com.sap.sailing.domain.common.dto;
2 2
3 3
import java.util.UUID;
4 4
5
-import com.sap.sailing.domain.common.Position;
6 5
import com.sap.sse.common.Distance;
6
+import com.sap.sse.common.Position;
7 7
import com.sap.sse.security.shared.dto.NamedDTO;
8 8
9 9
/**
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/LeaderboardEntryDTO.java
... ...
@@ -5,13 +5,13 @@ import java.util.List;
5 5
6 6
import com.sap.sailing.domain.common.MaxPointsReason;
7 7
import com.sap.sailing.domain.common.RaceIdentifier;
8
-import com.sap.sailing.domain.common.SpeedWithBearing;
9 8
import com.sap.sailing.domain.common.Tack;
10
-import com.sap.sailing.domain.common.impl.MeterDistance;
11 9
import com.sap.sse.common.Bearing;
12 10
import com.sap.sse.common.Distance;
13 11
import com.sap.sse.common.Duration;
14 12
import com.sap.sse.common.Speed;
13
+import com.sap.sse.common.SpeedWithBearing;
14
+import com.sap.sse.common.impl.MeterDistance;
15 15
import com.sap.sse.common.impl.MillisecondsDurationImpl;
16 16
17 17
/**
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/PlacemarkDTO.java
... ...
@@ -1,6 +1,6 @@
1 1
package com.sap.sailing.domain.common.dto;
2 2
3
-import com.sap.sailing.domain.common.Position;
3
+import com.sap.sse.common.Position;
4 4
import com.sap.sse.security.shared.dto.NamedDTO;
5 5
6 6
public class PlacemarkDTO extends NamedDTO {
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/AbstractSpeedWithAbstractBearingImpl.java
... ...
@@ -1,103 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import com.sap.sailing.domain.common.AbstractSpeedImpl;
4
-import com.sap.sailing.domain.common.CourseChange;
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.SpeedWithBearing;
7
-import com.sap.sse.common.Bearing;
8
-import com.sap.sse.common.Distance;
9
-import com.sap.sse.common.Speed;
10
-import com.sap.sse.common.TimePoint;
11
-import com.sap.sse.common.impl.DegreeBearingImpl;
12
-import com.sap.sse.common.impl.MillisecondsTimePoint;
13
-
14
-public abstract class AbstractSpeedWithAbstractBearingImpl extends AbstractSpeedImpl implements SpeedWithBearing {
15
- private static final long serialVersionUID = 6136100417593538013L;
16
-
17
- @Override
18
- public Position travelTo(Position pos, TimePoint from, TimePoint to) {
19
- return pos.translateGreatCircle(getBearing(), this.travel(from, to));
20
- }
21
-
22
- @Override
23
- public String toString() {
24
- return super.toString()+" to "+getBearing().getDegrees()+"°";
25
- }
26
-
27
- @Override
28
- public int hashCode() {
29
- return super.hashCode() ^ getBearing().hashCode();
30
- }
31
-
32
- @Override
33
- public boolean equals(Object object) {
34
- return super.equals(object) && object instanceof SpeedWithBearing
35
- && getBearing().equals(((SpeedWithBearing) object).getBearing());
36
- }
37
-
38
- @Override
39
- public SpeedWithBearing add(SpeedWithBearing other) {
40
- return AbstractSpeedWithAbstractBearingImpl.add(this, other);
41
- }
42
-
43
- @Override
44
- public CourseChange getCourseChangeRequiredToReach(SpeedWithBearing targetSpeedWithBearing) {
45
- return AbstractSpeedWithBearingImpl.getCourseChangeRequiredToReach(this, targetSpeedWithBearing);
46
- }
47
-
48
- public static CourseChange getCourseChangeRequiredToReach(SpeedWithBearing from, SpeedWithBearing to) {
49
- double courseChangeInDegrees = to.getBearing().getDegrees() - from.getBearing().getDegrees();
50
- if (courseChangeInDegrees < -180.) {
51
- courseChangeInDegrees += 360.;
52
- } else if (courseChangeInDegrees > 180.) {
53
- courseChangeInDegrees -= 360.;
54
- }
55
- double speedChangeInKnots = to.getKnots() - from.getKnots();
56
- return new CourseChangeImpl(courseChangeInDegrees, speedChangeInKnots);
57
- }
58
-
59
- @Override
60
- public SpeedWithBearing applyCourseChange(CourseChange courseChange) {
61
- return applyCourseChange(this, courseChange);
62
- }
63
-
64
- public static SpeedWithBearing applyCourseChange(SpeedWithBearing from, CourseChange courseChange) {
65
- double newBearingDeg = from.getBearing().getDegrees() + courseChange.getCourseChangeInDegrees();
66
- if (newBearingDeg < 0) {
67
- newBearingDeg += 360;
68
- } else if (newBearingDeg > 360) {
69
- newBearingDeg -= 360;
70
- }
71
- Bearing newBearing = new DegreeBearingImpl(newBearingDeg);
72
- double newSpeedInKnots = from.getKnots()+courseChange.getSpeedChangeInKnots();
73
- return new KnotSpeedWithBearingImpl(newSpeedInKnots, newBearing);
74
- }
75
-
76
- private final static TimePoint start = new MillisecondsTimePoint(0);
77
- private final static TimePoint end = start.plus(60000);
78
-
79
- public static Speed projectTo(SpeedWithBearing speedWithBearing, Position position, Bearing projectTo) {
80
- Position traveledOneMinute = speedWithBearing.travelTo(position, start, end);
81
- Position traveledToProjected = traveledOneMinute.projectToLineThrough(position, projectTo);
82
- Distance projectedDistance = position.getDistance(traveledToProjected);
83
- return projectedDistance.inTime(end.asMillis() - start.asMillis());
84
- }
85
-
86
- @Override
87
- public Speed projectTo(Position position, Bearing projectTo) {
88
- return projectTo(this, position, projectTo);
89
- }
90
-
91
- public static SpeedWithBearing add(SpeedWithBearing first, SpeedWithBearing other) {
92
- double x = first.getMetersPerSecond()*Math.cos(first.getBearing().getRadians()) + other.getMetersPerSecond()*Math.cos(other.getBearing().getRadians());
93
- double y = first.getMetersPerSecond()*Math.sin(first.getBearing().getRadians()) + other.getMetersPerSecond()*Math.sin(other.getBearing().getRadians());
94
- double metersPerSecond = Math.sqrt(x*x+y*y);
95
- double directionRad = (2*Math.PI+Math.atan2(y, x))%(2*Math.PI);
96
- return new MeterPerSecondSpeedWithDegreeBearingImpl(metersPerSecond, new RadianBearingImpl(directionRad));
97
- }
98
-
99
- @Override
100
- public SpeedWithBearing scale(double d) {
101
- return SpeedWithBearing.super.scale(d);
102
- }
103
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/AbstractSpeedWithBearingImpl.java
... ...
@@ -1,18 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
4
-import com.sap.sse.common.Bearing;
5
-
6
-public abstract class AbstractSpeedWithBearingImpl extends AbstractSpeedWithAbstractBearingImpl implements SpeedWithBearing {
7
- private static final long serialVersionUID = -8594305027333573010L;
8
- /* #gwtnofinal */ private Bearing bearing;
9
-
10
- protected AbstractSpeedWithBearingImpl(final Bearing bearing) {
11
- this.bearing = bearing;
12
- }
13
-
14
- @Override
15
- public Bearing getBearing() {
16
- return bearing;
17
- }
18
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/BearingChangeAnalyzerImpl.java
... ...
@@ -1,33 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import com.sap.sailing.domain.common.BearingChangeAnalyzer;
4
-import com.sap.sse.common.Bearing;
5
-import com.sap.sse.common.impl.DegreeBearingImpl;
6
-
7
-public class BearingChangeAnalyzerImpl implements BearingChangeAnalyzer {
8
-
9
- @Override
10
- public int didPass(Bearing courseBeforeManeuver, double totalCourseChangeInDegrees, Bearing courseAfterManeuver,
11
- Bearing wasThisCourseReachedAndCrossedDuringManeuver) {
12
- final int result;
13
- Bearing diffToCourseInQuestion = courseBeforeManeuver.getDifferenceTo(wasThisCourseReachedAndCrossedDuringManeuver);
14
- if (Math.signum(diffToCourseInQuestion.getDegrees()) == Math.signum(totalCourseChangeInDegrees)) {
15
- // simple case: the actual course change was greater than what was required in that direction to
16
- // reach the course in question
17
- result = (int) ((Math.abs(totalCourseChangeInDegrees) + 360. - Math.abs(diffToCourseInQuestion.getDegrees())) / 360.);
18
- } else {
19
- // more complicated: the smallest possible course change required may have been to a different direction than the
20
- // actual course change. The course in question may still have been reached and crossed in the actual course
21
- // change that points the other way has been great enough. Example: courseBeforeManeuver=355deg;
22
- // totalCourseChangeInDegrees=-357; courseAfterManeuver=358deg; wasThisCourseReachedAndCrossedDuringManeuver=000deg.
23
- // The answer has to be TRUE because the course changed to port and was almost a full circle, passing 000deg.
24
- // Still, the diffToCourseInQuestion is 005deg and positive.
25
- // Approach: revert the course change required; revert 005deg to 355deg and check again with this reverted course change.
26
- Bearing revertedDiffToCourseInQuestion = new DegreeBearingImpl(-360 * Math.signum(diffToCourseInQuestion
27
- .getDegrees())+diffToCourseInQuestion.getDegrees());
28
- result = (int) ((Math.abs(totalCourseChangeInDegrees) + 360. - Math.abs(revertedDiffToCourseInQuestion.getDegrees())) / 360.);
29
- }
30
- return result;
31
- }
32
-
33
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/BoundsImpl.java
... ...
@@ -1,186 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import com.sap.sailing.domain.common.Bounds;
4
-import com.sap.sailing.domain.common.Position;
5
-import com.sap.sse.common.Distance;
6
-
7
-public class BoundsImpl implements Bounds {
8
- private final Position sw;
9
- private final Position ne;
10
- private final boolean crossesDateLine;
11
-
12
- public BoundsImpl(Position sw, Position ne) {
13
- super();
14
- this.sw = sw;
15
- this.ne = ne;
16
- crossesDateLine = ne.getLngDeg() < sw.getLngDeg();
17
- }
18
-
19
- public BoundsImpl(Position position) {
20
- this(position, position);
21
- }
22
-
23
- @Override
24
- public Position getNorthWest() {
25
- return new DegreePosition(getNorthEast().getLatDeg(), getSouthWest().getLngDeg());
26
- }
27
-
28
- @Override
29
- public Position getSouthEast() {
30
- return new DegreePosition(getSouthWest().getLatDeg(), getNorthEast().getLngDeg());
31
- }
32
-
33
- @Override
34
- public Position getNorthEast() {
35
- return ne;
36
- }
37
-
38
- @Override
39
- public Position getSouthWest() {
40
- return sw;
41
- }
42
-
43
- /**
44
- * Considering whether or not this bounds object crosses the date line, calculates the width in degrees longitude
45
- * going from <code>west</code> to <code>east</code>. The result is always a non-negative number.
46
- */
47
- private double getDistanceDeg(final double west, final double east) {
48
- final double diff = east-west;
49
- final double result;
50
- if (isCrossingDateLine(west, east)) {
51
- result = 360+diff; // diff is negative in this case
52
- } else {
53
- result = diff;
54
- }
55
- return result;
56
- }
57
-
58
- @Override
59
- public Bounds intersect(Bounds other) {
60
- final double maxSouthLatDeg = Math.max(getSouthWest().getLatDeg(), other.getSouthWest().getLatDeg());
61
- final double minNorthLatDeg = Math.min(getNorthEast().getLatDeg(), other.getNorthEast().getLatDeg());
62
- final double westDeg;
63
- if (containsLngDeg(other.getSouthWest().getLngDeg())) {
64
- westDeg = other.getSouthWest().getLngDeg();
65
- } else if (other.containsLngDeg(getSouthWest().getLngDeg())) {
66
- westDeg = getSouthWest().getLngDeg();
67
- } else {
68
- // no intersection
69
- westDeg = getSouthWest().getLngDeg();
70
- }
71
- final double eastDeg;
72
- if (containsLngDeg(other.getNorthEast().getLngDeg())) {
73
- eastDeg = other.getNorthEast().getLngDeg();
74
- } else if (other.containsLngDeg(getNorthEast().getLngDeg())) {
75
- eastDeg = getNorthEast().getLngDeg();
76
- } else {
77
- // no intersection
78
- eastDeg = getSouthWest().getLngDeg();
79
- }
80
- return new BoundsImpl(new DegreePosition(maxSouthLatDeg, westDeg), new DegreePosition(minNorthLatDeg, eastDeg));
81
- }
82
-
83
- @Override
84
- public Bounds union(Bounds other) {
85
- final double minLatDeg = Math.min(getSouthWest().getLatDeg(), other.getSouthWest().getLatDeg());
86
- final double maxLatDeg = Math.max(getNorthEast().getLatDeg(), other.getNorthEast().getLatDeg());
87
- // For lng, we can go left or right around the earth; which way results in the smaller bounds? We have four options:
88
- final double[] west = new double[] { getSouthWest().getLngDeg(), other.getSouthWest().getLngDeg() };
89
- final double[] east = new double[] { getNorthEast().getLngDeg(), other.getNorthEast().getLngDeg() };
90
- double minLngDegDistance = Double.MAX_VALUE;
91
- double bestWest = 0;
92
- double bestEast = 0;
93
- for (int w=0; w<2; w++) {
94
- for (int e=0; e<2; e++) {
95
- double currentLngDegDistance;
96
- if (spansLngDeg(west[w], east[e], west[1 - w]) && spansLngDeg(west[w], east[e], east[1 - e])
97
- && (currentLngDegDistance = Math.abs(getDistanceDeg(west[w], east[e]))) < minLngDegDistance) {
98
- minLngDegDistance = currentLngDegDistance;
99
- bestWest = west[w];
100
- bestEast = east[e];
101
- }
102
- }
103
- }
104
- return new BoundsImpl(new DegreePosition(minLatDeg, bestWest), new DegreePosition(maxLatDeg, bestEast));
105
- }
106
-
107
- @Override
108
- public Bounds extend(Bounds other) {
109
- return union(other);
110
- }
111
-
112
- @Override
113
- public Bounds extend(Position p) {
114
- return union(new BoundsImpl(p, p));
115
- }
116
-
117
- private boolean spansLngDeg(double westLngDeg, double eastLngDeg, double lngDeg) {
118
- return isCrossingDateLine(westLngDeg, eastLngDeg)
119
- ? (lngDeg >= westLngDeg && lngDeg <= 180) || (lngDeg >= -180 && lngDeg <= eastLngDeg)
120
- : westLngDeg <= lngDeg && lngDeg <= eastLngDeg;
121
- }
122
-
123
- private boolean isCrossingDateLine(double westLngDeg, double eastLngDeg) {
124
- return westLngDeg > eastLngDeg;
125
- }
126
-
127
- @Override
128
- public boolean intersects(Bounds other) {
129
- return (containsLatDeg(other.getSouthWest().getLatDeg()) || containsLatDeg(other.getNorthEast().getLatDeg()) ||
130
- other.containsLatDeg(getSouthWest().getLatDeg()) || other.containsLatDeg(getNorthEast().getLatDeg()))
131
- && (containsLngDeg(other.getSouthWest().getLngDeg()) || containsLngDeg(other.getNorthEast().getLngDeg()) ||
132
- other.containsLngDeg(getSouthWest().getLngDeg()) || other.containsLngDeg(getNorthEast().getLngDeg()));
133
- }
134
-
135
- @Override
136
- public boolean containsLatDeg(double latDeg) {
137
- return latDeg >= getSouthWest().getLatDeg() && latDeg <= getNorthEast().getLatDeg();
138
- }
139
-
140
- @Override
141
- public boolean containsLngDeg(double lngDeg) {
142
- return spansLngDeg(getSouthWest().getLngDeg(), getNorthEast().getLngDeg(), lngDeg);
143
- }
144
-
145
- @Override
146
- public boolean contains(Position other) {
147
- return
148
- // lat contained:
149
- other.getLatDeg() >= getSouthWest().getLatDeg() && other.getLatDeg() <= getNorthEast().getLatDeg() &&
150
- // lng contained:
151
- (isCrossesDateLine()
152
- // between SW and date line...
153
- ? (other.getLngDeg() <= 180 && other.getLngDeg() >= getSouthWest().getLngDeg()) ||
154
- // ...or between date line and NE
155
- (other.getLngDeg() >= -180 && other.getLngDeg() <= getNorthEast().getLngDeg())
156
- // these bounds are not crossing the date line; simple numeric comparison
157
- : other.getLngDeg() >= getSouthWest().getLngDeg() && other.getLngDeg() <= getNorthEast().getLngDeg())
158
- ;
159
- }
160
-
161
- @Override
162
- public boolean contains(Bounds other) {
163
- return isCrossesDateLine() == other.isCrossesDateLine() && contains(other.getNorthEast()) && contains(other.getSouthWest());
164
- }
165
-
166
- @Override
167
- public boolean isCrossesDateLine() {
168
- return crossesDateLine;
169
- }
170
-
171
- @Override
172
- public boolean isEmpty() {
173
- return getSouthWest().getLatDeg() >= getNorthEast().getLatDeg() ||
174
- getSouthWest().getLngDeg() == getNorthEast().getLngDeg();
175
- }
176
-
177
- @Override
178
- public Distance getDiameter() {
179
- return getNorthWest().getDistance(getSouthEast());
180
- }
181
-
182
- @Override
183
- public String toString() {
184
- return "{SW: "+getSouthWest().toString()+", NE: "+getNorthEast().toString()+"}";
185
- }
186
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/CentralAngleDistance.java
... ...
@@ -1,35 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import com.sap.sailing.domain.common.AbstractDistance;
4
-import com.sap.sailing.domain.common.Mile;
5
-import com.sap.sse.common.Distance;
6
-
7
-public class CentralAngleDistance extends AbstractDistance {
8
- private static final long serialVersionUID = -388639688376644968L;
9
- private final double centralAngleRad;
10
-
11
- public CentralAngleDistance(double centralAngleRad) {
12
- super();
13
- this.centralAngleRad = centralAngleRad;
14
- }
15
-
16
- @Override
17
- public double getMeters() {
18
- return getGeographicalMiles() * Mile.METERS_PER_GEOGRAPHICAL_MILE;
19
- }
20
-
21
- @Override
22
- public double getCentralAngleRad() {
23
- return centralAngleRad;
24
- }
25
-
26
- @Override
27
- public double getGeographicalMiles() {
28
- return getCentralAngleDeg() * 60.;
29
- }
30
-
31
- @Override
32
- public Distance scale(double factor) {
33
- return new CentralAngleDistance(factor*getCentralAngleRad());
34
- }
35
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/CourseChangeImpl.java
... ...
@@ -1,28 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import com.sap.sailing.domain.common.CourseChange;
4
-
5
-public class CourseChangeImpl implements CourseChange {
6
- private final double courseChangeInDegrees;
7
- private final double speedChangeInKnots;
8
-
9
- public CourseChangeImpl(double courseChangeInDegrees, double speedChangeInKnots) {
10
- this.courseChangeInDegrees = courseChangeInDegrees;
11
- this.speedChangeInKnots = speedChangeInKnots;
12
- }
13
-
14
- @Override
15
- public double getCourseChangeInDegrees() {
16
- return courseChangeInDegrees;
17
- }
18
-
19
- @Override
20
- public double getSpeedChangeInKnots() {
21
- return speedChangeInKnots;
22
- }
23
-
24
- @Override
25
- public String toString() {
26
- return "changing course by "+getCourseChangeInDegrees()+"deg, "+getSpeedChangeInKnots()+"kn";
27
- }
28
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/DegreeBearingImpl.java
... ...
@@ -1,42 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import java.io.ObjectStreamException;
4
-
5
-import com.sap.sse.common.AbstractBearing;
6
-import com.sap.sse.common.Bearing;
7
-import com.sap.sse.common.settings.GwtIncompatible;
8
-
9
-/**
10
- * This class is marked as deprecated because it was refactored to {@link com.sap.sse.common.impl.DegreeBearingImpl}
11
- * which shall be used instead. Nevertheless it needs to exist due to serialization issues which can be resolved with a
12
- * new general data import at each server instance. The serialization progress of this class is therefore adjusted by
13
- * the use of {@link #readResolve()} which returns the refactored {@link com.sap.sse.common.impl.DegreeBearingImpl}
14
- * object. Deserialization of this class now points to the refactored {@link com.sap.sse.common.impl.DegreeBearingImpl}.
15
- *
16
- *
17
- * @author Maximilian Gro� (D064866)
18
- *
19
- */
20
-@Deprecated
21
-@GwtIncompatible
22
-public class DegreeBearingImpl extends AbstractBearing implements Bearing {
23
- private static final long serialVersionUID = -8045400378221073451L;
24
- private final double bearingDeg;
25
-
26
- @Deprecated
27
- public DegreeBearingImpl(double bearingDeg) {
28
- super();
29
- this.bearingDeg = bearingDeg - 360 * (int) (bearingDeg / 360.);
30
- }
31
-
32
- @Deprecated
33
- @Override
34
- public double getDegrees() {
35
- return bearingDeg;
36
- }
37
-
38
- private Object readResolve() throws ObjectStreamException {
39
- return new com.sap.sse.common.impl.DegreeBearingImpl(bearingDeg);
40
- }
41
-
42
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/DegreePosition.java
... ...
@@ -1,24 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import com.sap.sailing.domain.common.AbstractPosition;
4
-
5
-public class DegreePosition extends AbstractPosition {
6
- private static final long serialVersionUID = 2060676561122615530L;
7
- private final double lat;
8
- private final double lng;
9
-
10
- public DegreePosition(double lat, double lng) {
11
- this.lat = lat;
12
- this.lng = lng;
13
- }
14
-
15
- @Override
16
- public double getLatDeg() {
17
- return lat;
18
- }
19
-
20
- @Override
21
- public double getLngDeg() {
22
- return lng;
23
- }
24
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/KilometersPerHourSpeedImpl.java
... ...
@@ -1,23 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import com.sap.sailing.domain.common.AbstractSpeedImpl;
4
-import com.sap.sse.common.Speed;
5
-
6
-public class KilometersPerHourSpeedImpl extends AbstractSpeedImpl implements Speed {
7
- private static final long serialVersionUID = -524654796500981303L;
8
- private final double speedInKilometersPerHour;
9
-
10
- public KilometersPerHourSpeedImpl(double speedInKilometersPerHour) {
11
- this.speedInKilometersPerHour = speedInKilometersPerHour;
12
- }
13
-
14
- @Override
15
- public double getMetersPerSecond() {
16
- return getKilometersPerHour() / 3.6;
17
- }
18
-
19
- @Override
20
- public double getKilometersPerHour() {
21
- return speedInKilometersPerHour;
22
- }
23
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/KnotSpeedImpl.java
... ...
@@ -1,30 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import com.sap.sailing.domain.common.AbstractSpeedImpl;
4
-import com.sap.sse.common.Speed;
5
-
6
-public class KnotSpeedImpl extends AbstractSpeedImpl implements Speed {
7
- private static final long serialVersionUID = 5150851454271610069L;
8
- private final double knots;
9
-
10
- public KnotSpeedImpl(double knots) {
11
- this.knots = knots;
12
- }
13
-
14
- @Override
15
- public double getKnots() {
16
- return knots;
17
- }
18
-
19
- /**
20
- * Saves extra work by only converting the other object's speed to knots; useful in particular
21
- * if both speeds are knot-based speeds
22
- */
23
- @Override
24
- public boolean equals(Object object) {
25
- if (object == null || !(object instanceof Speed)) {
26
- return false;
27
- }
28
- return getKnots() == ((Speed) object).getKnots();
29
- }
30
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/KnotSpeedWithBearingImpl.java
... ...
@@ -1,19 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import com.sap.sse.common.Bearing;
4
-
5
-public class KnotSpeedWithBearingImpl extends AbstractSpeedWithBearingImpl {
6
- private static final long serialVersionUID = -2300633070560631053L;
7
- private final double speedInKnots;
8
-
9
- public KnotSpeedWithBearingImpl(double speedInKnots, Bearing bearing) {
10
- super(bearing);
11
- this.speedInKnots = speedInKnots;
12
- }
13
-
14
- @Override
15
- public double getKnots() {
16
- return speedInKnots;
17
- }
18
-
19
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/MeterDistance.java
... ...
@@ -1,29 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import com.sap.sailing.domain.common.AbstractDistance;
4
-import com.sap.sse.common.Distance;
5
-
6
-public class MeterDistance extends AbstractDistance {
7
- private static final long serialVersionUID = 1205385257141317881L;
8
- private final double meters;
9
-
10
- public MeterDistance(double meters) {
11
- this.meters = meters;
12
- }
13
-
14
- @Override
15
- public double getMeters() {
16
- return meters;
17
- }
18
-
19
- @Override
20
- public Distance scale(double factor) {
21
- return new MeterDistance(factor * meters);
22
- }
23
-
24
- @Override
25
- public double getCentralAngleDeg() {
26
- return getGeographicalMiles() / 60.;
27
- }
28
-
29
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/MeterPerSecondSpeedImpl.java
... ...
@@ -1,23 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import com.sap.sailing.domain.common.AbstractSpeedImpl;
4
-import com.sap.sse.common.Speed;
5
-
6
-public class MeterPerSecondSpeedImpl extends AbstractSpeedImpl implements Speed {
7
- private static final long serialVersionUID = -524654796500981303L;
8
- private final double metersPerSecond;
9
-
10
- public MeterPerSecondSpeedImpl(double metersPerSecond) {
11
- this.metersPerSecond = metersPerSecond;
12
- }
13
-
14
- @Override
15
- public double getMetersPerSecond() {
16
- return metersPerSecond;
17
- }
18
-
19
- @Override
20
- public double getKilometersPerHour() {
21
- return metersPerSecond*3.6;
22
- }
23
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/MeterPerSecondSpeedWithDegreeBearingImpl.java
... ...
@@ -1,29 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import com.sap.sse.common.Bearing;
4
-
5
-public class MeterPerSecondSpeedWithDegreeBearingImpl extends AbstractSpeedWithAbstractBearingImpl {
6
- private static final long serialVersionUID = -524654796500981303L;
7
- private final double metersPerSecond;
8
- private final Bearing bearing;
9
-
10
- public MeterPerSecondSpeedWithDegreeBearingImpl(double metersPerSecond, Bearing bearing) {
11
- this.metersPerSecond = metersPerSecond;
12
- this.bearing = bearing;
13
- }
14
-
15
- @Override
16
- public double getMetersPerSecond() {
17
- return metersPerSecond;
18
- }
19
-
20
- @Override
21
- public double getKilometersPerHour() {
22
- return metersPerSecond*3.6;
23
- }
24
-
25
- @Override
26
- public Bearing getBearing() {
27
- return bearing;
28
- }
29
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/NauticalMileDistance.java
... ...
@@ -1,30 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import com.sap.sailing.domain.common.AbstractDistance;
4
-import com.sap.sse.common.Distance;
5
-
6
-public class NauticalMileDistance extends AbstractDistance {
7
- private static final long serialVersionUID = 3771473789235934127L;
8
- private final double nauticalMiles;
9
-
10
- public NauticalMileDistance(double nauticalMiles) {
11
- super();
12
- this.nauticalMiles = nauticalMiles;
13
- }
14
-
15
- @Override
16
- public double getNauticalMiles() {
17
- return nauticalMiles;
18
- }
19
-
20
- @Override
21
- public double getCentralAngleDeg() {
22
- return getGeographicalMiles() / 60.;
23
- }
24
-
25
- @Override
26
- public Distance scale(double factor) {
27
- return new NauticalMileDistance(factor * nauticalMiles);
28
- }
29
-
30
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/NonCardinalBoundsImpl.java
... ...
@@ -1,9 +1,9 @@
1 1
package com.sap.sailing.domain.common.impl;
2 2
3 3
import com.sap.sailing.domain.common.NonCardinalBounds;
4
-import com.sap.sailing.domain.common.Position;
5 4
import com.sap.sse.common.Bearing;
6 5
import com.sap.sse.common.Distance;
6
+import com.sap.sse.common.Position;
7 7
8 8
public class NonCardinalBoundsImpl implements NonCardinalBounds {
9 9
/**
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/PlacemarkImpl.java
... ...
@@ -1,9 +1,10 @@
1 1
package com.sap.sailing.domain.common.impl;
2 2
3 3
import com.sap.sailing.domain.common.Placemark;
4
-import com.sap.sailing.domain.common.Position;
5 4
import com.sap.sse.common.CountryCodeFactory;
6 5
import com.sap.sse.common.Distance;
6
+import com.sap.sse.common.Position;
7
+import com.sap.sse.common.impl.DegreePosition;
7 8
8 9
/**
9 10
* Used to define a populated place in the world.<br />
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/RadianBearingImpl.java
... ...
@@ -1,25 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import com.sap.sse.common.AbstractBearing;
4
-import com.sap.sse.common.Bearing;
5
-
6
-public class RadianBearingImpl extends AbstractBearing implements Bearing {
7
- private static final long serialVersionUID = 5044142324540650696L;
8
- private final double bearingRad;
9
-
10
- public RadianBearingImpl(double bearingRad) {
11
- super();
12
- this.bearingRad = bearingRad - 2*Math.PI * (int) (bearingRad/2./Math.PI);
13
- }
14
-
15
- @Override
16
- public double getDegrees() {
17
- return getRadians() / Math.PI * 180.;
18
- }
19
-
20
- @Override
21
- public double getRadians() {
22
- return bearingRad;
23
- }
24
-
25
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/RadianPosition.java
... ...
@@ -1,26 +0,0 @@
1
-package com.sap.sailing.domain.common.impl;
2
-
3
-import com.sap.sailing.domain.common.AbstractPosition;
4
-
5
-public class RadianPosition extends AbstractPosition {
6
- private static final long serialVersionUID = -8488453506845560385L;
7
- private final double latRad;
8
- private final double lngRad;
9
-
10
- public RadianPosition(double latRad, double lngRad) {
11
- super();
12
- this.latRad = latRad;
13
- this.lngRad = lngRad;
14
- }
15
-
16
- @Override
17
- public double getLatRad() {
18
- return latRad;
19
- }
20
-
21
- @Override
22
- public double getLngRad() {
23
- return lngRad;
24
- }
25
-
26
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/WindImpl.java
... ...
@@ -1,10 +1,11 @@
1 1
package com.sap.sailing.domain.common.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.SpeedWithBearing;
5 3
import com.sap.sailing.domain.common.Wind;
6 4
import com.sap.sse.common.Bearing;
5
+import com.sap.sse.common.Position;
6
+import com.sap.sse.common.SpeedWithBearing;
7 7
import com.sap.sse.common.TimePoint;
8
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
8 9
9 10
public class WindImpl extends KnotSpeedWithBearingImpl implements Wind {
10 11
private static final long serialVersionUID = 5431592324949471980L;
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/orc/ORCCertificate.java
... ...
@@ -3,8 +3,6 @@ package com.sap.sailing.domain.common.orc;
3 3
import java.io.Serializable;
4 4
import java.util.Map;
5 5
6
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
7
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
8 6
import com.sap.sse.common.Bearing;
9 7
import com.sap.sse.common.CountryCode;
10 8
import com.sap.sse.common.Distance;
... ...
@@ -13,6 +11,8 @@ import com.sap.sse.common.Speed;
13 11
import com.sap.sse.common.TimePoint;
14 12
import com.sap.sse.common.WithID;
15 13
import com.sap.sse.common.impl.DegreeBearingImpl;
14
+import com.sap.sse.common.impl.KnotSpeedImpl;
15
+import com.sap.sse.common.impl.NauticalMileDistance;
16 16
17 17
/**
18 18
* Represents semantically a real ORC certificate for a {@link Competitor}, which is used to rate different type of
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/quadtree/QuadTree.java
... ...
@@ -2,12 +2,12 @@ package com.sap.sailing.domain.common.quadtree;
2 2
3 3
import java.io.Serializable;
4 4
5
-import com.sap.sailing.domain.common.Bounds;
6
-import com.sap.sailing.domain.common.Position;
7
-import com.sap.sailing.domain.common.impl.BoundsImpl;
8
-import com.sap.sailing.domain.common.impl.DegreePosition;
9 5
import com.sap.sailing.domain.common.quadtree.impl.Node;
10 6
import com.sap.sailing.domain.common.quadtree.impl.Node.GetResult;
7
+import com.sap.sse.common.Bounds;
8
+import com.sap.sse.common.Position;
9
+import com.sap.sse.common.impl.BoundsImpl;
10
+import com.sap.sse.common.impl.DegreePosition;
11 11
12 12
/**
13 13
* A spatial data structure that provides efficient (O(log n)) access to nearest neighbors and
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/quadtree/impl/Node.java
... ...
@@ -7,12 +7,12 @@ import java.util.Map;
7 7
import java.util.Map.Entry;
8 8
import java.util.Set;
9 9
10
-import com.sap.sailing.domain.common.Bounds;
11
-import com.sap.sailing.domain.common.Position;
12
-import com.sap.sailing.domain.common.impl.BoundsImpl;
13
-import com.sap.sailing.domain.common.impl.DegreePosition;
14 10
import com.sap.sailing.domain.common.quadtree.QuadTree;
11
+import com.sap.sse.common.Bounds;
12
+import com.sap.sse.common.Position;
15 13
import com.sap.sse.common.Util;
14
+import com.sap.sse.common.impl.BoundsImpl;
15
+import com.sap.sse.common.impl.DegreePosition;
16 16
17 17
/**
18 18
* A node in a {@link QuadTree}. There may be internal nodes that have no elements in them but have exactly
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/scalablevalue/impl/ScalableBearing.java
... ...
@@ -1,87 +0,0 @@
1
-package com.sap.sailing.domain.common.scalablevalue.impl;
2
-
3
-import com.sap.sailing.domain.common.DoublePair;
4
-import com.sap.sailing.domain.common.impl.RadianBearingImpl;
5
-import com.sap.sse.common.Bearing;
6
-import com.sap.sse.common.scalablevalue.ScalableValue;
7
-import com.sap.sse.common.scalablevalue.ScalableValueWithDistance;
8
-
9
-public class ScalableBearing implements ScalableValueWithDistance<DoublePair, Bearing> {
10
- private final double sin;
11
- private final double cos;
12
-
13
- public ScalableBearing(Bearing bearing) {
14
- this.sin = Math.sin(bearing.getRadians());
15
- this.cos = Math.cos(bearing.getRadians());
16
- }
17
-
18
- private ScalableBearing(double sin, double cos) {
19
- this.sin = sin;
20
- this.cos = cos;
21
- }
22
-
23
- @Override
24
- public ScalableBearing multiply(double factor) {
25
- DoublePair pair = getValue();
26
- return new ScalableBearing(factor*pair.getA(), factor*pair.getB());
27
- }
28
-
29
- @Override
30
- public ScalableBearing add(ScalableValue<DoublePair, Bearing> t) {
31
- DoublePair value = getValue();
32
- DoublePair tValue = t.getValue();
33
- return new ScalableBearing(value.getA()+tValue.getA(), value.getB()+tValue.getB());
34
- }
35
-
36
- /**
37
- * If the combined confidence was 0.0, no {@link Bearing} object can reasonably be computed; hence, <code>null</code>
38
- * is returned in such cases.
39
- */
40
- @Override
41
- public Bearing divide(double divisor) {
42
- Bearing result;
43
- if (sin == 0 && cos == 0) {
44
- result = null;
45
- } else {
46
- double angle;
47
- if (cos == 0) {
48
- angle = sin >= 0 ? Math.PI / 2 : -Math.PI / 2;
49
- } else {
50
- angle = Math.atan2(sin, cos);
51
- }
52
- result = new RadianBearingImpl(angle < 0 ? angle + 2 * Math.PI : angle);
53
- }
54
- return result;
55
- }
56
-
57
- @Override
58
- public DoublePair getValue() {
59
- return new DoublePair(sin, cos);
60
- }
61
-
62
- @Override
63
- public double getDistance(Bearing other) {
64
- return Math.abs(divide(1).getDifferenceTo(other).getDegrees());
65
- }
66
-
67
- /**
68
- * Computing the difference to a {@link bearing}, as implemented by {@link #getDistance(Bearing)} is correct but
69
- * slow because the {@link Math#atan2(double)} function is used to {@link ScalableBearing#divide(double) bring the
70
- * scalable bearing down to a bearing}. A less precise, yet much faster to compute and still monotonous distance
71
- * measure computes the length of the line segment connecting this bearing's projection onto a circle with the
72
- * projection of the bearing <code>a</code> to the same circle. The distance returned by this method will provide
73
- * almost equal values for very small differences (below 1deg) but significantly smaller values for big differences.
74
- *
75
- * @return an approximate difference in degrees, fairly accurate for small differences, but returning 360.0/PI
76
- * (approximately 114) instead of 180 for the maximum difference
77
- */
78
- public double getApproximateDegreeDistanceTo(Bearing a) {
79
- double scale = Math.sqrt(sin*sin + cos*cos);
80
- double x = cos/scale;
81
- double y = sin/scale;
82
- double ax = Math.cos(a.getRadians());
83
- double ay = Math.sin(a.getRadians());
84
- double normalDistance = Math.sqrt((x-ax)*(x-ax) + (y-ay)*(y-ay));
85
- return normalDistance / Math.PI * 180.;
86
- }
87
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/scalablevalue/impl/ScalableDistance.java
... ...
@@ -1,44 +0,0 @@
1
-package com.sap.sailing.domain.common.scalablevalue.impl;
2
-
3
-import com.sap.sailing.domain.common.impl.MeterDistance;
4
-import com.sap.sse.common.Distance;
5
-import com.sap.sse.common.scalablevalue.ScalableValue;
6
-import com.sap.sse.common.scalablevalue.ScalableValueWithDistance;
7
-
8
-public class ScalableDistance implements ScalableValueWithDistance<Double, Distance> {
9
- private final double meters;
10
-
11
- public ScalableDistance(Distance distance) {
12
- this.meters = distance.getMeters();
13
- }
14
-
15
- private ScalableDistance(double meters) {
16
- this.meters = meters;
17
- }
18
-
19
- @Override
20
- public ScalableDistance multiply(double factor) {
21
- return new ScalableDistance(factor*meters);
22
- }
23
-
24
- @Override
25
- public ScalableDistance add(ScalableValue<Double, Distance> t) {
26
- return new ScalableDistance(meters+t.getValue());
27
- }
28
-
29
- @Override
30
- public Distance divide(double divisor) {
31
- return new MeterDistance(meters / divisor);
32
- }
33
-
34
- @Override
35
- public Double getValue() {
36
- return meters;
37
- }
38
-
39
- @Override
40
- public double getDistance(Distance other) {
41
- return Math.abs(meters-other.getMeters());
42
- }
43
-
44
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/scalablevalue/impl/ScalableDuration.java
... ...
@@ -1,48 +0,0 @@
1
-package com.sap.sailing.domain.common.scalablevalue.impl;
2
-
3
-import com.sap.sse.common.Duration;
4
-import com.sap.sse.common.impl.SecondsDurationImpl;
5
-import com.sap.sse.common.scalablevalue.ScalableValue;
6
-import com.sap.sse.common.scalablevalue.ScalableValueWithDistance;
7
-
8
-public class ScalableDuration implements ScalableValueWithDistance<Double, Duration> {
9
- private final double seconds;
10
-
11
- public ScalableDuration(Duration duration) {
12
- this.seconds = duration.asSeconds();
13
- }
14
-
15
- private ScalableDuration(double seconds) {
16
- this.seconds = seconds;
17
- }
18
-
19
- @Override
20
- public ScalableDuration multiply(double factor) {
21
- return new ScalableDuration(factor*seconds);
22
- }
23
-
24
- @Override
25
- public ScalableDuration add(ScalableValue<Double, Duration> t) {
26
- return new ScalableDuration(seconds+t.getValue());
27
- }
28
-
29
- @Override
30
- public Duration divide(double divisor) {
31
- return new SecondsDurationImpl(seconds / divisor);
32
- }
33
-
34
- @Override
35
- public Double getValue() {
36
- return seconds;
37
- }
38
-
39
- @Override
40
- public double getDistance(Duration other) {
41
- return Math.abs(seconds-other.asSeconds());
42
- }
43
-
44
- @Override
45
- public String toString() {
46
- return divide(1).toString();
47
- }
48
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/scalablevalue/impl/ScalablePosition.java
... ...
@@ -1,75 +0,0 @@
1
-package com.sap.sailing.domain.common.scalablevalue.impl;
2
-
3
-import com.sap.sailing.domain.common.DoubleTriple;
4
-import com.sap.sailing.domain.common.Position;
5
-import com.sap.sailing.domain.common.impl.RadianPosition;
6
-import com.sap.sse.common.scalablevalue.ScalableValue;
7
-import com.sap.sse.common.scalablevalue.ScalableValueWithDistance;
8
-
9
-public class ScalablePosition implements ScalableValueWithDistance<ScalablePosition, Position> {
10
- private final double x, y, z;
11
-
12
- public ScalablePosition(Position position) {
13
- this(Math.cos(position.getLatRad()) * Math.cos(position.getLngRad()),
14
- Math.cos(position.getLatRad()) * Math.sin(position.getLngRad()),
15
- Math.sin(position.getLatRad()));
16
- }
17
-
18
- /**
19
- * Use the three components obtained from {@link #getValueAsTriple()}
20
- */
21
- public ScalablePosition(double x, double y, double z) {
22
- this.x = x;
23
- this.y = y;
24
- this.z = z;
25
- }
26
-
27
- @Override
28
- public ScalablePosition multiply(double factor) {
29
- return new ScalablePosition(factor*x, factor*y, factor*z);
30
- }
31
-
32
- @Override
33
- public ScalablePosition add(ScalableValue<ScalablePosition, Position> t) {
34
- ScalablePosition result;
35
- if (t == null) {
36
- result = this;
37
- } else {
38
- result = new ScalablePosition(x+t.getValue().x, y+t.getValue().y, z+t.getValue().z);
39
- }
40
- return result;
41
- }
42
-
43
- /**
44
- * If combined confidence is 0.0 (all coordinate components are 0.0), <code>null</code> is returned because no
45
- * position can reasonably be constructed out of nowhere.
46
- */
47
- @Override
48
- public Position divide(double divisor) {
49
- Position result;
50
- if (x == 0 && y == 0 && z == 0) {
51
- result = null;
52
- } else {
53
- // don't need to scale down; atan2 is agnostic regarding scaling factors
54
- double hyp = Math.sqrt(x * x + y * y);
55
- double latRad = Math.atan2(z, hyp);
56
- double lngRad = Math.atan2(y, x);
57
- result = new RadianPosition(latRad, lngRad);
58
- }
59
- return result;
60
- }
61
-
62
- @Override
63
- public ScalablePosition getValue() {
64
- return this;
65
- }
66
-
67
- @Override
68
- public double getDistance(Position other) {
69
- return divide(1).getDistance(other).getCentralAngleDeg();
70
- }
71
-
72
- public DoubleTriple getValueAsTriple() {
73
- return new DoubleTriple(x, y, z);
74
- }
75
-}
... ...
\ No newline at end of file
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/scalablevalue/impl/ScalableSpeed.java
... ...
@@ -1,44 +0,0 @@
1
-package com.sap.sailing.domain.common.scalablevalue.impl;
2
-
3
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
4
-import com.sap.sse.common.Speed;
5
-import com.sap.sse.common.scalablevalue.ScalableValue;
6
-import com.sap.sse.common.scalablevalue.ScalableValueWithDistance;
7
-
8
-public class ScalableSpeed implements ScalableValueWithDistance<Double, Speed> {
9
- private final double knots;
10
-
11
- public ScalableSpeed(Speed speed) {
12
- this.knots = speed.getKnots();
13
- }
14
-
15
- private ScalableSpeed(double knots) {
16
- this.knots = knots;
17
- }
18
-
19
- @Override
20
- public ScalableSpeed multiply(double factor) {
21
- return new ScalableSpeed(factor*knots);
22
- }
23
-
24
- @Override
25
- public ScalableSpeed add(ScalableValue<Double, Speed> t) {
26
- return new ScalableSpeed(knots+t.getValue());
27
- }
28
-
29
- @Override
30
- public Speed divide(double divisor) {
31
- return new KnotSpeedImpl(knots / divisor);
32
- }
33
-
34
- @Override
35
- public Double getValue() {
36
- return knots;
37
- }
38
-
39
- @Override
40
- public double getDistance(Speed other) {
41
- return Math.abs(knots-other.getKnots());
42
- }
43
-
44
-}
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/scalablevalue/impl/ScalableSpeedWithBearing.java
... ...
@@ -1,74 +0,0 @@
1
-package com.sap.sailing.domain.common.scalablevalue.impl;
2
-
3
-import com.sap.sailing.domain.common.DoubleTriple;
4
-import com.sap.sailing.domain.common.SpeedWithBearing;
5
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
6
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
7
-import com.sap.sailing.domain.common.impl.RadianBearingImpl;
8
-import com.sap.sse.common.Bearing;
9
-import com.sap.sse.common.Speed;
10
-import com.sap.sse.common.scalablevalue.ScalableValue;
11
-
12
-/**
13
- * Separately scales speed and bearing. Instead of considering speed and bearing a single vector that can be scaled, the
14
- * bearing is scaled separately, and the speed is scaled as a scalar value independently of the bearing. This is
15
- * particularly useful for {@link Wind} scaling where it makes more sense to average the wind speed independently of the
16
- * wind direction / bearing than adding up the "wind vectors" and averaging, which would reduce the resulting wind speed
17
- * for constant wind speeds across all fixes with different directions.<p>
18
- *
19
- * The triple used for scaling uses the speed in knots as the first component, the sine as the second and the
20
- * cosine as the third value.
21
- *
22
- * @author Axel Uhl (d043530)
23
- *
24
- */
25
-public class ScalableSpeedWithBearing implements ScalableValue<DoubleTriple, SpeedWithBearing> {
26
- private final double speedInKnots;
27
- private final double sin;
28
- private final double cos;
29
-
30
- public ScalableSpeedWithBearing(SpeedWithBearing speedWithBearing) {
31
- this(speedWithBearing.getKnots(), Math.sin(speedWithBearing.getBearing()
32
- .getRadians()), Math.cos(speedWithBearing.getBearing().getRadians()));
33
- }
34
-
35
- public ScalableSpeedWithBearing(Speed speed, double sin, double cos) {
36
- this(speed.getKnots(), sin, cos);
37
- }
38
-
39
- public ScalableSpeedWithBearing(double speedInKnots, double sin, double cos) {
40
- this.speedInKnots = speedInKnots;
41
- this.sin = sin;
42
- this.cos = cos;
43
- }
44
-
45
- @Override
46
- public ScalableSpeedWithBearing multiply(double factor) {
47
- return new ScalableSpeedWithBearing(factor*speedInKnots, factor*sin, factor*cos);
48
- }
49
-
50
- @Override
51
- public ScalableSpeedWithBearing add(ScalableValue<DoubleTriple, SpeedWithBearing> t) {
52
- final DoubleTriple tValue = t.getValue();
53
- return new ScalableSpeedWithBearing(speedInKnots + tValue.getA(), sin+tValue.getB(), cos+tValue.getC());
54
- }
55
-
56
- @Override
57
- public SpeedWithBearing divide(double divisor) {
58
- Speed newSpeed = new KnotSpeedImpl(speedInKnots / divisor);
59
- double angle;
60
- if (cos == 0) {
61
- angle = sin >= 0 ? Math.PI / 2 : -Math.PI / 2;
62
- } else {
63
- angle = Math.atan2(sin, cos);
64
- }
65
- Bearing bearing = new RadianBearingImpl(angle < 0 ? angle + 2 * Math.PI : angle);
66
- return new KnotSpeedWithBearingImpl(newSpeed.getKnots(), bearing);
67
- }
68
-
69
- @Override
70
- public DoubleTriple getValue() {
71
- return new DoubleTriple(speedInKnots, sin, cos);
72
- }
73
-
74
-}
... ...
\ No newline at end of file
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/BravoFix.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.domain.common.tracking;
2 2
3
-import com.sap.sailing.domain.common.impl.MeterDistance;
4 3
import com.sap.sse.common.Bearing;
5 4
import com.sap.sse.common.Distance;
5
+import com.sap.sse.common.impl.MeterDistance;
6 6
import com.sap.sse.datamining.annotations.Dimension;
7 7
import com.sap.sse.datamining.annotations.Statistic;
8 8
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/GPSFix.java
... ...
@@ -1,10 +1,10 @@
1 1
package com.sap.sailing.domain.common.tracking;
2 2
3
-import com.sap.sailing.domain.common.Positioned;
4
-import com.sap.sailing.domain.common.SpeedWithBearing;
5
-import com.sap.sailing.domain.common.impl.MeterDistance;
6 3
import com.sap.sse.common.Distance;
4
+import com.sap.sse.common.Positioned;
5
+import com.sap.sse.common.SpeedWithBearing;
7 6
import com.sap.sse.common.Timed;
7
+import com.sap.sse.common.impl.MeterDistance;
8 8
9 9
public interface GPSFix extends Positioned, Timed, WithValidityCache, WithEstimatedSpeedCache {
10 10
/**
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/WithEstimatedSpeedCache.java
... ...
@@ -1,6 +1,6 @@
1 1
package com.sap.sailing.domain.common.tracking;
2 2
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
3
+import com.sap.sse.common.SpeedWithBearing;
4 4
5 5
public interface WithEstimatedSpeedCache {
6 6
boolean isEstimatedSpeedCached();
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/AbstractCompactGPSFixImpl.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.domain.common.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
4 3
import com.sap.sailing.domain.common.tracking.GPSFix;
4
+import com.sap.sse.common.SpeedWithBearing;
5 5
import com.sap.sse.common.TimePoint;
6 6
import com.sap.sse.common.impl.AbstractTimePoint;
7 7
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/AbstractCompactGPSFixMovingImpl.java
... ...
@@ -1,16 +1,16 @@
1 1
package com.sap.sailing.domain.common.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.AbstractSpeedImpl;
4
-import com.sap.sailing.domain.common.CourseChange;
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.SpeedWithBearing;
7
-import com.sap.sailing.domain.common.impl.AbstractSpeedWithAbstractBearingImpl;
8
-import com.sap.sailing.domain.common.impl.AbstractSpeedWithBearingImpl;
9 3
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
4
+import com.sap.sse.common.AbstractSpeedImpl;
10 5
import com.sap.sse.common.Bearing;
6
+import com.sap.sse.common.CourseChange;
7
+import com.sap.sse.common.Position;
11 8
import com.sap.sse.common.Speed;
9
+import com.sap.sse.common.SpeedWithBearing;
12 10
import com.sap.sse.common.TimePoint;
13 11
import com.sap.sse.common.Util;
12
+import com.sap.sse.common.impl.AbstractSpeedWithAbstractBearingImpl;
13
+import com.sap.sse.common.impl.AbstractSpeedWithBearingImpl;
14 14
15 15
/**
16 16
* A memory-conserving representation of a {@link GPSFixMoving} object that produces the fine-grained
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/AbstractCompactWindImpl.java
... ...
@@ -1,12 +1,12 @@
1 1
package com.sap.sailing.domain.common.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sailing.domain.common.Wind;
5
-import com.sap.sailing.domain.common.impl.AbstractSpeedWithAbstractBearingImpl;
6 4
import com.sap.sailing.domain.common.impl.WindImpl;
7 5
import com.sap.sse.common.Bearing;
6
+import com.sap.sse.common.Position;
8 7
import com.sap.sse.common.TimePoint;
9 8
import com.sap.sse.common.Util;
9
+import com.sap.sse.common.impl.AbstractSpeedWithAbstractBearingImpl;
10 10
import com.sap.sse.common.impl.AbstractTimePoint;
11 11
12 12
public abstract class AbstractCompactWindImpl extends AbstractSpeedWithAbstractBearingImpl implements Wind {
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/AbstractGPSFixImpl.java
... ...
@@ -1,11 +1,11 @@
1 1
package com.sap.sailing.domain.common.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
4
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
5 3
import com.sap.sailing.domain.common.tracking.GPSFix;
6 4
import com.sap.sse.common.Bearing;
7 5
import com.sap.sse.common.Distance;
8 6
import com.sap.sse.common.Speed;
7
+import com.sap.sse.common.SpeedWithBearing;
8
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
9 9
10 10
public abstract class AbstractGPSFixImpl implements GPSFix {
11 11
private static final long serialVersionUID = 9037068515469957639L;
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/BravoExtendedFixImpl.java
... ...
@@ -1,7 +1,5 @@
1 1
package com.sap.sailing.domain.common.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.Mile;
4
-import com.sap.sailing.domain.common.impl.MeterDistance;
5 3
import com.sap.sailing.domain.common.sensordata.BravoExtendedSensorDataMetadata;
6 4
import com.sap.sailing.domain.common.sensordata.ColumnMetadata;
7 5
import com.sap.sailing.domain.common.tracking.BravoExtendedFix;
... ...
@@ -9,7 +7,9 @@ import com.sap.sailing.domain.common.tracking.BravoFix;
9 7
import com.sap.sailing.domain.common.tracking.DoubleVectorFix;
10 8
import com.sap.sse.common.Bearing;
11 9
import com.sap.sse.common.Distance;
10
+import com.sap.sse.common.Mile;
12 11
import com.sap.sse.common.impl.DegreeBearingImpl;
12
+import com.sap.sse.common.impl.MeterDistance;
13 13
14 14
/**
15 15
* Implementation of {@link BravoExtendedFix}. {@link BravoExtendedFix} adds more measures compared to {@link BravoFix}.
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/BravoFixImpl.java
... ...
@@ -1,6 +1,5 @@
1 1
package com.sap.sailing.domain.common.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.impl.MeterDistance;
4 3
import com.sap.sailing.domain.common.sensordata.BravoSensorDataMetadata;
5 4
import com.sap.sailing.domain.common.sensordata.ColumnMetadata;
6 5
import com.sap.sailing.domain.common.tracking.BravoFix;
... ...
@@ -8,6 +7,7 @@ import com.sap.sailing.domain.common.tracking.DoubleVectorFix;
8 7
import com.sap.sse.common.Bearing;
9 8
import com.sap.sse.common.Distance;
10 9
import com.sap.sse.common.impl.DegreeBearingImpl;
10
+import com.sap.sse.common.impl.MeterDistance;
11 11
12 12
/**
13 13
* Implementation of {@link BravoFix} that wraps a {@link DoubleVectorFix} which holds the actual sensor data. The
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/CompactPositionHelper.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.domain.common.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sse.common.Bearing;
4
+import com.sap.sse.common.Position;
5 5
import com.sap.sse.common.Speed;
6 6
7 7
/**
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/GPSFixImpl.java
... ...
@@ -1,9 +1,9 @@
1 1
package com.sap.sailing.domain.common.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.impl.DegreePosition;
5 3
import com.sap.sailing.domain.common.tracking.GPSFix;
4
+import com.sap.sse.common.Position;
6 5
import com.sap.sse.common.TimePoint;
6
+import com.sap.sse.common.impl.DegreePosition;
7 7
import com.sap.sse.common.impl.MillisecondsTimePoint;
8 8
9 9
/**
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/GPSFixMovingImpl.java
... ...
@@ -1,13 +1,13 @@
1 1
package com.sap.sailing.domain.common.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.SpeedWithBearing;
5
-import com.sap.sailing.domain.common.impl.DegreePosition;
6
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
7 3
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
8 4
import com.sap.sse.common.Bearing;
5
+import com.sap.sse.common.Position;
6
+import com.sap.sse.common.SpeedWithBearing;
9 7
import com.sap.sse.common.TimePoint;
10 8
import com.sap.sse.common.impl.DegreeBearingImpl;
9
+import com.sap.sse.common.impl.DegreePosition;
10
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
11 11
import com.sap.sse.common.impl.MillisecondsTimePoint;
12 12
13 13
public class GPSFixMovingImpl extends GPSFixImpl implements GPSFixMoving {
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/PreciseCompactGPSFixImpl.java
... ...
@@ -1,13 +1,13 @@
1 1
package com.sap.sailing.domain.common.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.AbstractPosition;
4
-import com.sap.sailing.domain.common.Position;
5
-import com.sap.sailing.domain.common.SpeedWithBearing;
6
-import com.sap.sailing.domain.common.impl.AbstractSpeedWithAbstractBearingImpl;
7 3
import com.sap.sailing.domain.common.tracking.GPSFix;
8 4
import com.sap.sse.common.AbstractBearing;
5
+import com.sap.sse.common.AbstractPosition;
9 6
import com.sap.sse.common.Bearing;
7
+import com.sap.sse.common.Position;
8
+import com.sap.sse.common.SpeedWithBearing;
10 9
import com.sap.sse.common.TimePoint;
10
+import com.sap.sse.common.impl.AbstractSpeedWithAbstractBearingImpl;
11 11
12 12
/**
13 13
* A compact representation of a GPS fix which collects all primitive-typed attributes in one object to avoid
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/PreciseCompactGPSFixMovingImpl.java
... ...
@@ -1,13 +1,13 @@
1 1
package com.sap.sailing.domain.common.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.AbstractPosition;
4
-import com.sap.sailing.domain.common.Position;
5
-import com.sap.sailing.domain.common.SpeedWithBearing;
6
-import com.sap.sailing.domain.common.impl.AbstractSpeedWithAbstractBearingImpl;
7 3
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
8 4
import com.sap.sse.common.AbstractBearing;
5
+import com.sap.sse.common.AbstractPosition;
9 6
import com.sap.sse.common.Bearing;
7
+import com.sap.sse.common.Position;
8
+import com.sap.sse.common.SpeedWithBearing;
10 9
import com.sap.sse.common.TimePoint;
10
+import com.sap.sse.common.impl.AbstractSpeedWithAbstractBearingImpl;
11 11
12 12
/**
13 13
* A memory-conserving representation of a {@link GPSFixMoving} object that produces the fine-grained
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/PreciseCompactWindImpl.java
... ...
@@ -1,10 +1,10 @@
1 1
package com.sap.sailing.domain.common.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.AbstractPosition;
4
-import com.sap.sailing.domain.common.Position;
5 3
import com.sap.sailing.domain.common.Wind;
6 4
import com.sap.sse.common.AbstractBearing;
5
+import com.sap.sse.common.AbstractPosition;
7 6
import com.sap.sse.common.Bearing;
7
+import com.sap.sse.common.Position;
8 8
9 9
/**
10 10
* Keeps the precise values of lat/lng and speed/course.
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/VeryCompactGPSFixImpl.java
... ...
@@ -3,16 +3,16 @@ package com.sap.sailing.domain.common.tracking.impl;
3 3
import java.util.logging.Level;
4 4
import java.util.logging.Logger;
5 5
6
-import com.sap.sailing.domain.common.AbstractPosition;
7
-import com.sap.sailing.domain.common.Position;
8
-import com.sap.sailing.domain.common.SpeedWithBearing;
9
-import com.sap.sailing.domain.common.impl.AbstractSpeedWithAbstractBearingImpl;
10
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
11 6
import com.sap.sailing.domain.common.tracking.GPSFix;
12 7
import com.sap.sse.common.AbstractBearing;
8
+import com.sap.sse.common.AbstractPosition;
13 9
import com.sap.sse.common.Bearing;
10
+import com.sap.sse.common.Position;
11
+import com.sap.sse.common.SpeedWithBearing;
14 12
import com.sap.sse.common.TimePoint;
13
+import com.sap.sse.common.impl.AbstractSpeedWithAbstractBearingImpl;
15 14
import com.sap.sse.common.impl.DegreeBearingImpl;
15
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
16 16
17 17
/**
18 18
* A compact representation of a GPS fix which collects all primitive-typed attributes in one object to avoid
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/VeryCompactGPSFixMovingImpl.java
... ...
@@ -3,16 +3,16 @@ package com.sap.sailing.domain.common.tracking.impl;
3 3
import java.util.logging.Level;
4 4
import java.util.logging.Logger;
5 5
6
-import com.sap.sailing.domain.common.AbstractPosition;
7
-import com.sap.sailing.domain.common.Position;
8
-import com.sap.sailing.domain.common.SpeedWithBearing;
9
-import com.sap.sailing.domain.common.impl.AbstractSpeedWithAbstractBearingImpl;
10
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
11 6
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
12 7
import com.sap.sse.common.AbstractBearing;
8
+import com.sap.sse.common.AbstractPosition;
13 9
import com.sap.sse.common.Bearing;
10
+import com.sap.sse.common.Position;
11
+import com.sap.sse.common.SpeedWithBearing;
14 12
import com.sap.sse.common.TimePoint;
13
+import com.sap.sse.common.impl.AbstractSpeedWithAbstractBearingImpl;
15 14
import com.sap.sse.common.impl.DegreeBearingImpl;
15
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
16 16
17 17
/**
18 18
* A memory-conserving representation of a {@link GPSFixMoving} object that produces the fine-grained
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/tracking/impl/VeryCompactWindImpl.java
... ...
@@ -1,10 +1,10 @@
1 1
package com.sap.sailing.domain.common.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.AbstractPosition;
4
-import com.sap.sailing.domain.common.Position;
5 3
import com.sap.sailing.domain.common.Wind;
6 4
import com.sap.sse.common.AbstractBearing;
5
+import com.sap.sse.common.AbstractPosition;
7 6
import com.sap.sse.common.Bearing;
7
+import com.sap.sse.common.Position;
8 8
9 9
/**
10 10
* Uses scaled, rounded internal representations of the values for lat/lng and speed/course. See
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/windfinder/SpotBase.java
... ...
@@ -2,8 +2,8 @@ package com.sap.sailing.domain.common.windfinder;
2 2
3 3
import java.net.URL;
4 4
5
-import com.sap.sailing.domain.common.Positioned;
6 5
import com.sap.sse.common.NamedWithID;
6
+import com.sap.sse.common.Positioned;
7 7
import com.sap.sse.common.TimePoint;
8 8
9 9
/**
java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/windfinder/SpotDTO.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.domain.common.windfinder;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sse.common.Duration;
4
+import com.sap.sse.common.Position;
5 5
import com.sap.sse.common.TimePoint;
6 6
import com.sap.sse.common.impl.MillisecondsTimePoint;
7 7
import com.sap.sse.common.impl.NamedImpl;
java/com.sap.sailing.domain.deckmanadapter.test/src/com/sap/sailing/domain/deckmanadapter/test/TestDeckmanLogfileParsing.java
... ...
@@ -13,13 +13,13 @@ import java.util.Iterator;
13 13
14 14
import org.junit.jupiter.api.Test;
15 15
16
-import com.sap.sailing.domain.common.Position;
17 16
import com.sap.sailing.domain.common.Wind;
18 17
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
19 18
import com.sap.sailing.domain.deckmanadapter.DeckmanAdapter;
20 19
import com.sap.sailing.domain.deckmanadapter.DeckmanAdapterFactory;
21 20
import com.sap.sailing.domain.deckmanadapter.Record;
22 21
import com.sap.sailing.domain.deckmanadapter.impl.FieldType;
22
+import com.sap.sse.common.Position;
23 23
import com.sap.sse.common.TimePoint;
24 24
25 25
public class TestDeckmanLogfileParsing {
java/com.sap.sailing.domain.deckmanadapter/src/com/sap/sailing/domain/deckmanadapter/Record.java
... ...
@@ -10,20 +10,20 @@ import java.util.logging.Level;
10 10
import java.util.logging.Logger;
11 11
12 12
import com.sap.sailing.declination.DeclinationService;
13
-import com.sap.sailing.domain.common.Position;
14
-import com.sap.sailing.domain.common.Positioned;
15
-import com.sap.sailing.domain.common.SpeedWithBearing;
16 13
import com.sap.sailing.domain.common.Wind;
17
-import com.sap.sailing.domain.common.impl.DegreePosition;
18
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
19 14
import com.sap.sailing.domain.common.impl.WindImpl;
20 15
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
21 16
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
22 17
import com.sap.sailing.domain.deckmanadapter.impl.FieldType;
23 18
import com.sap.sse.common.Bearing;
19
+import com.sap.sse.common.Position;
20
+import com.sap.sse.common.Positioned;
21
+import com.sap.sse.common.SpeedWithBearing;
24 22
import com.sap.sse.common.TimePoint;
25 23
import com.sap.sse.common.Timed;
26 24
import com.sap.sse.common.impl.DegreeBearingImpl;
25
+import com.sap.sse.common.impl.DegreePosition;
26
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
27 27
import com.sap.sse.common.impl.MillisecondsTimePoint;
28 28
29 29
public class Record implements Timed, Positioned {
java/com.sap.sailing.domain.expeditionadapter/src/com/sap/sailing/domain/expeditionadapter/impl/ExpeditionGPSFixImporter.java
... ...
@@ -14,8 +14,6 @@ import java.util.logging.Level;
14 14
import java.util.logging.Logger;
15 15
16 16
import com.sap.sailing.declination.DeclinationService;
17
-import com.sap.sailing.domain.common.impl.DegreePosition;
18
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
19 17
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
20 18
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
21 19
import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier;
... ...
@@ -27,6 +25,8 @@ import com.sap.sailing.server.trackfiles.impl.ExpeditionExtendedDataImporterImpl
27 25
import com.sap.sailing.server.trackfiles.impl.ExpeditionImportFileHandler;
28 26
import com.sap.sse.common.Bearing;
29 27
import com.sap.sse.common.impl.DegreeBearingImpl;
28
+import com.sap.sse.common.impl.DegreePosition;
29
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
30 30
31 31
public class ExpeditionGPSFixImporter implements GPSFixImporter {
32 32
private static final Logger logger = Logger.getLogger(ExpeditionGPSFixImporter.class.getName());
java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/impl/WindReceiverTest.java
... ...
@@ -15,9 +15,7 @@ import org.junit.jupiter.api.Test;
15 15
import org.junit.jupiter.api.Timeout;
16 16
17 17
import com.sap.sailing.declination.DeclinationService;
18
-import com.sap.sailing.domain.common.SpeedWithBearing;
19 18
import com.sap.sailing.domain.common.Wind;
20
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
21 19
import com.sap.sailing.domain.igtimiadapter.IgtimiWindListener;
22 20
import com.sap.sailing.domain.igtimiadapter.datatypes.AWA;
23 21
import com.sap.sailing.domain.igtimiadapter.datatypes.AWS;
... ...
@@ -27,8 +25,10 @@ import com.sap.sailing.domain.igtimiadapter.datatypes.GpsLatLong;
27 25
import com.sap.sailing.domain.igtimiadapter.datatypes.HDG;
28 26
import com.sap.sailing.domain.igtimiadapter.datatypes.SOG;
29 27
import com.sap.sailing.domain.igtimiadapter.shared.IgtimiWindReceiver;
28
+import com.sap.sse.common.SpeedWithBearing;
30 29
import com.sap.sse.common.TimePoint;
31 30
import com.sap.sse.common.impl.DegreeBearingImpl;
31
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
32 32
import com.sap.sse.common.impl.MillisecondsTimePoint;
33 33
34 34
@Timeout(value = 2, unit=TimeUnit.MINUTES) // 2 minutes timeout for the test
java/com.sap.sailing.domain.igtimiadapter.test/src/com/sap/sailing/domain/igtimiadapter/test/IgtimiFixTrackTest.java
... ...
@@ -13,7 +13,6 @@ import java.util.logging.Logger;
13 13
import org.junit.jupiter.api.Test;
14 14
15 15
import com.sap.sailing.domain.common.Wind;
16
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
17 16
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
18 17
import com.sap.sailing.domain.igtimiadapter.IgtimiConnection;
19 18
import com.sap.sailing.domain.igtimiadapter.IgtimiConnectionFactory;
... ...
@@ -28,6 +27,7 @@ import com.sap.sailing.domain.tracking.DynamicTrack;
28 27
import com.sap.sse.common.TimePoint;
29 28
import com.sap.sse.common.Util;
30 29
import com.sap.sse.common.impl.DegreeBearingImpl;
30
+import com.sap.sse.common.impl.KnotSpeedImpl;
31 31
32 32
/**
33 33
* Igtimi fixes come as isolated single fixes from separate sensors, and even if they are attached to the same device,
java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/FixFactory.java
... ...
@@ -21,9 +21,6 @@ import com.igtimi.IgtimiData.Heading;
21 21
import com.igtimi.IgtimiData.HeadingMagnetic;
22 22
import com.igtimi.IgtimiData.SpeedOverGround;
23 23
import com.igtimi.IgtimiStream.Msg;
24
-import com.sap.sailing.domain.common.impl.DegreePosition;
25
-import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
26
-import com.sap.sailing.domain.common.impl.MeterDistance;
27 24
import com.sap.sailing.domain.igtimiadapter.datatypes.AWA;
28 25
import com.sap.sailing.domain.igtimiadapter.datatypes.AWS;
29 26
import com.sap.sailing.domain.igtimiadapter.datatypes.BatteryLevel;
... ...
@@ -40,6 +37,9 @@ import com.sap.sailing.domain.igtimiadapter.datatypes.SOG;
40 37
import com.sap.sse.common.TimePoint;
41 38
import com.sap.sse.common.Util;
42 39
import com.sap.sse.common.impl.DegreeBearingImpl;
40
+import com.sap.sse.common.impl.DegreePosition;
41
+import com.sap.sse.common.impl.KilometersPerHourSpeedImpl;
42
+import com.sap.sse.common.impl.MeterDistance;
43 43
import com.sun.jersey.core.util.Base64;
44 44
45 45
/**
java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/datatypes/AWS.java
... ...
@@ -2,11 +2,11 @@ package com.sap.sailing.domain.igtimiadapter.datatypes;
2 2
3 3
import java.util.Map;
4 4
5
-import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
6 5
import com.sap.sailing.domain.igtimiadapter.IgtimiFixReceiver;
7 6
import com.sap.sailing.domain.igtimiadapter.Sensor;
8 7
import com.sap.sse.common.Speed;
9 8
import com.sap.sse.common.TimePoint;
9
+import com.sap.sse.common.impl.KilometersPerHourSpeedImpl;
10 10
11 11
/**
12 12
* Apparent wind speed, relative to the inertial system on which the wind speed was measured.
java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/datatypes/GpsAltitude.java
... ...
@@ -2,11 +2,11 @@ package com.sap.sailing.domain.igtimiadapter.datatypes;
2 2
3 3
import java.util.Map;
4 4
5
-import com.sap.sailing.domain.common.impl.MeterDistance;
6 5
import com.sap.sailing.domain.igtimiadapter.IgtimiFixReceiver;
7 6
import com.sap.sailing.domain.igtimiadapter.Sensor;
8 7
import com.sap.sse.common.Distance;
9 8
import com.sap.sse.common.TimePoint;
9
+import com.sap.sse.common.impl.MeterDistance;
10 10
11 11
public class GpsAltitude extends Fix {
12 12
private static final long serialVersionUID = -5740764665236002412L;
java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/datatypes/GpsLatLong.java
... ...
@@ -2,11 +2,11 @@ package com.sap.sailing.domain.igtimiadapter.datatypes;
2 2
3 3
import java.util.Map;
4 4
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.impl.DegreePosition;
7 5
import com.sap.sailing.domain.igtimiadapter.IgtimiFixReceiver;
8 6
import com.sap.sailing.domain.igtimiadapter.Sensor;
7
+import com.sap.sse.common.Position;
9 8
import com.sap.sse.common.TimePoint;
9
+import com.sap.sse.common.impl.DegreePosition;
10 10
11 11
public class GpsLatLong extends Fix {
12 12
private static final long serialVersionUID = 5056284867725893553L;
java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/datatypes/GpsQualityHdop.java
... ...
@@ -2,11 +2,11 @@ package com.sap.sailing.domain.igtimiadapter.datatypes;
2 2
3 3
import java.util.Map;
4 4
5
-import com.sap.sailing.domain.common.impl.MeterDistance;
6 5
import com.sap.sailing.domain.igtimiadapter.IgtimiFixReceiver;
7 6
import com.sap.sailing.domain.igtimiadapter.Sensor;
8 7
import com.sap.sse.common.Distance;
9 8
import com.sap.sse.common.TimePoint;
9
+import com.sap.sse.common.impl.MeterDistance;
10 10
11 11
public class GpsQualityHdop extends Fix {
12 12
private static final long serialVersionUID = -5319766127405258823L;
java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/datatypes/SOG.java
... ...
@@ -2,11 +2,11 @@ package com.sap.sailing.domain.igtimiadapter.datatypes;
2 2
3 3
import java.util.Map;
4 4
5
-import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
6 5
import com.sap.sailing.domain.igtimiadapter.IgtimiFixReceiver;
7 6
import com.sap.sailing.domain.igtimiadapter.Sensor;
8 7
import com.sap.sse.common.Speed;
9 8
import com.sap.sse.common.TimePoint;
9
+import com.sap.sse.common.impl.KilometersPerHourSpeedImpl;
10 10
11 11
/**
12 12
* Speed over ground expressed in kilometers per hour
java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/datatypes/STW.java
... ...
@@ -2,11 +2,11 @@ package com.sap.sailing.domain.igtimiadapter.datatypes;
2 2
3 3
import java.util.Map;
4 4
5
-import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
6 5
import com.sap.sailing.domain.igtimiadapter.IgtimiFixReceiver;
7 6
import com.sap.sailing.domain.igtimiadapter.Sensor;
8 7
import com.sap.sse.common.Speed;
9 8
import com.sap.sse.common.TimePoint;
9
+import com.sap.sse.common.impl.KilometersPerHourSpeedImpl;
10 10
11 11
/**
12 12
* Speed through water expressed in kilometers per hour.
java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/shared/IgtimiWindReceiver.java
... ...
@@ -14,14 +14,8 @@ import java.util.logging.Logger;
14 14
15 15
import com.sap.sailing.declination.Declination;
16 16
import com.sap.sailing.declination.DeclinationService;
17
-import com.sap.sailing.domain.common.Position;
18
-import com.sap.sailing.domain.common.SpeedWithBearing;
19 17
import com.sap.sailing.domain.common.Wind;
20
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
21 18
import com.sap.sailing.domain.common.impl.WindImpl;
22
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
23
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition;
24
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableSpeed;
25 19
import com.sap.sailing.domain.igtimiadapter.BulkFixReceiver;
26 20
import com.sap.sailing.domain.igtimiadapter.IgtimiConnection;
27 21
import com.sap.sailing.domain.igtimiadapter.IgtimiFixReceiverAdapter;
... ...
@@ -41,10 +35,16 @@ import com.sap.sailing.domain.tracking.DynamicTrackWithRemove;
41 35
import com.sap.sailing.domain.tracking.WindListener;
42 36
import com.sap.sailing.domain.tracking.impl.DynamicTrackWithRemoveImpl;
43 37
import com.sap.sse.common.Bearing;
38
+import com.sap.sse.common.Position;
44 39
import com.sap.sse.common.Speed;
40
+import com.sap.sse.common.SpeedWithBearing;
45 41
import com.sap.sse.common.TimePoint;
46 42
import com.sap.sse.common.Util;
47 43
import com.sap.sse.common.Util.Pair;
44
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
45
+import com.sap.sse.common.scalablevalue.impl.ScalableBearing;
46
+import com.sap.sse.common.scalablevalue.impl.ScalablePosition;
47
+import com.sap.sse.common.scalablevalue.impl.ScalableSpeed;
48 48
49 49
/**
50 50
* Receives Igtimi {@link Fix}es and tries to generate a {@link Wind} object from each {@link AWS} fix. For this to
java/com.sap.sailing.domain.oceanraceadapter/src/com/sap/sailing/domain/oceanraceadapter/impl/OceanRaceGPSFixImporter.java
... ...
@@ -14,9 +14,6 @@ import org.json.simple.JSONObject;
14 14
import org.json.simple.parser.JSONParser;
15 15
import org.json.simple.parser.ParseException;
16 16
17
-import com.sap.sailing.domain.common.Position;
18
-import com.sap.sailing.domain.common.impl.DegreePosition;
19
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
20 17
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
21 18
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
22 19
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
... ...
@@ -25,9 +22,12 @@ import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifierImpl;
25 22
import com.sap.sailing.domain.trackimport.FormatNotSupportedException;
26 23
import com.sap.sailing.domain.trackimport.GPSFixImporter;
27 24
import com.sap.sse.common.Bearing;
25
+import com.sap.sse.common.Position;
28 26
import com.sap.sse.common.TimePoint;
29 27
import com.sap.sse.common.Util.Pair;
30 28
import com.sap.sse.common.impl.DegreeBearingImpl;
29
+import com.sap.sse.common.impl.DegreePosition;
30
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
31 31
32 32
public class OceanRaceGPSFixImporter implements GPSFixImporter {
33 33
private final static String BEACONS_OBJECT_NAME = "beacons";
java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java
... ...
@@ -195,24 +195,17 @@ import com.sap.sailing.domain.common.ManeuverType;
195 195
import com.sap.sailing.domain.common.MarkType;
196 196
import com.sap.sailing.domain.common.MaxPointsReason;
197 197
import com.sap.sailing.domain.common.PassingInstruction;
198
-import com.sap.sailing.domain.common.Position;
199 198
import com.sap.sailing.domain.common.RaceIdentifier;
200 199
import com.sap.sailing.domain.common.RankingMetrics;
201 200
import com.sap.sailing.domain.common.RegattaName;
202 201
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
203 202
import com.sap.sailing.domain.common.ScoringSchemeType;
204
-import com.sap.sailing.domain.common.SpeedWithBearing;
205 203
import com.sap.sailing.domain.common.Tack;
206 204
import com.sap.sailing.domain.common.Wind;
207 205
import com.sap.sailing.domain.common.WindSource;
208 206
import com.sap.sailing.domain.common.WindSourceType;
209 207
import com.sap.sailing.domain.common.dto.AnniversaryType;
210 208
import com.sap.sailing.domain.common.dto.EventType;
211
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
212
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
213
-import com.sap.sailing.domain.common.impl.MeterDistance;
214
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
215
-import com.sap.sailing.domain.common.impl.RadianPosition;
216 209
import com.sap.sailing.domain.common.impl.WindImpl;
217 210
import com.sap.sailing.domain.common.impl.WindSourceImpl;
218 211
import com.sap.sailing.domain.common.impl.WindSourceWithAdditionalID;
... ...
@@ -287,7 +280,9 @@ import com.sap.sse.common.Bearing;
287 280
import com.sap.sse.common.Color;
288 281
import com.sap.sse.common.Distance;
289 282
import com.sap.sse.common.Duration;
283
+import com.sap.sse.common.Position;
290 284
import com.sap.sse.common.Speed;
285
+import com.sap.sse.common.SpeedWithBearing;
291 286
import com.sap.sse.common.TimePoint;
292 287
import com.sap.sse.common.TimeRange;
293 288
import com.sap.sse.common.TypeBasedServiceFinder;
... ...
@@ -298,9 +293,14 @@ import com.sap.sse.common.Util.Triple;
298 293
import com.sap.sse.common.WithID;
299 294
import com.sap.sse.common.impl.AbstractColor;
300 295
import com.sap.sse.common.impl.DegreeBearingImpl;
296
+import com.sap.sse.common.impl.KnotSpeedImpl;
297
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
298
+import com.sap.sse.common.impl.MeterDistance;
301 299
import com.sap.sse.common.impl.MillisecondsDurationImpl;
302 300
import com.sap.sse.common.impl.MillisecondsTimePoint;
301
+import com.sap.sse.common.impl.NauticalMileDistance;
303 302
import com.sap.sse.common.impl.RGBColor;
303
+import com.sap.sse.common.impl.RadianPosition;
304 304
import com.sap.sse.common.impl.TimeRangeImpl;
305 305
import com.sap.sse.common.media.MimeType;
306 306
import com.sap.sse.shared.json.JsonDeserializationException;
java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java
... ...
@@ -110,9 +110,7 @@ import com.sap.sailing.domain.base.configuration.RegattaConfiguration;
110 110
import com.sap.sailing.domain.base.impl.FleetImpl;
111 111
import com.sap.sailing.domain.common.DeviceIdentifier;
112 112
import com.sap.sailing.domain.common.MaxPointsReason;
113
-import com.sap.sailing.domain.common.Positioned;
114 113
import com.sap.sailing.domain.common.RaceIdentifier;
115
-import com.sap.sailing.domain.common.SpeedWithBearing;
116 114
import com.sap.sailing.domain.common.Wind;
117 115
import com.sap.sailing.domain.common.WindSource;
118 116
import com.sap.sailing.domain.common.dto.AnniversaryType;
... ...
@@ -156,7 +154,9 @@ import com.sap.sse.common.Bearing;
156 154
import com.sap.sse.common.Distance;
157 155
import com.sap.sse.common.Duration;
158 156
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
157
+import com.sap.sse.common.Positioned;
159 158
import com.sap.sse.common.Speed;
159
+import com.sap.sse.common.SpeedWithBearing;
160 160
import com.sap.sse.common.TimePoint;
161 161
import com.sap.sse.common.TimeRange;
162 162
import com.sap.sse.common.Timed;
java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/GPSFixMongoHandlerImpl.java
... ...
@@ -2,7 +2,6 @@ package com.sap.sailing.domain.persistence.racelog.tracking.impl;
2 2
3 3
import org.bson.Document;
4 4
5
-import com.sap.sailing.domain.common.Position;
6 5
import com.sap.sailing.domain.common.tracking.GPSFix;
7 6
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
8 7
import com.sap.sailing.domain.persistence.DomainObjectFactory;
... ...
@@ -11,6 +10,8 @@ import com.sap.sailing.domain.persistence.impl.DomainObjectFactoryImpl;
11 10
import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl;
12 11
import com.sap.sailing.domain.persistence.racelog.tracking.FixMongoHandler;
13 12
import static com.sap.sailing.shared.persistence.impl.DomainObjectFactoryImpl.loadPosition;
13
+
14
+import com.sap.sse.common.Position;
14 15
import com.sap.sse.common.TimePoint;
15 16
16 17
public class GPSFixMongoHandlerImpl implements FixMongoHandler<GPSFix> {
java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/racelog/tracking/impl/GPSFixMovingMongoHandlerImpl.java
... ...
@@ -4,8 +4,6 @@ import static com.sap.sailing.shared.persistence.impl.DomainObjectFactoryImpl.lo
4 4
5 5
import org.bson.Document;
6 6
7
-import com.sap.sailing.domain.common.Position;
8
-import com.sap.sailing.domain.common.SpeedWithBearing;
9 7
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
10 8
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
11 9
import com.sap.sailing.domain.persistence.DomainObjectFactory;
... ...
@@ -14,6 +12,8 @@ import com.sap.sailing.domain.persistence.impl.DomainObjectFactoryImpl;
14 12
import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl;
15 13
import com.sap.sailing.domain.persistence.racelog.tracking.FixMongoHandler;
16 14
import com.sap.sse.common.Bearing;
15
+import com.sap.sse.common.Position;
16
+import com.sap.sse.common.SpeedWithBearing;
17 17
import com.sap.sse.common.TimePoint;
18 18
19 19
public class GPSFixMovingMongoHandlerImpl implements FixMongoHandler<GPSFixMoving> {
java/com.sap.sailing.domain.queclinkadapter.test/src/com/sap/sailing/domain/queclinkadapter/impl/TestQueclinkMessageParser.java
... ...
@@ -14,8 +14,6 @@ import java.util.regex.Matcher;
14 14
import org.junit.jupiter.api.BeforeEach;
15 15
import org.junit.jupiter.api.Test;
16 16
17
-import com.sap.sailing.domain.common.Position;
18
-import com.sap.sailing.domain.common.impl.DegreePosition;
19 17
import com.sap.sailing.domain.queclinkadapter.FRIReport;
20 18
import com.sap.sailing.domain.queclinkadapter.HBDAcknowledgement;
21 19
import com.sap.sailing.domain.queclinkadapter.HBDServerAcknowledgement;
... ...
@@ -23,8 +21,10 @@ import com.sap.sailing.domain.queclinkadapter.Message;
23 21
import com.sap.sailing.domain.queclinkadapter.MessageParser;
24 22
import com.sap.sailing.domain.queclinkadapter.MessageType;
25 23
import com.sap.sailing.domain.queclinkadapter.MessageType.Direction;
24
+import com.sap.sse.common.Position;
26 25
import com.sap.sse.common.TimePoint;
27 26
import com.sap.sse.common.Util;
27
+import com.sap.sse.common.impl.DegreePosition;
28 28
29 29
public class TestQueclinkMessageParser {
30 30
private static final double EPSILON = 0.00000001;
java/com.sap.sailing.domain.queclinkadapter/src/com/sap/sailing/domain/queclinkadapter/PositionRelatedReport.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.domain.queclinkadapter;
2 2
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.SpeedWithBearing;
5 3
import com.sap.sse.common.Distance;
4
+import com.sap.sse.common.Position;
5
+import com.sap.sse.common.SpeedWithBearing;
6 6
import com.sap.sse.common.TimePoint;
7 7
8 8
public interface PositionRelatedReport {
java/com.sap.sailing.domain.queclinkadapter/src/com/sap/sailing/domain/queclinkadapter/impl/FRIReportImpl.java
... ...
@@ -5,8 +5,6 @@ import java.util.ArrayList;
5 5
import java.util.List;
6 6
7 7
import com.sap.sailing.domain.base.impl.KilometersPerHourSpeedWithBearingImpl;
8
-import com.sap.sailing.domain.common.impl.DegreePosition;
9
-import com.sap.sailing.domain.common.impl.MeterDistance;
10 8
import com.sap.sailing.domain.queclinkadapter.FRIReport;
11 9
import com.sap.sailing.domain.queclinkadapter.IOStatus;
12 10
import com.sap.sailing.domain.queclinkadapter.MessageType;
... ...
@@ -16,6 +14,8 @@ import com.sap.sailing.domain.queclinkadapter.PositionRelatedReport;
16 14
import com.sap.sse.common.TimePoint;
17 15
import com.sap.sse.common.Util;
18 16
import com.sap.sse.common.impl.DegreeBearingImpl;
17
+import com.sap.sse.common.impl.DegreePosition;
18
+import com.sap.sse.common.impl.MeterDistance;
19 19
20 20
public class FRIReportImpl extends MessageWithDeviceOriginImpl implements FRIReport {
21 21
private final Byte reportId;
java/com.sap.sailing.domain.queclinkadapter/src/com/sap/sailing/domain/queclinkadapter/impl/PositionRelatedReportImpl.java
... ...
@@ -1,9 +1,9 @@
1 1
package com.sap.sailing.domain.queclinkadapter.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.SpeedWithBearing;
5 3
import com.sap.sailing.domain.queclinkadapter.PositionRelatedReport;
6 4
import com.sap.sse.common.Distance;
5
+import com.sap.sse.common.Position;
6
+import com.sap.sse.common.SpeedWithBearing;
7 7
import com.sap.sse.common.TimePoint;
8 8
9 9
public class PositionRelatedReportImpl implements PositionRelatedReport {
java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java
... ...
@@ -29,8 +29,6 @@ import com.sap.sailing.domain.base.Sideline;
29 29
import com.sap.sailing.domain.base.impl.RegattaImpl;
30 30
import com.sap.sailing.domain.common.CompetitorRegistrationType;
31 31
import com.sap.sailing.domain.common.DeviceIdentifier;
32
-import com.sap.sailing.domain.common.impl.DegreePosition;
33
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
34 32
import com.sap.sailing.domain.common.tracking.GPSFix;
35 33
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
36 34
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
... ...
@@ -54,6 +52,8 @@ import com.sap.sailing.server.gateway.deserialization.impl.DeviceAndSessionIdent
54 52
import com.sap.sailing.server.impl.RacingEventServiceImpl;
55 53
import com.sap.sailing.server.interfaces.RacingEventService;
56 54
import com.sap.sse.common.impl.DegreeBearingImpl;
55
+import com.sap.sse.common.impl.DegreePosition;
56
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
57 57
import com.sap.sse.common.impl.MillisecondsTimePoint;
58 58
import com.sap.sse.mongodb.MongoDBService;
59 59
java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/MetadataUpdaterTest.java
... ...
@@ -13,8 +13,6 @@ import com.mongodb.WriteConcern;
13 13
import com.mongodb.client.ClientSession;
14 14
import com.mongodb.client.MongoDatabase;
15 15
import com.sap.sailing.domain.common.DeviceIdentifier;
16
-import com.sap.sailing.domain.common.impl.DegreePosition;
17
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
18 16
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
19 17
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
20 18
import com.sap.sailing.domain.persistence.PersistenceFactory;
... ...
@@ -34,6 +32,8 @@ import com.sap.sse.common.TransformationException;
34 32
import com.sap.sse.common.TypeBasedServiceFinder;
35 33
import com.sap.sse.common.TypeBasedServiceFinderFactory;
36 34
import com.sap.sse.common.impl.DegreeBearingImpl;
35
+import com.sap.sse.common.impl.DegreePosition;
36
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
37 37
import com.sap.sse.mongodb.MongoDBService;
38 38
39 39
public class MetadataUpdaterTest {
java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java
... ...
@@ -50,8 +50,6 @@ import com.sap.sailing.domain.base.impl.RegattaImpl;
50 50
import com.sap.sailing.domain.base.impl.SeriesImpl;
51 51
import com.sap.sailing.domain.common.CompetitorRegistrationType;
52 52
import com.sap.sailing.domain.common.DeviceIdentifier;
53
-import com.sap.sailing.domain.common.impl.DegreePosition;
54
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
55 53
import com.sap.sailing.domain.common.racelog.tracking.NotDenotedForRaceLogTrackingException;
56 54
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
57 55
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
... ...
@@ -81,6 +79,8 @@ import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
81 79
import com.sap.sse.common.TimePoint;
82 80
import com.sap.sse.common.TransformationException;
83 81
import com.sap.sse.common.impl.DegreeBearingImpl;
82
+import com.sap.sse.common.impl.DegreePosition;
83
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
84 84
import com.sap.sse.common.impl.MillisecondsTimePoint;
85 85
import com.sap.sse.mongodb.MongoDBService;
86 86
java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java
... ...
@@ -62,12 +62,7 @@ import com.sap.sailing.domain.base.impl.RegattaImpl;
62 62
import com.sap.sailing.domain.base.impl.WaypointImpl;
63 63
import com.sap.sailing.domain.common.CompetitorRegistrationType;
64 64
import com.sap.sailing.domain.common.DeviceIdentifier;
65
-import com.sap.sailing.domain.common.Position;
66
-import com.sap.sailing.domain.common.SpeedWithBearing;
67 65
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
68
-import com.sap.sailing.domain.common.impl.DegreePosition;
69
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
70
-import com.sap.sailing.domain.common.impl.MeterDistance;
71 66
import com.sap.sailing.domain.common.sensordata.BravoSensorDataMetadata;
72 67
import com.sap.sailing.domain.common.tracking.DoubleVectorFix;
73 68
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -103,11 +98,16 @@ import com.sap.sailing.domain.tracking.impl.EmptyWindStore;
103 98
import com.sap.sailing.domain.tracking.impl.SensorFixTrackImpl;
104 99
import com.sap.sse.common.Distance;
105 100
import com.sap.sse.common.Duration;
101
+import com.sap.sse.common.Position;
102
+import com.sap.sse.common.SpeedWithBearing;
106 103
import com.sap.sse.common.TimePoint;
107 104
import com.sap.sse.common.Timed;
108 105
import com.sap.sse.common.Util.Pair;
109 106
import com.sap.sse.common.WithID;
110 107
import com.sap.sse.common.impl.DegreeBearingImpl;
108
+import com.sap.sse.common.impl.DegreePosition;
109
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
110
+import com.sap.sse.common.impl.MeterDistance;
111 111
import com.sap.sse.common.impl.MillisecondsTimePoint;
112 112
113 113
public class SensorFixStoreAndLoadTest {
java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceLoadsFixesTest.java
... ...
@@ -32,7 +32,6 @@ import com.sap.sailing.domain.base.impl.CourseImpl;
32 32
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
33 33
import com.sap.sailing.domain.base.impl.WaypointImpl;
34 34
import com.sap.sailing.domain.common.DeviceIdentifier;
35
-import com.sap.sailing.domain.common.impl.DegreePosition;
36 35
import com.sap.sailing.domain.common.tracking.GPSFix;
37 36
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
38 37
import com.sap.sailing.domain.racelogtracking.impl.SmartphoneImeiIdentifierImpl;
... ...
@@ -46,6 +45,7 @@ import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
46 45
import com.sap.sse.common.TimePoint;
47 46
import com.sap.sse.common.Timed;
48 47
import com.sap.sse.common.TransformationException;
48
+import com.sap.sse.common.impl.DegreePosition;
49 49
import com.sap.sse.common.impl.MillisecondsTimePoint;
50 50
import com.sap.sse.common.impl.TimeRangeImpl;
51 51
java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/manual/PostFixes.java
... ...
@@ -8,10 +8,6 @@ import java.util.List;
8 8
import java.util.Timer;
9 9
import java.util.TimerTask;
10 10
11
-import com.sap.sailing.domain.common.Position;
12
-import com.sap.sailing.domain.common.SpeedWithBearing;
13
-import com.sap.sailing.domain.common.impl.DegreePosition;
14
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
15 11
import com.sap.sailing.domain.common.tracking.GPSFix;
16 12
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
17 13
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
... ...
@@ -24,8 +20,12 @@ import com.sap.sailing.server.gateway.serialization.impl.DeviceIdentifierJsonSer
24 20
import com.sap.sailing.server.gateway.serialization.impl.GPSFixMovingJsonSerializer;
25 21
import com.sap.sse.common.Bearing;
26 22
import com.sap.sse.common.Distance;
23
+import com.sap.sse.common.Position;
24
+import com.sap.sse.common.SpeedWithBearing;
27 25
import com.sap.sse.common.Util;
28 26
import com.sap.sse.common.impl.DegreeBearingImpl;
27
+import com.sap.sse.common.impl.DegreePosition;
28
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
29 29
import com.sap.sse.common.impl.MillisecondsTimePoint;
30 30
31 31
public class PostFixes extends AbstractJsonOverHttpTest {
java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/CourseArea.java
... ...
@@ -2,11 +2,11 @@ package com.sap.sailing.domain.base;
2 2
3 3
import java.util.UUID;
4 4
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.Positioned;
7 5
import com.sap.sse.common.Distance;
8 6
import com.sap.sse.common.IsManagedByCache;
9 7
import com.sap.sse.common.NamedWithID;
8
+import com.sap.sse.common.Position;
9
+import com.sap.sse.common.Positioned;
10 10
11 11
/**
12 12
* A named area in a sailing {@link Venue} where races take place. Usually, the areas carry names according to the NATO
java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/SharedDomainFactory.java
... ...
@@ -7,9 +7,9 @@ import java.util.UUID;
7 7
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.RaceLogResolver;
8 8
import com.sap.sailing.domain.common.MarkType;
9 9
import com.sap.sailing.domain.common.PassingInstruction;
10
-import com.sap.sailing.domain.common.Position;
11 10
import com.sap.sse.common.Color;
12 11
import com.sap.sse.common.Distance;
12
+import com.sap.sse.common.Position;
13 13
14 14
public interface SharedDomainFactory<RLR extends RaceLogResolver> extends CompetitorFactory, BoatFactory {
15 15
java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/BoatClassImpl.java
... ...
@@ -4,9 +4,9 @@ import com.sap.sailing.domain.base.BoatClass;
4 4
import com.sap.sailing.domain.base.SharedDomainFactory;
5 5
import com.sap.sailing.domain.common.BoatClassMasterdata;
6 6
import com.sap.sailing.domain.common.BoatHullType;
7
-import com.sap.sailing.domain.common.impl.MeterDistance;
8 7
import com.sap.sse.common.Distance;
9 8
import com.sap.sse.common.Duration;
9
+import com.sap.sse.common.impl.MeterDistance;
10 10
import com.sap.sse.common.impl.NamedImpl;
11 11
12 12
public class BoatClassImpl extends NamedImpl implements BoatClass {
java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/CourseAreaImpl.java
... ...
@@ -4,8 +4,8 @@ import java.util.UUID;
4 4
5 5
import com.sap.sailing.domain.base.CourseArea;
6 6
import com.sap.sailing.domain.base.SharedDomainFactory;
7
-import com.sap.sailing.domain.common.Position;
8 7
import com.sap.sse.common.Distance;
8
+import com.sap.sse.common.Position;
9 9
import com.sap.sse.common.impl.NamedImpl;
10 10
11 11
public class CourseAreaImpl extends NamedImpl implements CourseArea {
java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/impl/SharedDomainFactoryImpl.java
... ...
@@ -31,10 +31,10 @@ import com.sap.sailing.domain.base.Waypoint;
31 31
import com.sap.sailing.domain.common.BoatClassMasterdata;
32 32
import com.sap.sailing.domain.common.MarkType;
33 33
import com.sap.sailing.domain.common.PassingInstruction;
34
-import com.sap.sailing.domain.common.Position;
35 34
import com.sap.sse.common.Color;
36 35
import com.sap.sse.common.Distance;
37 36
import com.sap.sse.common.Duration;
37
+import com.sap.sse.common.Position;
38 38
import com.sap.sse.common.WithID;
39 39
import com.sap.sse.concurrent.LockUtil;
40 40
import com.sap.sse.concurrent.NamedReentrantReadWriteLock;
java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/coursetemplate/FixedPositioning.java
... ...
@@ -1,6 +1,6 @@
1 1
package com.sap.sailing.domain.coursetemplate;
2 2
3
-import com.sap.sailing.domain.common.Position;
3
+import com.sap.sse.common.Position;
4 4
5 5
public interface FixedPositioning extends Positioning {
6 6
Position getFixedPosition();
java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/coursetemplate/MarkPropertiesBuilder.java
... ...
@@ -5,11 +5,11 @@ import java.util.UUID;
5 5
6 6
import com.sap.sailing.domain.common.DeviceIdentifier;
7 7
import com.sap.sailing.domain.common.MarkType;
8
-import com.sap.sailing.domain.common.Position;
9 8
import com.sap.sailing.domain.coursetemplate.impl.FixedPositioningImpl;
10 9
import com.sap.sailing.domain.coursetemplate.impl.MarkPropertiesImpl;
11 10
import com.sap.sailing.domain.coursetemplate.impl.TrackingDeviceBasedPositioningImpl;
12 11
import com.sap.sse.common.Color;
12
+import com.sap.sse.common.Position;
13 13
import com.sap.sse.common.TimePoint;
14 14
15 15
public class MarkPropertiesBuilder {
java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/coursetemplate/impl/FixedPositioningImpl.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.domain.coursetemplate.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sailing.domain.coursetemplate.FixedPositioning;
4
+import com.sap.sse.common.Position;
5 5
6 6
public class FixedPositioningImpl implements FixedPositioning {
7 7
private static final long serialVersionUID = 267606077936062645L;
java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/shared/tracking/LineDetails.java
... ...
@@ -3,9 +3,9 @@ package com.sap.sailing.domain.shared.tracking;
3 3
import com.sap.sailing.domain.base.Mark;
4 4
import com.sap.sailing.domain.base.Waypoint;
5 5
import com.sap.sailing.domain.common.NauticalSide;
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sse.common.Bearing;
8 7
import com.sap.sse.common.Distance;
8
+import com.sap.sse.common.Position;
9 9
import com.sap.sse.common.TimePoint;
10 10
11 11
/**
java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/shared/tracking/impl/LineDetailsImpl.java
... ...
@@ -3,10 +3,10 @@ package com.sap.sailing.domain.shared.tracking.impl;
3 3
import com.sap.sailing.domain.base.Mark;
4 4
import com.sap.sailing.domain.base.Waypoint;
5 5
import com.sap.sailing.domain.common.NauticalSide;
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sailing.domain.shared.tracking.LineDetails;
8 7
import com.sap.sse.common.Bearing;
9 8
import com.sap.sse.common.Distance;
9
+import com.sap.sse.common.Position;
10 10
import com.sap.sse.common.TimePoint;
11 11
12 12
public class LineDetailsImpl implements LineDetails {
java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/classes/services/MessageFileServiceImpl.java
... ...
@@ -17,10 +17,6 @@ import java.util.List;
17 17
import java.util.UUID;
18 18
import java.util.stream.Collectors;
19 19
20
-import com.sap.sailing.domain.common.SpeedWithBearing;
21
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
22
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
23
-import com.sap.sailing.domain.common.impl.MeterDistance;
24 20
import com.sap.sailing.domain.swisstimingadapter.Competitor;
25 21
import com.sap.sailing.domain.swisstimingadapter.Mark;
26 22
import com.sap.sailing.domain.swisstimingadapter.Mark.MarkType;
... ...
@@ -42,7 +38,11 @@ import com.sap.sailing.domain.swisstimingadapter.impl.RaceImpl;
42 38
import com.sap.sailing.domain.swisstimingadapter.impl.SailMasterMessageImpl;
43 39
import com.sap.sse.common.Distance;
44 40
import com.sap.sse.common.Speed;
41
+import com.sap.sse.common.SpeedWithBearing;
45 42
import com.sap.sse.common.impl.DegreeBearingImpl;
43
+import com.sap.sse.common.impl.KnotSpeedImpl;
44
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
45
+import com.sap.sse.common.impl.MeterDistance;
46 46
47 47
public class MessageFileServiceImpl implements MessageFileService {
48 48
java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/Fix.java
... ...
@@ -2,10 +2,10 @@ package com.sap.sailing.domain.swisstimingadapter;
2 2
3 3
import java.io.Serializable;
4 4
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.SpeedWithBearing;
7 5
import com.sap.sse.common.Distance;
6
+import com.sap.sse.common.Position;
8 7
import com.sap.sse.common.Speed;
8
+import com.sap.sse.common.SpeedWithBearing;
9 9
10 10
/**
11 11
* Data fix transmitted periodically from the SwissTiming Sail Master system, telling boat position and speed
java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SwissTimingMessage.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.domain.swisstimingadapter;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sailing.udpconnector.UDPMessage;
4
+import com.sap.sse.common.Position;
5 5
import com.sap.sse.common.Speed;
6 6
import com.sap.sse.common.TimePoint;
7 7
java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/AbstractSailMasterConnector.java
... ...
@@ -28,14 +28,7 @@ import java.util.logging.Logger;
28 28
import java.util.stream.Collectors;
29 29
30 30
import com.sap.sailing.domain.base.BoatClass;
31
-import com.sap.sailing.domain.common.Position;
32
-import com.sap.sailing.domain.common.SpeedWithBearing;
33 31
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
34
-import com.sap.sailing.domain.common.impl.DegreePosition;
35
-import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
36
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
37
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
38
-import com.sap.sailing.domain.common.impl.MeterDistance;
39 32
import com.sap.sailing.domain.swisstimingadapter.Competitor;
40 33
import com.sap.sailing.domain.swisstimingadapter.Course;
41 34
import com.sap.sailing.domain.swisstimingadapter.Fix;
... ...
@@ -52,10 +45,17 @@ import com.sap.sailing.domain.swisstimingadapter.StartList;
52 45
import com.sap.sailing.domain.swisstimingadapter.TrackerType;
53 46
import com.sap.sse.common.AbstractBearing;
54 47
import com.sap.sse.common.Distance;
48
+import com.sap.sse.common.Position;
55 49
import com.sap.sse.common.Speed;
50
+import com.sap.sse.common.SpeedWithBearing;
56 51
import com.sap.sse.common.TimePoint;
57 52
import com.sap.sse.common.Util;
58 53
import com.sap.sse.common.impl.DegreeBearingImpl;
54
+import com.sap.sse.common.impl.DegreePosition;
55
+import com.sap.sse.common.impl.KilometersPerHourSpeedImpl;
56
+import com.sap.sse.common.impl.KnotSpeedImpl;
57
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
58
+import com.sap.sse.common.impl.MeterDistance;
59 59
import com.sap.sse.common.impl.MillisecondsTimePoint;
60 60
import com.sap.sse.shared.util.impl.UUIDHelper;
61 61
java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/FixImpl.java
... ...
@@ -2,12 +2,12 @@ package com.sap.sailing.domain.swisstimingadapter.impl;
2 2
3 3
import java.io.Serializable;
4 4
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.SpeedWithBearing;
7 5
import com.sap.sailing.domain.swisstimingadapter.Fix;
8 6
import com.sap.sailing.domain.swisstimingadapter.TrackerType;
9 7
import com.sap.sse.common.Distance;
8
+import com.sap.sse.common.Position;
10 9
import com.sap.sse.common.Speed;
10
+import com.sap.sse.common.SpeedWithBearing;
11 11
12 12
public class FixImpl implements Fix {
13 13
private final Serializable trackedObjectId;
java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingMessageImpl.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.domain.swisstimingadapter.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sailing.domain.swisstimingadapter.SwissTimingMessage;
4
+import com.sap.sse.common.Position;
5 5
import com.sap.sse.common.Speed;
6 6
import com.sap.sse.common.TimePoint;
7 7
java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingMessageParserImpl.java
... ...
@@ -3,11 +3,11 @@ package com.sap.sailing.domain.swisstimingadapter.impl;
3 3
import java.net.DatagramPacket;
4 4
5 5
import com.sap.sailing.domain.base.impl.KilometersPerHourSpeedWithBearingImpl;
6
-import com.sap.sailing.domain.common.impl.DegreePosition;
7 6
import com.sap.sailing.domain.swisstimingadapter.SwissTimingFormatException;
8 7
import com.sap.sailing.domain.swisstimingadapter.SwissTimingMessage;
9 8
import com.sap.sailing.domain.swisstimingadapter.SwissTimingMessageParser;
10 9
import com.sap.sse.common.impl.DegreeBearingImpl;
10
+import com.sap.sse.common.impl.DegreePosition;
11 11
import com.sap.sse.common.impl.MillisecondsTimePoint;
12 12
13 13
public class SwissTimingMessageParserImpl implements SwissTimingMessageParser {
java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java
... ...
@@ -28,12 +28,10 @@ import com.sap.sailing.domain.base.RaceDefinition;
28 28
import com.sap.sailing.domain.base.Regatta;
29 29
import com.sap.sailing.domain.base.Sideline;
30 30
import com.sap.sailing.domain.base.Waypoint;
31
-import com.sap.sailing.domain.common.Position;
32 31
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
33 32
import com.sap.sailing.domain.common.Wind;
34 33
import com.sap.sailing.domain.common.WindSource;
35 34
import com.sap.sailing.domain.common.WindSourceType;
36
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
37 35
import com.sap.sailing.domain.common.impl.WindImpl;
38 36
import com.sap.sailing.domain.common.impl.WindSourceWithAdditionalID;
39 37
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -74,9 +72,11 @@ import com.sap.sailing.domain.tracking.WindTrack;
74 72
import com.sap.sailing.domain.tracking.impl.TrackedRaceStatusImpl;
75 73
import com.sap.sailing.domain.tracking.impl.UpdateHandler;
76 74
import com.sap.sse.common.Distance;
75
+import com.sap.sse.common.Position;
77 76
import com.sap.sse.common.TimePoint;
78 77
import com.sap.sse.common.Util;
79 78
import com.sap.sse.common.impl.DegreeBearingImpl;
79
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
80 80
import com.sap.sse.common.impl.MillisecondsTimePoint;
81 81
82 82
import difflib.PatchFailedException;
java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayToDomainAdapter.java
... ...
@@ -27,12 +27,8 @@ import com.sap.sailing.domain.base.Regatta;
27 27
import com.sap.sailing.domain.base.Sideline;
28 28
import com.sap.sailing.domain.base.Waypoint;
29 29
import com.sap.sailing.domain.common.PassingInstruction;
30
-import com.sap.sailing.domain.common.Position;
31
-import com.sap.sailing.domain.common.SpeedWithBearing;
32 30
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
33 31
import com.sap.sailing.domain.common.WindSourceType;
34
-import com.sap.sailing.domain.common.impl.DegreePosition;
35
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
36 32
import com.sap.sailing.domain.common.impl.WindImpl;
37 33
import com.sap.sailing.domain.common.impl.WindSourceWithAdditionalID;
38 34
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -63,10 +59,14 @@ import com.sap.sailing.domain.tracking.impl.EmptyWindStore;
63 59
import com.sap.sailing.domain.tracking.impl.MarkPassingImpl;
64 60
import com.sap.sailing.domain.tracking.impl.TrackedRaceStatusImpl;
65 61
import com.sap.sse.common.Bearing;
62
+import com.sap.sse.common.Position;
63
+import com.sap.sse.common.SpeedWithBearing;
66 64
import com.sap.sse.common.TimePoint;
67 65
import com.sap.sse.common.Util;
68 66
import com.sap.sse.common.Util.Pair;
69 67
import com.sap.sse.common.impl.DegreeBearingImpl;
68
+import com.sap.sse.common.impl.DegreePosition;
69
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
70 70
import com.sap.sse.common.impl.MillisecondsTimePoint;
71 71
72 72
import difflib.PatchFailedException;
java/com.sap.sailing.domain.test/resources/IncrementalLeaderboardDTO.ser
73 73
index ceba5ca..c23a023
... ...
Binary files a/java/com.sap.sailing.domain.test/resources/IncrementalLeaderboardDTO.ser and b/java/com.sap.sailing.domain.test/resources/IncrementalLeaderboardDTO.ser differ
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/BearingChangeAnalyzerTest.java
... ...
@@ -4,7 +4,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
4 4
5 5
import org.junit.jupiter.api.Test;
6 6
7
-import com.sap.sailing.domain.common.BearingChangeAnalyzer;
7
+import com.sap.sse.common.BearingChangeAnalyzer;
8 8
import com.sap.sse.common.impl.DegreeBearingImpl;
9 9
10 10
public class BearingChangeAnalyzerTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/BeaufortTest.java
... ...
@@ -4,8 +4,8 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
4 4
5 5
import org.junit.jupiter.api.Test;
6 6
7
-import com.sap.sailing.domain.common.impl.MeterPerSecondSpeedImpl;
8 7
import com.sap.sse.common.Speed;
8
+import com.sap.sse.common.impl.MeterPerSecondSpeedImpl;
9 9
10 10
public class BeaufortTest {
11 11
@Test
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/CompactTimePointTest.java
... ...
@@ -4,12 +4,12 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
4 4
5 5
import org.junit.jupiter.api.Test;
6 6
7
-import com.sap.sailing.domain.common.impl.DegreePosition;
8 7
import com.sap.sailing.domain.common.tracking.impl.CompactionNotPossibleException;
9 8
import com.sap.sailing.domain.common.tracking.impl.VeryCompactGPSFixMovingImpl;
10 9
import com.sap.sse.common.Duration;
11 10
import com.sap.sse.common.TimePoint;
12 11
import com.sap.sse.common.TimeRange;
12
+import com.sap.sse.common.impl.DegreePosition;
13 13
14 14
public class CompactTimePointTest {
15 15
@Test
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/ScalableBearingTest.java
... ...
@@ -4,9 +4,9 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
4 4
5 5
import org.junit.jupiter.api.Test;
6 6
7
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
8 7
import com.sap.sse.common.Bearing;
9 8
import com.sap.sse.common.impl.DegreeBearingImpl;
9
+import com.sap.sse.common.scalablevalue.impl.ScalableBearing;
10 10
11 11
public class ScalableBearingTest {
12 12
@Test
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/maneuverdetection/impl/CurveEnteringAndExitingComputationTest.java
... ...
@@ -11,14 +11,14 @@ import java.util.List;
11 11
import org.junit.jupiter.api.Test;
12 12
13 13
import com.sap.sailing.domain.common.NauticalSide;
14
-import com.sap.sailing.domain.common.SpeedWithBearing;
15
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
16 14
import com.sap.sailing.domain.tracking.SpeedWithBearingStep;
17 15
import com.sap.sailing.domain.tracking.SpeedWithBearingStepsIterable;
18 16
import com.sap.sailing.domain.tracking.impl.SpeedWithBearingStepImpl;
19 17
import com.sap.sse.common.Bearing;
18
+import com.sap.sse.common.SpeedWithBearing;
20 19
import com.sap.sse.common.TimePoint;
21 20
import com.sap.sse.common.impl.DegreeBearingImpl;
21
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
22 22
import com.sap.sse.common.impl.MillisecondsTimePoint;
23 23
24 24
/**
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/maneuverdetection/impl/IncrementalManeuverComputationTest.java
... ...
@@ -19,7 +19,6 @@ import org.junit.jupiter.api.Test;
19 19
import com.sap.sailing.domain.base.Competitor;
20 20
import com.sap.sailing.domain.common.NoWindException;
21 21
import com.sap.sailing.domain.common.WindSourceType;
22
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
23 22
import com.sap.sailing.domain.common.impl.WindImpl;
24 23
import com.sap.sailing.domain.common.impl.WindSourceImpl;
25 24
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -34,6 +33,7 @@ import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
34 33
import com.sap.sailing.domain.tractracadapter.ReceiverType;
35 34
import com.sap.sse.common.TimePoint;
36 35
import com.sap.sse.common.impl.DegreeBearingImpl;
36
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
37 37
import com.sap.sse.common.impl.MillisecondsDurationImpl;
38 38
import com.sap.sse.common.impl.MillisecondsTimePoint;
39 39
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/markpassing/impl/WaypointPositionAndDistanceCacheTest.java
... ...
@@ -24,9 +24,6 @@ import com.sap.sailing.domain.base.impl.CourseImpl;
24 24
import com.sap.sailing.domain.base.impl.MarkImpl;
25 25
import com.sap.sailing.domain.base.impl.WaypointImpl;
26 26
import com.sap.sailing.domain.common.PassingInstruction;
27
-import com.sap.sailing.domain.common.impl.DegreePosition;
28
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
29
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
30 27
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
31 28
import com.sap.sailing.domain.markpassingcalculation.impl.WaypointPositionAndDistanceCache;
32 29
import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver;
... ...
@@ -38,7 +35,10 @@ import com.sap.sailing.domain.tracking.impl.EmptyWindStore;
38 35
import com.sap.sse.common.Duration;
39 36
import com.sap.sse.common.TimePoint;
40 37
import com.sap.sse.common.impl.DegreeBearingImpl;
38
+import com.sap.sse.common.impl.DegreePosition;
39
+import com.sap.sse.common.impl.KnotSpeedImpl;
41 40
import com.sap.sse.common.impl.MillisecondsTimePoint;
41
+import com.sap.sse.common.impl.NauticalMileDistance;
42 42
43 43
public class WaypointPositionAndDistanceCacheTest {
44 44
private WaypointPositionAndDistanceCache cache;
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/markpassingcalculation/impl/CandidateFinderImplWhiteBoxTest.java
... ...
@@ -23,10 +23,6 @@ import com.sap.sailing.domain.base.Competitor;
23 23
import com.sap.sailing.domain.base.CompetitorWithBoat;
24 24
import com.sap.sailing.domain.base.Waypoint;
25 25
import com.sap.sailing.domain.base.configuration.impl.EmptyRegattaConfiguration;
26
-import com.sap.sailing.domain.common.Position;
27
-import com.sap.sailing.domain.common.SpeedWithBearing;
28
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
29
-import com.sap.sailing.domain.common.impl.MeterDistance;
30 26
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
31 27
import com.sap.sailing.domain.markpassingcalculation.Candidate;
32 28
import com.sap.sailing.domain.markpassingcalculation.CandidateFinder;
... ...
@@ -36,10 +32,14 @@ import com.sap.sailing.domain.test.TrackBasedTest;
36 32
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
37 33
import com.sap.sailing.domain.tracking.impl.TrackedRaceImpl;
38 34
import com.sap.sse.common.Duration;
35
+import com.sap.sse.common.Position;
36
+import com.sap.sse.common.SpeedWithBearing;
39 37
import com.sap.sse.common.TimePoint;
40 38
import com.sap.sse.common.Util;
41 39
import com.sap.sse.common.Util.Pair;
42 40
import com.sap.sse.common.impl.DegreeBearingImpl;
41
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
42
+import com.sap.sse.common.impl.MeterDistance;
43 43
import com.sap.sse.common.impl.MillisecondsTimePoint;
44 44
45 45
public class CandidateFinderImplWhiteBoxTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/markpassingcalculation/impl/StationarySequenceBasedFilterTest.java
... ...
@@ -12,10 +12,6 @@ import org.junit.jupiter.api.BeforeEach;
12 12
import org.junit.jupiter.api.Test;
13 13
14 14
import com.sap.sailing.domain.base.Competitor;
15
-import com.sap.sailing.domain.common.Position;
16
-import com.sap.sailing.domain.common.SpeedWithBearing;
17
-import com.sap.sailing.domain.common.impl.DegreePosition;
18
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
19 15
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
20 16
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
21 17
import com.sap.sailing.domain.markpassingcalculation.Candidate;
... ...
@@ -24,10 +20,14 @@ import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
24 20
import com.sap.sailing.domain.tracking.impl.DynamicGPSFixMovingTrackImpl;
25 21
import com.sap.sse.common.Bearing;
26 22
import com.sap.sse.common.Duration;
23
+import com.sap.sse.common.Position;
27 24
import com.sap.sse.common.Speed;
25
+import com.sap.sse.common.SpeedWithBearing;
28 26
import com.sap.sse.common.TimePoint;
29 27
import com.sap.sse.common.Util;
30 28
import com.sap.sse.common.impl.DegreeBearingImpl;
29
+import com.sap.sse.common.impl.DegreePosition;
30
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
31 31
32 32
public class StationarySequenceBasedFilterTest extends AbstractCandidateFilterTestSupport {
33 33
private StationarySequence stationarySequence;
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/markpassingcalculation/impl/StationarySequenceTest.java
... ...
@@ -18,10 +18,6 @@ import com.sap.sailing.domain.base.Waypoint;
18 18
import com.sap.sailing.domain.base.impl.ControlPointWithTwoMarksImpl;
19 19
import com.sap.sailing.domain.base.impl.MarkImpl;
20 20
import com.sap.sailing.domain.base.impl.WaypointImpl;
21
-import com.sap.sailing.domain.common.Position;
22
-import com.sap.sailing.domain.common.SpeedWithBearing;
23
-import com.sap.sailing.domain.common.impl.DegreePosition;
24
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
25 21
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
26 22
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
27 23
import com.sap.sailing.domain.markpassingcalculation.Candidate;
... ...
@@ -29,9 +25,13 @@ import com.sap.sailing.domain.test.TrackBasedTest;
29 25
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
30 26
import com.sap.sailing.domain.tracking.impl.DynamicGPSFixMovingTrackImpl;
31 27
import com.sap.sse.common.Duration;
28
+import com.sap.sse.common.Position;
29
+import com.sap.sse.common.SpeedWithBearing;
32 30
import com.sap.sse.common.TimePoint;
33 31
import com.sap.sse.common.Util;
34 32
import com.sap.sse.common.impl.DegreeBearingImpl;
33
+import com.sap.sse.common.impl.DegreePosition;
34
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
35 35
import com.sap.sse.common.impl.MillisecondsTimePoint;
36 36
37 37
public class StationarySequenceTest extends AbstractCandidateFilterTestSupport {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/orc/ORCPerformanceCurveRankingTest.java
... ...
@@ -36,9 +36,6 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLogEvent;
36 36
import com.sap.sailing.domain.base.Boat;
37 37
import com.sap.sailing.domain.base.Competitor;
38 38
import com.sap.sailing.domain.common.WindSourceType;
39
-import com.sap.sailing.domain.common.impl.DegreePosition;
40
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
41
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
42 39
import com.sap.sailing.domain.common.impl.WindImpl;
43 40
import com.sap.sailing.domain.common.impl.WindSourceImpl;
44 41
import com.sap.sailing.domain.common.orc.ORCCertificate;
... ...
@@ -51,7 +48,10 @@ import com.sap.sse.common.Duration;
51 48
import com.sap.sse.common.TimePoint;
52 49
import com.sap.sse.common.Util;
53 50
import com.sap.sse.common.impl.DegreeBearingImpl;
51
+import com.sap.sse.common.impl.DegreePosition;
52
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
54 53
import com.sap.sse.common.impl.MillisecondsTimePoint;
54
+import com.sap.sse.common.impl.NauticalMileDistance;
55 55
import com.sap.sse.common.impl.SecondsDurationImpl;
56 56
57 57
/**
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/orc/TestORCCertificateImporterRMS.java
... ...
@@ -12,10 +12,10 @@ import java.util.Collection;
12 12
import org.json.simple.parser.ParseException;
13 13
import org.junit.jupiter.api.Test;
14 14
15
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
16 15
import com.sap.sailing.domain.common.orc.ORCCertificate;
17 16
import com.sap.sailing.domain.orc.impl.ORCCertificatesRmsImporter;
18 17
import com.sap.sse.common.Duration;
18
+import com.sap.sse.common.impl.KnotSpeedImpl;
19 19
20 20
public class TestORCCertificateImporterRMS extends AbstractORCCertificateImporterTest {
21 21
private static final String RESOURCES = "resources/orc/";
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/orc/TestORCPerformanceCurve.java
... ...
@@ -28,8 +28,6 @@ import org.junit.jupiter.api.function.Executable;
28 28
import org.w3c.dom.DOMException;
29 29
import org.xml.sax.SAXException;
30 30
31
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
32
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
33 31
import com.sap.sailing.domain.common.orc.ORCCertificate;
34 32
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveCourse;
35 33
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveLeg;
... ...
@@ -46,6 +44,8 @@ import com.sap.sse.common.Duration;
46 44
import com.sap.sse.common.Speed;
47 45
import com.sap.sse.common.Util;
48 46
import com.sap.sse.common.impl.DegreeBearingImpl;
47
+import com.sap.sse.common.impl.KnotSpeedImpl;
48
+import com.sap.sse.common.impl.NauticalMileDistance;
49 49
50 50
/**
51 51
*
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/orc/TestORCPerformanceCurveCourse.java
... ...
@@ -11,12 +11,7 @@ import org.junit.jupiter.api.Test;
11 11
import org.mockito.ArgumentMatchers;
12 12
import org.mockito.Mockito;
13 13
14
-import com.sap.sailing.domain.common.Position;
15
-import com.sap.sailing.domain.common.SpeedWithBearing;
16 14
import com.sap.sailing.domain.common.Wind;
17
-import com.sap.sailing.domain.common.impl.DegreePosition;
18
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
19
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
20 15
import com.sap.sailing.domain.common.impl.WindImpl;
21 16
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveCourse;
22 17
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveLeg;
... ...
@@ -29,10 +24,15 @@ import com.sap.sailing.domain.tracking.TrackedRace;
29 24
import com.sap.sailing.domain.tracking.WindLegTypeAndLegBearingAndORCPerformanceCurveCache;
30 25
import com.sap.sailing.domain.tracking.impl.WindWithConfidenceImpl;
31 26
import com.sap.sse.common.Bearing;
27
+import com.sap.sse.common.Position;
28
+import com.sap.sse.common.SpeedWithBearing;
32 29
import com.sap.sse.common.TimePoint;
33 30
import com.sap.sse.common.Util;
34 31
import com.sap.sse.common.impl.DegreeBearingImpl;
32
+import com.sap.sse.common.impl.DegreePosition;
33
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
35 34
import com.sap.sse.common.impl.MillisecondsTimePoint;
35
+import com.sap.sse.common.impl.NauticalMileDistance;
36 36
37 37
public class TestORCPerformanceCurveCourse {
38 38
@Test
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/orc/TestORCRankingMetricCollaborationWithRaceLogAndRegattaLog.java
... ...
@@ -29,7 +29,6 @@ import com.sap.sailing.domain.base.Competitor;
29 29
import com.sap.sailing.domain.base.CompetitorWithBoat;
30 30
import com.sap.sailing.domain.base.DomainFactory;
31 31
import com.sap.sailing.domain.common.abstractlog.NotRevokableException;
32
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
33 32
import com.sap.sailing.domain.common.orc.ORCCertificate;
34 33
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveCourse;
35 34
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveLeg;
... ...
@@ -43,6 +42,7 @@ import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
43 42
import com.sap.sse.common.Util;
44 43
import com.sap.sse.common.impl.DegreeBearingImpl;
45 44
import com.sap.sse.common.impl.MillisecondsTimePoint;
45
+import com.sap.sse.common.impl.NauticalMileDistance;
46 46
47 47
/**
48 48
* An {@link ORCPerformanceCurveRankingMetric} observes its {@link TrackedRace} for the regatta log
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestCrossFleetScoring.java
... ...
@@ -47,8 +47,6 @@ import com.sap.sailing.domain.common.BoatClassMasterdata;
47 47
import com.sap.sailing.domain.common.CompetitorRegistrationType;
48 48
import com.sap.sailing.domain.common.ScoringSchemeType;
49 49
import com.sap.sailing.domain.common.WindSourceType;
50
-import com.sap.sailing.domain.common.impl.DegreePosition;
51
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
52 50
import com.sap.sailing.domain.common.impl.WindImpl;
53 51
import com.sap.sailing.domain.common.impl.WindSourceImpl;
54 52
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
... ...
@@ -68,6 +66,8 @@ import com.sap.sse.common.Duration;
68 66
import com.sap.sse.common.TimePoint;
69 67
import com.sap.sse.common.Util.Pair;
70 68
import com.sap.sse.common.impl.DegreeBearingImpl;
69
+import com.sap.sse.common.impl.DegreePosition;
70
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
71 71
import com.sap.sse.common.impl.MillisecondsDurationImpl;
72 72
import com.sap.sse.common.impl.MillisecondsTimePoint;
73 73
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java
... ...
@@ -38,8 +38,6 @@ import com.sap.sailing.domain.common.CompetitorRegistrationType;
38 38
import com.sap.sailing.domain.common.RankingMetrics;
39 39
import com.sap.sailing.domain.common.ScoringSchemeType;
40 40
import com.sap.sailing.domain.common.WindSourceType;
41
-import com.sap.sailing.domain.common.impl.DegreePosition;
42
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
43 41
import com.sap.sailing.domain.common.impl.WindImpl;
44 42
import com.sap.sailing.domain.common.impl.WindSourceImpl;
45 43
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
... ...
@@ -59,6 +57,8 @@ import com.sap.sailing.domain.tracking.impl.MarkPassingImpl;
59 57
import com.sap.sse.common.Duration;
60 58
import com.sap.sse.common.TimePoint;
61 59
import com.sap.sse.common.impl.DegreeBearingImpl;
60
+import com.sap.sse.common.impl.DegreePosition;
61
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
62 62
import com.sap.sse.common.impl.MillisecondsTimePoint;
63 63
64 64
/**
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java
... ...
@@ -37,8 +37,6 @@ import com.sap.sailing.domain.common.CompetitorRegistrationType;
37 37
import com.sap.sailing.domain.common.RankingMetrics;
38 38
import com.sap.sailing.domain.common.ScoringSchemeType;
39 39
import com.sap.sailing.domain.common.WindSourceType;
40
-import com.sap.sailing.domain.common.impl.DegreePosition;
41
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
42 40
import com.sap.sailing.domain.common.impl.WindImpl;
43 41
import com.sap.sailing.domain.common.impl.WindSourceImpl;
44 42
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
... ...
@@ -57,6 +55,8 @@ import com.sap.sailing.domain.tracking.impl.MarkPassingImpl;
57 55
import com.sap.sse.common.Duration;
58 56
import com.sap.sse.common.TimePoint;
59 57
import com.sap.sse.common.impl.DegreeBearingImpl;
58
+import com.sap.sse.common.impl.DegreePosition;
59
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
60 60
import com.sap.sse.common.impl.MillisecondsDurationImpl;
61 61
import com.sap.sse.common.impl.MillisecondsTimePoint;
62 62
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/BearingTest.java
... ...
@@ -10,19 +10,19 @@ import java.util.Collections;
10 10
import org.junit.jupiter.api.Test;
11 11
12 12
import com.sap.sailing.domain.base.impl.PositionWithConfidenceImpl;
13
-import com.sap.sailing.domain.common.BearingCluster;
14
-import com.sap.sailing.domain.common.Position;
15
-import com.sap.sailing.domain.common.confidence.BearingWithConfidence;
16
-import com.sap.sailing.domain.common.confidence.BearingWithConfidenceCluster;
17
-import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
18
-import com.sap.sailing.domain.common.confidence.ConfidenceFactory;
19
-import com.sap.sailing.domain.common.confidence.impl.BearingWithConfidenceImpl;
20
-import com.sap.sailing.domain.common.impl.DegreePosition;
21
-import com.sap.sailing.domain.common.impl.RadianBearingImpl;
22
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition;
23 13
import com.sap.sse.common.Bearing;
14
+import com.sap.sse.common.BearingCluster;
15
+import com.sap.sse.common.Position;
16
+import com.sap.sse.common.confidence.BearingWithConfidence;
17
+import com.sap.sse.common.confidence.BearingWithConfidenceCluster;
18
+import com.sap.sse.common.confidence.ConfidenceBasedAverager;
19
+import com.sap.sse.common.confidence.ConfidenceFactory;
20
+import com.sap.sse.common.confidence.HasConfidence;
21
+import com.sap.sse.common.confidence.impl.BearingWithConfidenceImpl;
24 22
import com.sap.sse.common.impl.DegreeBearingImpl;
25
-import com.sap.sse.common.scalablevalue.HasConfidence;
23
+import com.sap.sse.common.impl.DegreePosition;
24
+import com.sap.sse.common.impl.RadianBearingImpl;
25
+import com.sap.sse.common.scalablevalue.impl.ScalablePosition;
26 26
27 27
public class BearingTest {
28 28
@Test
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/BoundsTest.java
... ...
@@ -6,9 +6,9 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
6 6
7 7
import org.junit.jupiter.api.Test;
8 8
9
-import com.sap.sailing.domain.common.Bounds;
10
-import com.sap.sailing.domain.common.impl.BoundsImpl;
11
-import com.sap.sailing.domain.common.impl.DegreePosition;
9
+import com.sap.sse.common.Bounds;
10
+import com.sap.sse.common.impl.BoundsImpl;
11
+import com.sap.sse.common.impl.DegreePosition;
12 12
13 13
public class BoundsTest {
14 14
@Test
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/BravoFixTrackFoiledDistanceCacheTest.java
... ...
@@ -17,9 +17,6 @@ import org.junit.jupiter.api.Test;
17 17
18 18
import com.sap.sailing.domain.base.CourseArea;
19 19
import com.sap.sailing.domain.base.impl.CourseAreaImpl;
20
-import com.sap.sailing.domain.common.impl.DegreePosition;
21
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
22
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
23 20
import com.sap.sailing.domain.common.sensordata.BravoExtendedSensorDataMetadata;
24 21
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
25 22
import com.sap.sailing.domain.common.tracking.impl.BravoExtendedFixImpl;
... ...
@@ -33,7 +30,10 @@ import com.sap.sailing.domain.tracking.impl.DynamicGPSFixMovingTrackImpl;
33 30
import com.sap.sse.common.Distance;
34 31
import com.sap.sse.common.TimePoint;
35 32
import com.sap.sse.common.impl.DegreeBearingImpl;
33
+import com.sap.sse.common.impl.DegreePosition;
34
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
36 35
import com.sap.sse.common.impl.MillisecondsTimePoint;
36
+import com.sap.sse.common.impl.NauticalMileDistance;
37 37
38 38
/**
39 39
* See bug4629. This test reproduces an order of fix insertion into a {@link BravoFixTrack}, cache invalidation,
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ConcurrencyTest.java
... ...
@@ -18,8 +18,6 @@ import org.junit.jupiter.api.Test;
18 18
import com.sap.sailing.domain.base.Competitor;
19 19
import com.sap.sailing.domain.base.impl.DouglasPeucker;
20 20
import com.sap.sailing.domain.common.WindSourceType;
21
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
22
-import com.sap.sailing.domain.common.impl.MeterDistance;
23 21
import com.sap.sailing.domain.common.impl.WindImpl;
24 22
import com.sap.sailing.domain.common.impl.WindSourceImpl;
25 23
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -27,6 +25,8 @@ import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
27 25
import com.sap.sailing.domain.tracking.MarkPassing;
28 26
import com.sap.sailing.domain.tractracadapter.ReceiverType;
29 27
import com.sap.sse.common.impl.DegreeBearingImpl;
28
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
29
+import com.sap.sse.common.impl.MeterDistance;
30 30
import com.sap.sse.common.impl.MillisecondsTimePoint;
31 31
import com.sap.sse.util.ThreadPoolUtil;
32 32
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ConfidenceTest.java
... ...
@@ -13,33 +13,33 @@ import org.junit.jupiter.api.Test;
13 13
14 14
import com.sap.sailing.domain.base.PositionWithConfidence;
15 15
import com.sap.sailing.domain.base.impl.PositionWithConfidenceImpl;
16
-import com.sap.sailing.domain.common.Position;
17 16
import com.sap.sailing.domain.common.Wind;
18
-import com.sap.sailing.domain.common.confidence.BearingWithConfidence;
19
-import com.sap.sailing.domain.common.confidence.BearingWithConfidenceCluster;
20
-import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
21
-import com.sap.sailing.domain.common.confidence.Weigher;
22
-import com.sap.sailing.domain.common.confidence.impl.BearingWithConfidenceImpl;
23 17
import com.sap.sailing.domain.common.confidence.impl.ScalableWind;
24
-import com.sap.sailing.domain.common.impl.DegreePosition;
25
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
26
-import com.sap.sailing.domain.common.impl.MeterDistance;
27
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
28
-import com.sap.sailing.domain.common.impl.RadianBearingImpl;
29 18
import com.sap.sailing.domain.common.impl.WindImpl;
30
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition;
31 19
import com.sap.sailing.domain.confidence.ConfidenceBasedWindAverager;
32 20
import com.sap.sailing.domain.confidence.ConfidenceFactory;
33 21
import com.sap.sailing.domain.tracking.WindWithConfidence;
34 22
import com.sap.sailing.domain.tracking.impl.WindWithConfidenceImpl;
35 23
import com.sap.sse.common.Bearing;
24
+import com.sap.sse.common.Position;
36 25
import com.sap.sse.common.TimePoint;
26
+import com.sap.sse.common.confidence.BearingWithConfidence;
27
+import com.sap.sse.common.confidence.BearingWithConfidenceCluster;
28
+import com.sap.sse.common.confidence.ConfidenceBasedAverager;
29
+import com.sap.sse.common.confidence.HasConfidence;
30
+import com.sap.sse.common.confidence.Weigher;
31
+import com.sap.sse.common.confidence.impl.BearingWithConfidenceImpl;
37 32
import com.sap.sse.common.impl.DegreeBearingImpl;
33
+import com.sap.sse.common.impl.DegreePosition;
34
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
35
+import com.sap.sse.common.impl.MeterDistance;
38 36
import com.sap.sse.common.impl.MillisecondsTimePoint;
39
-import com.sap.sse.common.scalablevalue.HasConfidence;
37
+import com.sap.sse.common.impl.NauticalMileDistance;
38
+import com.sap.sse.common.impl.RadianBearingImpl;
40 39
import com.sap.sse.common.scalablevalue.HasConfidenceAndIsScalable;
41 40
import com.sap.sse.common.scalablevalue.ScalableDoubleWithConfidence;
42 41
import com.sap.sse.common.scalablevalue.ScalableValue;
42
+import com.sap.sse.common.scalablevalue.impl.ScalablePosition;
43 43
44 44
public class ConfidenceTest {
45 45
private static class ScalableBearing implements ScalableValue<ScalableBearing, Bearing> {
... ...
@@ -534,35 +534,35 @@ public class ConfidenceTest {
534 534
535 535
@Test
536 536
public void simpleApproximateScalableBearingDistanceTest1() {
537
- com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing sb = new com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing(new DegreeBearingImpl(100));
537
+ com.sap.sse.common.scalablevalue.impl.ScalableBearing sb = new com.sap.sse.common.scalablevalue.impl.ScalableBearing(new DegreeBearingImpl(100));
538 538
Bearing b = new DegreeBearingImpl(280);
539 539
assertEquals(360./Math.PI, sb.getApproximateDegreeDistanceTo(b), 0.001);
540 540
}
541 541
542 542
@Test
543 543
public void simpleApproximateScalableBearingDistanceTest2() {
544
- com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing sb = new com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing(new DegreeBearingImpl(0));
544
+ com.sap.sse.common.scalablevalue.impl.ScalableBearing sb = new com.sap.sse.common.scalablevalue.impl.ScalableBearing(new DegreeBearingImpl(0));
545 545
Bearing b = new DegreeBearingImpl(180);
546 546
assertEquals(360./Math.PI, sb.getApproximateDegreeDistanceTo(b), 0.001);
547 547
}
548 548
549 549
@Test
550 550
public void simpleApproximateScalableBearingDistanceTest3() {
551
- com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing sb = new com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing(new DegreeBearingImpl(100));
551
+ com.sap.sse.common.scalablevalue.impl.ScalableBearing sb = new com.sap.sse.common.scalablevalue.impl.ScalableBearing(new DegreeBearingImpl(100));
552 552
Bearing b = new DegreeBearingImpl(101);
553 553
assertEquals(1, sb.getApproximateDegreeDistanceTo(b), 0.01);
554 554
}
555 555
556 556
@Test
557 557
public void simpleApproximateScalableBearingDistanceTest4() {
558
- com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing sb = new com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing(new DegreeBearingImpl(0));
558
+ com.sap.sse.common.scalablevalue.impl.ScalableBearing sb = new com.sap.sse.common.scalablevalue.impl.ScalableBearing(new DegreeBearingImpl(0));
559 559
Bearing b = new DegreeBearingImpl(1);
560 560
assertEquals(1, sb.getApproximateDegreeDistanceTo(b), 0.01);
561 561
}
562 562
563 563
@Test
564 564
public void scaledApproximateScalableBearingDistanceTest1() {
565
- com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing sb = new com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing(new DegreeBearingImpl(100)).
565
+ com.sap.sse.common.scalablevalue.impl.ScalableBearing sb = new com.sap.sse.common.scalablevalue.impl.ScalableBearing(new DegreeBearingImpl(100)).
566 566
multiply(123);
567 567
Bearing b = new DegreeBearingImpl(280);
568 568
assertEquals(360./Math.PI, sb.getApproximateDegreeDistanceTo(b), 0.001);
... ...
@@ -570,7 +570,7 @@ public class ConfidenceTest {
570 570
571 571
@Test
572 572
public void scaledApproximateScalableBearingDistanceTest2() {
573
- com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing sb = new com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing(new DegreeBearingImpl(0)).
573
+ com.sap.sse.common.scalablevalue.impl.ScalableBearing sb = new com.sap.sse.common.scalablevalue.impl.ScalableBearing(new DegreeBearingImpl(0)).
574 574
multiply(123);
575 575
Bearing b = new DegreeBearingImpl(180);
576 576
assertEquals(360./Math.PI, sb.getApproximateDegreeDistanceTo(b), 0.001);
... ...
@@ -578,7 +578,7 @@ public class ConfidenceTest {
578 578
579 579
@Test
580 580
public void scaledApproximateScalableBearingDistanceTest3() {
581
- com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing sb = new com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing(new DegreeBearingImpl(100)).
581
+ com.sap.sse.common.scalablevalue.impl.ScalableBearing sb = new com.sap.sse.common.scalablevalue.impl.ScalableBearing(new DegreeBearingImpl(100)).
582 582
multiply(123);
583 583
Bearing b = new DegreeBearingImpl(101);
584 584
assertEquals(1, sb.getApproximateDegreeDistanceTo(b), 0.01);
... ...
@@ -586,7 +586,7 @@ public class ConfidenceTest {
586 586
587 587
@Test
588 588
public void scaledApproximateScalableBearingDistanceTest4() {
589
- com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing sb = new com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing(new DegreeBearingImpl(0)).
589
+ com.sap.sse.common.scalablevalue.impl.ScalableBearing sb = new com.sap.sse.common.scalablevalue.impl.ScalableBearing(new DegreeBearingImpl(0)).
590 590
multiply(123);
591 591
Bearing b = new DegreeBearingImpl(1);
592 592
assertEquals(1, sb.getApproximateDegreeDistanceTo(b), 0.01);
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseChangeBasedTrackApproximationTest.java
... ...
@@ -11,9 +11,6 @@ import com.sap.sailing.domain.base.BoatClass;
11 11
import com.sap.sailing.domain.base.Competitor;
12 12
import com.sap.sailing.domain.base.CompetitorWithBoat;
13 13
import com.sap.sailing.domain.base.impl.BoatClassImpl;
14
-import com.sap.sailing.domain.common.impl.DegreePosition;
15
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
16
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
17 14
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
18 15
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
19 16
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
... ...
@@ -24,6 +21,9 @@ import com.sap.sse.common.Speed;
24 21
import com.sap.sse.common.TimePoint;
25 22
import com.sap.sse.common.Util;
26 23
import com.sap.sse.common.impl.DegreeBearingImpl;
24
+import com.sap.sse.common.impl.DegreePosition;
25
+import com.sap.sse.common.impl.KnotSpeedImpl;
26
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
27 27
import com.sap.sse.common.impl.MillisecondsDurationImpl;
28 28
import com.sap.sse.common.impl.MillisecondsTimePoint;
29 29
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/DirectGapCalculationVersusOneDesignRankingMetricTest.java
... ...
@@ -16,7 +16,6 @@ import org.junit.jupiter.api.Test;
16 16
import com.sap.sailing.domain.base.Competitor;
17 17
import com.sap.sailing.domain.common.NoWindException;
18 18
import com.sap.sailing.domain.common.WindSourceType;
19
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
20 19
import com.sap.sailing.domain.common.impl.WindImpl;
21 20
import com.sap.sailing.domain.common.impl.WindSourceImpl;
22 21
import com.sap.sailing.domain.leaderboard.caching.LeaderboardDTOCalculationReuseCache;
... ...
@@ -28,6 +27,7 @@ import com.sap.sailing.domain.tractracadapter.ReceiverType;
28 27
import com.sap.sse.common.Duration;
29 28
import com.sap.sse.common.TimePoint;
30 29
import com.sap.sse.common.impl.DegreeBearingImpl;
30
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
31 31
import com.sap.sse.common.impl.MillisecondsTimePoint;
32 32
33 33
/**
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/DistanceCacheInvalidationAfterLoadingFinishedTest.java
... ...
@@ -11,10 +11,7 @@ import org.junit.jupiter.api.Test;
11 11
import com.sap.sailing.domain.base.Boat;
12 12
import com.sap.sailing.domain.base.Competitor;
13 13
import com.sap.sailing.domain.base.CompetitorWithBoat;
14
-import com.sap.sailing.domain.common.Position;
15 14
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
16
-import com.sap.sailing.domain.common.impl.DegreePosition;
17
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
18 15
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
19 16
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
20 17
import com.sap.sailing.domain.tracking.TrackingDataLoader;
... ...
@@ -22,8 +19,11 @@ import com.sap.sailing.domain.tracking.impl.MarkPassingImpl;
22 19
import com.sap.sailing.domain.tracking.impl.TrackedRaceStatusImpl;
23 20
import com.sap.sse.common.Distance;
24 21
import com.sap.sse.common.Duration;
22
+import com.sap.sse.common.Position;
25 23
import com.sap.sse.common.TimePoint;
26 24
import com.sap.sse.common.impl.DegreeBearingImpl;
25
+import com.sap.sse.common.impl.DegreePosition;
26
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
27 27
import com.sap.sse.common.impl.MillisecondsTimePoint;
28 28
29 29
/**
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/DistanceTest.java
... ...
@@ -6,11 +6,11 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
6 6
import org.junit.jupiter.api.Test;
7 7
8 8
import com.sap.sailing.domain.common.BoatClassMasterdata;
9
-import com.sap.sailing.domain.common.Position;
10
-import com.sap.sailing.domain.common.impl.DegreePosition;
11
-import com.sap.sailing.domain.common.impl.MeterDistance;
12 9
import com.sap.sse.common.Distance;
10
+import com.sap.sse.common.Position;
13 11
import com.sap.sse.common.impl.DegreeBearingImpl;
12
+import com.sap.sse.common.impl.DegreePosition;
13
+import com.sap.sse.common.impl.MeterDistance;
14 14
15 15
public class DistanceTest {
16 16
@Test
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardDTOCalculationReuseCacheTest.java
... ...
@@ -10,14 +10,14 @@ import java.util.Collections;
10 10
import org.junit.jupiter.api.Test;
11 11
12 12
import com.sap.sailing.domain.base.Competitor;
13
-import com.sap.sailing.domain.common.Position;
14
-import com.sap.sailing.domain.common.impl.DegreePosition;
15 13
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveCourse;
16 14
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
17 15
import com.sap.sailing.domain.leaderboard.caching.LeaderboardDTOCalculationReuseCache;
18 16
import com.sap.sailing.domain.tracking.GPSFixTrack;
19 17
import com.sap.sailing.domain.tracking.TrackedRace;
18
+import com.sap.sse.common.Position;
20 19
import com.sap.sse.common.TimePoint;
20
+import com.sap.sse.common.impl.DegreePosition;
21 21
import com.sap.sse.common.impl.MillisecondsTimePoint;
22 22
23 23
public class LeaderboardDTOCalculationReuseCacheTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardForKielWeekTest.java
... ...
@@ -17,7 +17,6 @@ import com.sap.sailing.domain.base.Competitor;
17 17
import com.sap.sailing.domain.base.RaceColumn;
18 18
import com.sap.sailing.domain.common.NoWindException;
19 19
import com.sap.sailing.domain.common.WindSourceType;
20
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
21 20
import com.sap.sailing.domain.common.impl.WindImpl;
22 21
import com.sap.sailing.domain.common.impl.WindSourceImpl;
23 22
import com.sap.sailing.domain.leaderboard.impl.FlexibleLeaderboardImpl;
... ...
@@ -27,6 +26,7 @@ import com.sap.sailing.domain.tractracadapter.ReceiverType;
27 26
import com.sap.sse.common.TimePoint;
28 27
import com.sap.sse.common.Util;
29 28
import com.sap.sse.common.impl.DegreeBearingImpl;
29
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
30 30
import com.sap.sse.common.impl.MillisecondsTimePoint;
31 31
import com.tractrac.model.lib.api.event.CreateModelException;
32 32
import com.tractrac.subscription.lib.api.SubscriberInitializationException;
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LineAnalysisTest.java
... ...
@@ -8,9 +8,6 @@ import org.junit.jupiter.api.Test;
8 8
import com.sap.sailing.domain.base.CompetitorWithBoat;
9 9
import com.sap.sailing.domain.base.Mark;
10 10
import com.sap.sailing.domain.common.NauticalSide;
11
-import com.sap.sailing.domain.common.Position;
12
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
13
-import com.sap.sailing.domain.common.impl.MeterDistance;
14 11
import com.sap.sailing.domain.common.tracking.GPSFix;
15 12
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
16 13
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
... ...
@@ -19,8 +16,11 @@ import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
19 16
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
20 17
import com.sap.sse.common.Bearing;
21 18
import com.sap.sse.common.Distance;
19
+import com.sap.sse.common.Position;
22 20
import com.sap.sse.common.TimePoint;
23 21
import com.sap.sse.common.impl.DegreeBearingImpl;
22
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
23
+import com.sap.sse.common.impl.MeterDistance;
24 24
import com.sap.sse.common.impl.MillisecondsTimePoint;
25 25
26 26
public class LineAnalysisTest extends TrackBasedTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ManeuverAnalysis505Test.java
... ...
@@ -20,13 +20,13 @@ import com.sap.sailing.domain.base.Competitor;
20 20
import com.sap.sailing.domain.common.ManeuverType;
21 21
import com.sap.sailing.domain.common.NoWindException;
22 22
import com.sap.sailing.domain.common.WindSourceType;
23
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
24 23
import com.sap.sailing.domain.common.impl.WindImpl;
25 24
import com.sap.sailing.domain.common.impl.WindSourceImpl;
26 25
import com.sap.sailing.domain.tracking.Maneuver;
27 26
import com.sap.sailing.domain.tractracadapter.ReceiverType;
28 27
import com.sap.sse.common.Util;
29 28
import com.sap.sse.common.impl.DegreeBearingImpl;
29
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
30 30
import com.sap.sse.common.impl.MillisecondsTimePoint;
31 31
32 32
public class ManeuverAnalysis505Test extends AbstractManeuverDetectionTestCase {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ManeuverAnalysisIDMChampionsFinalTest.java
... ...
@@ -23,10 +23,7 @@ import com.sap.sailing.domain.base.Mark;
23 23
import com.sap.sailing.domain.base.Waypoint;
24 24
import com.sap.sailing.domain.common.ManeuverType;
25 25
import com.sap.sailing.domain.common.NoWindException;
26
-import com.sap.sailing.domain.common.Position;
27 26
import com.sap.sailing.domain.common.WindSourceType;
28
-import com.sap.sailing.domain.common.impl.DegreePosition;
29
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
30 27
import com.sap.sailing.domain.common.impl.WindImpl;
31 28
import com.sap.sailing.domain.common.impl.WindSourceImpl;
32 29
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
... ...
@@ -34,9 +31,12 @@ import com.sap.sailing.domain.tracking.DynamicTrackedRace;
34 31
import com.sap.sailing.domain.tracking.Maneuver;
35 32
import com.sap.sailing.domain.tracking.impl.TrackedLegImpl;
36 33
import com.sap.sailing.domain.tractracadapter.ReceiverType;
34
+import com.sap.sse.common.Position;
37 35
import com.sap.sse.common.TimePoint;
38 36
import com.sap.sse.common.Util;
39 37
import com.sap.sse.common.impl.DegreeBearingImpl;
38
+import com.sap.sse.common.impl.DegreePosition;
39
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
40 40
import com.sap.sse.common.impl.MillisecondsTimePoint;
41 41
42 42
public class ManeuverAnalysisIDMChampionsFinalTest extends AbstractManeuverDetectionTestCase {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ManeuverAnalysisQingdao2014Test.java
... ...
@@ -19,13 +19,13 @@ import com.sap.sailing.domain.base.Competitor;
19 19
import com.sap.sailing.domain.common.ManeuverType;
20 20
import com.sap.sailing.domain.common.NoWindException;
21 21
import com.sap.sailing.domain.common.WindSourceType;
22
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
23 22
import com.sap.sailing.domain.common.impl.WindImpl;
24 23
import com.sap.sailing.domain.common.impl.WindSourceImpl;
25 24
import com.sap.sailing.domain.tracking.Maneuver;
26 25
import com.sap.sailing.domain.tractracadapter.ReceiverType;
27 26
import com.sap.sse.common.Util;
28 27
import com.sap.sse.common.impl.DegreeBearingImpl;
28
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
29 29
import com.sap.sse.common.impl.MillisecondsTimePoint;
30 30
31 31
public class ManeuverAnalysisQingdao2014Test extends AbstractManeuverDetectionTestCase {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ManeuverDetectionOnKielerWoche505Race2DataTest.java
... ...
@@ -26,8 +26,6 @@ import com.sap.sailing.domain.common.ManeuverType;
26 26
import com.sap.sailing.domain.common.NoWindException;
27 27
import com.sap.sailing.domain.common.Tack;
28 28
import com.sap.sailing.domain.common.WindSourceType;
29
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
30
-import com.sap.sailing.domain.common.impl.MeterDistance;
31 29
import com.sap.sailing.domain.common.impl.WindImpl;
32 30
import com.sap.sailing.domain.common.impl.WindSourceImpl;
33 31
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -38,6 +36,8 @@ import com.sap.sailing.domain.tractracadapter.ReceiverType;
38 36
import com.sap.sse.common.TimePoint;
39 37
import com.sap.sse.common.Util;
40 38
import com.sap.sse.common.impl.DegreeBearingImpl;
39
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
40
+import com.sap.sse.common.impl.MeterDistance;
41 41
import com.sap.sse.common.impl.MillisecondsTimePoint;
42 42
43 43
public class ManeuverDetectionOnKielerWoche505Race2DataTest extends AbstractManeuverDetectionTestCase {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ManeuverDetectionOnMdM2011SemifinalTest.java
... ...
@@ -19,19 +19,19 @@ import com.sap.sailing.domain.base.Mark;
19 19
import com.sap.sailing.domain.base.Waypoint;
20 20
import com.sap.sailing.domain.common.ManeuverType;
21 21
import com.sap.sailing.domain.common.NoWindException;
22
-import com.sap.sailing.domain.common.Position;
23 22
import com.sap.sailing.domain.common.Tack;
24 23
import com.sap.sailing.domain.common.WindSourceType;
25
-import com.sap.sailing.domain.common.impl.DegreePosition;
26
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
27 24
import com.sap.sailing.domain.common.impl.WindImpl;
28 25
import com.sap.sailing.domain.common.impl.WindSourceImpl;
29 26
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
30 27
import com.sap.sailing.domain.tracking.Maneuver;
31 28
import com.sap.sailing.domain.tracking.MarkPassing;
32 29
import com.sap.sailing.domain.tractracadapter.ReceiverType;
30
+import com.sap.sse.common.Position;
33 31
import com.sap.sse.common.TimePoint;
34 32
import com.sap.sse.common.impl.DegreeBearingImpl;
33
+import com.sap.sse.common.impl.DegreePosition;
34
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
35 35
import com.sap.sse.common.impl.MillisecondsTimePoint;
36 36
37 37
public class ManeuverDetectionOnMdM2011SemifinalTest extends OnlineTracTracBasedTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ManeuverLossOnPenaltyCircleTest.java
... ...
@@ -19,13 +19,13 @@ import com.sap.sailing.domain.base.Competitor;
19 19
import com.sap.sailing.domain.common.ManeuverType;
20 20
import com.sap.sailing.domain.common.NoWindException;
21 21
import com.sap.sailing.domain.common.WindSourceType;
22
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
23
-import com.sap.sailing.domain.common.impl.MeterDistance;
24 22
import com.sap.sailing.domain.common.impl.WindImpl;
25 23
import com.sap.sailing.domain.common.impl.WindSourceImpl;
26 24
import com.sap.sailing.domain.tracking.Maneuver;
27 25
import com.sap.sailing.domain.tractracadapter.ReceiverType;
28 26
import com.sap.sse.common.impl.DegreeBearingImpl;
27
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
28
+import com.sap.sse.common.impl.MeterDistance;
29 29
import com.sap.sse.common.impl.MillisecondsTimePoint;
30 30
31 31
public class ManeuverLossOnPenaltyCircleTest extends OnlineTracTracBasedTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MarkPassingUpdateFromRaceLogFinishPositioningListTest.java
... ...
@@ -36,7 +36,6 @@ import com.sap.sailing.domain.base.RaceColumn;
36 36
import com.sap.sailing.domain.base.impl.CourseAreaImpl;
37 37
import com.sap.sailing.domain.common.NoWindException;
38 38
import com.sap.sailing.domain.common.WindSourceType;
39
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
40 39
import com.sap.sailing.domain.common.impl.WindImpl;
41 40
import com.sap.sailing.domain.common.impl.WindSourceImpl;
42 41
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
... ...
@@ -50,6 +49,7 @@ import com.sap.sse.common.TimePoint;
50 49
import com.sap.sse.common.Util;
51 50
import com.sap.sse.common.Util.Pair;
52 51
import com.sap.sse.common.impl.DegreeBearingImpl;
52
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
53 53
import com.sap.sse.common.impl.MillisecondsTimePoint;
54 54
55 55
/**
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/MarkPositionTimeFilterTest.java
... ...
@@ -15,8 +15,6 @@ import org.junit.jupiter.api.Test;
15 15
16 16
import com.sap.sailing.domain.base.Mark;
17 17
import com.sap.sailing.domain.base.impl.MarkImpl;
18
-import com.sap.sailing.domain.common.impl.DegreePosition;
19
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
20 18
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
21 19
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
22 20
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
... ...
@@ -24,6 +22,8 @@ import com.sap.sailing.domain.tracking.impl.DynamicGPSFixTrackImpl;
24 22
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
25 23
import com.sap.sse.common.TimePoint;
26 24
import com.sap.sse.common.impl.DegreeBearingImpl;
25
+import com.sap.sse.common.impl.DegreePosition;
26
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
27 27
import com.sap.sse.common.impl.MillisecondsTimePoint;
28 28
29 29
public class MarkPositionTimeFilterTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/NonCardinalBoundsTest.java
... ...
@@ -6,11 +6,11 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
6 6
import org.junit.jupiter.api.Test;
7 7
8 8
import com.sap.sailing.domain.common.NonCardinalBounds;
9
-import com.sap.sailing.domain.common.Position;
10
-import com.sap.sailing.domain.common.impl.DegreePosition;
11
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
12 9
import com.sap.sse.common.Bearing;
10
+import com.sap.sse.common.Position;
13 11
import com.sap.sse.common.impl.DegreeBearingImpl;
12
+import com.sap.sse.common.impl.DegreePosition;
13
+import com.sap.sse.common.impl.NauticalMileDistance;
14 14
15 15
public class NonCardinalBoundsTest {
16 16
@Test
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OnlineTracTracBasedTest.java
... ...
@@ -25,9 +25,7 @@ import com.sap.sailing.domain.base.Mark;
25 25
import com.sap.sailing.domain.base.RaceDefinition;
26 26
import com.sap.sailing.domain.base.Regatta;
27 27
import com.sap.sailing.domain.base.Waypoint;
28
-import com.sap.sailing.domain.common.Position;
29 28
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
30
-import com.sap.sailing.domain.common.impl.DegreePosition;
31 29
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
32 30
import com.sap.sailing.domain.leaderboard.LeaderboardGroupResolver;
33 31
import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver;
... ...
@@ -51,7 +49,9 @@ import com.sap.sailing.domain.tractracadapter.ReceiverType;
51 49
import com.sap.sailing.domain.tractracadapter.TracTracConnectionConstants;
52 50
import com.sap.sailing.domain.tractracadapter.impl.AbstractLoadingQueueDoneCallBack;
53 51
import com.sap.sailing.domain.tractracadapter.impl.DomainFactoryImpl;
52
+import com.sap.sse.common.Position;
54 53
import com.sap.sse.common.TimePoint;
54
+import com.sap.sse.common.impl.DegreePosition;
55 55
import com.sap.sse.common.impl.MillisecondsTimePoint;
56 56
import com.tractrac.model.lib.api.event.CreateModelException;
57 57
import com.tractrac.model.lib.api.event.IRace;
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/PassingInstructionParserTest.java
... ...
@@ -14,11 +14,11 @@ import org.junit.jupiter.api.Test;
14 14
import com.sap.sailing.domain.base.Waypoint;
15 15
import com.sap.sailing.domain.common.PassingInstruction;
16 16
import com.sap.sailing.domain.common.WindSourceType;
17
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
18 17
import com.sap.sailing.domain.common.impl.WindImpl;
19 18
import com.sap.sailing.domain.common.impl.WindSourceImpl;
20 19
import com.sap.sailing.domain.tractracadapter.ReceiverType;
21 20
import com.sap.sse.common.impl.DegreeBearingImpl;
21
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
22 22
import com.sap.sse.common.impl.MillisecondsTimePoint;
23 23
24 24
public class PassingInstructionParserTest extends OnlineTracTracBasedTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/PhilippBuhlsDoublePenaltyCircleAtKielerWoche2014Test.java
... ...
@@ -20,13 +20,13 @@ import com.sap.sailing.domain.base.Competitor;
20 20
import com.sap.sailing.domain.common.ManeuverType;
21 21
import com.sap.sailing.domain.common.NoWindException;
22 22
import com.sap.sailing.domain.common.WindSourceType;
23
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
24 23
import com.sap.sailing.domain.common.impl.WindImpl;
25 24
import com.sap.sailing.domain.common.impl.WindSourceImpl;
26 25
import com.sap.sailing.domain.tracking.Maneuver;
27 26
import com.sap.sailing.domain.tractracadapter.ReceiverType;
28 27
import com.sap.sse.common.Util;
29 28
import com.sap.sse.common.impl.DegreeBearingImpl;
29
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
30 30
import com.sap.sse.common.impl.MillisecondsTimePoint;
31 31
32 32
/**
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/PositionAssert.java
... ...
@@ -5,13 +5,13 @@ import static org.junit.jupiter.api.Assertions.fail;
5 5
6 6
import java.util.Set;
7 7
8
-import com.sap.sailing.domain.common.Position;
9
-import com.sap.sailing.domain.common.SpeedWithBearing;
10 8
import com.sap.sailing.domain.common.Wind;
11 9
import com.sap.sailing.domain.common.tracking.GPSFix;
12 10
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
13 11
import com.sap.sse.common.Bearing;
12
+import com.sap.sse.common.Position;
14 13
import com.sap.sse.common.Speed;
14
+import com.sap.sse.common.SpeedWithBearing;
15 15
16 16
/**
17 17
* Contains equality assertions for "compact" fixes, allowing for deltas to be specified, assuming
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/PositionConversionTest.java
... ...
@@ -9,10 +9,10 @@ import java.util.Collections;
9 9
10 10
import org.junit.jupiter.api.Test;
11 11
12
-import com.sap.sailing.domain.common.Position;
13 12
import com.sap.sailing.domain.tractracadapter.DomainFactory;
14 13
import com.sap.sailing.domain.tractracadapter.LoadingQueueDoneCallBack;
15 14
import com.sap.sailing.domain.tractracadapter.Receiver;
15
+import com.sap.sse.common.Position;
16 16
import com.tractrac.model.lib.api.data.IPosition;
17 17
import com.tractrac.model.lib.api.map.IPositionedItem;
18 18
import com.tractrac.subscription.lib.api.map.IPositionedItemPositionListener;
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/PositionTest.java
... ...
@@ -6,22 +6,22 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
6 6
7 7
import org.junit.jupiter.api.Test;
8 8
9
-import com.sap.sailing.domain.common.Mile;
10
-import com.sap.sailing.domain.common.Position;
11
-import com.sap.sailing.domain.common.SpeedWithBearing;
12
-import com.sap.sailing.domain.common.impl.DegreePosition;
13
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
14
-import com.sap.sailing.domain.common.impl.MeterDistance;
15
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
16 9
import com.sap.sailing.domain.common.tracking.GPSFix;
17 10
import com.sap.sailing.domain.common.tracking.impl.CompactionNotPossibleException;
18 11
import com.sap.sailing.domain.common.tracking.impl.VeryCompactGPSFixImpl;
19 12
import com.sap.sailing.domain.common.tracking.impl.VeryCompactGPSFixMovingImpl;
20 13
import com.sap.sse.common.Bearing;
21 14
import com.sap.sse.common.Distance;
15
+import com.sap.sse.common.Mile;
16
+import com.sap.sse.common.Position;
17
+import com.sap.sse.common.SpeedWithBearing;
22 18
import com.sap.sse.common.TimePoint;
23 19
import com.sap.sse.common.impl.DegreeBearingImpl;
20
+import com.sap.sse.common.impl.DegreePosition;
21
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
22
+import com.sap.sse.common.impl.MeterDistance;
24 23
import com.sap.sse.common.impl.MillisecondsTimePoint;
24
+import com.sap.sse.common.impl.NauticalMileDistance;
25 25
26 26
public class PositionTest {
27 27
@Test
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/QuadTreeTest.java
... ...
@@ -15,13 +15,13 @@ import org.junit.jupiter.api.BeforeAll;
15 15
import org.junit.jupiter.api.BeforeEach;
16 16
import org.junit.jupiter.api.Test;
17 17
18
-import com.sap.sailing.domain.common.Bounds;
19
-import com.sap.sailing.domain.common.Position;
20
-import com.sap.sailing.domain.common.impl.BoundsImpl;
21
-import com.sap.sailing.domain.common.impl.DegreePosition;
22 18
import com.sap.sailing.domain.common.quadtree.QuadTree;
23 19
import com.sap.sailing.domain.common.quadtree.impl.Node;
20
+import com.sap.sse.common.Bounds;
21
+import com.sap.sse.common.Position;
24 22
import com.sap.sse.common.Util;
23
+import com.sap.sse.common.impl.BoundsImpl;
24
+import com.sap.sse.common.impl.DegreePosition;
25 25
import com.sap.sse.testutils.Measurement;
26 26
import com.sap.sse.testutils.MeasurementCase;
27 27
import com.sap.sse.testutils.MeasurementXMLFile;
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java
... ...
@@ -29,8 +29,6 @@ import com.sap.sailing.domain.base.impl.TrackedRaces;
29 29
import com.sap.sailing.domain.common.CompetitorRegistrationType;
30 30
import com.sap.sailing.domain.common.TimingConstants;
31 31
import com.sap.sailing.domain.common.Wind;
32
-import com.sap.sailing.domain.common.impl.DegreePosition;
33
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
34 32
import com.sap.sailing.domain.common.impl.WindImpl;
35 33
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
36 34
import com.sap.sailing.domain.leaderboard.ScoringScheme;
... ...
@@ -46,6 +44,8 @@ import com.sap.sailing.domain.tracking.impl.TrackedRaceImpl;
46 44
import com.sap.sse.common.Duration;
47 45
import com.sap.sse.common.TimePoint;
48 46
import com.sap.sse.common.impl.DegreeBearingImpl;
47
+import com.sap.sse.common.impl.DegreePosition;
48
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
49 49
import com.sap.sse.common.impl.MillisecondsTimePoint;
50 50
51 51
/**
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java
... ...
@@ -37,11 +37,8 @@ import com.sap.sailing.domain.base.impl.WaypointImpl;
37 37
import com.sap.sailing.domain.common.CompetitorRegistrationType;
38 38
import com.sap.sailing.domain.common.LegType;
39 39
import com.sap.sailing.domain.common.NoWindException;
40
-import com.sap.sailing.domain.common.Position;
41 40
import com.sap.sailing.domain.common.ScoringSchemeType;
42 41
import com.sap.sailing.domain.common.WindSourceType;
43
-import com.sap.sailing.domain.common.impl.DegreePosition;
44
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
45 42
import com.sap.sailing.domain.common.impl.WindImpl;
46 43
import com.sap.sailing.domain.common.impl.WindSourceImpl;
47 44
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
... ...
@@ -59,8 +56,11 @@ import com.sap.sailing.domain.tracking.impl.DynamicTrackedRegattaImpl;
59 56
import com.sap.sailing.domain.tracking.impl.EmptyWindStore;
60 57
import com.sap.sse.common.Bearing;
61 58
import com.sap.sse.common.Distance;
59
+import com.sap.sse.common.Position;
62 60
import com.sap.sse.common.TimePoint;
63 61
import com.sap.sse.common.impl.DegreeBearingImpl;
62
+import com.sap.sse.common.impl.DegreePosition;
63
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
64 64
import com.sap.sse.common.impl.MillisecondsTimePoint;
65 65
66 66
public class ReachingLegTest extends TrackBasedTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializationWithOnlineRaceTest.java
... ...
@@ -20,7 +20,6 @@ import org.junit.jupiter.api.Test;
20 20
import com.sap.sailing.domain.base.Competitor;
21 21
import com.sap.sailing.domain.base.DomainFactory;
22 22
import com.sap.sailing.domain.common.WindSourceType;
23
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
24 23
import com.sap.sailing.domain.common.impl.WindImpl;
25 24
import com.sap.sailing.domain.common.impl.WindSourceImpl;
26 25
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -28,6 +27,7 @@ import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
28 27
import com.sap.sailing.domain.tractracadapter.ReceiverType;
29 28
import com.sap.sse.common.Util;
30 29
import com.sap.sse.common.impl.DegreeBearingImpl;
30
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
31 31
import com.sap.sse.common.impl.MillisecondsTimePoint;
32 32
33 33
public class SerializationWithOnlineRaceTest extends OnlineTracTracBasedTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ShortTimeWindCacheTest.java
... ...
@@ -16,18 +16,18 @@ import org.mockito.invocation.InvocationOnMock;
16 16
import org.mockito.stubbing.Answer;
17 17
18 18
import com.sap.sailing.domain.base.RaceDefinition;
19
-import com.sap.sailing.domain.common.Position;
20 19
import com.sap.sailing.domain.common.WindSource;
21
-import com.sap.sailing.domain.common.impl.DegreePosition;
22
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
23 20
import com.sap.sailing.domain.common.impl.WindImpl;
24 21
import com.sap.sailing.domain.tracking.WindWithConfidence;
25 22
import com.sap.sailing.domain.tracking.impl.ShortTimeWindCache;
26 23
import com.sap.sailing.domain.tracking.impl.TrackedRaceImpl;
27 24
import com.sap.sailing.domain.tracking.impl.WindWithConfidenceImpl;
25
+import com.sap.sse.common.Position;
28 26
import com.sap.sse.common.TimePoint;
29 27
import com.sap.sse.common.Util.Pair;
30 28
import com.sap.sse.common.impl.DegreeBearingImpl;
29
+import com.sap.sse.common.impl.DegreePosition;
30
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
31 31
import com.sap.sse.common.impl.MillisecondsTimePoint;
32 32
33 33
/**
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SpeedUnitTest.java
... ...
@@ -4,11 +4,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
4 4
5 5
import org.junit.jupiter.api.Test;
6 6
7
-import com.sap.sailing.domain.common.SpeedWithBearing;
8
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
9
-import com.sap.sailing.domain.common.impl.MeterPerSecondSpeedImpl;
10 7
import com.sap.sse.common.Speed;
8
+import com.sap.sse.common.SpeedWithBearing;
11 9
import com.sap.sse.common.impl.DegreeBearingImpl;
10
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
11
+import com.sap.sse.common.impl.MeterPerSecondSpeedImpl;
12 12
13 13
public class SpeedUnitTest {
14 14
@Test
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/StarbordSideOfStartLineRecognitionTest.java
... ...
@@ -20,8 +20,6 @@ import com.sap.sailing.domain.base.RaceDefinition;
20 20
import com.sap.sailing.domain.base.Sideline;
21 21
import com.sap.sailing.domain.base.Waypoint;
22 22
import com.sap.sailing.domain.base.impl.CourseImpl;
23
-import com.sap.sailing.domain.common.Position;
24
-import com.sap.sailing.domain.common.impl.DegreePosition;
25 23
import com.sap.sailing.domain.common.tracking.GPSFix;
26 24
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
27 25
import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver;
... ...
@@ -32,7 +30,9 @@ import com.sap.sailing.domain.tracking.MarkPositionAtTimePointCache;
32 30
import com.sap.sailing.domain.tracking.impl.DynamicGPSFixTrackImpl;
33 31
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
34 32
import com.sap.sailing.domain.tracking.impl.TrackedLegImpl;
33
+import com.sap.sse.common.Position;
35 34
import com.sap.sse.common.TimePoint;
35
+import com.sap.sse.common.impl.DegreePosition;
36 36
import com.sap.sse.common.impl.MillisecondsTimePoint;
37 37
38 38
public class StarbordSideOfStartLineRecognitionTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SteadyRankingForBiasedFinishLineTest.java
... ...
@@ -13,12 +13,12 @@ import org.junit.jupiter.api.Test;
13 13
14 14
import com.sap.sailing.domain.base.Competitor;
15 15
import com.sap.sailing.domain.common.WindSourceType;
16
-import com.sap.sailing.domain.common.impl.DegreePosition;
17
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
18 16
import com.sap.sailing.domain.common.impl.WindImpl;
19 17
import com.sap.sailing.domain.common.impl.WindSourceImpl;
20 18
import com.sap.sailing.domain.tractracadapter.ReceiverType;
21 19
import com.sap.sse.common.impl.DegreeBearingImpl;
20
+import com.sap.sse.common.impl.DegreePosition;
21
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
22 22
import com.sap.sse.common.impl.MillisecondsTimePoint;
23 23
24 24
/**
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/StoredTrackBasedTest.java
... ...
@@ -28,17 +28,17 @@ import com.sap.sailing.domain.base.impl.DynamicPerson;
28 28
import com.sap.sailing.domain.base.impl.DynamicTeam;
29 29
import com.sap.sailing.domain.base.impl.PersonImpl;
30 30
import com.sap.sailing.domain.base.impl.TeamImpl;
31
-import com.sap.sailing.domain.common.Position;
32
-import com.sap.sailing.domain.common.SpeedWithBearing;
33
-import com.sap.sailing.domain.common.impl.DegreePosition;
34
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
35 31
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
36 32
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
37 33
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
38 34
import com.sap.sailing.domain.tracking.impl.DynamicGPSFixMovingTrackImpl;
39 35
import com.sap.sse.common.Color;
36
+import com.sap.sse.common.Position;
37
+import com.sap.sse.common.SpeedWithBearing;
40 38
import com.sap.sse.common.TimePoint;
41 39
import com.sap.sse.common.impl.DegreeBearingImpl;
40
+import com.sap.sse.common.impl.DegreePosition;
41
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
42 42
import com.sap.sse.common.impl.MillisecondsTimePoint;
43 43
import com.sap.sse.security.shared.dto.NamedDTO;
44 44
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TWATest.java
... ...
@@ -14,9 +14,6 @@ import com.sap.sailing.domain.base.Competitor;
14 14
import com.sap.sailing.domain.base.impl.CompetitorImpl;
15 15
import com.sap.sailing.domain.common.LegType;
16 16
import com.sap.sailing.domain.common.NoWindException;
17
-import com.sap.sailing.domain.common.Position;
18
-import com.sap.sailing.domain.common.impl.DegreePosition;
19
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
20 17
import com.sap.sailing.domain.common.impl.WindImpl;
21 18
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
22 19
import com.sap.sailing.domain.tracking.GPSFixTrack;
... ...
@@ -29,8 +26,11 @@ import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
29 26
import com.sap.sailing.domain.tracking.impl.TrackedLegImpl;
30 27
import com.sap.sailing.domain.tracking.impl.TrackedLegOfCompetitorImpl;
31 28
import com.sap.sse.common.Bearing;
29
+import com.sap.sse.common.Position;
32 30
import com.sap.sse.common.TimePoint;
33 31
import com.sap.sse.common.impl.DegreeBearingImpl;
32
+import com.sap.sse.common.impl.DegreePosition;
33
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
34 34
import com.sap.sse.common.impl.MillisecondsTimePoint;
35 35
36 36
public class TWATest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TackTest.java
... ...
@@ -22,14 +22,14 @@ import com.sap.sailing.domain.base.impl.TeamImpl;
22 22
import com.sap.sailing.domain.common.NoWindException;
23 23
import com.sap.sailing.domain.common.Tack;
24 24
import com.sap.sailing.domain.common.Wind;
25
-import com.sap.sailing.domain.common.impl.DegreePosition;
26
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
27 25
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
28 26
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
29 27
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
30 28
import com.sap.sse.common.Color;
31 29
import com.sap.sse.common.TimePoint;
32 30
import com.sap.sse.common.impl.DegreeBearingImpl;
31
+import com.sap.sse.common.impl.DegreePosition;
32
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
33 33
import com.sap.sse.common.impl.MillisecondsTimePoint;
34 34
35 35
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TackThatLookedABitLikePenaltyCircleAtTravemuenderWoche2014Test.java
... ...
@@ -21,13 +21,13 @@ import com.sap.sailing.domain.base.Competitor;
21 21
import com.sap.sailing.domain.common.ManeuverType;
22 22
import com.sap.sailing.domain.common.NoWindException;
23 23
import com.sap.sailing.domain.common.WindSourceType;
24
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
25 24
import com.sap.sailing.domain.common.impl.WindImpl;
26 25
import com.sap.sailing.domain.common.impl.WindSourceImpl;
27 26
import com.sap.sailing.domain.tracking.Maneuver;
28 27
import com.sap.sailing.domain.tractracadapter.ReceiverType;
29 28
import com.sap.sse.common.Util;
30 29
import com.sap.sse.common.impl.DegreeBearingImpl;
30
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
31 31
import com.sap.sse.common.impl.MillisecondsTimePoint;
32 32
33 33
/**
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TackTypeTest.java
... ...
@@ -20,7 +20,6 @@ import com.sap.sailing.domain.base.impl.WaypointImpl;
20 20
import com.sap.sailing.domain.common.NoWindException;
21 21
import com.sap.sailing.domain.common.TackType;
22 22
import com.sap.sailing.domain.common.WindSourceType;
23
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
24 23
import com.sap.sailing.domain.common.impl.WindImpl;
25 24
import com.sap.sailing.domain.common.impl.WindSourceImpl;
26 25
import com.sap.sailing.domain.tracking.MarkPassing;
... ...
@@ -29,6 +28,7 @@ import com.sap.sailing.domain.tracking.impl.MarkPassingImpl;
29 28
import com.sap.sailing.domain.tractracadapter.ReceiverType;
30 29
import com.sap.sse.common.TimePoint;
31 30
import com.sap.sse.common.impl.DegreeBearingImpl;
31
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
32 32
import com.sap.sse.common.impl.MillisecondsTimePoint;
33 33
34 34
public class TackTypeTest extends OnlineTracTracBasedTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TargetTimeEstimationTest.java
... ...
@@ -23,16 +23,10 @@ import com.sap.sailing.domain.base.impl.SpeedWithBearingWithConfidenceImpl;
23 23
import com.sap.sailing.domain.base.impl.SpeedWithConfidenceImpl;
24 24
import com.sap.sailing.domain.common.LegType;
25 25
import com.sap.sailing.domain.common.NoWindException;
26
-import com.sap.sailing.domain.common.Position;
27
-import com.sap.sailing.domain.common.SpeedWithBearing;
28 26
import com.sap.sailing.domain.common.Tack;
29 27
import com.sap.sailing.domain.common.Wind;
30 28
import com.sap.sailing.domain.common.WindSource;
31 29
import com.sap.sailing.domain.common.WindSourceType;
32
-import com.sap.sailing.domain.common.impl.DegreePosition;
33
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
34
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
35
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
36 30
import com.sap.sailing.domain.common.impl.WindImpl;
37 31
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
38 32
import com.sap.sailing.domain.polars.PolarDataService;
... ...
@@ -44,9 +38,15 @@ import com.sap.sailing.domain.tracking.impl.TrackedLegImpl;
44 38
import com.sap.sse.common.Bearing;
45 39
import com.sap.sse.common.Distance;
46 40
import com.sap.sse.common.Duration;
41
+import com.sap.sse.common.Position;
42
+import com.sap.sse.common.SpeedWithBearing;
47 43
import com.sap.sse.common.TimePoint;
48 44
import com.sap.sse.common.impl.DegreeBearingImpl;
45
+import com.sap.sse.common.impl.DegreePosition;
46
+import com.sap.sse.common.impl.KnotSpeedImpl;
47
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
49 48
import com.sap.sse.common.impl.MillisecondsTimePoint;
49
+import com.sap.sse.common.impl.NauticalMileDistance;
50 50
51 51
public class TargetTimeEstimationTest {
52 52
@SuppressWarnings("unchecked") // the problem here is any(Set.class) which cannot infer the type arguments
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TimeInLegProgressesTest.java
... ...
@@ -15,13 +15,13 @@ import org.junit.jupiter.api.Test;
15 15
16 16
import com.sap.sailing.domain.base.Competitor;
17 17
import com.sap.sailing.domain.common.WindSourceType;
18
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
19 18
import com.sap.sailing.domain.common.impl.WindImpl;
20 19
import com.sap.sailing.domain.common.impl.WindSourceImpl;
21 20
import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
22 21
import com.sap.sailing.domain.tractracadapter.ReceiverType;
23 22
import com.sap.sse.common.TimePoint;
24 23
import com.sap.sse.common.impl.DegreeBearingImpl;
24
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
25 25
import com.sap.sse.common.impl.MillisecondsTimePoint;
26 26
27 27
public class TimeInLegProgressesTest extends OnlineTracTracBasedTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java
... ...
@@ -51,8 +51,6 @@ import com.sap.sailing.domain.common.CompetitorRegistrationType;
51 51
import com.sap.sailing.domain.common.RaceIdentifier;
52 52
import com.sap.sailing.domain.common.ScoringSchemeType;
53 53
import com.sap.sailing.domain.common.WindSourceType;
54
-import com.sap.sailing.domain.common.impl.DegreePosition;
55
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
56 54
import com.sap.sailing.domain.common.impl.WindImpl;
57 55
import com.sap.sailing.domain.common.impl.WindSourceImpl;
58 56
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
... ...
@@ -74,6 +72,8 @@ import com.sap.sailing.domain.tracking.impl.MarkPassingImpl;
74 72
import com.sap.sse.common.Color;
75 73
import com.sap.sse.common.TimePoint;
76 74
import com.sap.sse.common.impl.DegreeBearingImpl;
75
+import com.sap.sse.common.impl.DegreePosition;
76
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
77 77
import com.sap.sse.common.impl.MillisecondsDurationImpl;
78 78
import com.sap.sse.common.impl.MillisecondsTimePoint;
79 79
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackTest.java
... ...
@@ -29,15 +29,6 @@ import org.junit.jupiter.api.Test;
29 29
import com.sap.sailing.domain.base.Boat;
30 30
import com.sap.sailing.domain.base.impl.BoatClassImpl;
31 31
import com.sap.sailing.domain.base.impl.BoatImpl;
32
-import com.sap.sailing.domain.common.Position;
33
-import com.sap.sailing.domain.common.SpeedWithBearing;
34
-import com.sap.sailing.domain.common.impl.DegreePosition;
35
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
36
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
37
-import com.sap.sailing.domain.common.impl.MeterDistance;
38
-import com.sap.sailing.domain.common.impl.MeterPerSecondSpeedWithDegreeBearingImpl;
39
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
40
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableSpeed;
41 32
import com.sap.sailing.domain.common.tracking.GPSFix;
42 33
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
43 34
import com.sap.sailing.domain.common.tracking.impl.CompactionNotPossibleException;
... ...
@@ -56,14 +47,23 @@ import com.sap.sse.common.AbstractBearing;
56 47
import com.sap.sse.common.Bearing;
57 48
import com.sap.sse.common.Distance;
58 49
import com.sap.sse.common.Duration;
50
+import com.sap.sse.common.Position;
59 51
import com.sap.sse.common.Speed;
52
+import com.sap.sse.common.SpeedWithBearing;
60 53
import com.sap.sse.common.TimePoint;
61 54
import com.sap.sse.common.TimeRange;
62 55
import com.sap.sse.common.Timed;
63 56
import com.sap.sse.common.Util;
64 57
import com.sap.sse.common.Util.Pair;
65 58
import com.sap.sse.common.impl.DegreeBearingImpl;
59
+import com.sap.sse.common.impl.DegreePosition;
60
+import com.sap.sse.common.impl.KnotSpeedImpl;
61
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
62
+import com.sap.sse.common.impl.MeterDistance;
63
+import com.sap.sse.common.impl.MeterPerSecondSpeedWithDegreeBearingImpl;
66 64
import com.sap.sse.common.impl.MillisecondsTimePoint;
65
+import com.sap.sse.common.scalablevalue.impl.ScalableBearing;
66
+import com.sap.sse.common.scalablevalue.impl.ScalableSpeed;
67 67
68 68
public class TrackTest {
69 69
private static final int MILLIS_BETWEEN_FIXES = 3000000;
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackedRaceCenterTest.java
... ...
@@ -19,8 +19,6 @@ import com.sap.sailing.domain.base.Waypoint;
19 19
import com.sap.sailing.domain.base.impl.CourseImpl;
20 20
import com.sap.sailing.domain.base.impl.MarkImpl;
21 21
import com.sap.sailing.domain.base.impl.WaypointImpl;
22
-import com.sap.sailing.domain.common.Position;
23
-import com.sap.sailing.domain.common.impl.DegreePosition;
24 22
import com.sap.sailing.domain.common.tracking.GPSFix;
25 23
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
26 24
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
... ...
@@ -30,7 +28,9 @@ import com.sap.sailing.domain.tracking.TrackedRace;
30 28
import com.sap.sailing.domain.tracking.impl.DynamicGPSFixTrackImpl;
31 29
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
32 30
import com.sap.sailing.domain.tracking.impl.TrackedLegImpl;
31
+import com.sap.sse.common.Position;
33 32
import com.sap.sse.common.TimePoint;
33
+import com.sap.sse.common.impl.DegreePosition;
34 34
import com.sap.sse.common.impl.MillisecondsTimePoint;
35 35
36 36
/**
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/VirtualWindFixesTest.java
... ...
@@ -9,18 +9,18 @@ import org.junit.jupiter.api.BeforeEach;
9 9
import org.junit.jupiter.api.Test;
10 10
11 11
import com.sap.sailing.domain.base.RaceDefinition;
12
-import com.sap.sailing.domain.common.Position;
13 12
import com.sap.sailing.domain.common.Wind;
14
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
15 13
import com.sap.sailing.domain.common.impl.WindImpl;
16 14
import com.sap.sailing.domain.tracking.TrackedRace;
17 15
import com.sap.sailing.domain.tracking.impl.CombinedWindAsNavigableSet;
18 16
import com.sap.sailing.domain.tracking.impl.CombinedWindTrackImpl;
19 17
import com.sap.sailing.domain.tracking.impl.VirtualWindFixesAsNavigableSet;
20 18
import com.sap.sse.InvalidDateException;
19
+import com.sap.sse.common.Position;
21 20
import com.sap.sse.common.TimePoint;
22 21
import com.sap.sse.common.Util;
23 22
import com.sap.sse.common.impl.DegreeBearingImpl;
23
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
24 24
import com.sap.sse.common.impl.MillisecondsTimePoint;
25 25
import com.sap.sse.util.DateParser;
26 26
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindEstimationLockingUnderLoadTest.java
... ...
@@ -30,8 +30,6 @@ import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
30 30
import com.sap.sailing.domain.common.Wind;
31 31
import com.sap.sailing.domain.common.WindSource;
32 32
import com.sap.sailing.domain.common.WindSourceType;
33
-import com.sap.sailing.domain.common.impl.DegreePosition;
34
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
35 33
import com.sap.sailing.domain.common.impl.WindImpl;
36 34
import com.sap.sailing.domain.common.impl.WindSourceWithAdditionalID;
37 35
import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore;
... ...
@@ -51,6 +49,8 @@ import com.sap.sailing.domain.tracking.impl.WindWithConfidenceImpl;
51 49
import com.sap.sse.common.Duration;
52 50
import com.sap.sse.common.TimePoint;
53 51
import com.sap.sse.common.impl.DegreeBearingImpl;
52
+import com.sap.sse.common.impl.DegreePosition;
53
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
54 54
import com.sap.sse.common.impl.MillisecondsTimePoint;
55 55
56 56
/**
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindEstimationOnConstructedTracksTest.java
... ...
@@ -24,12 +24,8 @@ import com.sap.sailing.domain.base.CompetitorWithBoat;
24 24
import com.sap.sailing.domain.base.Waypoint;
25 25
import com.sap.sailing.domain.common.LegType;
26 26
import com.sap.sailing.domain.common.NoWindException;
27
-import com.sap.sailing.domain.common.Position;
28 27
import com.sap.sailing.domain.common.Wind;
29 28
import com.sap.sailing.domain.common.WindSourceType;
30
-import com.sap.sailing.domain.common.impl.DegreePosition;
31
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
32
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
33 29
import com.sap.sailing.domain.common.impl.WindImpl;
34 30
import com.sap.sailing.domain.common.impl.WindSourceImpl;
35 31
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -43,10 +39,14 @@ import com.sap.sailing.domain.tracking.impl.CombinedWindTrackImpl;
43 39
import com.sap.sailing.domain.tracking.impl.MarkPassingImpl;
44 40
import com.sap.sailing.domain.tracking.impl.TrackBasedEstimationWindTrackImpl;
45 41
import com.sap.sse.common.Distance;
42
+import com.sap.sse.common.Position;
46 43
import com.sap.sse.common.TimePoint;
47 44
import com.sap.sse.common.Util;
48 45
import com.sap.sse.common.impl.DegreeBearingImpl;
46
+import com.sap.sse.common.impl.DegreePosition;
47
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
49 48
import com.sap.sse.common.impl.MillisecondsTimePoint;
49
+import com.sap.sse.common.impl.NauticalMileDistance;
50 50
51 51
public class WindEstimationOnConstructedTracksTest extends StoredTrackBasedTest {
52 52
private List<CompetitorWithBoat> competitors;
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindEstimationOnKielerWoche505Race2DataTest.java
... ...
@@ -18,7 +18,6 @@ import com.sap.sailing.domain.base.Competitor;
18 18
import com.sap.sailing.domain.common.NoWindException;
19 19
import com.sap.sailing.domain.common.Wind;
20 20
import com.sap.sailing.domain.common.WindSourceType;
21
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
22 21
import com.sap.sailing.domain.common.impl.WindImpl;
23 22
import com.sap.sailing.domain.common.impl.WindSourceImpl;
24 23
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -30,6 +29,7 @@ import com.sap.sailing.domain.tractracadapter.ReceiverType;
30 29
import com.sap.sse.common.TimePoint;
31 30
import com.sap.sse.common.Util;
32 31
import com.sap.sse.common.impl.DegreeBearingImpl;
32
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
33 33
import com.sap.sse.common.impl.MillisecondsTimePoint;
34 34
35 35
public class WindEstimationOnKielerWoche505Race2DataTest extends OnlineTracTracBasedTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindEstimationOnStoredTracksTest.java
... ...
@@ -14,20 +14,20 @@ import org.junit.jupiter.api.Test;
14 14
import com.sap.sailing.domain.base.Competitor;
15 15
import com.sap.sailing.domain.base.Mark;
16 16
import com.sap.sailing.domain.common.NoWindException;
17
-import com.sap.sailing.domain.common.Position;
18 17
import com.sap.sailing.domain.common.Wind;
19 18
import com.sap.sailing.domain.common.WindSource;
20 19
import com.sap.sailing.domain.common.WindSourceType;
21
-import com.sap.sailing.domain.common.impl.DegreePosition;
22
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
23 20
import com.sap.sailing.domain.common.impl.WindImpl;
24 21
import com.sap.sailing.domain.common.impl.WindSourceImpl;
25 22
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
26 23
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
27 24
import com.sap.sailing.domain.tracking.GPSFixTrack;
25
+import com.sap.sse.common.Position;
28 26
import com.sap.sse.common.TimePoint;
29 27
import com.sap.sse.common.Util;
30 28
import com.sap.sse.common.impl.DegreeBearingImpl;
29
+import com.sap.sse.common.impl.DegreePosition;
30
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
31 31
import com.sap.sse.common.impl.MillisecondsTimePoint;
32 32
33 33
public class WindEstimationOnStoredTracksTest extends StoredTrackBasedTestWithTrackedRace {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java
... ...
@@ -37,16 +37,8 @@ import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
37 37
import com.sap.sailing.domain.base.impl.RegattaImpl;
38 38
import com.sap.sailing.domain.base.impl.TeamImpl;
39 39
import com.sap.sailing.domain.common.CompetitorRegistrationType;
40
-import com.sap.sailing.domain.common.Position;
41 40
import com.sap.sailing.domain.common.ScoringSchemeType;
42
-import com.sap.sailing.domain.common.SpeedWithBearing;
43 41
import com.sap.sailing.domain.common.Wind;
44
-import com.sap.sailing.domain.common.confidence.Weigher;
45
-import com.sap.sailing.domain.common.confidence.impl.PositionAndTimePointWeigher;
46
-import com.sap.sailing.domain.common.impl.DegreePosition;
47
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
48
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
49
-import com.sap.sailing.domain.common.impl.MeterDistance;
50 42
import com.sap.sailing.domain.common.impl.WindImpl;
51 43
import com.sap.sailing.domain.common.tracking.impl.CompactionNotPossibleException;
52 44
import com.sap.sailing.domain.common.tracking.impl.VeryCompactWindImpl;
... ...
@@ -69,10 +61,18 @@ import com.sap.sailing.domain.tracking.impl.WindWithConfidenceImpl;
69 61
import com.sap.sse.common.Bearing;
70 62
import com.sap.sse.common.Color;
71 63
import com.sap.sse.common.Duration;
64
+import com.sap.sse.common.Position;
65
+import com.sap.sse.common.SpeedWithBearing;
72 66
import com.sap.sse.common.TimePoint;
73 67
import com.sap.sse.common.Util;
74 68
import com.sap.sse.common.Util.Pair;
69
+import com.sap.sse.common.confidence.Weigher;
70
+import com.sap.sse.common.confidence.impl.PositionAndTimePointWeigher;
75 71
import com.sap.sse.common.impl.DegreeBearingImpl;
72
+import com.sap.sse.common.impl.DegreePosition;
73
+import com.sap.sse.common.impl.KnotSpeedImpl;
74
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
75
+import com.sap.sse.common.impl.MeterDistance;
76 76
import com.sap.sse.common.impl.MillisecondsTimePoint;
77 77
78 78
public class WindTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/maneuverhash/ManeuverRaceFingerprintJsonSerilizationTest.java
... ...
@@ -17,9 +17,6 @@ import org.junit.jupiter.api.Test;
17 17
18 18
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogImpl;
19 19
import com.sap.sailing.domain.base.Competitor;
20
-import com.sap.sailing.domain.common.Position;
21
-import com.sap.sailing.domain.common.SpeedWithBearing;
22
-import com.sap.sailing.domain.common.impl.DegreePosition;
23 20
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
24 21
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
25 22
import com.sap.sailing.domain.maneuverhash.ManeuverRaceFingerprint;
... ...
@@ -28,7 +25,10 @@ import com.sap.sailing.domain.markpassingcalculation.MarkPassingCalculator;
28 25
import com.sap.sailing.domain.test.OnlineTracTracBasedTest;
29 26
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
30 27
import com.sap.sailing.domain.tractracadapter.ReceiverType;
28
+import com.sap.sse.common.Position;
29
+import com.sap.sse.common.SpeedWithBearing;
31 30
import com.sap.sse.common.TimePoint;
31
+import com.sap.sse.common.impl.DegreePosition;
32 32
33 33
public class ManeuverRaceFingerprintJsonSerilizationTest extends OnlineTracTracBasedTest {
34 34
DynamicTrackedRaceImpl trackedRace1;
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractExportedPositionsBasedTest.java
... ...
@@ -43,8 +43,6 @@ import com.sap.sailing.domain.base.impl.TeamImpl;
43 43
import com.sap.sailing.domain.base.impl.WaypointImpl;
44 44
import com.sap.sailing.domain.common.PassingInstruction;
45 45
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
46
-import com.sap.sailing.domain.common.impl.DegreePosition;
47
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
48 46
import com.sap.sailing.domain.common.tracking.GPSFix;
49 47
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
50 48
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
... ...
@@ -60,6 +58,8 @@ import com.sap.sailing.domain.tracking.impl.TrackedRaceStatusImpl;
60 58
import com.sap.sse.common.Color;
61 59
import com.sap.sse.common.impl.AbstractColor;
62 60
import com.sap.sse.common.impl.DegreeBearingImpl;
61
+import com.sap.sse.common.impl.DegreePosition;
62
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
63 63
import com.sap.sse.common.impl.MillisecondsTimePoint;
64 64
65 65
/**
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMarkPassingTest.java
... ...
@@ -22,7 +22,6 @@ import org.junit.jupiter.api.AfterAll;
22 22
import com.sap.sailing.domain.base.Competitor;
23 23
import com.sap.sailing.domain.base.Waypoint;
24 24
import com.sap.sailing.domain.common.WindSourceType;
25
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
26 25
import com.sap.sailing.domain.common.impl.WindImpl;
27 26
import com.sap.sailing.domain.common.impl.WindSourceImpl;
28 27
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -38,6 +37,7 @@ import com.sap.sailing.domain.tractracadapter.ReceiverType;
38 37
import com.sap.sse.common.TimePoint;
39 38
import com.sap.sse.common.Util;
40 39
import com.sap.sse.common.impl.DegreeBearingImpl;
40
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
41 41
import com.sap.sse.common.impl.MillisecondsTimePoint;
42 42
import com.sap.sse.testutils.Measurement;
43 43
import com.sap.sse.testutils.MeasurementCase;
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java
... ...
@@ -32,9 +32,6 @@ import com.sap.sailing.domain.base.impl.SeriesImpl;
32 32
import com.sap.sailing.domain.base.impl.WaypointImpl;
33 33
import com.sap.sailing.domain.common.CompetitorRegistrationType;
34 34
import com.sap.sailing.domain.common.PassingInstruction;
35
-import com.sap.sailing.domain.common.Position;
36
-import com.sap.sailing.domain.common.impl.DegreePosition;
37
-import com.sap.sailing.domain.common.impl.MeterDistance;
38 35
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
39 36
import com.sap.sailing.domain.leaderboard.impl.HighPoint;
40 37
import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver;
... ...
@@ -43,8 +40,11 @@ import com.sap.sailing.domain.tracking.DynamicTrackedRace;
43 40
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
44 41
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRegattaImpl;
45 42
import com.sap.sailing.domain.tracking.impl.EmptyWindStore;
43
+import com.sap.sse.common.Position;
46 44
import com.sap.sse.common.TimePoint;
47 45
import com.sap.sse.common.Util;
46
+import com.sap.sse.common.impl.DegreePosition;
47
+import com.sap.sse.common.impl.MeterDistance;
48 48
import com.sap.sse.common.impl.MillisecondsTimePoint;
49 49
50 50
public class AbstractMockedRaceMarkPassingTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MarkPassingCalculatorPerformanceTest.java
... ...
@@ -12,9 +12,6 @@ import org.junit.jupiter.api.AfterAll;
12 12
import org.junit.jupiter.api.Assertions;
13 13
import org.junit.jupiter.api.Test;
14 14
15
-import com.sap.sailing.domain.common.SpeedWithBearing;
16
-import com.sap.sailing.domain.common.impl.DegreePosition;
17
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
18 15
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
19 16
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
20 17
import com.sap.sailing.domain.markpassingcalculation.Candidate;
... ...
@@ -22,9 +19,12 @@ import com.sap.sailing.domain.markpassingcalculation.CandidateFinder;
22 19
import com.sap.sailing.domain.markpassingcalculation.impl.CandidateChooserImpl;
23 20
import com.sap.sailing.domain.markpassingcalculation.impl.CandidateFinderImpl;
24 21
import com.sap.sailing.domain.markpassingcalculation.impl.CandidateImpl;
22
+import com.sap.sse.common.SpeedWithBearing;
25 23
import com.sap.sse.common.TimePoint;
26 24
import com.sap.sse.common.Util;
27 25
import com.sap.sse.common.impl.DegreeBearingImpl;
26
+import com.sap.sse.common.impl.DegreePosition;
27
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
28 28
import com.sap.sse.common.impl.MillisecondsTimePoint;
29 29
import com.sap.sse.testutils.Measurement;
30 30
import com.sap.sse.testutils.MeasurementCase;
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MarkPassingWhiteBoxTest.java
... ...
@@ -15,8 +15,6 @@ import com.sap.sailing.domain.base.Course;
15 15
import com.sap.sailing.domain.base.Waypoint;
16 16
import com.sap.sailing.domain.base.impl.WaypointImpl;
17 17
import com.sap.sailing.domain.common.PassingInstruction;
18
-import com.sap.sailing.domain.common.impl.DegreePosition;
19
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
20 18
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
21 19
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
22 20
import com.sap.sailing.domain.markpassingcalculation.Candidate;
... ...
@@ -28,6 +26,8 @@ import com.sap.sailing.domain.markpassingcalculation.impl.CandidateImpl;
28 26
import com.sap.sailing.domain.tracking.MarkPassing;
29 27
import com.sap.sse.common.Util;
30 28
import com.sap.sse.common.impl.DegreeBearingImpl;
29
+import com.sap.sse.common.impl.DegreePosition;
30
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
31 31
import com.sap.sse.common.impl.MillisecondsTimePoint;
32 32
33 33
/**
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassinghash/MarkPassingRaceFingerprintJsonSerializationTest.java
... ...
@@ -30,10 +30,7 @@ import com.sap.sailing.domain.base.impl.ControlPointWithTwoMarksImpl;
30 30
import com.sap.sailing.domain.base.impl.MarkImpl;
31 31
import com.sap.sailing.domain.base.impl.WaypointImpl;
32 32
import com.sap.sailing.domain.common.PassingInstruction;
33
-import com.sap.sailing.domain.common.Position;
34
-import com.sap.sailing.domain.common.SpeedWithBearing;
35 33
import com.sap.sailing.domain.common.abstractlog.NotRevokableException;
36
-import com.sap.sailing.domain.common.impl.DegreePosition;
37 34
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
38 35
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
39 36
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
... ...
@@ -43,7 +40,10 @@ import com.sap.sailing.domain.markpassinghash.MarkPassingRaceFingerprintFactory;
43 40
import com.sap.sailing.domain.test.OnlineTracTracBasedTest;
44 41
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
45 42
import com.sap.sailing.domain.tractracadapter.ReceiverType;
43
+import com.sap.sse.common.Position;
44
+import com.sap.sse.common.SpeedWithBearing;
46 45
import com.sap.sse.common.TimePoint;
46
+import com.sap.sse.common.impl.DegreePosition;
47 47
import com.sap.sse.common.impl.MillisecondsTimePoint;
48 48
49 49
public class MarkPassingRaceFingerprintJsonSerializationTest extends OnlineTracTracBasedTest {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java
... ...
@@ -36,10 +36,8 @@ import com.sap.sailing.domain.base.configuration.RegattaConfiguration;
36 36
import com.sap.sailing.domain.common.CompetitorRegistrationType;
37 37
import com.sap.sailing.domain.common.MaxPointsReason;
38 38
import com.sap.sailing.domain.common.NoWindException;
39
-import com.sap.sailing.domain.common.Position;
40 39
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
41 40
import com.sap.sailing.domain.common.RegattaIdentifier;
42
-import com.sap.sailing.domain.common.SpeedWithBearing;
43 41
import com.sap.sailing.domain.common.Tack;
44 42
import com.sap.sailing.domain.common.TargetTimeInfo;
45 43
import com.sap.sailing.domain.common.Wind;
... ...
@@ -101,7 +99,9 @@ import com.sap.sse.common.Bearing;
101 99
import com.sap.sse.common.Distance;
102 100
import com.sap.sse.common.Duration;
103 101
import com.sap.sse.common.IsManagedByCache;
102
+import com.sap.sse.common.Position;
104 103
import com.sap.sse.common.Speed;
104
+import com.sap.sse.common.SpeedWithBearing;
105 105
import com.sap.sse.common.TimePoint;
106 106
import com.sap.sse.common.Util;
107 107
import com.sap.sse.common.Util.Pair;
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java
... ...
@@ -35,9 +35,7 @@ import com.sap.sailing.domain.base.impl.CourseImpl;
35 35
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
36 36
import com.sap.sailing.domain.common.MaxPointsReason;
37 37
import com.sap.sailing.domain.common.NoWindException;
38
-import com.sap.sailing.domain.common.Position;
39 38
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
40
-import com.sap.sailing.domain.common.SpeedWithBearing;
41 39
import com.sap.sailing.domain.common.Tack;
42 40
import com.sap.sailing.domain.common.TargetTimeInfo;
43 41
import com.sap.sailing.domain.common.Wind;
... ...
@@ -82,7 +80,9 @@ import com.sap.sse.common.Bearing;
82 80
import com.sap.sse.common.Distance;
83 81
import com.sap.sse.common.Duration;
84 82
import com.sap.sse.common.IsManagedByCache;
83
+import com.sap.sse.common.Position;
85 84
import com.sap.sse.common.Speed;
85
+import com.sap.sse.common.SpeedWithBearing;
86 86
import com.sap.sse.common.TimePoint;
87 87
import com.sap.sse.common.Util;
88 88
import com.sap.sse.common.Util.Pair;
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/TestTracTracRaceAndCompetitorStatusReconciler.java
... ...
@@ -42,8 +42,6 @@ import com.sap.sailing.domain.base.impl.TeamImpl;
42 42
import com.sap.sailing.domain.common.LeaderboardNameConstants;
43 43
import com.sap.sailing.domain.common.MaxPointsReason;
44 44
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
45
-import com.sap.sailing.domain.common.impl.DegreePosition;
46
-import com.sap.sailing.domain.common.impl.MeterDistance;
47 45
import com.sap.sailing.domain.common.racelog.Flags;
48 46
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
49 47
import com.sap.sailing.domain.leaderboard.Leaderboard;
... ...
@@ -61,6 +59,8 @@ import com.sap.sse.common.Duration;
61 59
import com.sap.sse.common.TimePoint;
62 60
import com.sap.sse.common.Util.Pair;
63 61
import com.sap.sse.common.Util.Triple;
62
+import com.sap.sse.common.impl.DegreePosition;
63
+import com.sap.sse.common.impl.MeterDistance;
64 64
import com.sap.sse.common.impl.MillisecondsTimePoint;
65 65
import com.sap.sse.metering.CPUMeter;
66 66
import com.tractrac.model.lib.api.event.ICompetitor;
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/PositionInterpolationAndExtrapolationTest.java
... ...
@@ -1,11 +1,11 @@
1 1
package com.sap.sailing.domain.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.impl.DegreePosition;
5 3
import com.sap.sailing.domain.common.tracking.GPSFix;
6 4
import com.sap.sailing.domain.test.PositionAssert;
7 5
import com.sap.sailing.domain.tracking.GPSFixTrack;
6
+import com.sap.sse.common.Position;
8 7
import com.sap.sse.common.TimePoint;
8
+import com.sap.sse.common.impl.DegreePosition;
9 9
import com.sap.sse.common.impl.MillisecondsTimePoint;
10 10
11 11
public abstract class PositionInterpolationAndExtrapolationTest<FixType extends GPSFix> {
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/PositionInterpolationAndExtrapolationWithSpeedInfoTest.java
... ...
@@ -5,14 +5,14 @@ import static org.junit.jupiter.api.Assertions.assertNull;
5 5
import org.junit.jupiter.api.BeforeEach;
6 6
import org.junit.jupiter.api.Test;
7 7
8
-import com.sap.sailing.domain.common.Position;
9
-import com.sap.sailing.domain.common.SpeedWithBearing;
10
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
11 8
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
12 9
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
13 10
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
14 11
import com.sap.sse.common.Bearing;
15 12
import com.sap.sse.common.Duration;
13
+import com.sap.sse.common.Position;
14
+import com.sap.sse.common.SpeedWithBearing;
15
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
16 16
17 17
public class PositionInterpolationAndExtrapolationWithSpeedInfoTest extends PositionInterpolationAndExtrapolationTest<GPSFixMoving> {
18 18
private SpeedWithBearing speed;
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TestVirtualWindFixTrackTimepointRounding.java
... ...
@@ -5,10 +5,10 @@ import java.util.NavigableSet;
5 5
import org.junit.jupiter.api.BeforeEach;
6 6
import org.junit.jupiter.api.Test;
7 7
8
-import com.sap.sailing.domain.common.Position;
9 8
import com.sap.sailing.domain.common.Wind;
10 9
import com.sap.sailing.domain.tracking.TrackedRace;
11 10
import com.sap.sailing.domain.tracking.WindTrack;
11
+import com.sap.sse.common.Position;
12 12
import com.sap.sse.common.TimePoint;
13 13
14 14
import static org.junit.jupiter.api.Assertions.assertEquals;
java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedLegTest.java
... ...
@@ -14,11 +14,11 @@ import com.sap.sailing.domain.base.DomainFactory;
14 14
import com.sap.sailing.domain.base.Leg;
15 15
import com.sap.sailing.domain.base.Waypoint;
16 16
import com.sap.sailing.domain.base.impl.WaypointImpl;
17
-import com.sap.sailing.domain.common.Position;
18
-import com.sap.sailing.domain.common.impl.DegreePosition;
19 17
import com.sap.sse.common.Distance;
18
+import com.sap.sse.common.Position;
20 19
import com.sap.sse.common.TimePoint;
21 20
import com.sap.sse.common.Util;
21
+import com.sap.sse.common.impl.DegreePosition;
22 22
import com.sap.sse.common.impl.MillisecondsTimePoint;
23 23
24 24
public class TrackedLegTest {
java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/DomainFactory.java
... ...
@@ -81,7 +81,7 @@ public interface DomainFactory {
81 81
82 82
com.sap.sailing.domain.base.DomainFactory getBaseDomainFactory();
83 83
84
- com.sap.sailing.domain.common.Position createPosition(IPosition position);
84
+ com.sap.sse.common.Position createPosition(IPosition position);
85 85
86 86
com.sap.sse.common.TimePoint createTimePoint(long timestamp);
87 87
java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java
... ...
@@ -53,10 +53,8 @@ import com.sap.sailing.domain.base.impl.SidelineImpl;
53 53
import com.sap.sailing.domain.base.impl.TeamImpl;
54 54
import com.sap.sailing.domain.common.CompetitorRegistrationType;
55 55
import com.sap.sailing.domain.common.PassingInstruction;
56
-import com.sap.sailing.domain.common.Position;
57 56
import com.sap.sailing.domain.common.RankingMetrics;
58 57
import com.sap.sailing.domain.common.ScoringSchemeType;
59
-import com.sap.sailing.domain.common.impl.DegreePosition;
60 58
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
61 59
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
62 60
import com.sap.sailing.domain.leaderboard.Leaderboard;
... ...
@@ -97,12 +95,14 @@ import com.sap.sailing.domain.tractracadapter.TracTracConfiguration;
97 95
import com.sap.sailing.domain.tractracadapter.TracTracRaceTracker;
98 96
import com.sap.sse.common.Color;
99 97
import com.sap.sse.common.Duration;
98
+import com.sap.sse.common.Position;
100 99
import com.sap.sse.common.TimePoint;
101 100
import com.sap.sse.common.Util;
102 101
import com.sap.sse.common.Util.Pair;
103 102
import com.sap.sse.common.Util.Triple;
104 103
import com.sap.sse.common.impl.AbstractColor;
105 104
import com.sap.sse.common.impl.DegreeBearingImpl;
105
+import com.sap.sse.common.impl.DegreePosition;
106 106
import com.sap.sse.common.impl.MillisecondsDurationImpl;
107 107
import com.sap.sse.common.impl.MillisecondsTimePoint;
108 108
import com.sap.sse.shared.util.WeakIdentityHashMap;
java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/Simulator.java
... ...
@@ -14,7 +14,6 @@ import com.sap.sailing.domain.base.Competitor;
14 14
import com.sap.sailing.domain.base.Mark;
15 15
import com.sap.sailing.domain.common.Wind;
16 16
import com.sap.sailing.domain.common.WindSource;
17
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
18 17
import com.sap.sailing.domain.common.impl.WindImpl;
19 18
import com.sap.sailing.domain.common.tracking.BravoFix;
20 19
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -32,6 +31,7 @@ import com.sap.sailing.domain.tracking.impl.EmptyWindStore;
32 31
import com.sap.sailing.domain.tracking.impl.MarkPassingImpl;
33 32
import com.sap.sse.common.Duration;
34 33
import com.sap.sse.common.TimePoint;
34
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
35 35
import com.sap.sse.common.impl.MillisecondsDurationImpl;
36 36
import com.sap.sse.common.impl.MillisecondsTimePoint;
37 37
java/com.sap.sailing.domain.vakarosadapter/src/com/sap/sailing/domain/vakarosadapter/VakarosGPSFixImporter.java
... ...
@@ -14,8 +14,6 @@ import java.util.concurrent.atomic.AtomicInteger;
14 14
import java.util.logging.Level;
15 15
import java.util.logging.Logger;
16 16
17
-import com.sap.sailing.domain.common.impl.DegreePosition;
18
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
19 17
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
20 18
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
21 19
import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier;
... ...
@@ -26,6 +24,8 @@ import com.sap.sailing.server.trackfiles.impl.CompressedStreamsUtil;
26 24
import com.sap.sailing.server.trackfiles.impl.ExpeditionImportFileHandler;
27 25
import com.sap.sse.common.Bearing;
28 26
import com.sap.sse.common.impl.DegreeBearingImpl;
27
+import com.sap.sse.common.impl.DegreePosition;
28
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
29 29
30 30
public class VakarosGPSFixImporter implements GPSFixImporter {
31 31
java/com.sap.sailing.domain.windfinderadapter.test/src/com/sap/sailing/domain/windfinderadapter/impl/WindFinderReportParserTest.java
... ...
@@ -17,11 +17,11 @@ import org.json.simple.parser.JSONParser;
17 17
import org.json.simple.parser.ParseException;
18 18
import org.junit.jupiter.api.Test;
19 19
20
-import com.sap.sailing.domain.common.Position;
21 20
import com.sap.sailing.domain.common.Wind;
22
-import com.sap.sailing.domain.common.impl.DegreePosition;
23 21
import com.sap.sailing.domain.windfinder.Spot;
22
+import com.sap.sse.common.Position;
24 23
import com.sap.sse.common.Util;
24
+import com.sap.sse.common.impl.DegreePosition;
25 25
26 26
public class WindFinderReportParserTest {
27 27
private final String TEST_MESSAGE = "[{\"wg\":16,\"wd\":331,\"dtl\":\"2017-11-13T15:16:00+01:00\",\"dtl_s\":\"2017-11-13T15:15:30+01:00\",\"ws\":12,\"at\":7.0},{\"wg\":14,\"wd\":333,\"dtl\":\"2017-11-13T15:32:00+01:00\",\"dtl_s\":\"2017-11-13T15:31:30+01:00\",\"ws\":12,\"at\":7.0},{\"wg\":16,\"wd\":332,\"dtl\":\"2017-11-13T15:40:00+01:00\",\"dtl_s\":\"2017-11-13T15:39:30+01:00\",\"ws\":12,\"at\":7.0}]";
java/com.sap.sailing.domain.windfinderadapter/src/com/sap/sailing/domain/windfinderadapter/impl/SpotImpl.java
... ...
@@ -20,13 +20,13 @@ import java.util.logging.Logger;
20 20
import org.json.simple.JSONArray;
21 21
import org.json.simple.parser.JSONParser;
22 22
23
-import com.sap.sailing.domain.common.Position;
24 23
import com.sap.sailing.domain.common.Wind;
25 24
import com.sap.sailing.domain.common.windfinder.SpotDTO;
26 25
import com.sap.sailing.domain.windfinder.ReviewedSpotsCollection;
27 26
import com.sap.sailing.domain.windfinder.Spot;
28 27
import com.sap.sailing.domain.windfinder.WindFinderSpotListener;
29 28
import com.sap.sse.common.Duration;
29
+import com.sap.sse.common.Position;
30 30
import com.sap.sse.common.TimePoint;
31 31
import com.sap.sse.common.Util;
32 32
import com.sap.sse.util.HttpUrlConnectionHelper;
java/com.sap.sailing.domain.windfinderadapter/src/com/sap/sailing/domain/windfinderadapter/impl/WindFinderReportParser.java
... ...
@@ -10,15 +10,15 @@ import java.util.List;
10 10
import org.json.simple.JSONArray;
11 11
import org.json.simple.JSONObject;
12 12
13
-import com.sap.sailing.domain.common.Position;
14 13
import com.sap.sailing.domain.common.Wind;
15
-import com.sap.sailing.domain.common.impl.DegreePosition;
16
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
17 14
import com.sap.sailing.domain.common.impl.WindImpl;
18 15
import com.sap.sailing.domain.windfinder.ReviewedSpotsCollection;
19 16
import com.sap.sailing.domain.windfinder.Spot;
17
+import com.sap.sse.common.Position;
20 18
import com.sap.sse.common.Util;
21 19
import com.sap.sse.common.impl.DegreeBearingImpl;
20
+import com.sap.sse.common.impl.DegreePosition;
21
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
22 22
import com.sap.sse.common.impl.MillisecondsTimePoint;
23 23
24 24
public class WindFinderReportParser {
java/com.sap.sailing.domain.yellowbrickadapter/src/com/sap/sailing/domain/yellowbrickadapter/impl/GetPositionsParser.java
... ...
@@ -10,12 +10,12 @@ import org.json.simple.JSONObject;
10 10
import org.json.simple.parser.JSONParser;
11 11
import org.json.simple.parser.ParseException;
12 12
13
-import com.sap.sailing.domain.common.impl.DegreePosition;
14
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
15 13
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
16 14
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
17 15
import com.sap.sse.common.Bearing;
18 16
import com.sap.sse.common.impl.DegreeBearingImpl;
17
+import com.sap.sse.common.impl.DegreePosition;
18
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
19 19
import com.sap.sse.common.impl.MillisecondsTimePoint;
20 20
21 21
/**
java/com.sap.sailing.domain.yellowbrickadapter/src/com/sap/sailing/domain/yellowbrickadapter/impl/TeamPosition.java
... ...
@@ -1,9 +1,9 @@
1 1
package com.sap.sailing.domain.yellowbrickadapter.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.SpeedWithBearing;
5 3
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
6 4
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
5
+import com.sap.sse.common.Position;
6
+import com.sap.sse.common.SpeedWithBearing;
7 7
import com.sap.sse.common.TimePoint;
8 8
import com.sap.sse.common.Timed;
9 9
java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Event.java
... ...
@@ -4,12 +4,12 @@ import java.util.HashSet;
4 4
import java.util.Set;
5 5
import java.util.UUID;
6 6
7
-import com.sap.sailing.domain.common.Position;
8 7
import com.sap.sailing.domain.common.WindSource;
9 8
import com.sap.sailing.domain.common.WindSourceType;
10 9
import com.sap.sailing.domain.leaderboard.Leaderboard;
11 10
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
12 11
import com.sap.sailing.domain.tracking.TrackedRace;
12
+import com.sap.sse.common.Position;
13 13
14 14
/**
15 15
* An event is a group of {@link Regatta regattas} carried out at a common venue within a common time frame. For
java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/PositionWithConfidence.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.domain.base;
2 2
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition;
3
+import com.sap.sse.common.Position;
5 4
import com.sap.sse.common.scalablevalue.HasConfidenceAndIsScalable;
5
+import com.sap.sse.common.scalablevalue.impl.ScalablePosition;
6 6
7 7
/**
8 8
* A position with a confidence attached. The scalable intermediate type represents the x/y/z coordinate of the
java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/SpeedWithBearingWithConfidence.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.domain.base;
2 2
3
-import com.sap.sailing.domain.common.DoubleTriple;
4
-import com.sap.sailing.domain.common.SpeedWithBearing;
5
-import com.sap.sse.common.scalablevalue.HasConfidence;
3
+import com.sap.sse.common.DoubleTriple;
4
+import com.sap.sse.common.SpeedWithBearing;
5
+import com.sap.sse.common.confidence.HasConfidence;
6 6
7 7
public interface SpeedWithBearingWithConfidence<RelativeTo> extends
8 8
HasConfidence<DoubleTriple, SpeedWithBearing, RelativeTo> {
java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DomainFactoryImpl.java
... ...
@@ -20,7 +20,6 @@ import com.sap.sailing.domain.base.RaceDefinition;
20 20
import com.sap.sailing.domain.base.Waypoint;
21 21
import com.sap.sailing.domain.common.NoWindException;
22 22
import com.sap.sailing.domain.common.Placemark;
23
-import com.sap.sailing.domain.common.Position;
24 23
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
25 24
import com.sap.sailing.domain.common.ScoringSchemeType;
26 25
import com.sap.sailing.domain.common.WindSourceType;
... ...
@@ -35,7 +34,6 @@ import com.sap.sailing.domain.common.dto.RaceDTO;
35 34
import com.sap.sailing.domain.common.dto.RaceStatusDTO;
36 35
import com.sap.sailing.domain.common.dto.TrackedRaceDTO;
37 36
import com.sap.sailing.domain.common.dto.TrackedRaceStatisticsDTO;
38
-import com.sap.sailing.domain.common.impl.DegreePosition;
39 37
import com.sap.sailing.domain.common.media.MediaTrack;
40 38
import com.sap.sailing.domain.common.tracking.GPSFix;
41 39
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -83,8 +81,10 @@ import com.sap.sailing.domain.tracking.impl.StartTimeUpdateHandler;
83 81
import com.sap.sailing.domain.tracking.impl.TrackedRaceImpl;
84 82
import com.sap.sailing.geocoding.ReverseGeocoder;
85 83
import com.sap.sse.common.Distance;
84
+import com.sap.sse.common.Position;
86 85
import com.sap.sse.common.TimePoint;
87 86
import com.sap.sse.common.Util;
87
+import com.sap.sse.common.impl.DegreePosition;
88 88
import com.sap.sse.common.impl.MillisecondsTimePoint;
89 89
import com.sap.sse.util.ObjectInputStreamResolvingAgainstCache;
90 90
import com.sap.sse.util.ObjectInputStreamResolvingAgainstCache.ResolveListener;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DouglasPeucker.java
... ...
@@ -10,11 +10,11 @@ import java.util.concurrent.ExecutionException;
10 10
import java.util.concurrent.Future;
11 11
import java.util.concurrent.ScheduledExecutorService;
12 12
13
-import com.sap.sailing.domain.common.Position;
14 13
import com.sap.sailing.domain.common.tracking.GPSFix;
15 14
import com.sap.sailing.domain.tracking.GPSFixTrack;
16 15
import com.sap.sse.common.Bearing;
17 16
import com.sap.sse.common.Distance;
17
+import com.sap.sse.common.Position;
18 18
import com.sap.sse.common.TimePoint;
19 19
import com.sap.sse.common.Util;
20 20
java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/EventImpl.java
... ...
@@ -18,17 +18,17 @@ import com.sap.sailing.domain.base.Event;
18 18
import com.sap.sailing.domain.base.EventListener;
19 19
import com.sap.sailing.domain.base.Venue;
20 20
import com.sap.sailing.domain.common.Placemark;
21
-import com.sap.sailing.domain.common.Position;
22 21
import com.sap.sailing.domain.common.WindSource;
23 22
import com.sap.sailing.domain.common.WindSourceType;
24
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition;
25 23
import com.sap.sailing.domain.leaderboard.Leaderboard;
26 24
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
27 25
import com.sap.sailing.domain.shared.tracking.TrackingConnectorInfo;
28 26
import com.sap.sailing.domain.tracking.TrackedRace;
29 27
import com.sap.sailing.geocoding.ReverseGeocoder;
28
+import com.sap.sse.common.Position;
30 29
import com.sap.sse.common.TimePoint;
31 30
import com.sap.sse.common.Util;
31
+import com.sap.sse.common.scalablevalue.impl.ScalablePosition;
32 32
33 33
public class EventImpl extends EventBaseImpl implements Event {
34 34
private static final long serialVersionUID = 855135446595485715L;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/KilometersPerHourSpeedWithBearingImpl.java
... ...
@@ -1,14 +1,14 @@
1 1
package com.sap.sailing.domain.base.impl;
2 2
3
-import com.sap.sailing.domain.common.CourseChange;
4
-import com.sap.sailing.domain.common.Position;
5
-import com.sap.sailing.domain.common.SpeedWithBearing;
6
-import com.sap.sailing.domain.common.impl.AbstractSpeedWithAbstractBearingImpl;
7
-import com.sap.sailing.domain.common.impl.AbstractSpeedWithBearingImpl;
8
-import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
9 3
import com.sap.sse.common.Bearing;
4
+import com.sap.sse.common.CourseChange;
5
+import com.sap.sse.common.Position;
10 6
import com.sap.sse.common.Speed;
7
+import com.sap.sse.common.SpeedWithBearing;
11 8
import com.sap.sse.common.TimePoint;
9
+import com.sap.sse.common.impl.AbstractSpeedWithAbstractBearingImpl;
10
+import com.sap.sse.common.impl.AbstractSpeedWithBearingImpl;
11
+import com.sap.sse.common.impl.KilometersPerHourSpeedImpl;
12 12
13 13
public class KilometersPerHourSpeedWithBearingImpl extends KilometersPerHourSpeedImpl implements SpeedWithBearing {
14 14
private static final long serialVersionUID = 5749611820871048625L;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/PositionWithConfidenceImpl.java
... ...
@@ -1,10 +1,10 @@
1 1
package com.sap.sailing.domain.base.impl;
2 2
3 3
import com.sap.sailing.domain.base.PositionWithConfidence;
4
-import com.sap.sailing.domain.common.Position;
5
-import com.sap.sailing.domain.common.confidence.impl.HasConfidenceImpl;
6
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition;
4
+import com.sap.sse.common.Position;
5
+import com.sap.sse.common.confidence.impl.HasConfidenceImpl;
7 6
import com.sap.sse.common.scalablevalue.IsScalable;
7
+import com.sap.sse.common.scalablevalue.impl.ScalablePosition;
8 8
9 9
public class PositionWithConfidenceImpl<RelativeTo> extends HasConfidenceImpl<ScalablePosition, Position, RelativeTo> implements
10 10
PositionWithConfidence<RelativeTo>, IsScalable<ScalablePosition, Position> {
java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/SpeedWithBearingWithConfidenceImpl.java
... ...
@@ -1,12 +1,12 @@
1 1
package com.sap.sailing.domain.base.impl;
2 2
3 3
import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
4
-import com.sap.sailing.domain.common.DoubleTriple;
5
-import com.sap.sailing.domain.common.SpeedWithBearing;
6
-import com.sap.sailing.domain.common.confidence.impl.HasConfidenceImpl;
7
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableSpeedWithBearing;
4
+import com.sap.sse.common.DoubleTriple;
5
+import com.sap.sse.common.SpeedWithBearing;
6
+import com.sap.sse.common.confidence.impl.HasConfidenceImpl;
8 7
import com.sap.sse.common.scalablevalue.IsScalable;
9 8
import com.sap.sse.common.scalablevalue.ScalableValue;
9
+import com.sap.sse.common.scalablevalue.impl.ScalableSpeedWithBearing;
10 10
11 11
public class SpeedWithBearingWithConfidenceImpl<RelativeTo> extends
12 12
HasConfidenceImpl<DoubleTriple, SpeedWithBearing, RelativeTo> implements
java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/SpeedWithConfidenceImpl.java
... ...
@@ -1,10 +1,10 @@
1 1
package com.sap.sailing.domain.base.impl;
2 2
3 3
import com.sap.sailing.domain.base.SpeedWithConfidence;
4
-import com.sap.sailing.domain.common.confidence.impl.HasConfidenceImpl;
5
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableSpeed;
6 4
import com.sap.sse.common.Speed;
5
+import com.sap.sse.common.confidence.impl.HasConfidenceImpl;
7 6
import com.sap.sse.common.scalablevalue.ScalableValue;
7
+import com.sap.sse.common.scalablevalue.impl.ScalableSpeed;
8 8
9 9
public class SpeedWithConfidenceImpl<RelativeTo> extends HasConfidenceImpl<Double, Speed, RelativeTo> implements SpeedWithConfidence<RelativeTo> {
10 10
private static final long serialVersionUID = -3122580369653833748L;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/confidence/ConfidenceBasedWindAverager.java
... ...
@@ -1,9 +1,9 @@
1 1
package com.sap.sailing.domain.confidence;
2 2
3 3
import com.sap.sailing.domain.common.Wind;
4
-import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
5 4
import com.sap.sailing.domain.common.confidence.impl.ScalableWind;
6 5
import com.sap.sailing.domain.tracking.WindWithConfidence;
6
+import com.sap.sse.common.confidence.ConfidenceBasedAverager;
7 7
import com.sap.sse.common.scalablevalue.HasConfidenceAndIsScalable;
8 8
9 9
public interface ConfidenceBasedWindAverager<RelativeTo> extends ConfidenceBasedAverager<ScalableWind, Wind, RelativeTo>{
java/com.sap.sailing.domain/src/com/sap/sailing/domain/confidence/ConfidenceFactory.java
... ...
@@ -1,10 +1,10 @@
1 1
package com.sap.sailing.domain.confidence;
2 2
3
-import com.sap.sailing.domain.common.confidence.Weigher;
4 3
import com.sap.sailing.domain.confidence.impl.ConfidenceFactoryImpl;
5 4
import com.sap.sailing.domain.tracking.WindWithConfidence;
5
+import com.sap.sse.common.confidence.Weigher;
6 6
7
-public interface ConfidenceFactory extends com.sap.sailing.domain.common.confidence.ConfidenceFactory {
7
+public interface ConfidenceFactory extends com.sap.sse.common.confidence.ConfidenceFactory {
8 8
ConfidenceFactory INSTANCE = new ConfidenceFactoryImpl();
9 9
10 10
/**
java/com.sap.sailing.domain/src/com/sap/sailing/domain/confidence/impl/ConfidenceBasedWindAveragerImpl.java
... ...
@@ -5,15 +5,15 @@ import java.util.Iterator;
5 5
import com.sap.sailing.domain.common.Wind;
6 6
import com.sap.sailing.domain.common.WindSource;
7 7
import com.sap.sailing.domain.common.WindSourceType;
8
-import com.sap.sailing.domain.common.confidence.Weigher;
9
-import com.sap.sailing.domain.common.confidence.impl.ConfidenceBasedAveragerImpl;
10 8
import com.sap.sailing.domain.common.confidence.impl.ScalableWind;
11
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
12 9
import com.sap.sailing.domain.common.impl.WindImpl;
13 10
import com.sap.sailing.domain.confidence.ConfidenceBasedWindAverager;
14 11
import com.sap.sailing.domain.tracking.WindWithConfidence;
15 12
import com.sap.sailing.domain.tracking.impl.WindWithConfidenceImpl;
16 13
import com.sap.sse.common.Speed;
14
+import com.sap.sse.common.confidence.Weigher;
15
+import com.sap.sse.common.confidence.impl.ConfidenceBasedAveragerImpl;
16
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
17 17
import com.sap.sse.common.scalablevalue.HasConfidenceAndIsScalable;
18 18
19 19
/**
java/com.sap.sailing.domain/src/com/sap/sailing/domain/confidence/impl/ConfidenceFactoryImpl.java
... ...
@@ -1,11 +1,11 @@
1 1
package com.sap.sailing.domain.confidence.impl;
2 2
3
-import com.sap.sailing.domain.common.confidence.Weigher;
4 3
import com.sap.sailing.domain.confidence.ConfidenceBasedWindAverager;
5 4
import com.sap.sailing.domain.confidence.ConfidenceFactory;
5
+import com.sap.sse.common.confidence.Weigher;
6 6
7 7
public class ConfidenceFactoryImpl extends
8
- com.sap.sailing.domain.common.confidence.impl.ConfidenceBasedAveragerFactoryImpl implements ConfidenceFactory {
8
+ com.sap.sse.common.confidence.impl.ConfidenceBasedAveragerFactoryImpl implements ConfidenceFactory {
9 9
@Override
10 10
public <RelativeTo> ConfidenceBasedWindAverager<RelativeTo> createWindAverager(Weigher<RelativeTo> weigher) {
11 11
return new ConfidenceBasedWindAveragerImpl<RelativeTo>(weigher);
java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LeaderboardDTOCalculationReuseCache.java
... ...
@@ -18,11 +18,7 @@ import com.sap.sailing.domain.base.Mark;
18 18
import com.sap.sailing.domain.base.Waypoint;
19 19
import com.sap.sailing.domain.common.LegType;
20 20
import com.sap.sailing.domain.common.NoWindException;
21
-import com.sap.sailing.domain.common.Position;
22 21
import com.sap.sailing.domain.common.Wind;
23
-import com.sap.sailing.domain.common.impl.DegreePosition;
24
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
25
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
26 22
import com.sap.sailing.domain.common.impl.WindImpl;
27 23
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveCourse;
28 24
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveLeg;
... ...
@@ -41,12 +37,16 @@ import com.sap.sailing.domain.tracking.TrackedRace;
41 37
import com.sap.sailing.domain.tracking.WindLegTypeAndLegBearingAndORCPerformanceCurveCache;
42 38
import com.sap.sse.common.Bearing;
43 39
import com.sap.sse.common.Duration;
40
+import com.sap.sse.common.Position;
44 41
import com.sap.sse.common.Speed;
45 42
import com.sap.sse.common.TimePoint;
46 43
import com.sap.sse.common.Util;
47 44
import com.sap.sse.common.Util.Pair;
48 45
import com.sap.sse.common.Util.Triple;
49 46
import com.sap.sse.common.impl.DegreeBearingImpl;
47
+import com.sap.sse.common.impl.DegreePosition;
48
+import com.sap.sse.common.impl.KnotSpeedImpl;
49
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
50 50
import com.sap.sse.common.impl.MillisecondsDurationImpl;
51 51
import com.sap.sse.common.impl.MillisecondsTimePoint;
52 52
java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractLeaderboardWithCache.java
... ...
@@ -57,7 +57,6 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
57 57
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
58 58
import com.sap.sailing.domain.common.RegattaScoreCorrections;
59 59
import com.sap.sailing.domain.common.RegattaScoreCorrections.ScoreCorrectionsForRace;
60
-import com.sap.sailing.domain.common.SpeedWithBearing;
61 60
import com.sap.sailing.domain.common.dto.BasicRaceDTO;
62 61
import com.sap.sailing.domain.common.dto.BoatClassDTO;
63 62
import com.sap.sailing.domain.common.dto.CompetitorDTO;
... ...
@@ -103,6 +102,7 @@ import com.sap.sse.common.Bearing;
103 102
import com.sap.sse.common.Distance;
104 103
import com.sap.sse.common.Duration;
105 104
import com.sap.sse.common.Speed;
105
+import com.sap.sse.common.SpeedWithBearing;
106 106
import com.sap.sse.common.TimePoint;
107 107
import com.sap.sse.common.TimingStats;
108 108
import com.sap.sse.common.Util;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/CompleteManeuverCurveWithEstimationData.java
... ...
@@ -1,11 +1,11 @@
1 1
package com.sap.sailing.domain.maneuverdetection;
2 2
3 3
import com.sap.sailing.domain.common.ManeuverType;
4
-import com.sap.sailing.domain.common.Positioned;
5 4
import com.sap.sailing.domain.common.Wind;
6 5
import com.sap.sailing.domain.tracking.CompleteManeuverCurve;
7 6
import com.sap.sse.common.Bearing;
8 7
import com.sap.sse.common.Distance;
8
+import com.sap.sse.common.Positioned;
9 9
import com.sap.sse.common.TimePoint;
10 10
import com.sap.sse.common.Timed;
11 11
import com.sap.sse.datamining.annotations.Connector;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/ManeuverCurveWithUnstableCourseAndSpeedWithEstimationData.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.domain.maneuverdetection;
2 2
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
4 3
import com.sap.sailing.domain.tracking.ManeuverCurveBoundaries;
5 4
import com.sap.sse.common.Duration;
5
+import com.sap.sse.common.SpeedWithBearing;
6 6
7 7
/**
8 8
* Contains the information about the maneuver curve with unstable course and speed, which is regarded as relevant for
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/ManeuverMainCurveWithEstimationData.java
... ...
@@ -1,9 +1,9 @@
1 1
package com.sap.sailing.domain.maneuverdetection;
2 2
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
4 3
import com.sap.sailing.domain.tracking.ManeuverCurveBoundaries;
5 4
import com.sap.sse.common.Bearing;
6 5
import com.sap.sse.common.Duration;
6
+import com.sap.sse.common.SpeedWithBearing;
7 7
import com.sap.sse.common.TimePoint;
8 8
import com.sap.sse.datamining.annotations.Statistic;
9 9
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/impl/AbstractManeuverDetectorImpl.java
... ...
@@ -4,7 +4,6 @@ import java.util.NavigableSet;
4 4
5 5
import com.sap.sailing.domain.base.Competitor;
6 6
import com.sap.sailing.domain.base.Waypoint;
7
-import com.sap.sailing.domain.common.BearingChangeAnalyzer;
8 7
import com.sap.sailing.domain.common.NauticalSide;
9 8
import com.sap.sailing.domain.common.Wind;
10 9
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -15,6 +14,7 @@ import com.sap.sailing.domain.tracking.ManeuverCurveBoundaries;
15 14
import com.sap.sailing.domain.tracking.MarkPassing;
16 15
import com.sap.sailing.domain.tracking.TrackedRace;
17 16
import com.sap.sse.common.Bearing;
17
+import com.sap.sse.common.BearingChangeAnalyzer;
18 18
import com.sap.sse.common.Duration;
19 19
import com.sap.sse.common.TimePoint;
20 20
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/impl/CompleteManeuverCurveWithEstimationDataImpl.java
... ...
@@ -1,12 +1,12 @@
1 1
package com.sap.sailing.domain.maneuverdetection.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sailing.domain.common.Wind;
5 4
import com.sap.sailing.domain.maneuverdetection.CompleteManeuverCurveWithEstimationData;
6 5
import com.sap.sailing.domain.maneuverdetection.ManeuverCurveWithUnstableCourseAndSpeedWithEstimationData;
7 6
import com.sap.sailing.domain.maneuverdetection.ManeuverMainCurveWithEstimationData;
8 7
import com.sap.sse.common.Bearing;
9 8
import com.sap.sse.common.Distance;
9
+import com.sap.sse.common.Position;
10 10
11 11
/**
12 12
*
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/impl/LowGPSSamplingRateManeuverDetectorImpl.java
... ...
@@ -5,11 +5,8 @@ import java.util.Iterator;
5 5
import java.util.List;
6 6
7 7
import com.sap.sailing.domain.base.Competitor;
8
-import com.sap.sailing.domain.common.CourseChange;
9 8
import com.sap.sailing.domain.common.ManeuverType;
10 9
import com.sap.sailing.domain.common.NoWindException;
11
-import com.sap.sailing.domain.common.Position;
12
-import com.sap.sailing.domain.common.SpeedWithBearing;
13 10
import com.sap.sailing.domain.common.Tack;
14 11
import com.sap.sailing.domain.common.Wind;
15 12
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -22,6 +19,9 @@ import com.sap.sailing.domain.tracking.TrackedRace;
22 19
import com.sap.sailing.domain.tracking.impl.ManeuverCurveBoundariesImpl;
23 20
import com.sap.sailing.domain.tracking.impl.ManeuverWithCoarseGrainedBoundariesImpl;
24 21
import com.sap.sse.common.Bearing;
22
+import com.sap.sse.common.CourseChange;
23
+import com.sap.sse.common.Position;
24
+import com.sap.sse.common.SpeedWithBearing;
25 25
import com.sap.sse.common.TimePoint;
26 26
import com.sap.sse.common.Util;
27 27
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/impl/ManeuverCurveBoundaryExtension.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.domain.maneuverdetection.impl;
2 2
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
4 3
import com.sap.sse.common.Speed;
4
+import com.sap.sse.common.SpeedWithBearing;
5 5
import com.sap.sse.common.TimePoint;
6 6
7 7
/**
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/impl/ManeuverCurveWithUnstableCourseAndSpeedWithEstimationDataImpl.java
... ...
@@ -1,10 +1,10 @@
1 1
package com.sap.sailing.domain.maneuverdetection.impl;
2 2
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
4 3
import com.sap.sailing.domain.maneuverdetection.ManeuverCurveWithUnstableCourseAndSpeedWithEstimationData;
5 4
import com.sap.sailing.domain.tracking.impl.ManeuverCurveBoundariesImpl;
6 5
import com.sap.sse.common.Duration;
7 6
import com.sap.sse.common.Speed;
7
+import com.sap.sse.common.SpeedWithBearing;
8 8
import com.sap.sse.common.TimePoint;
9 9
10 10
public class ManeuverCurveWithUnstableCourseAndSpeedWithEstimationDataImpl extends ManeuverCurveBoundariesImpl
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/impl/ManeuverDetectorImpl.java
... ...
@@ -11,12 +11,9 @@ import java.util.logging.Logger;
11 11
import com.sap.sailing.domain.base.BoatClass;
12 12
import com.sap.sailing.domain.base.Competitor;
13 13
import com.sap.sailing.domain.base.Waypoint;
14
-import com.sap.sailing.domain.common.BearingChangeAnalyzer;
15 14
import com.sap.sailing.domain.common.ManeuverType;
16 15
import com.sap.sailing.domain.common.NauticalSide;
17 16
import com.sap.sailing.domain.common.NoWindException;
18
-import com.sap.sailing.domain.common.Position;
19
-import com.sap.sailing.domain.common.SpeedWithBearing;
20 17
import com.sap.sailing.domain.common.Tack;
21 18
import com.sap.sailing.domain.common.Wind;
22 19
import com.sap.sailing.domain.common.WindSourceType;
... ...
@@ -40,9 +37,12 @@ import com.sap.sailing.domain.tracking.impl.ManeuverWithMainCurveBoundariesImpl;
40 37
import com.sap.sailing.domain.tracking.impl.ManeuverWithStableSpeedAndCourseBoundariesImpl;
41 38
import com.sap.sailing.domain.tracking.impl.SpeedWithBearingStepImpl;
42 39
import com.sap.sse.common.Bearing;
40
+import com.sap.sse.common.BearingChangeAnalyzer;
43 41
import com.sap.sse.common.Distance;
44 42
import com.sap.sse.common.Duration;
43
+import com.sap.sse.common.Position;
45 44
import com.sap.sse.common.Speed;
45
+import com.sap.sse.common.SpeedWithBearing;
46 46
import com.sap.sse.common.TimePoint;
47 47
import com.sap.sse.common.Util;
48 48
import com.sap.sse.common.Util.Pair;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/impl/ManeuverDetectorWithEstimationDataSupportDecoratorImpl.java
... ...
@@ -9,11 +9,8 @@ import com.sap.sailing.domain.base.Mark;
9 9
import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
10 10
import com.sap.sailing.domain.base.Waypoint;
11 11
import com.sap.sailing.domain.common.ManeuverType;
12
-import com.sap.sailing.domain.common.Position;
13
-import com.sap.sailing.domain.common.SpeedWithBearing;
14 12
import com.sap.sailing.domain.common.Wind;
15 13
import com.sap.sailing.domain.common.WindSourceType;
16
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
17 14
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
18 15
import com.sap.sailing.domain.maneuverdetection.CompleteManeuverCurveWithEstimationData;
19 16
import com.sap.sailing.domain.maneuverdetection.ManeuverCurveWithUnstableCourseAndSpeedWithEstimationData;
... ...
@@ -33,10 +30,13 @@ import com.sap.sailing.domain.tracking.impl.NonCachingMarkPositionAtTimePointCac
33 30
import com.sap.sse.common.Bearing;
34 31
import com.sap.sse.common.Distance;
35 32
import com.sap.sse.common.Duration;
33
+import com.sap.sse.common.Position;
36 34
import com.sap.sse.common.Speed;
35
+import com.sap.sse.common.SpeedWithBearing;
37 36
import com.sap.sse.common.TimePoint;
38 37
import com.sap.sse.common.Util.Pair;
39 38
import com.sap.sse.common.impl.DegreeBearingImpl;
39
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
40 40
41 41
/**
42 42
* A decorator which adds support for management of estimation data for wind estimation to an existing maneuver detector
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/impl/ManeuverMainCurveDetailsWithBearingSteps.java
... ...
@@ -1,10 +1,10 @@
1 1
package com.sap.sailing.domain.maneuverdetection.impl;
2 2
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
4 3
import com.sap.sailing.domain.tracking.ManeuverCurveBoundaries;
5 4
import com.sap.sailing.domain.tracking.SpeedWithBearingStepsIterable;
6 5
import com.sap.sailing.domain.tracking.impl.ManeuverCurveBoundariesImpl;
7 6
import com.sap.sse.common.Speed;
7
+import com.sap.sse.common.SpeedWithBearing;
8 8
import com.sap.sse.common.TimePoint;
9 9
10 10
/**
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/impl/ManeuverMainCurveWithEstimationDataImpl.java
... ...
@@ -1,10 +1,10 @@
1 1
package com.sap.sailing.domain.maneuverdetection.impl;
2 2
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
4 3
import com.sap.sailing.domain.maneuverdetection.ManeuverMainCurveWithEstimationData;
5 4
import com.sap.sailing.domain.tracking.impl.ManeuverCurveBoundariesImpl;
6 5
import com.sap.sse.common.Bearing;
7 6
import com.sap.sse.common.Duration;
7
+import com.sap.sse.common.SpeedWithBearing;
8 8
import com.sap.sse.common.TimePoint;
9 9
10 10
/**
java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/impl/WindMeasurement.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.domain.maneuverdetection.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sse.common.Bearing;
4
+import com.sap.sse.common.Position;
5 5
import com.sap.sse.common.TimePoint;
6 6
7 7
/**
java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/impl/CandidateChooserImpl.java
... ...
@@ -22,8 +22,6 @@ import java.util.logging.Logger;
22 22
import com.sap.sailing.domain.base.Competitor;
23 23
import com.sap.sailing.domain.base.Course;
24 24
import com.sap.sailing.domain.base.Waypoint;
25
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
26
-import com.sap.sailing.domain.common.impl.MeterDistance;
27 25
import com.sap.sailing.domain.common.tracking.GPSFix;
28 26
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
29 27
import com.sap.sailing.domain.markpassingcalculation.Candidate;
... ...
@@ -43,6 +41,8 @@ import com.sap.sse.common.TimePoint;
43 41
import com.sap.sse.common.Timed;
44 42
import com.sap.sse.common.Util;
45 43
import com.sap.sse.common.Util.Pair;
44
+import com.sap.sse.common.impl.KnotSpeedImpl;
45
+import com.sap.sse.common.impl.MeterDistance;
46 46
import com.sap.sse.common.impl.MillisecondsTimePoint;
47 47
import com.sap.sse.concurrent.LockUtil;
48 48
import com.sap.sse.concurrent.NamedReentrantReadWriteLock;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/impl/CandidateFinderImpl.java
... ...
@@ -29,8 +29,6 @@ import com.sap.sailing.domain.base.Mark;
29 29
import com.sap.sailing.domain.base.RaceDefinition;
30 30
import com.sap.sailing.domain.base.Waypoint;
31 31
import com.sap.sailing.domain.common.PassingInstruction;
32
-import com.sap.sailing.domain.common.Position;
33
-import com.sap.sailing.domain.common.impl.MeterDistance;
34 32
import com.sap.sailing.domain.common.tracking.GPSFix;
35 33
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
36 34
import com.sap.sailing.domain.markpassingcalculation.Candidate;
... ...
@@ -45,12 +43,14 @@ import com.sap.sailing.domain.tracking.impl.MarkPositionAtTimePointCacheImpl;
45 43
import com.sap.sse.common.Bearing;
46 44
import com.sap.sse.common.Distance;
47 45
import com.sap.sse.common.Duration;
46
+import com.sap.sse.common.Position;
48 47
import com.sap.sse.common.TimePoint;
49 48
import com.sap.sse.common.TimeRange;
50 49
import com.sap.sse.common.Timed;
51 50
import com.sap.sse.common.Util;
52 51
import com.sap.sse.common.Util.Pair;
53 52
import com.sap.sse.common.impl.DegreeBearingImpl;
53
+import com.sap.sse.common.impl.MeterDistance;
54 54
import com.sap.sse.common.impl.TimeRangeImpl;
55 55
import com.sap.sse.concurrent.LockUtil;
56 56
import com.sap.sse.util.ThreadPoolUtil;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/impl/StationarySequence.java
... ...
@@ -13,18 +13,18 @@ import java.util.TreeSet;
13 13
14 14
import com.sap.sailing.domain.base.Competitor;
15 15
import com.sap.sailing.domain.base.Waypoint;
16
-import com.sap.sailing.domain.common.Bounds;
17
-import com.sap.sailing.domain.common.Position;
18
-import com.sap.sailing.domain.common.impl.BoundsImpl;
19
-import com.sap.sailing.domain.common.impl.MeterDistance;
20 16
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
21 17
import com.sap.sailing.domain.markpassingcalculation.Candidate;
22 18
import com.sap.sailing.domain.tracking.GPSFixTrack;
19
+import com.sap.sse.common.Bounds;
23 20
import com.sap.sse.common.Distance;
24 21
import com.sap.sse.common.Duration;
22
+import com.sap.sse.common.Position;
25 23
import com.sap.sse.common.TimePoint;
26 24
import com.sap.sse.common.Util;
27 25
import com.sap.sse.common.Util.ValueCollectionConstructor;
26
+import com.sap.sse.common.impl.BoundsImpl;
27
+import com.sap.sse.common.impl.MeterDistance;
28 28
29 29
/**
30 30
* A sequence of {@link Candidate}s such that the track of smoothed GPS fixes between them fits into a bounding box that
java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/impl/StationarySequenceBasedFilter.java
... ...
@@ -8,12 +8,12 @@ import java.util.TreeSet;
8 8
import java.util.logging.Logger;
9 9
10 10
import com.sap.sailing.domain.base.Competitor;
11
-import com.sap.sailing.domain.common.Bounds;
12 11
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
13 12
import com.sap.sailing.domain.markpassingcalculation.Candidate;
14 13
import com.sap.sailing.domain.markpassingcalculation.CandidateChooser;
15 14
import com.sap.sailing.domain.markpassingcalculation.CandidateFinder;
16 15
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
16
+import com.sap.sse.common.Bounds;
17 17
import com.sap.sse.common.Util;
18 18
import com.sap.sse.common.Util.Pair;
19 19
java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/impl/WaypointPositionAndDistanceCache.java
... ...
@@ -19,7 +19,6 @@ import com.sap.sailing.domain.base.ControlPoint;
19 19
import com.sap.sailing.domain.base.Course;
20 20
import com.sap.sailing.domain.base.Mark;
21 21
import com.sap.sailing.domain.base.Waypoint;
22
-import com.sap.sailing.domain.common.Position;
23 22
import com.sap.sailing.domain.common.tracking.GPSFix;
24 23
import com.sap.sailing.domain.shared.tracking.AddResult;
25 24
import com.sap.sailing.domain.tracking.GPSFixTrack;
... ...
@@ -27,6 +26,7 @@ import com.sap.sailing.domain.tracking.TrackedRace;
27 26
import com.sap.sailing.domain.tracking.impl.AbstractRaceChangeListener;
28 27
import com.sap.sse.common.Distance;
29 28
import com.sap.sse.common.Duration;
29
+import com.sap.sse.common.Position;
30 30
import com.sap.sse.common.TimePoint;
31 31
import com.sap.sse.common.TimeRange;
32 32
import com.sap.sse.common.Util;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/splining/Vector2D.java
... ...
@@ -3,8 +3,8 @@ package com.sap.sailing.domain.markpassingcalculation.splining;
3 3
import java.util.ArrayList;
4 4
import java.util.List;
5 5
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sse.common.Bearing;
7
+import com.sap.sse.common.Position;
8 8
9 9
/**
10 10
* A vector in the 2 dimensional plane that supports numerous vector operations.
java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/AbstractORCPerformanceCurveTwaLegAdapter.java
... ...
@@ -1,6 +1,5 @@
1 1
package com.sap.sailing.domain.orc.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sailing.domain.common.Wind;
5 4
import com.sap.sailing.domain.common.orc.AverageWindOnLegCache;
6 5
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveLeg;
... ...
@@ -12,6 +11,7 @@ import com.sap.sailing.domain.tracking.WindWithConfidence;
12 11
import com.sap.sailing.domain.tracking.impl.NoCachingWindLegTypeAndLegBearingCache;
13 12
import com.sap.sse.common.Bearing;
14 13
import com.sap.sse.common.Distance;
14
+import com.sap.sse.common.Position;
15 15
import com.sap.sse.common.TimePoint;
16 16
import com.sap.sse.common.Util.Pair;
17 17
... ...
@@ -19,7 +19,7 @@ import com.sap.sse.common.Util.Pair;
19 19
* Abstract base class for adapting a {@link TrackedLeg} to the {@link ORCPerformanceCurveLeg} interface. If wind
20 20
* information is known, the leg will be of type {@link ORCPerformanceCurveLegTypes#TWA} using as the {@link #getTwa()
21 21
* TWA} the angular difference between this leg's bearing and the TWA as obtained from the
22
- * {@link TrackedRace#getWind(com.sap.sailing.domain.common.Position, TimePoint) TrackedRace} of which the
22
+ * {@link TrackedRace#getWind(com.sap.sse.common.Position, TimePoint) TrackedRace} of which the
23 23
* {@link TrackedLeg} passed to the constructor is a part. If no wind information is known, the leg is emulated to be of
24 24
* type {@link ORCPerformanceCurveLegTypes#LONG_DISTANCE}, and {@link #getTwa()} will return {@code null}.
25 25
* <p>
java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCCertificatesCollectionJSON.java
... ...
@@ -16,8 +16,6 @@ import javax.xml.bind.DatatypeConverter;
16 16
import org.json.simple.JSONArray;
17 17
import org.json.simple.JSONObject;
18 18
19
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
20
-import com.sap.sailing.domain.common.impl.MeterDistance;
21 19
import com.sap.sailing.domain.common.orc.ORCCertificate;
22 20
import com.sap.sailing.domain.common.orc.impl.ORCCertificateImpl;
23 21
import com.sap.sse.common.Bearing;
... ...
@@ -27,6 +25,8 @@ import com.sap.sse.common.Duration;
27 25
import com.sap.sse.common.Speed;
28 26
import com.sap.sse.common.TimePoint;
29 27
import com.sap.sse.common.impl.DegreeBearingImpl;
28
+import com.sap.sse.common.impl.KnotSpeedImpl;
29
+import com.sap.sse.common.impl.MeterDistance;
30 30
import com.sap.sse.common.impl.MillisecondsTimePoint;
31 31
import com.sap.sse.common.impl.SecondsDurationImpl;
32 32
java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCCertificatesCollectionRMS.java
... ...
@@ -10,7 +10,6 @@ import java.util.Map;
10 10
import java.util.Map.Entry;
11 11
import java.util.Set;
12 12
13
-import com.sap.sailing.domain.common.impl.MeterDistance;
14 13
import com.sap.sailing.domain.common.orc.ORCCertificate;
15 14
import com.sap.sailing.domain.common.orc.impl.ORCCertificateImpl;
16 15
import com.sap.sse.common.Bearing;
... ...
@@ -22,6 +21,7 @@ import com.sap.sse.common.Speed;
22 21
import com.sap.sse.common.TimePoint;
23 22
import com.sap.sse.common.Util.Triple;
24 23
import com.sap.sse.common.impl.DegreeBearingImpl;
24
+import com.sap.sse.common.impl.MeterDistance;
25 25
import com.sap.sse.common.impl.MillisecondsTimePoint;
26 26
import com.sap.sse.common.impl.SecondsDurationImpl;
27 27
java/com.sap.sailing.domain/src/com/sap/sailing/domain/orc/impl/ORCPerformanceCurveImpl.java
... ...
@@ -21,7 +21,6 @@ import org.apache.commons.math3.analysis.solvers.NewtonRaphsonSolver;
21 21
import org.apache.commons.math3.exception.DimensionMismatchException;
22 22
23 23
import com.sap.sailing.domain.base.Competitor;
24
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
25 24
import com.sap.sailing.domain.common.orc.ORCCertificate;
26 25
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveCourse;
27 26
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveLeg;
... ...
@@ -34,6 +33,7 @@ import com.sap.sse.common.Bearing;
34 33
import com.sap.sse.common.Duration;
35 34
import com.sap.sse.common.Speed;
36 35
import com.sap.sse.common.impl.DegreeBearingImpl;
36
+import com.sap.sse.common.impl.KnotSpeedImpl;
37 37
import com.sap.sse.common.impl.SecondsDurationImpl;
38 38
import com.sap.sse.common.util.CubicSpline;
39 39
import com.sap.sse.common.util.CubicSpline.SplineBoundaryCondition;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/polars/PolarDataService.java
... ...
@@ -15,13 +15,13 @@ import com.sap.sailing.domain.base.SpeedWithConfidence;
15 15
import com.sap.sailing.domain.common.LegType;
16 16
import com.sap.sailing.domain.common.ManeuverType;
17 17
import com.sap.sailing.domain.common.Tack;
18
-import com.sap.sailing.domain.common.confidence.BearingWithConfidence;
19 18
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
20 19
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
21 20
import com.sap.sailing.domain.tracking.TrackedRace;
22 21
import com.sap.sse.common.Bearing;
23 22
import com.sap.sse.common.Speed;
24 23
import com.sap.sse.common.Util.Pair;
24
+import com.sap.sse.common.confidence.BearingWithConfidence;
25 25
26 26
/**
27 27
* Public Facade interface granting clients access to the polar sheets of {@link BoatClass}es. A boat's "polar sheet"
java/com.sap.sailing.domain/src/com/sap/sailing/domain/ranking/AbstractRankingMetric.java
... ...
@@ -18,8 +18,6 @@ import com.sap.sailing.domain.base.Leg;
18 18
import com.sap.sailing.domain.base.Waypoint;
19 19
import com.sap.sailing.domain.base.impl.CompetitorImpl;
20 20
import com.sap.sailing.domain.common.LegType;
21
-import com.sap.sailing.domain.common.Position;
22
-import com.sap.sailing.domain.common.impl.MeterDistance;
23 21
import com.sap.sailing.domain.tracking.MarkPassing;
24 22
import com.sap.sailing.domain.tracking.TrackedLeg;
25 23
import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
... ...
@@ -29,9 +27,11 @@ import com.sap.sailing.domain.tracking.WindPositionMode;
29 27
import com.sap.sailing.domain.tracking.impl.AbstractRaceRankComparator;
30 28
import com.sap.sse.common.Distance;
31 29
import com.sap.sse.common.Duration;
30
+import com.sap.sse.common.Position;
32 31
import com.sap.sse.common.Speed;
33 32
import com.sap.sse.common.TimePoint;
34 33
import com.sap.sse.common.Util;
34
+import com.sap.sse.common.impl.MeterDistance;
35 35
36 36
public abstract class AbstractRankingMetric implements RankingMetric {
37 37
private static final long serialVersionUID = -3671039530564696392L;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/ranking/NonPerformanceCurveRankingMetric.java
... ...
@@ -10,13 +10,13 @@ import com.sap.sailing.domain.base.Competitor;
10 10
import com.sap.sailing.domain.base.Leg;
11 11
import com.sap.sailing.domain.base.SpeedWithConfidence;
12 12
import com.sap.sailing.domain.base.Waypoint;
13
-import com.sap.sailing.domain.common.Position;
14 13
import com.sap.sailing.domain.tracking.MarkPassing;
15 14
import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
16 15
import com.sap.sailing.domain.tracking.TrackedRace;
17 16
import com.sap.sailing.domain.tracking.WindLegTypeAndLegBearingAndORCPerformanceCurveCache;
18 17
import com.sap.sse.common.Distance;
19 18
import com.sap.sse.common.Duration;
19
+import com.sap.sse.common.Position;
20 20
import com.sap.sse.common.Speed;
21 21
import com.sap.sse.common.TimePoint;
22 22
java/com.sap.sailing.domain/src/com/sap/sailing/domain/ranking/OneDesignRankingMetric.java
... ...
@@ -7,7 +7,6 @@ import java.util.function.Supplier;
7 7
import com.sap.sailing.domain.base.Competitor;
8 8
import com.sap.sailing.domain.base.Leg;
9 9
import com.sap.sailing.domain.base.Waypoint;
10
-import com.sap.sailing.domain.common.Position;
11 10
import com.sap.sailing.domain.common.RankingMetrics;
12 11
import com.sap.sailing.domain.tracking.MarkPassing;
13 12
import com.sap.sailing.domain.tracking.TrackedLeg;
... ...
@@ -19,6 +18,7 @@ import com.sap.sailing.domain.tracking.impl.RaceRankComparator;
19 18
import com.sap.sailing.domain.tracking.impl.WindwardToGoComparator;
20 19
import com.sap.sse.common.Distance;
21 20
import com.sap.sse.common.Duration;
21
+import com.sap.sse.common.Position;
22 22
import com.sap.sse.common.TimePoint;
23 23
24 24
public class OneDesignRankingMetric extends NonPerformanceCurveRankingMetric {
java/com.sap.sailing.domain/src/com/sap/sailing/domain/ranking/TimeOnTimeAndDistanceRankingMetric.java
... ...
@@ -14,8 +14,6 @@ import com.sap.sailing.domain.base.Competitor;
14 14
import com.sap.sailing.domain.base.Course;
15 15
import com.sap.sailing.domain.base.Leg;
16 16
import com.sap.sailing.domain.base.Waypoint;
17
-import com.sap.sailing.domain.common.Mile;
18
-import com.sap.sailing.domain.common.Position;
19 17
import com.sap.sailing.domain.common.RankingMetrics;
20 18
import com.sap.sailing.domain.tracking.MarkPassing;
21 19
import com.sap.sailing.domain.tracking.TrackedLeg;
... ...
@@ -24,6 +22,8 @@ import com.sap.sailing.domain.tracking.TrackedRace;
24 22
import com.sap.sailing.domain.tracking.WindLegTypeAndLegBearingAndORCPerformanceCurveCache;
25 23
import com.sap.sse.common.Distance;
26 24
import com.sap.sse.common.Duration;
25
+import com.sap.sse.common.Mile;
26
+import com.sap.sse.common.Position;
27 27
import com.sap.sse.common.TimePoint;
28 28
import com.sap.sse.common.impl.MillisecondsDurationImpl;
29 29
import com.sap.sse.shared.util.WeakReferenceWithCleanerCallback;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/DummyTrackedRace.java
... ...
@@ -27,9 +27,7 @@ import com.sap.sailing.domain.base.impl.CourseImpl;
27 27
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
28 28
import com.sap.sailing.domain.common.MaxPointsReason;
29 29
import com.sap.sailing.domain.common.NoWindException;
30
-import com.sap.sailing.domain.common.Position;
31 30
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
32
-import com.sap.sailing.domain.common.SpeedWithBearing;
33 31
import com.sap.sailing.domain.common.Tack;
34 32
import com.sap.sailing.domain.common.TargetTimeInfo;
35 33
import com.sap.sailing.domain.common.Wind;
... ...
@@ -52,7 +50,9 @@ import com.sap.sse.common.Bearing;
52 50
import com.sap.sse.common.Distance;
53 51
import com.sap.sse.common.Duration;
54 52
import com.sap.sse.common.IsManagedByCache;
53
+import com.sap.sse.common.Position;
55 54
import com.sap.sse.common.Speed;
55
+import com.sap.sse.common.SpeedWithBearing;
56 56
import com.sap.sse.common.TimePoint;
57 57
import com.sap.sse.common.Util;
58 58
import com.sap.sse.common.Util.Pair;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/GPSFixTrack.java
... ...
@@ -3,21 +3,21 @@ package com.sap.sailing.domain.tracking;
3 3
import java.util.Iterator;
4 4
5 5
import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
6
-import com.sap.sailing.domain.common.Position;
7
-import com.sap.sailing.domain.common.SpeedWithBearing;
8 6
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
9
-import com.sap.sailing.domain.common.confidence.Weigher;
10
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
11 7
import com.sap.sailing.domain.common.tracking.GPSFix;
12 8
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
13 9
import com.sap.sailing.domain.shared.tracking.MappedTrack;
14 10
import com.sap.sse.common.Distance;
15 11
import com.sap.sse.common.Duration;
12
+import com.sap.sse.common.Position;
16 13
import com.sap.sse.common.Speed;
14
+import com.sap.sse.common.SpeedWithBearing;
17 15
import com.sap.sse.common.TimePoint;
18 16
import com.sap.sse.common.TimeRange;
19 17
import com.sap.sse.common.Timed;
20 18
import com.sap.sse.common.Util;
19
+import com.sap.sse.common.confidence.Weigher;
20
+import com.sap.sse.common.impl.KnotSpeedImpl;
21 21
22 22
/**
23 23
* A track records the {@link GPSFix}es received for an object of type
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/LegBearingCache.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.domain.tracking;
2 2
3 3
import com.sap.sailing.domain.base.Waypoint;
4
-import com.sap.sailing.domain.common.Position;
5 4
import com.sap.sse.common.Bearing;
5
+import com.sap.sse.common.Position;
6 6
import com.sap.sse.common.TimePoint;
7 7
8 8
/**
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/Maneuver.java
... ...
@@ -2,12 +2,12 @@ package com.sap.sailing.domain.tracking;
2 2
3 3
import com.sap.sailing.domain.common.ManeuverType;
4 4
import com.sap.sailing.domain.common.NauticalSide;
5
-import com.sap.sailing.domain.common.SpeedWithBearing;
6 5
import com.sap.sailing.domain.common.Tack;
7 6
import com.sap.sailing.domain.common.tracking.GPSFix;
8 7
import com.sap.sailing.domain.maneuverdetection.impl.ManeuverDetectorImpl;
9 8
import com.sap.sse.common.Duration;
10 9
import com.sap.sse.common.Speed;
10
+import com.sap.sse.common.SpeedWithBearing;
11 11
import com.sap.sse.common.TimePoint;
12 12
import com.sap.sse.datamining.annotations.Dimension;
13 13
import com.sap.sse.datamining.annotations.Statistic;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/ManeuverCurveBoundaries.java
... ...
@@ -2,10 +2,10 @@ package com.sap.sailing.domain.tracking;
2 2
3 3
import java.io.Serializable;
4 4
5
-import com.sap.sailing.domain.common.SpeedWithBearing;
6 5
import com.sap.sse.common.Bearing;
7 6
import com.sap.sse.common.Duration;
8 7
import com.sap.sse.common.Speed;
8
+import com.sap.sse.common.SpeedWithBearing;
9 9
import com.sap.sse.common.TimePoint;
10 10
import com.sap.sse.common.impl.DegreeBearingImpl;
11 11
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/ManeuverLoss.java
... ...
@@ -2,12 +2,12 @@ package com.sap.sailing.domain.tracking;
2 2
3 3
import java.io.Serializable;
4 4
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.SpeedWithBearing;
7 5
import com.sap.sailing.domain.maneuverdetection.impl.ManeuverDetectorImpl;
8 6
import com.sap.sse.common.Bearing;
9 7
import com.sap.sse.common.Distance;
10 8
import com.sap.sse.common.Duration;
9
+import com.sap.sse.common.Position;
10
+import com.sap.sse.common.SpeedWithBearing;
11 11
12 12
/**
13 13
* Updated ManeuverLoss class to use it to visualize the correct maneuver loss on the race map. To draw the ManeuverLoss
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/MarkPositionAtTimePointCache.java
... ...
@@ -2,8 +2,8 @@ package com.sap.sailing.domain.tracking;
2 2
3 3
import com.sap.sailing.domain.base.Mark;
4 4
import com.sap.sailing.domain.base.Waypoint;
5
-import com.sap.sailing.domain.common.Position;
6 5
import com.sap.sse.common.Bearing;
6
+import com.sap.sse.common.Position;
7 7
import com.sap.sse.common.TimePoint;
8 8
9 9
/**
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/RaceLogWindFixDeclinationHelper.java
... ...
@@ -9,9 +9,9 @@ import com.sap.sailing.declination.Declination;
9 9
import com.sap.sailing.declination.DeclinationService;
10 10
import com.sap.sailing.domain.abstractlog.race.RaceLogWindFixEvent;
11 11
import com.sap.sailing.domain.common.Wind;
12
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
13 12
import com.sap.sailing.domain.common.impl.WindImpl;
14 13
import com.sap.sse.common.Duration;
14
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
15 15
16 16
public class RaceLogWindFixDeclinationHelper {
17 17
private static final Logger logger = Logger.getLogger(RaceLogWindFixDeclinationHelper.class.getName());
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/RaceWindCalculator.java
... ...
@@ -7,17 +7,17 @@ import java.util.List;
7 7
import com.sap.sailing.domain.abstractlog.race.RaceLog;
8 8
import com.sap.sailing.domain.abstractlog.race.RaceLogWindFixEvent;
9 9
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.WindFixesFinder;
10
-import com.sap.sailing.domain.common.Position;
11 10
import com.sap.sailing.domain.common.Wind;
12
-import com.sap.sailing.domain.common.confidence.BearingWithConfidence;
13
-import com.sap.sailing.domain.common.confidence.BearingWithConfidenceCluster;
14
-import com.sap.sailing.domain.common.confidence.Weigher;
15
-import com.sap.sailing.domain.common.confidence.impl.BearingWithConfidenceImpl;
16 11
import com.sap.sailing.domain.tracking.impl.WindSummaryImpl;
17 12
import com.sap.sailing.domain.tracking.impl.WindWithConfidenceImpl;
13
+import com.sap.sse.common.Position;
18 14
import com.sap.sse.common.Speed;
19 15
import com.sap.sse.common.TimePoint;
20 16
import com.sap.sse.common.Util.Pair;
17
+import com.sap.sse.common.confidence.BearingWithConfidence;
18
+import com.sap.sse.common.confidence.BearingWithConfidenceCluster;
19
+import com.sap.sse.common.confidence.Weigher;
20
+import com.sap.sse.common.confidence.impl.BearingWithConfidenceImpl;
21 21
import com.sap.sse.common.impl.MillisecondsTimePoint;
22 22
23 23
/**
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/SpeedWithBearingStep.java
... ...
@@ -1,6 +1,6 @@
1 1
package com.sap.sailing.domain.tracking;
2 2
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
3
+import com.sap.sse.common.SpeedWithBearing;
4 4
import com.sap.sse.common.Timed;
5 5
6 6
/**
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedLeg.java
... ...
@@ -7,13 +7,13 @@ import com.sap.sailing.domain.base.Competitor;
7 7
import com.sap.sailing.domain.base.Leg;
8 8
import com.sap.sailing.domain.common.LegType;
9 9
import com.sap.sailing.domain.common.NoWindException;
10
-import com.sap.sailing.domain.common.Position;
11 10
import com.sap.sailing.domain.common.TargetTimeInfo.LegTargetTimeInfo;
12 11
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
13 12
import com.sap.sailing.domain.common.Wind;
14 13
import com.sap.sailing.domain.polars.PolarDataService;
15 14
import com.sap.sse.common.Bearing;
16 15
import com.sap.sse.common.Distance;
16
+import com.sap.sse.common.Position;
17 17
import com.sap.sse.common.TimePoint;
18 18
import com.sap.sse.common.Util;
19 19
import com.sap.sse.common.Util.Pair;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedLegOfCompetitor.java
... ...
@@ -7,7 +7,6 @@ import com.sap.sailing.domain.base.Competitor;
7 7
import com.sap.sailing.domain.base.Leg;
8 8
import com.sap.sailing.domain.common.LegType;
9 9
import com.sap.sailing.domain.common.NoWindException;
10
-import com.sap.sailing.domain.common.SpeedWithBearing;
11 10
import com.sap.sailing.domain.common.TackType;
12 11
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
13 12
import com.sap.sailing.domain.leaderboard.caching.LeaderboardDTOCalculationReuseCache;
... ...
@@ -16,6 +15,7 @@ import com.sap.sse.common.Bearing;
16 15
import com.sap.sse.common.Distance;
17 16
import com.sap.sse.common.Duration;
18 17
import com.sap.sse.common.Speed;
18
+import com.sap.sse.common.SpeedWithBearing;
19 19
import com.sap.sse.common.TimePoint;
20 20
import com.sap.sse.common.Util;
21 21
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java
... ...
@@ -39,9 +39,7 @@ import com.sap.sailing.domain.base.Waypoint;
39 39
import com.sap.sailing.domain.common.LegType;
40 40
import com.sap.sailing.domain.common.MaxPointsReason;
41 41
import com.sap.sailing.domain.common.NoWindException;
42
-import com.sap.sailing.domain.common.Position;
43 42
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
44
-import com.sap.sailing.domain.common.SpeedWithBearing;
45 43
import com.sap.sailing.domain.common.Tack;
46 44
import com.sap.sailing.domain.common.TargetTimeInfo;
47 45
import com.sap.sailing.domain.common.TimingConstants;
... ...
@@ -78,7 +76,9 @@ import com.sap.sse.common.Bearing;
78 76
import com.sap.sse.common.Distance;
79 77
import com.sap.sse.common.Duration;
80 78
import com.sap.sse.common.IsManagedByCache;
79
+import com.sap.sse.common.Position;
81 80
import com.sap.sse.common.Speed;
81
+import com.sap.sse.common.SpeedWithBearing;
82 82
import com.sap.sse.common.TimePoint;
83 83
import com.sap.sse.common.Util;
84 84
import com.sap.sse.common.Util.Pair;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/WindTrack.java
... ...
@@ -1,12 +1,12 @@
1 1
package com.sap.sailing.domain.tracking;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sailing.domain.common.Wind;
5
-import com.sap.sailing.domain.common.impl.MeterDistance;
6 4
import com.sap.sse.common.Distance;
7 5
import com.sap.sse.common.Duration;
6
+import com.sap.sse.common.Position;
8 7
import com.sap.sse.common.TimePoint;
9 8
import com.sap.sse.common.Util;
9
+import com.sap.sse.common.impl.MeterDistance;
10 10
11 11
public interface WindTrack extends DynamicTrack<Wind> {
12 12
static final long DEFAULT_MILLISECONDS_OVER_WHICH_TO_AVERAGE_WIND = 30000;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/WindWithConfidence.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.domain.tracking;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sailing.domain.common.Wind;
5 4
import com.sap.sailing.domain.common.confidence.impl.ScalableWind;
5
+import com.sap.sse.common.Position;
6 6
import com.sap.sse.common.TimePoint;
7 7
import com.sap.sse.common.scalablevalue.HasConfidenceAndIsScalable;
8 8
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/BravoFixTrackImpl.java
... ...
@@ -5,7 +5,6 @@ import java.io.ObjectInputStream;
5 5
import java.io.Serializable;
6 6
import java.util.function.Function;
7 7
8
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableDistance;
9 8
import com.sap.sailing.domain.common.tracking.BravoExtendedFix;
10 9
import com.sap.sailing.domain.common.tracking.BravoFix;
11 10
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -26,6 +25,7 @@ import com.sap.sse.common.impl.DegreeBearingImpl;
26 25
import com.sap.sse.common.WithID;
27 26
import com.sap.sse.common.scalablevalue.ScalableDouble;
28 27
import com.sap.sse.common.scalablevalue.ScalableValue;
28
+import com.sap.sse.common.scalablevalue.impl.ScalableDistance;
29 29
30 30
/**
31 31
* Specific {@link SensorFixTrackImpl} used for {@link BravoFix}es.
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CombinedWindAsNavigableSet.java
... ...
@@ -2,11 +2,11 @@ package com.sap.sailing.domain.tracking.impl;
2 2
3 3
import java.util.NavigableSet;
4 4
5
-import com.sap.sailing.domain.common.Position;
6 5
import com.sap.sailing.domain.common.Wind;
7 6
import com.sap.sailing.domain.tracking.TrackedRace;
8 7
import com.sap.sailing.domain.tracking.WindTrack;
9 8
import com.sap.sailing.domain.tracking.impl.WindTrackImpl.DummyWind;
9
+import com.sap.sse.common.Position;
10 10
import com.sap.sse.common.TimePoint;
11 11
import com.sap.sse.common.impl.MillisecondsTimePoint;
12 12
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CombinedWindTrackImpl.java
... ...
@@ -1,19 +1,19 @@
1 1
package com.sap.sailing.domain.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sailing.domain.common.Wind;
5 4
import com.sap.sailing.domain.common.WindSourceType;
6 5
import com.sap.sailing.domain.tracking.TrackedRace;
7 6
import com.sap.sailing.domain.tracking.WindWithConfidence;
8 7
import com.sap.sailing.domain.tracking.impl.TrackBasedEstimationWindTrackImpl.EstimatedWindFixesAsNavigableSet;
8
+import com.sap.sse.common.Position;
9 9
import com.sap.sse.common.TimePoint;
10 10
import com.sap.sse.common.Util;
11 11
12 12
/**
13 13
* A wind track that delivers the result of
14
- * {@link TrackedRace#getWind(com.sap.sailing.domain.common.Position, com.sap.sse.common.TimePoint)},
14
+ * {@link TrackedRace#getWind(com.sap.sse.common.Position, com.sap.sse.common.TimePoint)},
15 15
* using a {@link CombinedWindAsNavigableSet} as its internal raw fixes collection. Resolution of raw fixes is set to 10s.
16
- * As the result of {@link TrackedRace#getWind(com.sap.sailing.domain.common.Position, com.sap.sse.common.TimePoint)}
16
+ * As the result of {@link TrackedRace#getWind(com.sap.sse.common.Position, com.sap.sse.common.TimePoint)}
17 17
* is already a smoothened, outlier-removed and averaged value, the averaging methods {@link #getAveragedWind(Position, TimePoint)}
18 18
* and {@link #getAveragedWindWithConfidence(Position, TimePoint)} are redefined such that they immediately delegate
19 19
* to {@link TrackedRace#getWindWithConfidence(Position, TimePoint)}.
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CourseChangeBasedTrackApproximation.java
... ...
@@ -16,7 +16,6 @@ import java.util.logging.Logger;
16 16
import com.sap.sailing.domain.base.BoatClass;
17 17
import com.sap.sailing.domain.base.Competitor;
18 18
import com.sap.sailing.domain.common.NauticalSide;
19
-import com.sap.sailing.domain.common.SpeedWithBearing;
20 19
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
21 20
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
22 21
import com.sap.sailing.domain.shared.tracking.AddResult;
... ...
@@ -24,6 +23,7 @@ import com.sap.sailing.domain.shared.tracking.impl.TimedComparator;
24 23
import com.sap.sailing.domain.tracking.GPSFixTrack;
25 24
import com.sap.sailing.domain.tracking.GPSTrackListener;
26 25
import com.sap.sse.common.Duration;
26
+import com.sap.sse.common.SpeedWithBearing;
27 27
import com.sap.sse.common.TimePoint;
28 28
import com.sap.sse.common.TimeRange;
29 29
import com.sap.sse.common.Util.Pair;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CrossTrackErrorCache.java
... ...
@@ -16,7 +16,6 @@ import com.sap.sailing.domain.base.Mark;
16 16
import com.sap.sailing.domain.base.Waypoint;
17 17
import com.sap.sailing.domain.common.LegType;
18 18
import com.sap.sailing.domain.common.NoWindException;
19
-import com.sap.sailing.domain.common.impl.MeterDistance;
20 19
import com.sap.sailing.domain.common.tracking.GPSFix;
21 20
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
22 21
import com.sap.sailing.domain.shared.tracking.AddResult;
... ...
@@ -30,6 +29,7 @@ import com.sap.sailing.domain.tracking.TrackedRace;
30 29
import com.sap.sse.common.Distance;
31 30
import com.sap.sse.common.TimePoint;
32 31
import com.sap.sse.common.Timed;
32
+import com.sap.sse.common.impl.MeterDistance;
33 33
import com.sap.sse.common.impl.MillisecondsTimePoint;
34 34
import com.sap.sse.util.SmartFutureCache;
35 35
import com.sap.sse.util.SmartFutureCache.CacheUpdater;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicGPSFixMovingTrackImpl.java
... ...
@@ -10,16 +10,7 @@ import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
10 10
import com.sap.sailing.domain.base.SpeedWithConfidence;
11 11
import com.sap.sailing.domain.base.impl.SpeedWithBearingWithConfidenceImpl;
12 12
import com.sap.sailing.domain.base.impl.SpeedWithConfidenceImpl;
13
-import com.sap.sailing.domain.common.Position;
14
-import com.sap.sailing.domain.common.SpeedWithBearing;
15 13
import com.sap.sailing.domain.common.Wind;
16
-import com.sap.sailing.domain.common.confidence.BearingWithConfidence;
17
-import com.sap.sailing.domain.common.confidence.BearingWithConfidenceCluster;
18
-import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
19
-import com.sap.sailing.domain.common.confidence.ConfidenceFactory;
20
-import com.sap.sailing.domain.common.confidence.Weigher;
21
-import com.sap.sailing.domain.common.confidence.impl.BearingWithConfidenceImpl;
22
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
23 14
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
24 15
import com.sap.sailing.domain.common.tracking.impl.CompactPositionHelper;
25 16
import com.sap.sailing.domain.common.tracking.impl.CompactionNotPossibleException;
... ...
@@ -28,10 +19,19 @@ import com.sap.sailing.domain.common.tracking.impl.VeryCompactGPSFixMovingImpl;
28 19
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
29 20
import com.sap.sse.common.Bearing;
30 21
import com.sap.sse.common.Distance;
22
+import com.sap.sse.common.Position;
31 23
import com.sap.sse.common.Speed;
24
+import com.sap.sse.common.SpeedWithBearing;
32 25
import com.sap.sse.common.TimePoint;
26
+import com.sap.sse.common.confidence.BearingWithConfidence;
27
+import com.sap.sse.common.confidence.BearingWithConfidenceCluster;
28
+import com.sap.sse.common.confidence.ConfidenceBasedAverager;
29
+import com.sap.sse.common.confidence.ConfidenceFactory;
30
+import com.sap.sse.common.confidence.HasConfidence;
31
+import com.sap.sse.common.confidence.Weigher;
32
+import com.sap.sse.common.confidence.impl.BearingWithConfidenceImpl;
33 33
import com.sap.sse.common.impl.DegreeBearingImpl;
34
-import com.sap.sse.common.scalablevalue.HasConfidence;
34
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
35 35
36 36
public class DynamicGPSFixMovingTrackImpl<ItemType> extends GPSFixTrackImpl<ItemType, GPSFixMoving> implements DynamicGPSFixTrack<ItemType, GPSFixMoving> {
37 37
private static final Logger logger = Logger.getLogger(DynamicGPSFixMovingTrackImpl.class.getName());
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/GPSFixTrackImpl.java
... ...
@@ -16,18 +16,8 @@ import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
16 16
import com.sap.sailing.domain.base.SpeedWithConfidence;
17 17
import com.sap.sailing.domain.base.impl.SpeedWithBearingWithConfidenceImpl;
18 18
import com.sap.sailing.domain.base.impl.SpeedWithConfidenceImpl;
19
-import com.sap.sailing.domain.common.Position;
20
-import com.sap.sailing.domain.common.SpeedWithBearing;
21 19
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
22 20
import com.sap.sailing.domain.common.Wind;
23
-import com.sap.sailing.domain.common.confidence.BearingWithConfidence;
24
-import com.sap.sailing.domain.common.confidence.BearingWithConfidenceCluster;
25
-import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
26
-import com.sap.sailing.domain.common.confidence.ConfidenceFactory;
27
-import com.sap.sailing.domain.common.confidence.Weigher;
28
-import com.sap.sailing.domain.common.confidence.impl.BearingWithConfidenceImpl;
29
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
30
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
31 21
import com.sap.sailing.domain.common.tracking.GPSFix;
32 22
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
33 23
import com.sap.sailing.domain.common.tracking.WithValidityCache;
... ...
@@ -45,16 +35,26 @@ import com.sap.sailing.domain.tracking.TrackedRace;
45 35
import com.sap.sse.common.Bearing;
46 36
import com.sap.sse.common.Distance;
47 37
import com.sap.sse.common.Duration;
38
+import com.sap.sse.common.Position;
48 39
import com.sap.sse.common.Speed;
40
+import com.sap.sse.common.SpeedWithBearing;
49 41
import com.sap.sse.common.TimePoint;
50 42
import com.sap.sse.common.TimeRange;
51 43
import com.sap.sse.common.Timed;
52 44
import com.sap.sse.common.Util;
45
+import com.sap.sse.common.confidence.BearingWithConfidence;
46
+import com.sap.sse.common.confidence.BearingWithConfidenceCluster;
47
+import com.sap.sse.common.confidence.ConfidenceBasedAverager;
48
+import com.sap.sse.common.confidence.ConfidenceFactory;
49
+import com.sap.sse.common.confidence.HasConfidence;
50
+import com.sap.sse.common.confidence.Weigher;
51
+import com.sap.sse.common.confidence.impl.BearingWithConfidenceImpl;
53 52
import com.sap.sse.common.impl.DegreeBearingImpl;
53
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
54 54
import com.sap.sse.common.impl.MillisecondsDurationImpl;
55 55
import com.sap.sse.common.impl.MillisecondsTimePoint;
56
+import com.sap.sse.common.impl.NauticalMileDistance;
56 57
import com.sap.sse.common.impl.TimeRangeImpl;
57
-import com.sap.sse.common.scalablevalue.HasConfidence;
58 58
import com.sap.sse.shared.util.impl.ArrayListNavigableSet;
59 59
60 60
public abstract class GPSFixTrackImpl<ItemType, FixType extends GPSFix> extends MappedTrackImpl<ItemType, FixType>
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/LegMiddleWindTrackImpl.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.domain.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sailing.domain.tracking.TrackedLeg;
5 4
import com.sap.sailing.domain.tracking.TrackedRace;
5
+import com.sap.sse.common.Position;
6 6
import com.sap.sse.common.TimePoint;
7 7
8 8
public class LegMiddleWindTrackImpl extends CombinedWindTrackImpl {
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/ManeuverCurveBoundariesImpl.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.domain.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
4 3
import com.sap.sailing.domain.tracking.ManeuverCurveBoundaries;
5 4
import com.sap.sse.common.Speed;
5
+import com.sap.sse.common.SpeedWithBearing;
6 6
import com.sap.sse.common.TimePoint;
7 7
8 8
/**
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/ManeuverImpl.java
... ...
@@ -2,8 +2,6 @@ package com.sap.sailing.domain.tracking.impl;
2 2
3 3
import com.sap.sailing.domain.common.ManeuverType;
4 4
import com.sap.sailing.domain.common.NauticalSide;
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.SpeedWithBearing;
7 5
import com.sap.sailing.domain.common.Tack;
8 6
import com.sap.sailing.domain.common.tracking.impl.AbstractGPSFixImpl;
9 7
import com.sap.sailing.domain.tracking.Maneuver;
... ...
@@ -11,7 +9,9 @@ import com.sap.sailing.domain.tracking.ManeuverCurveBoundaries;
11 9
import com.sap.sailing.domain.tracking.ManeuverLoss;
12 10
import com.sap.sailing.domain.tracking.MarkPassing;
13 11
import com.sap.sse.common.Duration;
12
+import com.sap.sse.common.Position;
14 13
import com.sap.sse.common.Speed;
14
+import com.sap.sse.common.SpeedWithBearing;
15 15
import com.sap.sse.common.TimePoint;
16 16
17 17
/**
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/ManeuverWithCoarseGrainedBoundariesImpl.java
... ...
@@ -1,9 +1,9 @@
1 1
package com.sap.sailing.domain.tracking.impl;
2 2
3 3
import com.sap.sailing.domain.common.ManeuverType;
4
-import com.sap.sailing.domain.common.Position;
5 4
import com.sap.sailing.domain.common.Tack;
6 5
import com.sap.sailing.domain.tracking.ManeuverCurveBoundaries;
6
+import com.sap.sse.common.Position;
7 7
import com.sap.sse.common.TimePoint;
8 8
9 9
/**
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/ManeuverWithMainCurveBoundariesImpl.java
... ...
@@ -1,12 +1,12 @@
1 1
package com.sap.sailing.domain.tracking.impl;
2 2
3 3
import com.sap.sailing.domain.common.ManeuverType;
4
-import com.sap.sailing.domain.common.Position;
5 4
import com.sap.sailing.domain.common.Tack;
6 5
import com.sap.sailing.domain.tracking.Maneuver;
7 6
import com.sap.sailing.domain.tracking.ManeuverCurveBoundaries;
8 7
import com.sap.sailing.domain.tracking.ManeuverLoss;
9 8
import com.sap.sailing.domain.tracking.MarkPassing;
9
+import com.sap.sse.common.Position;
10 10
import com.sap.sse.common.TimePoint;
11 11
12 12
/**
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/ManeuverWithStableSpeedAndCourseBoundariesImpl.java
... ...
@@ -1,12 +1,12 @@
1 1
package com.sap.sailing.domain.tracking.impl;
2 2
3 3
import com.sap.sailing.domain.common.ManeuverType;
4
-import com.sap.sailing.domain.common.Position;
5 4
import com.sap.sailing.domain.common.Tack;
6 5
import com.sap.sailing.domain.tracking.Maneuver;
7 6
import com.sap.sailing.domain.tracking.ManeuverCurveBoundaries;
8 7
import com.sap.sailing.domain.tracking.ManeuverLoss;
9 8
import com.sap.sailing.domain.tracking.MarkPassing;
9
+import com.sap.sse.common.Position;
10 10
import com.sap.sse.common.TimePoint;
11 11
12 12
/**
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/MarkPositionAtTimePointCacheImpl.java
... ...
@@ -5,10 +5,10 @@ import java.util.Map;
5 5
6 6
import com.sap.sailing.domain.base.Mark;
7 7
import com.sap.sailing.domain.base.Waypoint;
8
-import com.sap.sailing.domain.common.Position;
9 8
import com.sap.sailing.domain.tracking.TrackedLeg;
10 9
import com.sap.sailing.domain.tracking.TrackedRace;
11 10
import com.sap.sse.common.Bearing;
11
+import com.sap.sse.common.Position;
12 12
import com.sap.sse.common.TimePoint;
13 13
14 14
public class MarkPositionAtTimePointCacheImpl extends NonCachingMarkPositionAtTimePointCache {
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/NoCachingWindLegTypeAndLegBearingCache.java
... ...
@@ -8,7 +8,6 @@ import com.sap.sailing.domain.base.Competitor;
8 8
import com.sap.sailing.domain.base.Waypoint;
9 9
import com.sap.sailing.domain.common.LegType;
10 10
import com.sap.sailing.domain.common.NoWindException;
11
-import com.sap.sailing.domain.common.Position;
12 11
import com.sap.sailing.domain.common.Wind;
13 12
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveCourse;
14 13
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveLeg;
... ...
@@ -19,6 +18,7 @@ import com.sap.sailing.domain.tracking.TrackedRace;
19 18
import com.sap.sailing.domain.tracking.WindLegTypeAndLegBearingAndORCPerformanceCurveCache;
20 19
import com.sap.sse.common.Bearing;
21 20
import com.sap.sse.common.Duration;
21
+import com.sap.sse.common.Position;
22 22
import com.sap.sse.common.Speed;
23 23
import com.sap.sse.common.TimePoint;
24 24
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/NonCachingMarkPositionAtTimePointCache.java
... ...
@@ -2,11 +2,11 @@ package com.sap.sailing.domain.tracking.impl;
2 2
3 3
import com.sap.sailing.domain.base.Mark;
4 4
import com.sap.sailing.domain.base.Waypoint;
5
-import com.sap.sailing.domain.common.Position;
6 5
import com.sap.sailing.domain.tracking.MarkPositionAtTimePointCache;
7 6
import com.sap.sailing.domain.tracking.TrackedLeg;
8 7
import com.sap.sailing.domain.tracking.TrackedRace;
9 8
import com.sap.sse.common.Bearing;
9
+import com.sap.sse.common.Position;
10 10
import com.sap.sse.common.TimePoint;
11 11
12 12
public class NonCachingMarkPositionAtTimePointCache implements MarkPositionAtTimePointCache {
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/OutlierFilter.java
... ...
@@ -3,17 +3,17 @@ package com.sap.sailing.domain.tracking.impl;
3 3
import java.util.Iterator;
4 4
5 5
import com.sap.sailing.domain.base.Competitor;
6
-import com.sap.sailing.domain.common.Position;
7
-import com.sap.sailing.domain.common.SpeedWithBearing;
8
-import com.sap.sailing.domain.common.impl.MeterDistance;
9 6
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
10 7
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
11 8
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
12 9
import com.sap.sse.common.Bearing;
13 10
import com.sap.sse.common.Distance;
14 11
import com.sap.sse.common.Duration;
12
+import com.sap.sse.common.Position;
13
+import com.sap.sse.common.SpeedWithBearing;
15 14
import com.sap.sse.common.TimePoint;
16 15
import com.sap.sse.common.Util.Pair;
16
+import com.sap.sse.common.impl.MeterDistance;
17 17
18 18
/**
19 19
* Can filter {@link DynamicGPSFixTrack} contents for fixes that seem inconsistent in their timing. The underlying
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/ShortTimeWindCache.java
... ...
@@ -10,9 +10,9 @@ import java.util.concurrent.TimeUnit;
10 10
import java.util.logging.Level;
11 11
import java.util.logging.Logger;
12 12
13
-import com.sap.sailing.domain.common.Position;
14 13
import com.sap.sailing.domain.common.WindSource;
15 14
import com.sap.sailing.domain.tracking.WindWithConfidence;
15
+import com.sap.sse.common.Position;
16 16
import com.sap.sse.common.TimePoint;
17 17
import com.sap.sse.common.Util.Pair;
18 18
import com.sap.sse.common.Util.Triple;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/SpeedWithBearingStepImpl.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.domain.tracking.impl;
2 2
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
4 3
import com.sap.sailing.domain.tracking.SpeedWithBearingStep;
4
+import com.sap.sse.common.SpeedWithBearing;
5 5
import com.sap.sse.common.TimePoint;
6 6
7 7
/**
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackBasedEstimationWindTrackImpl.java
... ...
@@ -16,13 +16,10 @@ import java.util.concurrent.TimeUnit;
16 16
import com.sap.sailing.domain.base.Competitor;
17 17
import com.sap.sailing.domain.base.Mark;
18 18
import com.sap.sailing.domain.base.Waypoint;
19
-import com.sap.sailing.domain.common.Position;
20
-import com.sap.sailing.domain.common.SpeedWithBearing;
21 19
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
22 20
import com.sap.sailing.domain.common.Wind;
23 21
import com.sap.sailing.domain.common.WindSource;
24 22
import com.sap.sailing.domain.common.WindSourceType;
25
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
26 23
import com.sap.sailing.domain.common.impl.WindImpl;
27 24
import com.sap.sailing.domain.common.tracking.GPSFix;
28 25
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -36,11 +33,14 @@ import com.sap.sailing.domain.tracking.TrackedRaceStatus;
36 33
import com.sap.sailing.domain.tracking.WindTrack;
37 34
import com.sap.sailing.domain.tracking.WindWithConfidence;
38 35
import com.sap.sse.common.Duration;
36
+import com.sap.sse.common.Position;
37
+import com.sap.sse.common.SpeedWithBearing;
39 38
import com.sap.sse.common.TimePoint;
40 39
import com.sap.sse.common.TimeRange;
41 40
import com.sap.sse.common.Util.Pair;
42 41
import com.sap.sse.common.impl.AbstractTimePoint;
43 42
import com.sap.sse.common.impl.DegreeBearingImpl;
43
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
44 44
import com.sap.sse.common.impl.MillisecondsTimePoint;
45 45
import com.sap.sse.common.impl.SerializableComparator;
46 46
import com.sap.sse.concurrent.LockUtil;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedLegImpl.java
... ...
@@ -29,13 +29,11 @@ import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
29 29
import com.sap.sailing.domain.base.SpeedWithConfidence;
30 30
import com.sap.sailing.domain.common.LegType;
31 31
import com.sap.sailing.domain.common.NoWindException;
32
-import com.sap.sailing.domain.common.Position;
33 32
import com.sap.sailing.domain.common.Tack;
34 33
import com.sap.sailing.domain.common.TargetTimeInfo;
35 34
import com.sap.sailing.domain.common.Wind;
36 35
import com.sap.sailing.domain.common.WindSource;
37 36
import com.sap.sailing.domain.common.WindSourceType;
38
-import com.sap.sailing.domain.common.impl.MeterDistance;
39 37
import com.sap.sailing.domain.common.impl.TargetTimeInfoImpl;
40 38
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
41 39
import com.sap.sailing.domain.confidence.ConfidenceBasedWindAverager;
... ...
@@ -53,11 +51,13 @@ import com.sap.sailing.domain.tracking.WindWithConfidence;
53 51
import com.sap.sse.common.Bearing;
54 52
import com.sap.sse.common.Distance;
55 53
import com.sap.sse.common.Duration;
54
+import com.sap.sse.common.Position;
56 55
import com.sap.sse.common.Speed;
57 56
import com.sap.sse.common.TimePoint;
58 57
import com.sap.sse.common.Util;
59 58
import com.sap.sse.common.Util.Pair;
60 59
import com.sap.sse.common.impl.DegreeBearingImpl;
60
+import com.sap.sse.common.impl.MeterDistance;
61 61
import com.sap.sse.common.impl.MillisecondsTimePoint;
62 62
63 63
public class TrackedLegImpl implements TrackedLeg {
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedLegOfCompetitorImpl.java
... ...
@@ -13,11 +13,8 @@ import com.sap.sailing.domain.base.Waypoint;
13 13
import com.sap.sailing.domain.common.LegType;
14 14
import com.sap.sailing.domain.common.ManeuverType;
15 15
import com.sap.sailing.domain.common.NoWindException;
16
-import com.sap.sailing.domain.common.Position;
17
-import com.sap.sailing.domain.common.SpeedWithBearing;
18 16
import com.sap.sailing.domain.common.Wind;
19 17
import com.sap.sailing.domain.common.TackType;
20
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
21 18
import com.sap.sailing.domain.common.tracking.BravoFix;
22 19
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
23 20
import com.sap.sailing.domain.leaderboard.caching.LeaderboardDTOCalculationReuseCache;
... ...
@@ -33,10 +30,13 @@ import com.sap.sailing.domain.tracking.WindPositionMode;
33 30
import com.sap.sse.common.Bearing;
34 31
import com.sap.sse.common.Distance;
35 32
import com.sap.sse.common.Duration;
33
+import com.sap.sse.common.Position;
36 34
import com.sap.sse.common.Speed;
35
+import com.sap.sse.common.SpeedWithBearing;
37 36
import com.sap.sse.common.TimePoint;
38 37
import com.sap.sse.common.Util;
39 38
import com.sap.sse.common.impl.DegreeBearingImpl;
39
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
40 40
41 41
/**
42 42
* Provides a convenient view on the tracked leg, projecting to a single competitor's performance.
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java
... ...
@@ -88,12 +88,10 @@ import com.sap.sailing.domain.common.ManeuverType;
88 88
import com.sap.sailing.domain.common.MaxPointsReason;
89 89
import com.sap.sailing.domain.common.NauticalSide;
90 90
import com.sap.sailing.domain.common.NoWindException;
91
-import com.sap.sailing.domain.common.Position;
92 91
import com.sap.sailing.domain.common.RaceTimesCalculationUtil;
93 92
import com.sap.sailing.domain.common.RankingMetrics;
94 93
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
95 94
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
96
-import com.sap.sailing.domain.common.SpeedWithBearing;
97 95
import com.sap.sailing.domain.common.Tack;
98 96
import com.sap.sailing.domain.common.TargetTimeInfo;
99 97
import com.sap.sailing.domain.common.TargetTimeInfo.LegTargetTimeInfo;
... ...
@@ -103,23 +101,13 @@ import com.sap.sailing.domain.common.Wind;
103 101
import com.sap.sailing.domain.common.WindSource;
104 102
import com.sap.sailing.domain.common.WindSourceType;
105 103
import com.sap.sailing.domain.common.abstractlog.TimePointSpecificationFoundInLog;
106
-import com.sap.sailing.domain.common.confidence.BearingWithConfidence;
107
-import com.sap.sailing.domain.common.confidence.BearingWithConfidenceCluster;
108
-import com.sap.sailing.domain.common.confidence.Weigher;
109
-import com.sap.sailing.domain.common.confidence.impl.BearingWithConfidenceImpl;
110
-import com.sap.sailing.domain.common.confidence.impl.HyperbolicTimeDifferenceWeigher;
111
-import com.sap.sailing.domain.common.confidence.impl.PositionAndTimePointWeigher;
112 104
import com.sap.sailing.domain.common.confidence.impl.ScalableWind;
113
-import com.sap.sailing.domain.common.impl.CentralAngleDistance;
114
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
115
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
116 105
import com.sap.sailing.domain.common.impl.TargetTimeInfoImpl;
117 106
import com.sap.sailing.domain.common.impl.WindImpl;
118 107
import com.sap.sailing.domain.common.impl.WindSourceImpl;
119 108
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
120 109
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
121 110
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
122
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition;
123 111
import com.sap.sailing.domain.common.tracking.GPSFix;
124 112
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
125 113
import com.sap.sailing.domain.common.tracking.SensorFix;
... ...
@@ -181,16 +169,28 @@ import com.sap.sse.common.Bearing;
181 169
import com.sap.sse.common.Distance;
182 170
import com.sap.sse.common.Duration;
183 171
import com.sap.sse.common.IsManagedByCache;
172
+import com.sap.sse.common.Position;
184 173
import com.sap.sse.common.Speed;
174
+import com.sap.sse.common.SpeedWithBearing;
185 175
import com.sap.sse.common.TimePoint;
186 176
import com.sap.sse.common.TimeRange;
187 177
import com.sap.sse.common.Timed;
188 178
import com.sap.sse.common.Util;
189 179
import com.sap.sse.common.Util.Pair;
190 180
import com.sap.sse.common.Util.Triple;
181
+import com.sap.sse.common.confidence.BearingWithConfidence;
182
+import com.sap.sse.common.confidence.BearingWithConfidenceCluster;
183
+import com.sap.sse.common.confidence.HasConfidence;
184
+import com.sap.sse.common.confidence.Weigher;
185
+import com.sap.sse.common.confidence.impl.BearingWithConfidenceImpl;
186
+import com.sap.sse.common.confidence.impl.HyperbolicTimeDifferenceWeigher;
187
+import com.sap.sse.common.confidence.impl.PositionAndTimePointWeigher;
188
+import com.sap.sse.common.impl.CentralAngleDistance;
191 189
import com.sap.sse.common.impl.DegreeBearingImpl;
190
+import com.sap.sse.common.impl.KnotSpeedImpl;
191
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
192 192
import com.sap.sse.common.impl.MillisecondsTimePoint;
193
-import com.sap.sse.common.scalablevalue.HasConfidence;
193
+import com.sap.sse.common.scalablevalue.impl.ScalablePosition;
194 194
import com.sap.sse.concurrent.LockUtil;
195 195
import com.sap.sse.concurrent.NamedReentrantReadWriteLock;
196 196
import com.sap.sse.shared.util.impl.ApproximateTime;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/VirtualWindFixesAsNavigableSet.java
... ...
@@ -5,11 +5,11 @@ import java.util.Iterator;
5 5
import java.util.NavigableSet;
6 6
import java.util.SortedSet;
7 7
8
-import com.sap.sailing.domain.common.Position;
9 8
import com.sap.sailing.domain.common.Wind;
10 9
import com.sap.sailing.domain.tracking.TrackedRace;
11 10
import com.sap.sailing.domain.tracking.WindTrack;
12 11
import com.sap.sailing.domain.tracking.impl.WindTrackImpl.DummyWind;
12
+import com.sap.sse.common.Position;
13 13
import com.sap.sse.common.TimePoint;
14 14
import com.sap.sse.common.impl.MillisecondsTimePoint;
15 15
import com.sap.sse.shared.util.impl.AbstractUnmodifiableNavigableSet;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/VirtualWindTrackImpl.java
... ...
@@ -2,11 +2,11 @@ package com.sap.sailing.domain.tracking.impl;
2 2
3 3
import java.util.NavigableSet;
4 4
5
-import com.sap.sailing.domain.common.Position;
6 5
import com.sap.sailing.domain.common.Wind;
7 6
import com.sap.sailing.domain.shared.tracking.impl.PartialNavigableSetView;
8 7
import com.sap.sailing.domain.tracking.TrackedRace;
9 8
import com.sap.sailing.domain.tracking.WindWithConfidence;
9
+import com.sap.sse.common.Position;
10 10
import com.sap.sse.common.TimePoint;
11 11
import com.sap.sse.common.Util;
12 12
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java
... ...
@@ -11,12 +11,7 @@ import java.util.Set;
11 11
import java.util.logging.Level;
12 12
import java.util.logging.Logger;
13 13
14
-import com.sap.sailing.domain.common.CourseChange;
15
-import com.sap.sailing.domain.common.Position;
16
-import com.sap.sailing.domain.common.SpeedWithBearing;
17 14
import com.sap.sailing.domain.common.Wind;
18
-import com.sap.sailing.domain.common.confidence.Weigher;
19
-import com.sap.sailing.domain.common.confidence.impl.PositionAndTimePointWeigher;
20 15
import com.sap.sailing.domain.common.tracking.impl.CompactPositionHelper;
21 16
import com.sap.sailing.domain.common.tracking.impl.CompactionNotPossibleException;
22 17
import com.sap.sailing.domain.common.tracking.impl.PreciseCompactWindImpl;
... ...
@@ -28,13 +23,18 @@ import com.sap.sailing.domain.tracking.WindListener;
28 23
import com.sap.sailing.domain.tracking.WindTrack;
29 24
import com.sap.sailing.domain.tracking.WindWithConfidence;
30 25
import com.sap.sse.common.Bearing;
26
+import com.sap.sse.common.CourseChange;
31 27
import com.sap.sse.common.Distance;
32 28
import com.sap.sse.common.Duration;
29
+import com.sap.sse.common.Position;
33 30
import com.sap.sse.common.Speed;
31
+import com.sap.sse.common.SpeedWithBearing;
34 32
import com.sap.sse.common.TimePoint;
35 33
import com.sap.sse.common.Timed;
36 34
import com.sap.sse.common.Util;
37 35
import com.sap.sse.common.Util.Pair;
36
+import com.sap.sse.common.confidence.Weigher;
37
+import com.sap.sse.common.confidence.impl.PositionAndTimePointWeigher;
38 38
import com.sap.sse.common.util.MappingIterator;
39 39
import com.sap.sse.shared.util.impl.ArrayListNavigableSet;
40 40
java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindWithConfidenceImpl.java
... ...
@@ -1,9 +1,9 @@
1 1
package com.sap.sailing.domain.tracking.impl;
2 2
3 3
import com.sap.sailing.domain.common.Wind;
4
-import com.sap.sailing.domain.common.confidence.impl.HasConfidenceImpl;
5 4
import com.sap.sailing.domain.common.confidence.impl.ScalableWind;
6 5
import com.sap.sailing.domain.tracking.WindWithConfidence;
6
+import com.sap.sse.common.confidence.impl.HasConfidenceImpl;
7 7
8 8
public class WindWithConfidenceImpl<RelativeTo> extends HasConfidenceImpl<ScalableWind, Wind, RelativeTo> implements WindWithConfidence<RelativeTo> {
9 9
private static final long serialVersionUID = -644015582690775666L;
java/com.sap.sailing.domain/src/com/sap/sailing/domain/windestimation/TimePointAndPositionWithToleranceComparator.java
... ...
@@ -3,7 +3,7 @@ package com.sap.sailing.domain.windestimation;
3 3
import java.io.Serializable;
4 4
import java.util.Comparator;
5 5
6
-import com.sap.sailing.domain.common.Position;
6
+import com.sap.sse.common.Position;
7 7
import com.sap.sse.common.TimePoint;
8 8
import com.sap.sse.common.Util.Pair;
9 9
java/com.sap.sailing.domain/src/com/sap/sailing/domain/windestimation/WindTrackWithConfidenceForEachWindFixImpl.java
... ...
@@ -2,10 +2,10 @@ package com.sap.sailing.domain.windestimation;
2 2
3 3
import java.util.Map;
4 4
5
-import com.sap.sailing.domain.common.Position;
6 5
import com.sap.sailing.domain.common.Wind;
7 6
import com.sap.sailing.domain.tracking.WindWithConfidence;
8 7
import com.sap.sailing.domain.tracking.impl.WindTrackImpl;
8
+import com.sap.sse.common.Position;
9 9
import com.sap.sse.common.TimePoint;
10 10
import com.sap.sse.common.Util.Pair;
11 11
java/com.sap.sailing.domain/src/com/sap/sailing/util/RegattaUtil.java
... ...
@@ -2,8 +2,8 @@ package com.sap.sailing.util;
2 2
3 3
import com.sap.sailing.domain.base.BoatClass;
4 4
import com.sap.sailing.domain.base.Regatta;
5
-import com.sap.sailing.domain.common.impl.MeterDistance;
6 5
import com.sap.sse.common.Distance;
6
+import com.sap.sse.common.impl.MeterDistance;
7 7
8 8
public class RegattaUtil {
9 9
java/com.sap.sailing.expeditionconnector.test/src/com/sap/sailing/expeditionconnector/test/UDPExpeditionReceiverTest.java
... ...
@@ -40,11 +40,9 @@ import org.junit.jupiter.api.Timeout;
40 40
import com.sap.sailing.declination.Declination;
41 41
import com.sap.sailing.declination.DeclinationService;
42 42
import com.sap.sailing.domain.common.DeviceIdentifier;
43
-import com.sap.sailing.domain.common.Position;
44 43
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
45 44
import com.sap.sailing.domain.common.Wind;
46 45
import com.sap.sailing.domain.common.WindSource;
47
-import com.sap.sailing.domain.common.impl.DegreePosition;
48 46
import com.sap.sailing.domain.common.tracking.BravoExtendedFix;
49 47
import com.sap.sailing.domain.common.tracking.DoubleVectorFix;
50 48
import com.sap.sailing.domain.common.tracking.GPSFix;
... ...
@@ -65,12 +63,14 @@ import com.sap.sailing.expeditionconnector.persistence.ExpeditionGpsDeviceIdenti
65 63
import com.sap.sailing.expeditionconnector.persistence.ExpeditionSensorDeviceIdentifierImpl;
66 64
import com.sap.sse.common.Duration;
67 65
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
66
+import com.sap.sse.common.Position;
68 67
import com.sap.sse.common.TimePoint;
69 68
import com.sap.sse.common.TimeRange;
70 69
import com.sap.sse.common.Timed;
71 70
import com.sap.sse.common.TransformationException;
72 71
import com.sap.sse.common.Util;
73 72
import com.sap.sse.common.Util.Triple;
73
+import com.sap.sse.common.impl.DegreePosition;
74 74
import com.sap.sse.common.impl.MillisecondsTimePoint;
75 75
76 76
@Timeout(value=60, unit=TimeUnit.SECONDS)
java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/ExpeditionMessage.java
... ...
@@ -2,11 +2,11 @@ package com.sap.sailing.expeditionconnector;
2 2
3 3
import java.util.Set;
4 4
5
-import com.sap.sailing.domain.common.SpeedWithBearing;
6 5
import com.sap.sailing.domain.common.tracking.GPSFix;
7 6
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
8 7
import com.sap.sailing.udpconnector.UDPMessage;
9 8
import com.sap.sse.common.Bearing;
9
+import com.sap.sse.common.SpeedWithBearing;
10 10
import com.sap.sse.common.TimePoint;
11 11
12 12
public interface ExpeditionMessage extends UDPMessage {
java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/ExpeditionWindTracker.java
... ...
@@ -7,17 +7,17 @@ import java.util.logging.Logger;
7 7
8 8
import com.sap.sailing.declination.Declination;
9 9
import com.sap.sailing.declination.DeclinationService;
10
-import com.sap.sailing.domain.common.Position;
11
-import com.sap.sailing.domain.common.SpeedWithBearing;
12 10
import com.sap.sailing.domain.common.Wind;
13 11
import com.sap.sailing.domain.common.WindSourceType;
14
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
15 12
import com.sap.sailing.domain.common.impl.WindImpl;
16 13
import com.sap.sailing.domain.common.impl.WindSourceWithAdditionalID;
17 14
import com.sap.sailing.domain.tracking.AbstractWindTracker;
18 15
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
19 16
import com.sap.sailing.domain.tracking.WindTracker;
17
+import com.sap.sse.common.Position;
18
+import com.sap.sse.common.SpeedWithBearing;
20 19
import com.sap.sse.common.impl.DegreeBearingImpl;
20
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
21 21
22 22
/**
23 23
* Can be subscribed to a {@link UDPExpeditionReceiver} and forwards wind information
java/com.sap.sailing.expeditionconnector/src/com/sap/sailing/expeditionconnector/impl/ExpeditionMessageImpl.java
... ...
@@ -14,17 +14,17 @@ import java.util.logging.Level;
14 14
import java.util.logging.Logger;
15 15
16 16
import com.sap.sailing.declination.DeclinationService;
17
-import com.sap.sailing.domain.common.SpeedWithBearing;
18
-import com.sap.sailing.domain.common.impl.DegreePosition;
19
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
20 17
import com.sap.sailing.domain.common.tracking.GPSFix;
21 18
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
22 19
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
23 20
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
24 21
import com.sap.sailing.expeditionconnector.ExpeditionMessage;
25 22
import com.sap.sse.common.Bearing;
23
+import com.sap.sse.common.SpeedWithBearing;
26 24
import com.sap.sse.common.TimePoint;
27 25
import com.sap.sse.common.impl.DegreeBearingImpl;
26
+import com.sap.sse.common.impl.DegreePosition;
27
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
28 28
import com.sap.sse.common.impl.MillisecondsTimePoint;
29 29
30 30
public class ExpeditionMessageImpl implements ExpeditionMessage {
java/com.sap.sailing.geocoding.test/src/com/sap/sailing/geocoding/test/PlacemarkTest.java
... ...
@@ -4,8 +4,8 @@ import org.junit.jupiter.api.Assertions;
4 4
import org.junit.jupiter.api.Test;
5 5
6 6
import com.sap.sailing.domain.common.Placemark;
7
-import com.sap.sailing.domain.common.impl.DegreePosition;
8 7
import com.sap.sailing.domain.common.impl.PlacemarkImpl;
8
+import com.sap.sse.common.impl.DegreePosition;
9 9
10 10
public class PlacemarkTest {
11 11
@Test
java/com.sap.sailing.geocoding.test/src/com/sap/sailing/geocoding/test/ReverseGeocoderTest.java
... ...
@@ -13,11 +13,11 @@ import org.junit.jupiter.api.BeforeEach;
13 13
import org.junit.jupiter.api.Test;
14 14
15 15
import com.sap.sailing.domain.common.Placemark;
16
-import com.sap.sailing.domain.common.Position;
17
-import com.sap.sailing.domain.common.impl.DegreePosition;
18 16
import com.sap.sailing.domain.common.impl.PlacemarkImpl;
19 17
import com.sap.sailing.geocoding.ReverseGeocoder;
20 18
import com.sap.sailing.geocoding.impl.ReverseGeocoderImpl;
19
+import com.sap.sse.common.Position;
20
+import com.sap.sse.common.impl.DegreePosition;
21 21
22 22
public class ReverseGeocoderTest {
23 23
private ReverseGeocoder geocoder;
java/com.sap.sailing.geocoding.test/src/com/sap/sailing/geocoding/test/TimeZoneByPositionTest.java
... ...
@@ -12,9 +12,9 @@ import java.util.TimeZone;
12 12
import org.json.simple.parser.ParseException;
13 13
import org.junit.jupiter.api.Test;
14 14
15
-import com.sap.sailing.domain.common.impl.DegreePosition;
16 15
import com.sap.sailing.geocoding.impl.ReverseGeocoderImpl;
17 16
import com.sap.sse.common.TimePoint;
17
+import com.sap.sse.common.impl.DegreePosition;
18 18
19 19
public class TimeZoneByPositionTest {
20 20
@Test
java/com.sap.sailing.geocoding/src/com/sap/sailing/geocoding/ReverseGeocoder.java
... ...
@@ -9,8 +9,8 @@ import java.util.TimeZone;
9 9
import org.json.simple.parser.ParseException;
10 10
11 11
import com.sap.sailing.domain.common.Placemark;
12
-import com.sap.sailing.domain.common.Position;
13 12
import com.sap.sailing.geocoding.impl.ReverseGeocoderImpl;
13
+import com.sap.sse.common.Position;
14 14
import com.sap.sse.common.TimePoint;
15 15
16 16
public interface ReverseGeocoder {
java/com.sap.sailing.geocoding/src/com/sap/sailing/geocoding/impl/ReverseGeocoderImpl.java
... ...
@@ -26,14 +26,14 @@ import org.json.simple.parser.JSONParser;
26 26
import org.json.simple.parser.ParseException;
27 27
28 28
import com.sap.sailing.domain.common.Placemark;
29
-import com.sap.sailing.domain.common.Position;
30
-import com.sap.sailing.domain.common.impl.DegreePosition;
31 29
import com.sap.sailing.domain.common.impl.PlacemarkImpl;
32 30
import com.sap.sailing.domain.common.quadtree.QuadTree;
33 31
import com.sap.sailing.geocoding.ReverseGeocoder;
34 32
import com.sap.sse.common.Duration;
33
+import com.sap.sse.common.Position;
35 34
import com.sap.sse.common.TimePoint;
36 35
import com.sap.sse.common.Util;
36
+import com.sap.sse.common.impl.DegreePosition;
37 37
import com.sap.sse.util.HttpUrlConnectionHelper;
38 38
39 39
public class ReverseGeocoderImpl implements ReverseGeocoder {
java/com.sap.sailing.grib.test/src/com/sap/sailing/grib/test/Bzip2GridFileReadingTest.java
... ...
@@ -9,8 +9,8 @@ import org.junit.jupiter.api.AfterEach;
9 9
import org.junit.jupiter.api.BeforeEach;
10 10
import org.junit.jupiter.api.Test;
11 11
12
-import com.sap.sailing.domain.common.Position;
13
-import com.sap.sailing.domain.common.impl.DegreePosition;
12
+import com.sap.sse.common.Position;
13
+import com.sap.sse.common.impl.DegreePosition;
14 14
15 15
import ucar.ma2.ArrayFloat.D3;
16 16
import ucar.nc2.VariableSimpleIF;
java/com.sap.sailing.grib.test/src/com/sap/sailing/grib/test/SimpleGridFileReadingTest.java
... ...
@@ -17,13 +17,13 @@ import java.util.TimeZone;
17 17
18 18
import org.junit.jupiter.api.Test;
19 19
20
-import com.sap.sailing.domain.common.Bounds;
21
-import com.sap.sailing.domain.common.Position;
22
-import com.sap.sailing.domain.common.impl.DegreePosition;
23 20
import com.sap.sailing.domain.tracking.WindWithConfidence;
24 21
import com.sap.sailing.grib.GribWindField;
25 22
import com.sap.sailing.grib.GribWindFieldFactory;
23
+import com.sap.sse.common.Bounds;
24
+import com.sap.sse.common.Position;
26 25
import com.sap.sse.common.TimePoint;
26
+import com.sap.sse.common.impl.DegreePosition;
27 27
import com.sap.sse.common.impl.MillisecondsTimePoint;
28 28
29 29
import ucar.ma2.ArrayFloat.D2;
java/com.sap.sailing.grib/src/com/sap/sailing/grib/GribWindField.java
... ...
@@ -2,10 +2,10 @@ package com.sap.sailing.grib;
2 2
3 3
import java.io.IOException;
4 4
5
-import com.sap.sailing.domain.common.Bounds;
6
-import com.sap.sailing.domain.common.Position;
7 5
import com.sap.sailing.domain.common.Wind;
8 6
import com.sap.sailing.domain.tracking.WindWithConfidence;
7
+import com.sap.sse.common.Bounds;
8
+import com.sap.sse.common.Position;
9 9
import com.sap.sse.common.TimePoint;
10 10
import com.sap.sse.common.TimeRange;
11 11
java/com.sap.sailing.grib/src/com/sap/sailing/grib/impl/AbstractGribWindFieldImpl.java
... ...
@@ -8,18 +8,18 @@ import java.util.List;
8 8
import java.util.Optional;
9 9
import java.util.stream.StreamSupport;
10 10
11
-import com.sap.sailing.domain.common.Bounds;
12
-import com.sap.sailing.domain.common.Position;
13
-import com.sap.sailing.domain.common.confidence.Weigher;
14
-import com.sap.sailing.domain.common.impl.BoundsImpl;
15
-import com.sap.sailing.domain.common.impl.DegreePosition;
16 11
import com.sap.sailing.domain.confidence.ConfidenceFactory;
17 12
import com.sap.sailing.grib.GribWindField;
13
+import com.sap.sse.common.Bounds;
18 14
import com.sap.sse.common.Duration;
15
+import com.sap.sse.common.Position;
19 16
import com.sap.sse.common.TimePoint;
20 17
import com.sap.sse.common.TimeRange;
21 18
import com.sap.sse.common.Util.Pair;
22 19
import com.sap.sse.common.Util.Triple;
20
+import com.sap.sse.common.confidence.Weigher;
21
+import com.sap.sse.common.impl.BoundsImpl;
22
+import com.sap.sse.common.impl.DegreePosition;
23 23
import com.sap.sse.common.impl.MillisecondsTimePoint;
24 24
import com.sap.sse.common.impl.TimeRangeImpl;
25 25
java/com.sap.sailing.grib/src/com/sap/sailing/grib/impl/SpeedAndDirectionWindField.java
... ...
@@ -9,15 +9,15 @@ import java.util.Map;
9 9
import java.util.logging.Level;
10 10
import java.util.logging.Logger;
11 11
12
-import com.sap.sailing.domain.common.Position;
13 12
import com.sap.sailing.domain.common.Wind;
14
-import com.sap.sailing.domain.common.impl.MeterPerSecondSpeedWithDegreeBearingImpl;
15 13
import com.sap.sailing.domain.common.impl.WindImpl;
16 14
import com.sap.sailing.domain.tracking.WindWithConfidence;
17 15
import com.sap.sailing.domain.tracking.impl.WindWithConfidenceImpl;
16
+import com.sap.sse.common.Position;
18 17
import com.sap.sse.common.TimePoint;
19 18
import com.sap.sse.common.Util.Triple;
20 19
import com.sap.sse.common.impl.DegreeBearingImpl;
20
+import com.sap.sse.common.impl.MeterPerSecondSpeedWithDegreeBearingImpl;
21 21
22 22
import ucar.ma2.Array;
23 23
import ucar.ma2.Index;
java/com.sap.sailing.grib/src/com/sap/sailing/grib/impl/UVWindField.java
... ...
@@ -10,15 +10,15 @@ import java.util.Map;
10 10
import java.util.logging.Level;
11 11
import java.util.logging.Logger;
12 12
13
-import com.sap.sailing.domain.common.Position;
14 13
import com.sap.sailing.domain.common.Wind;
15
-import com.sap.sailing.domain.common.impl.MeterPerSecondSpeedWithDegreeBearingImpl;
16
-import com.sap.sailing.domain.common.impl.RadianBearingImpl;
17 14
import com.sap.sailing.domain.common.impl.WindImpl;
18 15
import com.sap.sailing.domain.tracking.WindWithConfidence;
19 16
import com.sap.sailing.domain.tracking.impl.WindWithConfidenceImpl;
17
+import com.sap.sse.common.Position;
20 18
import com.sap.sse.common.TimePoint;
21 19
import com.sap.sse.common.Util.Triple;
20
+import com.sap.sse.common.impl.MeterPerSecondSpeedWithDegreeBearingImpl;
21
+import com.sap.sse.common.impl.RadianBearingImpl;
22 22
23 23
import ucar.ma2.Array;
24 24
import ucar.ma2.Index;
java/com.sap.sailing.gwt.ui/META-INF/MANIFEST.MF
... ...
@@ -98,13 +98,13 @@ Bundle-ClassPath: WEB-INF/classes/
98 98
TrackLifecycle: true
99 99
Export-Package: com.google.gwt.user.client.rpc.core.com.sap.sailing.datamining.shared,
100 100
com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common,
101
- com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.confidence.impl,
102 101
com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.dto,
103 102
com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.impl,
104 103
com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.tracking.impl,
105 104
com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.windfinder,
106 105
com.google.gwt.user.client.rpc.core.com.sap.sailing.expeditionconnector,
107 106
com.google.gwt.user.client.rpc.core.com.sap.sse.common.impl,
107
+ com.google.gwt.user.client.rpc.core.com.sap.sse.common.confidence.impl,
108 108
com.google.gwt.user.client.rpc.core.com.sap.sse.datamining.shared.impl,
109 109
com.google.gwt.user.client.rpc.core.com.sap.sse.datamining.shared.impl.dto,
110 110
com.google.gwt.user.client.rpc.core.com.sap.sse.security.shared,
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/confidence/impl/LazyDividedScaledPosition_CustomFieldSerializer.java
... ...
@@ -1,54 +0,0 @@
1
-package com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.confidence.impl;
2
-
3
-import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
-import com.google.gwt.user.client.rpc.SerializationException;
5
-import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
-import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
-import com.sap.sailing.domain.common.Position;
8
-import com.sap.sailing.domain.common.confidence.impl.LazyDividedScaledPosition;
9
-import com.sap.sailing.domain.common.impl.DegreePosition;
10
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition;
11
-
12
-public final class LazyDividedScaledPosition_CustomFieldSerializer extends
13
- CustomFieldSerializer<com.sap.sailing.domain.common.confidence.impl.LazyDividedScaledPosition> {
14
- public static void deserialize(SerializationStreamReader streamReader, LazyDividedScaledPosition instance)
15
- throws SerializationException {
16
- }
17
-
18
- @Override
19
- public void deserializeInstance(SerializationStreamReader streamReader, LazyDividedScaledPosition instance)
20
- throws SerializationException {
21
- deserialize(streamReader, instance);
22
- }
23
-
24
- @Override
25
- public void serializeInstance(SerializationStreamWriter streamWriter, LazyDividedScaledPosition instance)
26
- throws SerializationException {
27
- serialize(streamWriter, instance);
28
- }
29
-
30
- public static void serialize(SerializationStreamWriter streamWriter, LazyDividedScaledPosition instance)
31
- throws SerializationException {
32
- streamWriter.writeDouble(instance.getLatDeg());
33
- streamWriter.writeDouble(instance.getLngDeg());
34
- }
35
-
36
- @Override
37
- public boolean hasCustomInstantiateInstance() {
38
- return true;
39
- }
40
-
41
- @Override
42
- public LazyDividedScaledPosition instantiateInstance(SerializationStreamReader streamReader)
43
- throws SerializationException {
44
- return instantiate(streamReader);
45
- }
46
-
47
- public static LazyDividedScaledPosition instantiate(SerializationStreamReader streamReader) throws SerializationException {
48
- final double latDeg = streamReader.readDouble();
49
- final double lngDeg = streamReader.readDouble();
50
- Position position = new DegreePosition(latDeg, lngDeg);
51
- ScalablePosition scalablePosition = new ScalablePosition(position);
52
- return new LazyDividedScaledPosition(scalablePosition, 1);
53
- }
54
-}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/impl/CentralAngleDistance_CustomFieldSerializer.java
... ...
@@ -1,48 +0,0 @@
1
-package com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.impl;
2
-
3
-import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
-import com.google.gwt.user.client.rpc.SerializationException;
5
-import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
-import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
-import com.sap.sailing.domain.common.impl.CentralAngleDistance;
8
-
9
-public class CentralAngleDistance_CustomFieldSerializer extends CustomFieldSerializer<CentralAngleDistance> {
10
-
11
- @Override
12
- public void serializeInstance(SerializationStreamWriter streamWriter, CentralAngleDistance instance)
13
- throws SerializationException {
14
- serialize(streamWriter, instance);
15
- }
16
-
17
- public static void serialize(SerializationStreamWriter streamWriter, CentralAngleDistance instance)
18
- throws SerializationException {
19
- streamWriter.writeDouble(instance.getCentralAngleRad());
20
- }
21
-
22
- @Override
23
- public boolean hasCustomInstantiateInstance() {
24
- return true;
25
- }
26
-
27
- @Override
28
- public CentralAngleDistance instantiateInstance(SerializationStreamReader streamReader)
29
- throws SerializationException {
30
- return instantiate(streamReader);
31
- }
32
-
33
- public static CentralAngleDistance instantiate(SerializationStreamReader streamReader)
34
- throws SerializationException {
35
- return new CentralAngleDistance(streamReader.readDouble());
36
- }
37
-
38
- @Override
39
- public void deserializeInstance(SerializationStreamReader streamReader, CentralAngleDistance instance)
40
- throws SerializationException {
41
- deserialize(streamReader, instance);
42
- }
43
-
44
- public static void deserialize(SerializationStreamReader streamReader, CentralAngleDistance instance) {
45
- // Done by instantiateInstance
46
- }
47
-
48
-}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/impl/DegreePosition_CustomFieldSerializer.java
... ...
@@ -1,47 +0,0 @@
1
-package com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.impl;
2
-
3
-import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
-import com.google.gwt.user.client.rpc.SerializationException;
5
-import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
-import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
-import com.sap.sailing.domain.common.impl.DegreePosition;
8
-
9
-public class DegreePosition_CustomFieldSerializer extends CustomFieldSerializer<DegreePosition> {
10
- @Override
11
- public boolean hasCustomInstantiateInstance() {
12
- return true;
13
- }
14
-
15
- @Override
16
- public DegreePosition instantiateInstance(SerializationStreamReader streamReader) throws SerializationException {
17
- return instantiate(streamReader);
18
- }
19
-
20
- public static DegreePosition instantiate(SerializationStreamReader streamReader) throws SerializationException {
21
- return new DegreePosition(streamReader.readDouble(), streamReader.readDouble());
22
- }
23
-
24
- public static void deserialize(SerializationStreamReader streamReader, DegreePosition instance)
25
- throws SerializationException {
26
- // handled by instantiateInstance
27
- }
28
-
29
- @Override
30
- public void deserializeInstance(SerializationStreamReader streamReader, DegreePosition instance)
31
- throws SerializationException {
32
- deserialize(streamReader, instance);
33
- }
34
-
35
- @Override
36
- public void serializeInstance(SerializationStreamWriter streamWriter, DegreePosition instance)
37
- throws SerializationException {
38
- serialize(streamWriter, instance);
39
- }
40
-
41
- public static void serialize(SerializationStreamWriter streamWriter, DegreePosition instance)
42
- throws SerializationException {
43
- streamWriter.writeDouble(instance.getLatDeg());
44
- streamWriter.writeDouble(instance.getLngDeg());
45
- }
46
-
47
-}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/impl/KilometersPerHourSpeedImpl_CustomFieldSerializer.java
... ...
@@ -1,48 +0,0 @@
1
-package com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.impl;
2
-
3
-import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
-import com.google.gwt.user.client.rpc.SerializationException;
5
-import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
-import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
-import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
8
-
9
-public class KilometersPerHourSpeedImpl_CustomFieldSerializer extends CustomFieldSerializer<KilometersPerHourSpeedImpl> {
10
-
11
- @Override
12
- public void serializeInstance(SerializationStreamWriter streamWriter, KilometersPerHourSpeedImpl instance)
13
- throws SerializationException {
14
- serialize(streamWriter, instance);
15
- }
16
-
17
- public static void serialize(SerializationStreamWriter streamWriter, KilometersPerHourSpeedImpl instance)
18
- throws SerializationException {
19
- streamWriter.writeDouble(instance.getKilometersPerHour());
20
- }
21
-
22
- @Override
23
- public boolean hasCustomInstantiateInstance() {
24
- return true;
25
- }
26
-
27
- @Override
28
- public KilometersPerHourSpeedImpl instantiateInstance(SerializationStreamReader streamReader)
29
- throws SerializationException {
30
- return instantiate(streamReader);
31
- }
32
-
33
- public static KilometersPerHourSpeedImpl instantiate(SerializationStreamReader streamReader)
34
- throws SerializationException {
35
- return new KilometersPerHourSpeedImpl(streamReader.readDouble());
36
- }
37
-
38
- @Override
39
- public void deserializeInstance(SerializationStreamReader streamReader, KilometersPerHourSpeedImpl instance)
40
- throws SerializationException {
41
- deserialize(streamReader, instance);
42
- }
43
-
44
- public static void deserialize(SerializationStreamReader streamReader, KilometersPerHourSpeedImpl instance) {
45
- // Done by instantiateInstance
46
- }
47
-
48
-}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/impl/KnotSpeedImpl_CustomFieldSerializer.java
... ...
@@ -1,48 +0,0 @@
1
-package com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.impl;
2
-
3
-import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
-import com.google.gwt.user.client.rpc.SerializationException;
5
-import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
-import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
8
-
9
-public class KnotSpeedImpl_CustomFieldSerializer extends CustomFieldSerializer<KnotSpeedImpl> {
10
-
11
- @Override
12
- public void serializeInstance(SerializationStreamWriter streamWriter, KnotSpeedImpl instance)
13
- throws SerializationException {
14
- serialize(streamWriter, instance);
15
- }
16
-
17
- public static void serialize(SerializationStreamWriter streamWriter, KnotSpeedImpl instance)
18
- throws SerializationException {
19
- streamWriter.writeDouble(instance.getKnots());
20
- }
21
-
22
- @Override
23
- public boolean hasCustomInstantiateInstance() {
24
- return true;
25
- }
26
-
27
- @Override
28
- public KnotSpeedImpl instantiateInstance(SerializationStreamReader streamReader)
29
- throws SerializationException {
30
- return instantiate(streamReader);
31
- }
32
-
33
- public static KnotSpeedImpl instantiate(SerializationStreamReader streamReader)
34
- throws SerializationException {
35
- return new KnotSpeedImpl(streamReader.readDouble());
36
- }
37
-
38
- @Override
39
- public void deserializeInstance(SerializationStreamReader streamReader, KnotSpeedImpl instance)
40
- throws SerializationException {
41
- deserialize(streamReader, instance);
42
- }
43
-
44
- public static void deserialize(SerializationStreamReader streamReader, KnotSpeedImpl instance) {
45
- // Done by instantiateInstance
46
- }
47
-
48
-}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/impl/KnotSpeedWithBearingImpl_CustomFieldSerializer.java
... ...
@@ -1,50 +0,0 @@
1
-package com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.impl;
2
-
3
-import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
-import com.google.gwt.user.client.rpc.SerializationException;
5
-import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
-import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
8
-import com.sap.sse.common.impl.DegreeBearingImpl;
9
-
10
-public class KnotSpeedWithBearingImpl_CustomFieldSerializer extends CustomFieldSerializer<KnotSpeedWithBearingImpl> {
11
-
12
- @Override
13
- public void serializeInstance(SerializationStreamWriter streamWriter, KnotSpeedWithBearingImpl instance)
14
- throws SerializationException {
15
- serialize(streamWriter, instance);
16
- }
17
-
18
- public static void serialize(SerializationStreamWriter streamWriter, KnotSpeedWithBearingImpl instance)
19
- throws SerializationException {
20
- streamWriter.writeDouble(instance.getKnots());
21
- streamWriter.writeDouble(instance.getBearing().getDegrees());
22
- }
23
-
24
- @Override
25
- public boolean hasCustomInstantiateInstance() {
26
- return true;
27
- }
28
-
29
- @Override
30
- public KnotSpeedWithBearingImpl instantiateInstance(SerializationStreamReader streamReader)
31
- throws SerializationException {
32
- return instantiate(streamReader);
33
- }
34
-
35
- public static KnotSpeedWithBearingImpl instantiate(SerializationStreamReader streamReader)
36
- throws SerializationException {
37
- return new KnotSpeedWithBearingImpl(streamReader.readDouble(), new DegreeBearingImpl(streamReader.readDouble()));
38
- }
39
-
40
- @Override
41
- public void deserializeInstance(SerializationStreamReader streamReader, KnotSpeedWithBearingImpl instance)
42
- throws SerializationException {
43
- deserialize(streamReader, instance);
44
- }
45
-
46
- public static void deserialize(SerializationStreamReader streamReader, KnotSpeedWithBearingImpl instance) {
47
- // Done by instantiateInstance
48
- }
49
-
50
-}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/impl/MeterDistance_CustomFieldSerializer.java
... ...
@@ -1,48 +0,0 @@
1
-package com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.impl;
2
-
3
-import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
-import com.google.gwt.user.client.rpc.SerializationException;
5
-import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
-import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
-import com.sap.sailing.domain.common.impl.MeterDistance;
8
-
9
-public class MeterDistance_CustomFieldSerializer extends CustomFieldSerializer<MeterDistance> {
10
-
11
- @Override
12
- public void serializeInstance(SerializationStreamWriter streamWriter, MeterDistance instance)
13
- throws SerializationException {
14
- serialize(streamWriter, instance);
15
- }
16
-
17
- public static void serialize(SerializationStreamWriter streamWriter, MeterDistance instance)
18
- throws SerializationException {
19
- streamWriter.writeDouble(instance.getMeters());
20
- }
21
-
22
- @Override
23
- public boolean hasCustomInstantiateInstance() {
24
- return true;
25
- }
26
-
27
- @Override
28
- public MeterDistance instantiateInstance(SerializationStreamReader streamReader)
29
- throws SerializationException {
30
- return instantiate(streamReader);
31
- }
32
-
33
- public static MeterDistance instantiate(SerializationStreamReader streamReader)
34
- throws SerializationException {
35
- return new MeterDistance(streamReader.readDouble());
36
- }
37
-
38
- @Override
39
- public void deserializeInstance(SerializationStreamReader streamReader, MeterDistance instance)
40
- throws SerializationException {
41
- deserialize(streamReader, instance);
42
- }
43
-
44
- public static void deserialize(SerializationStreamReader streamReader, MeterDistance instance) {
45
- // Done by instantiateInstance
46
- }
47
-
48
-}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/impl/NauticalMileDistance_CustomFieldSerializer.java
... ...
@@ -1,48 +0,0 @@
1
-package com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.impl;
2
-
3
-import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
-import com.google.gwt.user.client.rpc.SerializationException;
5
-import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
-import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
8
-
9
-public class NauticalMileDistance_CustomFieldSerializer extends CustomFieldSerializer<NauticalMileDistance> {
10
-
11
- @Override
12
- public void serializeInstance(SerializationStreamWriter streamWriter, NauticalMileDistance instance)
13
- throws SerializationException {
14
- serialize(streamWriter, instance);
15
- }
16
-
17
- public static void serialize(SerializationStreamWriter streamWriter, NauticalMileDistance instance)
18
- throws SerializationException {
19
- streamWriter.writeDouble(instance.getNauticalMiles());
20
- }
21
-
22
- @Override
23
- public boolean hasCustomInstantiateInstance() {
24
- return true;
25
- }
26
-
27
- @Override
28
- public NauticalMileDistance instantiateInstance(SerializationStreamReader streamReader)
29
- throws SerializationException {
30
- return instantiate(streamReader);
31
- }
32
-
33
- public static NauticalMileDistance instantiate(SerializationStreamReader streamReader)
34
- throws SerializationException {
35
- return new NauticalMileDistance(streamReader.readDouble());
36
- }
37
-
38
- @Override
39
- public void deserializeInstance(SerializationStreamReader streamReader, NauticalMileDistance instance)
40
- throws SerializationException {
41
- deserialize(streamReader, instance);
42
- }
43
-
44
- public static void deserialize(SerializationStreamReader streamReader, NauticalMileDistance instance) {
45
- // Done by instantiateInstance
46
- }
47
-
48
-}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/impl/RadianBearingImpl_CustomFieldSerializer.java
... ...
@@ -1,48 +0,0 @@
1
-package com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.impl;
2
-
3
-import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
-import com.google.gwt.user.client.rpc.SerializationException;
5
-import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
-import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
-import com.sap.sailing.domain.common.impl.RadianBearingImpl;
8
-
9
-public class RadianBearingImpl_CustomFieldSerializer extends CustomFieldSerializer<RadianBearingImpl> {
10
-
11
- @Override
12
- public void serializeInstance(SerializationStreamWriter streamWriter, RadianBearingImpl instance)
13
- throws SerializationException {
14
- serialize(streamWriter, instance);
15
- }
16
-
17
- public static void serialize(SerializationStreamWriter streamWriter, RadianBearingImpl instance)
18
- throws SerializationException {
19
- streamWriter.writeDouble(instance.getRadians());
20
- }
21
-
22
- @Override
23
- public boolean hasCustomInstantiateInstance() {
24
- return true;
25
- }
26
-
27
- @Override
28
- public RadianBearingImpl instantiateInstance(SerializationStreamReader streamReader)
29
- throws SerializationException {
30
- return instantiate(streamReader);
31
- }
32
-
33
- public static RadianBearingImpl instantiate(SerializationStreamReader streamReader)
34
- throws SerializationException {
35
- return new RadianBearingImpl(streamReader.readDouble());
36
- }
37
-
38
- @Override
39
- public void deserializeInstance(SerializationStreamReader streamReader, RadianBearingImpl instance)
40
- throws SerializationException {
41
- deserialize(streamReader, instance);
42
- }
43
-
44
- public static void deserialize(SerializationStreamReader streamReader, RadianBearingImpl instance) {
45
- // Done by instantiateInstance
46
- }
47
-
48
-}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/impl/RadianPosition_CustomFieldSerializer.java
... ...
@@ -1,47 +0,0 @@
1
-package com.google.gwt.user.client.rpc.core.com.sap.sailing.domain.common.impl;
2
-
3
-import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
-import com.google.gwt.user.client.rpc.SerializationException;
5
-import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
-import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
-import com.sap.sailing.domain.common.impl.RadianPosition;
8
-
9
-public final class RadianPosition_CustomFieldSerializer extends CustomFieldSerializer<RadianPosition> {
10
- @Override
11
- public boolean hasCustomInstantiateInstance() {
12
- return true;
13
- }
14
-
15
- @Override
16
- public RadianPosition instantiateInstance(SerializationStreamReader streamReader) throws SerializationException {
17
- return instantiate(streamReader);
18
- }
19
-
20
- public static RadianPosition instantiate(SerializationStreamReader streamReader) throws SerializationException {
21
- final double latRad = streamReader.readDouble();
22
- final double lngRad = streamReader.readDouble();
23
- return new RadianPosition(latRad, lngRad);
24
- }
25
-
26
- @Override
27
- public void deserializeInstance(SerializationStreamReader streamReader, RadianPosition instance)
28
- throws SerializationException {
29
- deserialize(streamReader, instance);
30
- }
31
-
32
- public static void deserialize(SerializationStreamReader streamReader, RadianPosition instance) {
33
- // handled by instantiate
34
- }
35
-
36
- @Override
37
- public void serializeInstance(SerializationStreamWriter streamWriter, RadianPosition instance)
38
- throws SerializationException {
39
- serialize(streamWriter, instance);
40
- }
41
-
42
- public static void serialize(SerializationStreamWriter streamWriter, RadianPosition instance)
43
- throws SerializationException {
44
- streamWriter.writeDouble(instance.getLatRad());
45
- streamWriter.writeDouble(instance.getLngRad());
46
- }
47
-}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/orc/impl/ORCPerformanceCurveLegImpl_CustomFieldSerializer.java
... ...
@@ -4,10 +4,10 @@ import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4 4
import com.google.gwt.user.client.rpc.SerializationException;
5 5
import com.google.gwt.user.client.rpc.SerializationStreamReader;
6 6
import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
8 7
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveLegTypes;
9 8
import com.sap.sailing.domain.common.orc.impl.ORCPerformanceCurveLegImpl;
10 9
import com.sap.sse.common.impl.DegreeBearingImpl;
10
+import com.sap.sse.common.impl.NauticalMileDistance;
11 11
12 12
public class ORCPerformanceCurveLegImpl_CustomFieldSerializer extends CustomFieldSerializer<ORCPerformanceCurveLegImpl> {
13 13
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/tracking/impl/CompactWindImpl.java
... ...
@@ -6,11 +6,11 @@ import com.google.gwt.user.client.rpc.CustomFieldSerializer;
6 6
import com.google.gwt.user.client.rpc.SerializationException;
7 7
import com.google.gwt.user.client.rpc.SerializationStreamReader;
8 8
import com.google.gwt.user.client.rpc.SerializationStreamWriter;
9
-import com.sap.sailing.domain.common.impl.DegreePosition;
10
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
11 9
import com.sap.sailing.domain.common.impl.WindImpl;
12 10
import com.sap.sailing.domain.common.tracking.impl.VeryCompactWindImpl.VeryCompactPosition;
13 11
import com.sap.sse.common.impl.DegreeBearingImpl;
12
+import com.sap.sse.common.impl.DegreePosition;
13
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
14 14
import com.sap.sailing.domain.common.tracking.impl.CompactionNotPossibleException;
15 15
16 16
public final class CompactWindImpl {
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/tracking/impl/PreciseCompactGPSFixImpl.java
... ...
@@ -4,8 +4,8 @@ import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4 4
import com.google.gwt.user.client.rpc.SerializationException;
5 5
import com.google.gwt.user.client.rpc.SerializationStreamReader;
6 6
import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
-import com.sap.sailing.domain.common.impl.DegreePosition;
8 7
import com.sap.sailing.domain.common.tracking.impl.PreciseCompactGPSFixImpl.PreciseCompactPosition;
8
+import com.sap.sse.common.impl.DegreePosition;
9 9
10 10
public final class PreciseCompactGPSFixImpl {
11 11
public static final class PreciseCompactPosition_CustomFieldSerializer extends CustomFieldSerializer<PreciseCompactPosition> {
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/tracking/impl/PreciseCompactGPSFixMovingImpl.java
... ...
@@ -4,12 +4,12 @@ import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4 4
import com.google.gwt.user.client.rpc.SerializationException;
5 5
import com.google.gwt.user.client.rpc.SerializationStreamReader;
6 6
import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
-import com.sap.sailing.domain.common.impl.DegreePosition;
8
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
9 7
import com.sap.sailing.domain.common.tracking.impl.PreciseCompactGPSFixMovingImpl.PreciseCompactEstimatedSpeed;
10 8
import com.sap.sailing.domain.common.tracking.impl.PreciseCompactGPSFixMovingImpl.PreciseCompactPosition;
11 9
import com.sap.sailing.domain.common.tracking.impl.PreciseCompactGPSFixMovingImpl.PreciseCompactSpeedWithBearing;
12 10
import com.sap.sse.common.impl.DegreeBearingImpl;
11
+import com.sap.sse.common.impl.DegreePosition;
12
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
13 13
14 14
public final class PreciseCompactGPSFixMovingImpl {
15 15
public static final class PreciseCompactPosition_CustomFieldSerializer extends CustomFieldSerializer<PreciseCompactPosition> {
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/tracking/impl/VeryCompactGPSFixImpl.java
... ...
@@ -4,8 +4,8 @@ import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4 4
import com.google.gwt.user.client.rpc.SerializationException;
5 5
import com.google.gwt.user.client.rpc.SerializationStreamReader;
6 6
import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
-import com.sap.sailing.domain.common.impl.DegreePosition;
8 7
import com.sap.sailing.domain.common.tracking.impl.VeryCompactGPSFixImpl.CompactPosition;
8
+import com.sap.sse.common.impl.DegreePosition;
9 9
10 10
public final class VeryCompactGPSFixImpl {
11 11
public static final class CompactPosition_CustomFieldSerializer extends CustomFieldSerializer<CompactPosition> {
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/tracking/impl/VeryCompactGPSFixMovingImpl.java
... ...
@@ -7,13 +7,13 @@ import com.google.gwt.user.client.rpc.CustomFieldSerializer;
7 7
import com.google.gwt.user.client.rpc.SerializationException;
8 8
import com.google.gwt.user.client.rpc.SerializationStreamReader;
9 9
import com.google.gwt.user.client.rpc.SerializationStreamWriter;
10
-import com.sap.sailing.domain.common.impl.DegreePosition;
11
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
12 10
import com.sap.sailing.domain.common.tracking.impl.CompactionNotPossibleException;
13 11
import com.sap.sailing.domain.common.tracking.impl.VeryCompactGPSFixMovingImpl.VeryCompactEstimatedSpeed;
14 12
import com.sap.sailing.domain.common.tracking.impl.VeryCompactGPSFixMovingImpl.VeryCompactPosition;
15 13
import com.sap.sailing.domain.common.tracking.impl.VeryCompactGPSFixMovingImpl.VeryCompactSpeedWithBearing;
16 14
import com.sap.sse.common.impl.DegreeBearingImpl;
15
+import com.sap.sse.common.impl.DegreePosition;
16
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
17 17
18 18
public final class VeryCompactGPSFixMovingImpl {
19 19
private static final Logger logger = Logger.getLogger(VeryCompactGPSFixMovingImpl.class.getName());
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/tracking/impl/VeryCompactWindImpl.java
... ...
@@ -6,11 +6,11 @@ import com.google.gwt.user.client.rpc.CustomFieldSerializer;
6 6
import com.google.gwt.user.client.rpc.SerializationException;
7 7
import com.google.gwt.user.client.rpc.SerializationStreamReader;
8 8
import com.google.gwt.user.client.rpc.SerializationStreamWriter;
9
-import com.sap.sailing.domain.common.impl.DegreePosition;
10
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
11 9
import com.sap.sailing.domain.common.impl.WindImpl;
12 10
import com.sap.sailing.domain.common.tracking.impl.VeryCompactWindImpl.VeryCompactPosition;
13 11
import com.sap.sse.common.impl.DegreeBearingImpl;
12
+import com.sap.sse.common.impl.DegreePosition;
13
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
14 14
import com.sap.sailing.domain.common.tracking.impl.CompactionNotPossibleException;
15 15
16 16
public final class VeryCompactWindImpl {
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/domain/common/windfinder/SpotDTO_CustomFieldSerializer.java
... ...
@@ -4,8 +4,8 @@ import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4 4
import com.google.gwt.user.client.rpc.SerializationException;
5 5
import com.google.gwt.user.client.rpc.SerializationStreamReader;
6 6
import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
-import com.sap.sailing.domain.common.Position;
8 7
import com.sap.sailing.domain.common.windfinder.SpotDTO;
8
+import com.sap.sse.common.Position;
9 9
10 10
public class SpotDTO_CustomFieldSerializer extends CustomFieldSerializer<SpotDTO> {
11 11
@Override
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sailing/gwt/ui/shared/GPSFixDTOWithSpeedWindTackAndLegTypeIterable_CustomFieldSerializer.java
... ...
@@ -9,14 +9,14 @@ import com.google.gwt.user.client.rpc.SerializationException;
9 9
import com.google.gwt.user.client.rpc.SerializationStreamReader;
10 10
import com.google.gwt.user.client.rpc.SerializationStreamWriter;
11 11
import com.sap.sailing.domain.common.LegType;
12
-import com.sap.sailing.domain.common.Position;
13 12
import com.sap.sailing.domain.common.Tack;
14
-import com.sap.sailing.domain.common.impl.DegreePosition;
15 13
import com.sap.sailing.gwt.ui.shared.GPSFixDTOWithSpeedWindTackAndLegType;
16 14
import com.sap.sailing.gwt.ui.shared.GPSFixDTOWithSpeedWindTackAndLegTypeIterable;
17 15
import com.sap.sailing.gwt.ui.shared.SpeedWithBearingDTO;
18 16
import com.sap.sse.common.Bearing;
17
+import com.sap.sse.common.Position;
19 18
import com.sap.sse.common.impl.DegreeBearingImpl;
19
+import com.sap.sse.common.impl.DegreePosition;
20 20
21 21
/**
22 22
* Serializes the {@link GPSFixDTOWithSpeedWindTackAndLegType} objects one by one, writing only primitive values to the
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sse/common/confidence/impl/LazyDividedScaledPosition_CustomFieldSerializer.java
... ...
@@ -0,0 +1,54 @@
1
+package com.google.gwt.user.client.rpc.core.com.sap.sse.common.confidence.impl;
2
+
3
+import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
+import com.google.gwt.user.client.rpc.SerializationException;
5
+import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
+import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
+import com.sap.sse.common.Position;
8
+import com.sap.sse.common.confidence.impl.LazyDividedScaledPosition;
9
+import com.sap.sse.common.impl.DegreePosition;
10
+import com.sap.sse.common.scalablevalue.impl.ScalablePosition;
11
+
12
+public final class LazyDividedScaledPosition_CustomFieldSerializer extends
13
+ CustomFieldSerializer<com.sap.sse.common.confidence.impl.LazyDividedScaledPosition> {
14
+ public static void deserialize(SerializationStreamReader streamReader, LazyDividedScaledPosition instance)
15
+ throws SerializationException {
16
+ }
17
+
18
+ @Override
19
+ public void deserializeInstance(SerializationStreamReader streamReader, LazyDividedScaledPosition instance)
20
+ throws SerializationException {
21
+ deserialize(streamReader, instance);
22
+ }
23
+
24
+ @Override
25
+ public void serializeInstance(SerializationStreamWriter streamWriter, LazyDividedScaledPosition instance)
26
+ throws SerializationException {
27
+ serialize(streamWriter, instance);
28
+ }
29
+
30
+ public static void serialize(SerializationStreamWriter streamWriter, LazyDividedScaledPosition instance)
31
+ throws SerializationException {
32
+ streamWriter.writeDouble(instance.getLatDeg());
33
+ streamWriter.writeDouble(instance.getLngDeg());
34
+ }
35
+
36
+ @Override
37
+ public boolean hasCustomInstantiateInstance() {
38
+ return true;
39
+ }
40
+
41
+ @Override
42
+ public LazyDividedScaledPosition instantiateInstance(SerializationStreamReader streamReader)
43
+ throws SerializationException {
44
+ return instantiate(streamReader);
45
+ }
46
+
47
+ public static LazyDividedScaledPosition instantiate(SerializationStreamReader streamReader) throws SerializationException {
48
+ final double latDeg = streamReader.readDouble();
49
+ final double lngDeg = streamReader.readDouble();
50
+ Position position = new DegreePosition(latDeg, lngDeg);
51
+ ScalablePosition scalablePosition = new ScalablePosition(position);
52
+ return new LazyDividedScaledPosition(scalablePosition, 1);
53
+ }
54
+}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sse/common/impl/CentralAngleDistance_CustomFieldSerializer.java
... ...
@@ -0,0 +1,48 @@
1
+package com.google.gwt.user.client.rpc.core.com.sap.sse.common.impl;
2
+
3
+import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
+import com.google.gwt.user.client.rpc.SerializationException;
5
+import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
+import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
+import com.sap.sse.common.impl.CentralAngleDistance;
8
+
9
+public class CentralAngleDistance_CustomFieldSerializer extends CustomFieldSerializer<CentralAngleDistance> {
10
+
11
+ @Override
12
+ public void serializeInstance(SerializationStreamWriter streamWriter, CentralAngleDistance instance)
13
+ throws SerializationException {
14
+ serialize(streamWriter, instance);
15
+ }
16
+
17
+ public static void serialize(SerializationStreamWriter streamWriter, CentralAngleDistance instance)
18
+ throws SerializationException {
19
+ streamWriter.writeDouble(instance.getCentralAngleRad());
20
+ }
21
+
22
+ @Override
23
+ public boolean hasCustomInstantiateInstance() {
24
+ return true;
25
+ }
26
+
27
+ @Override
28
+ public CentralAngleDistance instantiateInstance(SerializationStreamReader streamReader)
29
+ throws SerializationException {
30
+ return instantiate(streamReader);
31
+ }
32
+
33
+ public static CentralAngleDistance instantiate(SerializationStreamReader streamReader)
34
+ throws SerializationException {
35
+ return new CentralAngleDistance(streamReader.readDouble());
36
+ }
37
+
38
+ @Override
39
+ public void deserializeInstance(SerializationStreamReader streamReader, CentralAngleDistance instance)
40
+ throws SerializationException {
41
+ deserialize(streamReader, instance);
42
+ }
43
+
44
+ public static void deserialize(SerializationStreamReader streamReader, CentralAngleDistance instance) {
45
+ // Done by instantiateInstance
46
+ }
47
+
48
+}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sse/common/impl/DegreePosition_CustomFieldSerializer.java
... ...
@@ -0,0 +1,47 @@
1
+package com.google.gwt.user.client.rpc.core.com.sap.sse.common.impl;
2
+
3
+import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
+import com.google.gwt.user.client.rpc.SerializationException;
5
+import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
+import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
+import com.sap.sse.common.impl.DegreePosition;
8
+
9
+public class DegreePosition_CustomFieldSerializer extends CustomFieldSerializer<DegreePosition> {
10
+ @Override
11
+ public boolean hasCustomInstantiateInstance() {
12
+ return true;
13
+ }
14
+
15
+ @Override
16
+ public DegreePosition instantiateInstance(SerializationStreamReader streamReader) throws SerializationException {
17
+ return instantiate(streamReader);
18
+ }
19
+
20
+ public static DegreePosition instantiate(SerializationStreamReader streamReader) throws SerializationException {
21
+ return new DegreePosition(streamReader.readDouble(), streamReader.readDouble());
22
+ }
23
+
24
+ public static void deserialize(SerializationStreamReader streamReader, DegreePosition instance)
25
+ throws SerializationException {
26
+ // handled by instantiateInstance
27
+ }
28
+
29
+ @Override
30
+ public void deserializeInstance(SerializationStreamReader streamReader, DegreePosition instance)
31
+ throws SerializationException {
32
+ deserialize(streamReader, instance);
33
+ }
34
+
35
+ @Override
36
+ public void serializeInstance(SerializationStreamWriter streamWriter, DegreePosition instance)
37
+ throws SerializationException {
38
+ serialize(streamWriter, instance);
39
+ }
40
+
41
+ public static void serialize(SerializationStreamWriter streamWriter, DegreePosition instance)
42
+ throws SerializationException {
43
+ streamWriter.writeDouble(instance.getLatDeg());
44
+ streamWriter.writeDouble(instance.getLngDeg());
45
+ }
46
+
47
+}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sse/common/impl/KilometersPerHourSpeedImpl_CustomFieldSerializer.java
... ...
@@ -0,0 +1,48 @@
1
+package com.google.gwt.user.client.rpc.core.com.sap.sse.common.impl;
2
+
3
+import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
+import com.google.gwt.user.client.rpc.SerializationException;
5
+import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
+import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
+import com.sap.sse.common.impl.KilometersPerHourSpeedImpl;
8
+
9
+public class KilometersPerHourSpeedImpl_CustomFieldSerializer extends CustomFieldSerializer<KilometersPerHourSpeedImpl> {
10
+
11
+ @Override
12
+ public void serializeInstance(SerializationStreamWriter streamWriter, KilometersPerHourSpeedImpl instance)
13
+ throws SerializationException {
14
+ serialize(streamWriter, instance);
15
+ }
16
+
17
+ public static void serialize(SerializationStreamWriter streamWriter, KilometersPerHourSpeedImpl instance)
18
+ throws SerializationException {
19
+ streamWriter.writeDouble(instance.getKilometersPerHour());
20
+ }
21
+
22
+ @Override
23
+ public boolean hasCustomInstantiateInstance() {
24
+ return true;
25
+ }
26
+
27
+ @Override
28
+ public KilometersPerHourSpeedImpl instantiateInstance(SerializationStreamReader streamReader)
29
+ throws SerializationException {
30
+ return instantiate(streamReader);
31
+ }
32
+
33
+ public static KilometersPerHourSpeedImpl instantiate(SerializationStreamReader streamReader)
34
+ throws SerializationException {
35
+ return new KilometersPerHourSpeedImpl(streamReader.readDouble());
36
+ }
37
+
38
+ @Override
39
+ public void deserializeInstance(SerializationStreamReader streamReader, KilometersPerHourSpeedImpl instance)
40
+ throws SerializationException {
41
+ deserialize(streamReader, instance);
42
+ }
43
+
44
+ public static void deserialize(SerializationStreamReader streamReader, KilometersPerHourSpeedImpl instance) {
45
+ // Done by instantiateInstance
46
+ }
47
+
48
+}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sse/common/impl/KnotSpeedImpl_CustomFieldSerializer.java
... ...
@@ -0,0 +1,48 @@
1
+package com.google.gwt.user.client.rpc.core.com.sap.sse.common.impl;
2
+
3
+import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
+import com.google.gwt.user.client.rpc.SerializationException;
5
+import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
+import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
+import com.sap.sse.common.impl.KnotSpeedImpl;
8
+
9
+public class KnotSpeedImpl_CustomFieldSerializer extends CustomFieldSerializer<KnotSpeedImpl> {
10
+
11
+ @Override
12
+ public void serializeInstance(SerializationStreamWriter streamWriter, KnotSpeedImpl instance)
13
+ throws SerializationException {
14
+ serialize(streamWriter, instance);
15
+ }
16
+
17
+ public static void serialize(SerializationStreamWriter streamWriter, KnotSpeedImpl instance)
18
+ throws SerializationException {
19
+ streamWriter.writeDouble(instance.getKnots());
20
+ }
21
+
22
+ @Override
23
+ public boolean hasCustomInstantiateInstance() {
24
+ return true;
25
+ }
26
+
27
+ @Override
28
+ public KnotSpeedImpl instantiateInstance(SerializationStreamReader streamReader)
29
+ throws SerializationException {
30
+ return instantiate(streamReader);
31
+ }
32
+
33
+ public static KnotSpeedImpl instantiate(SerializationStreamReader streamReader)
34
+ throws SerializationException {
35
+ return new KnotSpeedImpl(streamReader.readDouble());
36
+ }
37
+
38
+ @Override
39
+ public void deserializeInstance(SerializationStreamReader streamReader, KnotSpeedImpl instance)
40
+ throws SerializationException {
41
+ deserialize(streamReader, instance);
42
+ }
43
+
44
+ public static void deserialize(SerializationStreamReader streamReader, KnotSpeedImpl instance) {
45
+ // Done by instantiateInstance
46
+ }
47
+
48
+}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sse/common/impl/KnotSpeedWithBearingImpl_CustomFieldSerializer.java
... ...
@@ -0,0 +1,50 @@
1
+package com.google.gwt.user.client.rpc.core.com.sap.sse.common.impl;
2
+
3
+import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
+import com.google.gwt.user.client.rpc.SerializationException;
5
+import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
+import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
+import com.sap.sse.common.impl.DegreeBearingImpl;
8
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
9
+
10
+public class KnotSpeedWithBearingImpl_CustomFieldSerializer extends CustomFieldSerializer<KnotSpeedWithBearingImpl> {
11
+
12
+ @Override
13
+ public void serializeInstance(SerializationStreamWriter streamWriter, KnotSpeedWithBearingImpl instance)
14
+ throws SerializationException {
15
+ serialize(streamWriter, instance);
16
+ }
17
+
18
+ public static void serialize(SerializationStreamWriter streamWriter, KnotSpeedWithBearingImpl instance)
19
+ throws SerializationException {
20
+ streamWriter.writeDouble(instance.getKnots());
21
+ streamWriter.writeDouble(instance.getBearing().getDegrees());
22
+ }
23
+
24
+ @Override
25
+ public boolean hasCustomInstantiateInstance() {
26
+ return true;
27
+ }
28
+
29
+ @Override
30
+ public KnotSpeedWithBearingImpl instantiateInstance(SerializationStreamReader streamReader)
31
+ throws SerializationException {
32
+ return instantiate(streamReader);
33
+ }
34
+
35
+ public static KnotSpeedWithBearingImpl instantiate(SerializationStreamReader streamReader)
36
+ throws SerializationException {
37
+ return new KnotSpeedWithBearingImpl(streamReader.readDouble(), new DegreeBearingImpl(streamReader.readDouble()));
38
+ }
39
+
40
+ @Override
41
+ public void deserializeInstance(SerializationStreamReader streamReader, KnotSpeedWithBearingImpl instance)
42
+ throws SerializationException {
43
+ deserialize(streamReader, instance);
44
+ }
45
+
46
+ public static void deserialize(SerializationStreamReader streamReader, KnotSpeedWithBearingImpl instance) {
47
+ // Done by instantiateInstance
48
+ }
49
+
50
+}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sse/common/impl/MeterDistance_CustomFieldSerializer.java
... ...
@@ -0,0 +1,48 @@
1
+package com.google.gwt.user.client.rpc.core.com.sap.sse.common.impl;
2
+
3
+import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
+import com.google.gwt.user.client.rpc.SerializationException;
5
+import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
+import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
+import com.sap.sse.common.impl.MeterDistance;
8
+
9
+public class MeterDistance_CustomFieldSerializer extends CustomFieldSerializer<MeterDistance> {
10
+
11
+ @Override
12
+ public void serializeInstance(SerializationStreamWriter streamWriter, MeterDistance instance)
13
+ throws SerializationException {
14
+ serialize(streamWriter, instance);
15
+ }
16
+
17
+ public static void serialize(SerializationStreamWriter streamWriter, MeterDistance instance)
18
+ throws SerializationException {
19
+ streamWriter.writeDouble(instance.getMeters());
20
+ }
21
+
22
+ @Override
23
+ public boolean hasCustomInstantiateInstance() {
24
+ return true;
25
+ }
26
+
27
+ @Override
28
+ public MeterDistance instantiateInstance(SerializationStreamReader streamReader)
29
+ throws SerializationException {
30
+ return instantiate(streamReader);
31
+ }
32
+
33
+ public static MeterDistance instantiate(SerializationStreamReader streamReader)
34
+ throws SerializationException {
35
+ return new MeterDistance(streamReader.readDouble());
36
+ }
37
+
38
+ @Override
39
+ public void deserializeInstance(SerializationStreamReader streamReader, MeterDistance instance)
40
+ throws SerializationException {
41
+ deserialize(streamReader, instance);
42
+ }
43
+
44
+ public static void deserialize(SerializationStreamReader streamReader, MeterDistance instance) {
45
+ // Done by instantiateInstance
46
+ }
47
+
48
+}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sse/common/impl/NauticalMileDistance_CustomFieldSerializer.java
... ...
@@ -0,0 +1,48 @@
1
+package com.google.gwt.user.client.rpc.core.com.sap.sse.common.impl;
2
+
3
+import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
+import com.google.gwt.user.client.rpc.SerializationException;
5
+import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
+import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
+import com.sap.sse.common.impl.NauticalMileDistance;
8
+
9
+public class NauticalMileDistance_CustomFieldSerializer extends CustomFieldSerializer<NauticalMileDistance> {
10
+
11
+ @Override
12
+ public void serializeInstance(SerializationStreamWriter streamWriter, NauticalMileDistance instance)
13
+ throws SerializationException {
14
+ serialize(streamWriter, instance);
15
+ }
16
+
17
+ public static void serialize(SerializationStreamWriter streamWriter, NauticalMileDistance instance)
18
+ throws SerializationException {
19
+ streamWriter.writeDouble(instance.getNauticalMiles());
20
+ }
21
+
22
+ @Override
23
+ public boolean hasCustomInstantiateInstance() {
24
+ return true;
25
+ }
26
+
27
+ @Override
28
+ public NauticalMileDistance instantiateInstance(SerializationStreamReader streamReader)
29
+ throws SerializationException {
30
+ return instantiate(streamReader);
31
+ }
32
+
33
+ public static NauticalMileDistance instantiate(SerializationStreamReader streamReader)
34
+ throws SerializationException {
35
+ return new NauticalMileDistance(streamReader.readDouble());
36
+ }
37
+
38
+ @Override
39
+ public void deserializeInstance(SerializationStreamReader streamReader, NauticalMileDistance instance)
40
+ throws SerializationException {
41
+ deserialize(streamReader, instance);
42
+ }
43
+
44
+ public static void deserialize(SerializationStreamReader streamReader, NauticalMileDistance instance) {
45
+ // Done by instantiateInstance
46
+ }
47
+
48
+}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sse/common/impl/RadianBearingImpl_CustomFieldSerializer.java
... ...
@@ -0,0 +1,48 @@
1
+package com.google.gwt.user.client.rpc.core.com.sap.sse.common.impl;
2
+
3
+import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
+import com.google.gwt.user.client.rpc.SerializationException;
5
+import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
+import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
+import com.sap.sse.common.impl.RadianBearingImpl;
8
+
9
+public class RadianBearingImpl_CustomFieldSerializer extends CustomFieldSerializer<RadianBearingImpl> {
10
+
11
+ @Override
12
+ public void serializeInstance(SerializationStreamWriter streamWriter, RadianBearingImpl instance)
13
+ throws SerializationException {
14
+ serialize(streamWriter, instance);
15
+ }
16
+
17
+ public static void serialize(SerializationStreamWriter streamWriter, RadianBearingImpl instance)
18
+ throws SerializationException {
19
+ streamWriter.writeDouble(instance.getRadians());
20
+ }
21
+
22
+ @Override
23
+ public boolean hasCustomInstantiateInstance() {
24
+ return true;
25
+ }
26
+
27
+ @Override
28
+ public RadianBearingImpl instantiateInstance(SerializationStreamReader streamReader)
29
+ throws SerializationException {
30
+ return instantiate(streamReader);
31
+ }
32
+
33
+ public static RadianBearingImpl instantiate(SerializationStreamReader streamReader)
34
+ throws SerializationException {
35
+ return new RadianBearingImpl(streamReader.readDouble());
36
+ }
37
+
38
+ @Override
39
+ public void deserializeInstance(SerializationStreamReader streamReader, RadianBearingImpl instance)
40
+ throws SerializationException {
41
+ deserialize(streamReader, instance);
42
+ }
43
+
44
+ public static void deserialize(SerializationStreamReader streamReader, RadianBearingImpl instance) {
45
+ // Done by instantiateInstance
46
+ }
47
+
48
+}
java/com.sap.sailing.gwt.ui/src/main/java/com/google/gwt/user/client/rpc/core/com/sap/sse/common/impl/RadianPosition_CustomFieldSerializer.java
... ...
@@ -0,0 +1,47 @@
1
+package com.google.gwt.user.client.rpc.core.com.sap.sse.common.impl;
2
+
3
+import com.google.gwt.user.client.rpc.CustomFieldSerializer;
4
+import com.google.gwt.user.client.rpc.SerializationException;
5
+import com.google.gwt.user.client.rpc.SerializationStreamReader;
6
+import com.google.gwt.user.client.rpc.SerializationStreamWriter;
7
+import com.sap.sse.common.impl.RadianPosition;
8
+
9
+public final class RadianPosition_CustomFieldSerializer extends CustomFieldSerializer<RadianPosition> {
10
+ @Override
11
+ public boolean hasCustomInstantiateInstance() {
12
+ return true;
13
+ }
14
+
15
+ @Override
16
+ public RadianPosition instantiateInstance(SerializationStreamReader streamReader) throws SerializationException {
17
+ return instantiate(streamReader);
18
+ }
19
+
20
+ public static RadianPosition instantiate(SerializationStreamReader streamReader) throws SerializationException {
21
+ final double latRad = streamReader.readDouble();
22
+ final double lngRad = streamReader.readDouble();
23
+ return new RadianPosition(latRad, lngRad);
24
+ }
25
+
26
+ @Override
27
+ public void deserializeInstance(SerializationStreamReader streamReader, RadianPosition instance)
28
+ throws SerializationException {
29
+ deserialize(streamReader, instance);
30
+ }
31
+
32
+ public static void deserialize(SerializationStreamReader streamReader, RadianPosition instance) {
33
+ // handled by instantiate
34
+ }
35
+
36
+ @Override
37
+ public void serializeInstance(SerializationStreamWriter streamWriter, RadianPosition instance)
38
+ throws SerializationException {
39
+ serialize(streamWriter, instance);
40
+ }
41
+
42
+ public static void serialize(SerializationStreamWriter streamWriter, RadianPosition instance)
43
+ throws SerializationException {
44
+ streamWriter.writeDouble(instance.getLatRad());
45
+ streamWriter.writeDouble(instance.getLngRad());
46
+ }
47
+}
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/communication/SailingSerializationDummyResult.java
... ...
@@ -1,6 +1,6 @@
1 1
package com.sap.sailing.gwt.home.communication;
2 2
3
-import com.sap.sailing.domain.common.impl.DegreePosition;
3
+import com.sap.sse.common.impl.DegreePosition;
4 4
import com.sap.sse.gwt.dispatch.shared.commands.Result;
5 5
6 6
public class SailingSerializationDummyResult implements Result {
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/desktop/places/whatsnew/resources/SailingAnalyticsNotes.html
... ...
@@ -17,6 +17,9 @@
17 17
their dampened COG/SOG values based on the newer fixes. This sacrifices short
18 18
maneuver calculation delays for better performance due to fewer re-calculations
19 19
and reliable results with no difference between live and replay analysis.</li>
20
+ <li>The polar data export service now allows clients to filter the result down to one or
21
+ more boat classes. See <a href="/polars/webservices/api/polar_data.html">https://dev.sapsailing.com/polars/webservices/api/polar_data.html</a>
22
+ for more details.</li>
20 23
</ul>
21 24
<h5 class="articleSubheadline">December 2025</h5>
22 25
<ul class="bulletList">
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/home/server/RaceContext.java
... ...
@@ -27,7 +27,6 @@ import com.sap.sailing.domain.base.RaceDefinition;
27 27
import com.sap.sailing.domain.base.Regatta;
28 28
import com.sap.sailing.domain.common.LeaderboardNameConstants;
29 29
import com.sap.sailing.domain.common.NoWindException;
30
-import com.sap.sailing.domain.common.Position;
31 30
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
32 31
import com.sap.sailing.domain.common.TimingConstants;
33 32
import com.sap.sailing.domain.common.Wind;
... ...
@@ -60,6 +59,7 @@ import com.sap.sailing.gwt.home.communication.race.wind.WindStatisticsDTO;
60 59
import com.sap.sailing.gwt.server.HomeServiceUtil;
61 60
import com.sap.sailing.server.interfaces.RacingEventService;
62 61
import com.sap.sse.common.Duration;
62
+import com.sap.sse.common.Position;
63 63
import com.sap.sse.common.TimePoint;
64 64
import com.sap.sse.common.TimeRange;
65 65
import com.sap.sse.common.Util;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/settings/client/settingtypes/converter/DistanceConverter.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.gwt.settings.client.settingtypes.converter;
2 2
3
-import com.sap.sailing.domain.common.impl.MeterDistance;
4 3
import com.sap.sse.common.Distance;
4
+import com.sap.sse.common.impl.MeterDistance;
5 5
import com.sap.sse.common.settings.generic.ValueConverter;
6 6
import com.sap.sse.common.settings.value.DoubleValue;
7 7
import com.sap.sse.common.settings.value.Value;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AddWindFixDialog.java
... ...
@@ -8,12 +8,12 @@ import com.google.gwt.user.client.ui.Label;
8 8
import com.google.gwt.user.client.ui.VerticalPanel;
9 9
import com.google.gwt.user.client.ui.Widget;
10 10
import com.google.gwt.user.datepicker.client.DateBox;
11
-import com.sap.sailing.domain.common.Position;
12 11
import com.sap.sailing.domain.common.dto.RaceDTO;
13
-import com.sap.sailing.domain.common.impl.DegreePosition;
14 12
import com.sap.sailing.gwt.ui.client.StringMessages;
15 13
import com.sap.sailing.gwt.ui.shared.CoursePositionsDTO;
16 14
import com.sap.sailing.gwt.ui.shared.WindDTO;
15
+import com.sap.sse.common.Position;
16
+import com.sap.sse.common.impl.DegreePosition;
17 17
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
18 18
import com.sap.sse.gwt.client.dialog.DoubleBox;
19 19
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseAreaListInlineEditorComposite.java
... ...
@@ -6,12 +6,12 @@ import com.google.gwt.resources.client.ImageResource;
6 6
import com.google.gwt.user.client.ui.HorizontalPanel;
7 7
import com.google.gwt.user.client.ui.Label;
8 8
import com.google.gwt.user.client.ui.Widget;
9
-import com.sap.sailing.domain.common.Position;
10 9
import com.sap.sailing.domain.common.dto.CourseAreaDTO;
11
-import com.sap.sailing.domain.common.impl.DegreePosition;
12
-import com.sap.sailing.domain.common.impl.MeterDistance;
13 10
import com.sap.sse.common.Distance;
11
+import com.sap.sse.common.Position;
14 12
import com.sap.sse.common.Util;
13
+import com.sap.sse.common.impl.DegreePosition;
14
+import com.sap.sse.common.impl.MeterDistance;
15 15
import com.sap.sse.gwt.client.controls.listedit.ExpandedListEditorUi;
16 16
import com.sap.sse.gwt.client.controls.listedit.GenericStringListEditorComposite;
17 17
import com.sap.sse.gwt.client.controls.listedit.GenericStringListInlineEditorComposite;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ImpliedWindSourceEditDialog.java
... ...
@@ -10,7 +10,6 @@ import com.google.gwt.user.client.ui.VerticalPanel;
10 10
import com.google.gwt.user.client.ui.Widget;
11 11
import com.sap.sailing.domain.common.dto.FleetDTO;
12 12
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
13
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
14 13
import com.sap.sailing.domain.common.orc.FixedSpeedImpliedWind;
15 14
import com.sap.sailing.domain.common.orc.ImpliedWindSource;
16 15
import com.sap.sailing.domain.common.orc.ImpliedWindSourceVisitor;
... ...
@@ -24,6 +23,7 @@ import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
24 23
import com.sap.sailing.gwt.ui.client.StringMessages;
25 24
import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO;
26 25
import com.sap.sse.common.Util.Triple;
26
+import com.sap.sse.common.impl.KnotSpeedImpl;
27 27
import com.sap.sse.gwt.client.ErrorReporter;
28 28
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
29 29
import com.sap.sse.gwt.client.dialog.DoubleBox;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ORCPerformanceCurveAllLegsDialog.java
... ...
@@ -11,7 +11,6 @@ import com.google.gwt.user.client.ui.Label;
11 11
import com.google.gwt.user.client.ui.ListBox;
12 12
import com.google.gwt.user.client.ui.Widget;
13 13
import com.google.gwt.view.client.ListDataProvider;
14
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
15 14
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveLegTypes;
16 15
import com.sap.sailing.domain.common.orc.impl.ORCPerformanceCurveLegImpl;
17 16
import com.sap.sailing.gwt.ui.adminconsole.CourseManagementWidget.LegGeometrySupplier;
... ...
@@ -20,6 +19,7 @@ import com.sap.sailing.gwt.ui.shared.WaypointDTO;
20 19
import com.sap.sse.common.Distance;
21 20
import com.sap.sse.common.Util;
22 21
import com.sap.sse.common.impl.DegreeBearingImpl;
22
+import com.sap.sse.common.impl.NauticalMileDistance;
23 23
import com.sap.sse.gwt.client.Notification;
24 24
import com.sap.sse.gwt.client.Notification.NotificationType;
25 25
import com.sap.sse.gwt.client.dialog.DoubleBox;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ORCPerformanceCurveLegDialog.java
... ...
@@ -9,13 +9,13 @@ import com.google.gwt.user.client.ui.Label;
9 9
import com.google.gwt.user.client.ui.ListBox;
10 10
import com.google.gwt.user.client.ui.Widget;
11 11
import com.google.gwt.view.client.ListDataProvider;
12
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
13 12
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveLegTypes;
14 13
import com.sap.sailing.domain.common.orc.impl.ORCPerformanceCurveLegImpl;
15 14
import com.sap.sailing.gwt.ui.adminconsole.CourseManagementWidget.LegGeometrySupplier;
16 15
import com.sap.sailing.gwt.ui.client.StringMessages;
17 16
import com.sap.sailing.gwt.ui.shared.WaypointDTO;
18 17
import com.sap.sse.common.impl.DegreeBearingImpl;
18
+import com.sap.sse.common.impl.NauticalMileDistance;
19 19
import com.sap.sse.gwt.client.Notification;
20 20
import com.sap.sse.gwt.client.Notification.NotificationType;
21 21
import com.sap.sse.gwt.client.dialog.DoubleBox;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/PositionEntryDialog.java
... ...
@@ -5,12 +5,12 @@ import java.util.Date;
5 5
import com.google.gwt.user.client.ui.Grid;
6 6
import com.google.gwt.user.client.ui.Label;
7 7
import com.google.gwt.user.client.ui.Widget;
8
-import com.sap.sailing.domain.common.Position;
9
-import com.sap.sailing.domain.common.impl.DegreePosition;
10 8
import com.sap.sailing.gwt.ui.client.DataEntryDialogWithDateTimeBox;
11 9
import com.sap.sailing.gwt.ui.client.StringMessages;
10
+import com.sap.sse.common.Position;
12 11
import com.sap.sse.common.TimePoint;
13 12
import com.sap.sse.common.Util.Pair;
13
+import com.sap.sse.common.impl.DegreePosition;
14 14
import com.sap.sse.common.impl.MillisecondsTimePoint;
15 15
import com.sap.sse.gwt.client.controls.datetime.DateAndTimeInput;
16 16
import com.sap.sse.gwt.client.controls.datetime.DateTimeInput.Accuracy;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogCourseManagementWidget.java
... ...
@@ -8,13 +8,13 @@ import com.google.gwt.event.dom.client.ClickEvent;
8 8
import com.google.gwt.event.dom.client.ClickHandler;
9 9
import com.google.gwt.user.client.rpc.AsyncCallback;
10 10
import com.google.gwt.user.client.ui.Button;
11
-import com.sap.sailing.domain.common.Position;
12 11
import com.sap.sailing.domain.common.orc.impl.ORCPerformanceCurveLegImpl;
13 12
import com.sap.sailing.gwt.ui.adminconsole.places.AdminConsoleView.Presenter;
14 13
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
15 14
import com.sap.sailing.gwt.ui.client.StringMessages;
16 15
import com.sap.sailing.gwt.ui.shared.MarkDTO;
17 16
import com.sap.sailing.gwt.ui.shared.RaceCourseDTO;
17
+import com.sap.sse.common.Position;
18 18
import com.sap.sse.common.TimePoint;
19 19
import com.sap.sse.common.Util.Pair;
20 20
import com.sap.sse.gwt.client.celltable.ImagesBarColumn;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/StructureImportManagementPanel.java
... ...
@@ -34,7 +34,6 @@ import com.google.gwt.view.client.SelectionChangeEvent.Handler;
34 34
import com.sap.sailing.domain.common.RankingMetrics;
35 35
import com.sap.sailing.domain.common.ScoringSchemeType;
36 36
import com.sap.sailing.domain.common.dto.BoatClassDTO;
37
-import com.sap.sailing.domain.common.impl.MeterDistance;
38 37
import com.sap.sailing.gwt.ui.adminconsole.StructureImportListComposite.RegattaStructureProvider;
39 38
import com.sap.sailing.gwt.ui.adminconsole.places.AdminConsoleView.Presenter;
40 39
import com.sap.sailing.gwt.ui.adminconsole.swisstiming.SwissTimingEventIdUrlUtil;
... ...
@@ -47,6 +46,7 @@ import com.sap.sailing.gwt.ui.shared.LeaderboardGroupDTO;
47 46
import com.sap.sailing.gwt.ui.shared.RegattaDTO;
48 47
import com.sap.sailing.gwt.ui.shared.SeriesDTO;
49 48
import com.sap.sse.common.Util;
49
+import com.sap.sse.common.impl.MeterDistance;
50 50
import com.sap.sse.common.util.NaturalComparator;
51 51
import com.sap.sse.gwt.client.ErrorReporter;
52 52
import com.sap.sse.gwt.client.Notification;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/coursecreation/CourseConfigurationEditDialog.java
... ...
@@ -4,7 +4,6 @@ import java.util.List;
4 4
5 5
import com.google.gwt.user.client.ui.Grid;
6 6
import com.google.gwt.user.client.ui.Widget;
7
-import com.sap.sailing.domain.common.Position;
8 7
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
9 8
import com.sap.sailing.gwt.ui.client.StringMessages;
10 9
import com.sap.sailing.gwt.ui.shared.DeviceMappingDTO;
... ...
@@ -12,6 +11,7 @@ import com.sap.sailing.gwt.ui.shared.courseCreation.CourseConfigurationDTO;
12 11
import com.sap.sailing.gwt.ui.shared.courseCreation.CourseTemplateDTO;
13 12
import com.sap.sailing.gwt.ui.shared.courseCreation.MarkRoleDTO;
14 13
import com.sap.sailing.gwt.ui.shared.courseCreation.MarkTemplateDTO;
14
+import com.sap.sse.common.Position;
15 15
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
16 16
17 17
/**
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/coursecreation/MarkPropertiesPanel.java
... ...
@@ -32,13 +32,13 @@ import com.google.gwt.user.client.ui.AbstractImagePrototype;
32 32
import com.google.gwt.user.client.ui.FlowPanel;
33 33
import com.google.gwt.user.client.ui.Label;
34 34
import com.google.gwt.view.client.ListDataProvider;
35
-import com.sap.sailing.domain.common.Position;
36 35
import com.sap.sailing.domain.common.security.SecuredDomainType;
37 36
import com.sap.sailing.gwt.ui.adminconsole.AdminConsoleResources;
38 37
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
39 38
import com.sap.sailing.gwt.ui.client.StringMessages;
40 39
import com.sap.sailing.gwt.ui.shared.DeviceIdentifierDTO;
41 40
import com.sap.sailing.gwt.ui.shared.courseCreation.MarkPropertiesDTO;
41
+import com.sap.sse.common.Position;
42 42
import com.sap.sse.common.Util;
43 43
import com.sap.sse.gwt.adminconsole.AdminConsoleTableResources;
44 44
import com.sap.sse.gwt.adminconsole.FilterablePanelProvider;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/coursecreation/MarkPropertiesPositionEditDialog.java
... ...
@@ -3,9 +3,9 @@ package com.sap.sailing.gwt.ui.adminconsole.coursecreation;
3 3
import com.google.gwt.user.client.ui.Grid;
4 4
import com.google.gwt.user.client.ui.Label;
5 5
import com.google.gwt.user.client.ui.Widget;
6
-import com.sap.sailing.domain.common.Position;
7
-import com.sap.sailing.domain.common.impl.DegreePosition;
8 6
import com.sap.sailing.gwt.ui.client.StringMessages;
7
+import com.sap.sse.common.Position;
8
+import com.sap.sse.common.impl.DegreePosition;
9 9
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
10 10
import com.sap.sse.gwt.client.dialog.DoubleBox;
11 11
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java
... ...
@@ -39,8 +39,6 @@ import com.sap.sailing.domain.common.dto.PairingListTemplateDTO;
39 39
import com.sap.sailing.domain.common.dto.PersonDTO;
40 40
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
41 41
import com.sap.sailing.domain.common.dto.TagDTO;
42
-import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
43
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
44 42
import com.sap.sailing.domain.common.orc.ImpliedWindSource;
45 43
import com.sap.sailing.domain.common.orc.ORCCertificate;
46 44
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveLegTypes;
... ...
@@ -107,6 +105,8 @@ import com.sap.sse.common.TimeRange;
107 105
import com.sap.sse.common.Util;
108 106
import com.sap.sse.common.Util.Pair;
109 107
import com.sap.sse.common.Util.Triple;
108
+import com.sap.sse.common.impl.KilometersPerHourSpeedImpl;
109
+import com.sap.sse.common.impl.KnotSpeedImpl;
110 110
import com.sap.sse.common.impl.SecondsDurationImpl;
111 111
import com.sap.sse.gwt.client.replication.RemoteReplicationService;
112 112
import com.sap.sse.security.shared.HasPermissions;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java
... ...
@@ -37,8 +37,6 @@ import com.sap.sailing.domain.common.dto.PairingListTemplateDTO;
37 37
import com.sap.sailing.domain.common.dto.PersonDTO;
38 38
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
39 39
import com.sap.sailing.domain.common.dto.TagDTO;
40
-import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
41
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
42 40
import com.sap.sailing.domain.common.orc.ImpliedWindSource;
43 41
import com.sap.sailing.domain.common.orc.ORCCertificate;
44 42
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveLegTypes;
... ...
@@ -104,6 +102,8 @@ import com.sap.sse.common.TimeRange;
104 102
import com.sap.sse.common.Util;
105 103
import com.sap.sse.common.Util.Pair;
106 104
import com.sap.sse.common.Util.Triple;
105
+import com.sap.sse.common.impl.KilometersPerHourSpeedImpl;
106
+import com.sap.sse.common.impl.KnotSpeedImpl;
107 107
import com.sap.sse.common.impl.SecondsDurationImpl;
108 108
import com.sap.sse.gwt.client.replication.RemoteReplicationServiceAsync;
109 109
import com.sap.sse.pairinglist.PairingList;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceWrite.java
... ...
@@ -24,7 +24,6 @@ import com.sap.sailing.domain.common.MaxPointsReason;
24 24
import com.sap.sailing.domain.common.NoWindException;
25 25
import com.sap.sailing.domain.common.NotFoundException;
26 26
import com.sap.sailing.domain.common.PassingInstruction;
27
-import com.sap.sailing.domain.common.Position;
28 27
import com.sap.sailing.domain.common.RaceIdentifier;
29 28
import com.sap.sailing.domain.common.RankingMetrics;
30 29
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
... ...
@@ -97,6 +96,7 @@ import com.sap.sailing.gwt.ui.shared.courseCreation.MarkRoleDTO;
97 96
import com.sap.sailing.gwt.ui.shared.courseCreation.MarkTemplateDTO;
98 97
import com.sap.sse.common.Duration;
99 98
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
99
+import com.sap.sse.common.Position;
100 100
import com.sap.sse.common.TimePoint;
101 101
import com.sap.sse.common.TransformationException;
102 102
import com.sap.sse.common.Util;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceWriteAsync.java
... ...
@@ -18,7 +18,6 @@ import com.sap.sailing.domain.common.CompetitorRegistrationType;
18 18
import com.sap.sailing.domain.common.DataImportProgress;
19 19
import com.sap.sailing.domain.common.MaxPointsReason;
20 20
import com.sap.sailing.domain.common.PassingInstruction;
21
-import com.sap.sailing.domain.common.Position;
22 21
import com.sap.sailing.domain.common.RaceIdentifier;
23 22
import com.sap.sailing.domain.common.RankingMetrics;
24 23
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
... ...
@@ -82,6 +81,7 @@ import com.sap.sailing.gwt.ui.shared.courseCreation.MarkPropertiesDTO;
82 81
import com.sap.sailing.gwt.ui.shared.courseCreation.MarkRoleDTO;
83 82
import com.sap.sailing.gwt.ui.shared.courseCreation.MarkTemplateDTO;
84 83
import com.sap.sse.common.Duration;
84
+import com.sap.sse.common.Position;
85 85
import com.sap.sse.common.TimePoint;
86 86
import com.sap.sse.common.Util;
87 87
import com.sap.sse.common.Util.Pair;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SimulatorService.java
... ...
@@ -3,7 +3,6 @@ package com.sap.sailing.gwt.ui.client;
3 3
import java.util.List;
4 4
5 5
import com.google.gwt.user.client.rpc.RemoteService;
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sailing.gwt.ui.shared.BoatClassDTOsAndNotificationMessage;
8 7
import com.sap.sailing.gwt.ui.shared.ConfigurationException;
9 8
import com.sap.sailing.gwt.ui.shared.PolarDiagramDTOAndNotificationMessage;
... ...
@@ -20,6 +19,7 @@ import com.sap.sailing.gwt.ui.shared.WindLatticeGenParamsDTO;
20 19
import com.sap.sailing.gwt.ui.shared.WindPatternDTO;
21 20
import com.sap.sailing.gwt.ui.simulator.windpattern.WindPatternDisplay;
22 21
import com.sap.sailing.gwt.ui.simulator.windpattern.WindPatternNotFoundException;
22
+import com.sap.sse.common.Position;
23 23
24 24
public interface SimulatorService extends RemoteService {
25 25
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SimulatorServiceAsync.java
... ...
@@ -3,7 +3,6 @@ package com.sap.sailing.gwt.ui.client;
3 3
import java.util.List;
4 4
5 5
import com.google.gwt.user.client.rpc.AsyncCallback;
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sailing.gwt.ui.shared.BoatClassDTOsAndNotificationMessage;
8 7
import com.sap.sailing.gwt.ui.shared.PolarDiagramDTOAndNotificationMessage;
9 8
import com.sap.sailing.gwt.ui.shared.Request1TurnerDTO;
... ...
@@ -18,6 +17,7 @@ import com.sap.sailing.gwt.ui.shared.WindLatticeDTO;
18 17
import com.sap.sailing.gwt.ui.shared.WindLatticeGenParamsDTO;
19 18
import com.sap.sailing.gwt.ui.shared.WindPatternDTO;
20 19
import com.sap.sailing.gwt.ui.simulator.windpattern.WindPatternDisplay;
20
+import com.sap.sse.common.Position;
21 21
22 22
public interface SimulatorServiceAsync {
23 23
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/WindIndicator.java
... ...
@@ -5,9 +5,9 @@ import com.google.gwt.canvas.dom.client.Context2d;
5 5
import com.google.gwt.canvas.dom.client.Context2d.LineCap;
6 6
import com.google.gwt.event.logical.shared.AttachEvent;
7 7
import com.google.gwt.user.client.ui.Composite;
8
-import com.sap.sailing.domain.common.SpeedWithBearing;
9
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
8
+import com.sap.sse.common.SpeedWithBearing;
10 9
import com.sap.sse.common.impl.DegreeBearingImpl;
10
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
11 11
12 12
/**
13 13
* WindIndicator Widget allows visualizing the wind direction and other wind related information.
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/EditMarkPositionPanel.java
... ...
@@ -78,10 +78,8 @@ import com.google.gwt.user.client.ui.RequiresResize;
78 78
import com.google.gwt.user.client.ui.Widget;
79 79
import com.google.gwt.view.client.SelectionChangeEvent;
80 80
import com.sap.sailing.domain.common.FixType;
81
-import com.sap.sailing.domain.common.Position;
82 81
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
83 82
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
84
-import com.sap.sailing.domain.common.impl.DegreePosition;
85 83
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
86 84
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
87 85
import com.sap.sailing.gwt.ui.client.StringMessages;
... ...
@@ -97,7 +95,9 @@ import com.sap.sailing.gwt.ui.shared.GPSFixDTOWithSpeedWindTackAndLegType;
97 95
import com.sap.sailing.gwt.ui.shared.MarkDTO;
98 96
import com.sap.sailing.gwt.ui.shared.WindDTO;
99 97
import com.sap.sailing.gwt.ui.shared.racemap.CanvasOverlayV3;
98
+import com.sap.sse.common.Position;
100 99
import com.sap.sse.common.Util.Pair;
100
+import com.sap.sse.common.impl.DegreePosition;
101 101
import com.sap.sse.common.settings.AbstractSettings;
102 102
import com.sap.sse.gwt.client.ErrorReporter;
103 103
import com.sap.sse.gwt.client.Notification;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/FixPositionChooser.java
... ...
@@ -19,13 +19,13 @@ import com.google.gwt.maps.client.mvc.MVCArray;
19 19
import com.google.gwt.user.client.ui.MenuBar;
20 20
import com.google.gwt.user.client.ui.MenuItem;
21 21
import com.sap.sailing.domain.common.FixType;
22
-import com.sap.sailing.domain.common.Position;
23 22
import com.sap.sailing.gwt.ui.client.StringMessages;
24 23
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
25 24
import com.sap.sailing.gwt.ui.client.shared.racemap.FixOverlay;
26 25
import com.sap.sailing.gwt.ui.shared.GPSFixDTO;
27 26
import com.sap.sailing.gwt.ui.shared.GPSFixDTOWithSpeedWindTackAndLegType;
28 27
import com.sap.sailing.gwt.ui.shared.WindDTO;
28
+import com.sap.sse.common.Position;
29 29
30 30
public class FixPositionChooser {
31 31
private final Callback<Position, Exception> callback;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/MarkPositionService.java
... ...
@@ -2,10 +2,10 @@ package com.sap.sailing.gwt.ui.client.shared.charts;
2 2
3 3
import com.google.gwt.user.client.rpc.AsyncCallback;
4 4
import com.google.gwt.user.client.rpc.IsSerializable;
5
-import com.sap.sailing.domain.common.Position;
6 5
import com.sap.sailing.gwt.ui.client.shared.charts.RaceIdentifierToLeaderboardRaceColumnAndFleetMapper.LeaderboardNameRaceColumnNameAndFleetName;
7 6
import com.sap.sailing.gwt.ui.shared.GPSFixDTO;
8 7
import com.sap.sailing.gwt.ui.shared.MarkDTO;
8
+import com.sap.sse.common.Position;
9 9
10 10
public interface MarkPositionService {
11 11
public static class MarkTrackDTO implements IsSerializable {
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/MarkPositionServiceForSailingService.java
... ...
@@ -1,11 +1,11 @@
1 1
package com.sap.sailing.gwt.ui.client.shared.charts;
2 2
3 3
import com.google.gwt.user.client.rpc.AsyncCallback;
4
-import com.sap.sailing.domain.common.Position;
5 4
import com.sap.sailing.gwt.ui.client.SailingServiceWriteAsync;
6 5
import com.sap.sailing.gwt.ui.client.shared.charts.RaceIdentifierToLeaderboardRaceColumnAndFleetMapper.LeaderboardNameRaceColumnNameAndFleetName;
7 6
import com.sap.sailing.gwt.ui.shared.GPSFixDTO;
8 7
import com.sap.sailing.gwt.ui.shared.MarkDTO;
8
+import com.sap.sse.common.Position;
9 9
10 10
public class MarkPositionServiceForSailingService implements MarkPositionService {
11 11
private final SailingServiceWriteAsync sailingServiceWrite;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/MarksPanel.java
... ...
@@ -16,12 +16,12 @@ import com.google.gwt.user.client.ui.Label;
16 16
import com.google.gwt.user.client.ui.Widget;
17 17
import com.google.gwt.view.client.ListDataProvider;
18 18
import com.google.gwt.view.client.SingleSelectionModel;
19
-import com.sap.sailing.domain.common.Position;
20 19
import com.sap.sailing.gwt.ui.client.StringMessages;
21 20
import com.sap.sailing.gwt.ui.client.shared.charts.EditMarkPositionPanel.NotificationType;
22 21
import com.sap.sailing.gwt.ui.leaderboard.LeaderboardTableResources;
23 22
import com.sap.sailing.gwt.ui.shared.MarkDTO;
24 23
import com.sap.sse.common.InvertibleComparator;
24
+import com.sap.sse.common.Position;
25 25
import com.sap.sse.common.SortingOrder;
26 26
import com.sap.sse.common.impl.InvertibleComparatorAdapter;
27 27
import com.sap.sse.common.settings.AbstractSettings;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/BoundsUtil.java
... ...
@@ -3,14 +3,14 @@ package com.sap.sailing.gwt.ui.client.shared.racemap;
3 3
import com.google.gwt.maps.client.MapWidget;
4 4
import com.google.gwt.maps.client.base.LatLng;
5 5
import com.google.gwt.maps.client.base.LatLngBounds;
6
-import com.sap.sailing.domain.common.Bounds;
7 6
import com.sap.sailing.domain.common.NonCardinalBounds;
8
-import com.sap.sailing.domain.common.Position;
9
-import com.sap.sailing.domain.common.impl.BoundsImpl;
10
-import com.sap.sailing.domain.common.impl.DegreePosition;
11 7
import com.sap.sse.common.Bearing;
8
+import com.sap.sse.common.Bounds;
12 9
import com.sap.sse.common.Distance;
10
+import com.sap.sse.common.Position;
11
+import com.sap.sse.common.impl.BoundsImpl;
13 12
import com.sap.sse.common.impl.DegreeBearingImpl;
13
+import com.sap.sse.common.impl.DegreePosition;
14 14
15 15
/**
16 16
* Converts between {@link Bounds} and {@link LatLngBounds}.
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/CompetitorInfoOverlay.java
... ...
@@ -6,9 +6,9 @@ import com.google.gwt.canvas.dom.client.TextMetrics;
6 6
import com.google.gwt.maps.client.MapWidget;
7 7
import com.google.gwt.maps.client.base.LatLng;
8 8
import com.google.gwt.maps.client.base.Point;
9
-import com.sap.sailing.domain.common.Position;
10 9
import com.sap.sailing.gwt.ui.shared.racemap.CanvasOverlayV3;
11 10
import com.sap.sse.common.Color;
11
+import com.sap.sse.common.Position;
12 12
13 13
/**
14 14
* A google map overlay based on a HTML5 canvas for drawing a competitor info on a map at a given position.
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/CoordinateSystem.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.gwt.ui.client.shared.racemap;
2 2
3 3
import com.google.gwt.maps.client.base.LatLng;
4
-import com.sap.sailing.domain.common.Position;
5 4
import com.sap.sse.common.Bearing;
5
+import com.sap.sse.common.Position;
6 6
7 7
/**
8 8
* Maps original coordinates, headings, bearings, and directions to a map coordinate space. The default mapping will
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/CourseAreaCircleOverlay.java
... ...
@@ -9,10 +9,10 @@ import com.google.gwt.maps.client.base.LatLng;
9 9
import com.google.gwt.maps.client.base.Point;
10 10
import com.google.gwt.maps.client.overlays.overlayhandlers.OverlayViewMethods;
11 11
import com.google.gwt.maps.client.overlays.overlayhandlers.OverlayViewOnAddHandler;
12
-import com.sap.sailing.domain.common.Position;
13 12
import com.sap.sailing.domain.common.dto.CourseAreaDTO;
14 13
import com.sap.sailing.gwt.ui.client.StringMessages;
15 14
import com.sap.sailing.gwt.ui.shared.racemap.CanvasOverlayV3;
15
+import com.sap.sse.common.Position;
16 16
17 17
/**
18 18
* A google map overlay based on a HTML5 canvas for drawing a course area circle with a center point that has
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/CourseMarkOverlay.java
... ...
@@ -10,8 +10,6 @@ import com.google.gwt.maps.client.base.LatLng;
10 10
import com.google.gwt.maps.client.base.Point;
11 11
import com.google.gwt.maps.client.base.Size;
12 12
import com.sap.sailing.domain.common.MarkType;
13
-import com.sap.sailing.domain.common.Position;
14
-import com.sap.sailing.domain.common.impl.MeterDistance;
15 13
import com.sap.sailing.gwt.ui.shared.CoursePositionsDTO;
16 14
import com.sap.sailing.gwt.ui.shared.MarkDTO;
17 15
import com.sap.sailing.gwt.ui.shared.racemap.CanvasOverlayV3;
... ...
@@ -19,7 +17,9 @@ import com.sap.sailing.gwt.ui.shared.racemap.MarkVectorGraphics;
19 17
import com.sap.sailing.gwt.ui.shared.racemap.MarkVectorGraphicsFactory;
20 18
import com.sap.sse.common.Bearing;
21 19
import com.sap.sse.common.Distance;
20
+import com.sap.sse.common.Position;
22 21
import com.sap.sse.common.Util;
22
+import com.sap.sse.common.impl.MeterDistance;
23 23
24 24
/**
25 25
* A google map overlay based on a HTML5 canvas for drawing course marks (canvases) and the buoy zone if the mark is a buoy.
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/DelegateCoordinateSystem.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.gwt.ui.client.shared.racemap;
2 2
3 3
import com.google.gwt.maps.client.base.LatLng;
4
-import com.sap.sailing.domain.common.Position;
5 4
import com.sap.sse.common.Bearing;
5
+import com.sap.sse.common.Position;
6 6
7 7
/**
8 8
* Holds a {@link CoordinateSystem} that can be exchanged, using {@link #setCoordinateSystem}.
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/IdentityCoordinateSystem.java
... ...
@@ -1,9 +1,9 @@
1 1
package com.sap.sailing.gwt.ui.client.shared.racemap;
2 2
3 3
import com.google.gwt.maps.client.base.LatLng;
4
-import com.sap.sailing.domain.common.Position;
5
-import com.sap.sailing.domain.common.impl.DegreePosition;
6 4
import com.sap.sse.common.Bearing;
5
+import com.sap.sse.common.Position;
6
+import com.sap.sse.common.impl.DegreePosition;
7 7
8 8
public class IdentityCoordinateSystem implements CoordinateSystem {
9 9
@Override
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverAngleCache.java
... ...
@@ -10,12 +10,12 @@ import com.google.gwt.core.client.GWT;
10 10
import com.google.gwt.user.client.rpc.AsyncCallback;
11 11
import com.sap.sailing.domain.common.ManeuverType;
12 12
import com.sap.sailing.domain.common.dto.BoatClassDTO;
13
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
14 13
import com.sap.sailing.gwt.ui.client.SailingServiceAsync;
15 14
import com.sap.sailing.gwt.ui.shared.BearingWithConfidenceDTO;
16 15
import com.sap.sse.common.Bearing;
17 16
import com.sap.sse.common.Speed;
18 17
import com.sap.sse.common.Util.Triple;
18
+import com.sap.sse.common.impl.KnotSpeedImpl;
19 19
20 20
/**
21 21
* Cache for maneuver angles for different boat classes, maneuver types and wind speeds.
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/ManeuverMarkersAndLossIndicators.java
... ...
@@ -25,7 +25,6 @@ import com.google.gwt.user.client.ui.HorizontalPanel;
25 25
import com.google.gwt.user.client.ui.VerticalPanel;
26 26
import com.google.gwt.user.client.ui.Widget;
27 27
import com.sap.sailing.domain.common.ManeuverType;
28
-import com.sap.sailing.domain.common.Position;
29 28
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
30 29
import com.sap.sailing.domain.common.dto.CompetitorDTO;
31 30
import com.sap.sailing.domain.maneuverdetection.impl.ManeuverDetectorImpl;
... ...
@@ -38,6 +37,7 @@ import com.sap.sailing.gwt.ui.shared.ManeuverDTO;
38 37
import com.sap.sailing.gwt.ui.shared.SpeedWithBearingDTO;
39 38
import com.sap.sse.common.Bearing;
40 39
import com.sap.sse.common.Distance;
40
+import com.sap.sse.common.Position;
41 41
import com.sap.sse.common.TimeRange;
42 42
import com.sap.sse.common.Util.Pair;
43 43
import com.sap.sse.common.Util.Triple;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java
... ...
@@ -81,7 +81,6 @@ import com.google.gwt.user.client.ui.Widget;
81 81
import com.sap.sailing.domain.common.DetailType;
82 82
import com.sap.sailing.domain.common.ManeuverType;
83 83
import com.sap.sailing.domain.common.NonCardinalBounds;
84
-import com.sap.sailing.domain.common.Position;
85 84
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
86 85
import com.sap.sailing.domain.common.WindSource;
87 86
import com.sap.sailing.domain.common.WindSourceType;
... ...
@@ -90,10 +89,6 @@ import com.sap.sailing.domain.common.dto.CompetitorDTO;
90 89
import com.sap.sailing.domain.common.dto.CompetitorWithBoatDTO;
91 90
import com.sap.sailing.domain.common.dto.CourseAreaDTO;
92 91
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
93
-import com.sap.sailing.domain.common.impl.DegreePosition;
94
-import com.sap.sailing.domain.common.impl.MeterDistance;
95
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
96
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition;
97 92
import com.sap.sailing.domain.common.security.SecuredDomainType;
98 93
import com.sap.sailing.domain.common.security.SecuredDomainType.TrackedRaceActions;
99 94
import com.sap.sailing.domain.common.windfinder.SpotDTO;
... ...
@@ -160,6 +155,7 @@ import com.sap.sse.common.ColorMapper;
160 155
import com.sap.sse.common.ColorMapperChangedListener;
161 156
import com.sap.sse.common.Distance;
162 157
import com.sap.sse.common.Duration;
158
+import com.sap.sse.common.Position;
163 159
import com.sap.sse.common.TimePoint;
164 160
import com.sap.sse.common.TimeRange;
165 161
import com.sap.sse.common.Util;
... ...
@@ -168,9 +164,13 @@ import com.sap.sse.common.ValueRangeFlexibleBoundaries;
168 164
import com.sap.sse.common.filter.Filter;
169 165
import com.sap.sse.common.filter.FilterSet;
170 166
import com.sap.sse.common.impl.DegreeBearingImpl;
167
+import com.sap.sse.common.impl.DegreePosition;
168
+import com.sap.sse.common.impl.MeterDistance;
171 169
import com.sap.sse.common.impl.MillisecondsTimePoint;
172 170
import com.sap.sse.common.impl.RGBColor;
173 171
import com.sap.sse.common.impl.TimeRangeImpl;
172
+import com.sap.sse.common.scalablevalue.impl.ScalableBearing;
173
+import com.sap.sse.common.scalablevalue.impl.ScalablePosition;
174 174
import com.sap.sse.gwt.client.DOMUtils;
175 175
import com.sap.sse.gwt.client.DateAndTimeFormatterUtil;
176 176
import com.sap.sse.gwt.client.ErrorReporter;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapSettings.java
... ...
@@ -5,14 +5,14 @@ import java.util.HashSet;
5 5
import java.util.Set;
6 6
7 7
import com.sap.sailing.domain.common.ManeuverType;
8
-import com.sap.sailing.domain.common.Position;
9
-import com.sap.sailing.domain.common.impl.MeterDistance;
10 8
import com.sap.sailing.domain.common.security.SecuredDomainType.TrackedRaceActions;
11 9
import com.sap.sailing.gwt.settings.client.settingtypes.DistanceSetting;
12 10
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapHelpLinesSettings.HelpLineTypes;
13 11
import com.sap.sse.common.Distance;
14 12
import com.sap.sse.common.Duration;
13
+import com.sap.sse.common.Position;
15 14
import com.sap.sse.common.Util;
15
+import com.sap.sse.common.impl.MeterDistance;
16 16
import com.sap.sse.common.settings.generic.AbstractGenericSerializableSettingsWithContext;
17 17
import com.sap.sse.common.settings.generic.BooleanSetting;
18 18
import com.sap.sse.common.settings.generic.DoubleSetting;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapSettingsDialogComponent.java
... ...
@@ -18,7 +18,6 @@ import com.google.gwt.user.client.ui.LongBox;
18 18
import com.google.gwt.user.client.ui.VerticalPanel;
19 19
import com.google.gwt.user.client.ui.Widget;
20 20
import com.sap.sailing.domain.common.ManeuverType;
21
-import com.sap.sailing.domain.common.impl.MeterDistance;
22 21
import com.sap.sailing.gwt.common.client.premium.SailingPremiumCheckBox;
23 22
import com.sap.sailing.gwt.ui.client.ManeuverTypeFormatter;
24 23
import com.sap.sailing.gwt.ui.client.StringMessages;
... ...
@@ -26,6 +25,7 @@ import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapHelpLinesSettings.Hel
26 25
import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapZoomSettings.ZoomTypes;
27 26
import com.sap.sse.common.Distance;
28 27
import com.sap.sse.common.Util;
28
+import com.sap.sse.common.impl.MeterDistance;
29 29
import com.sap.sse.gwt.client.controls.IntegerBox;
30 30
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
31 31
import com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RotateAndTranslateCoordinateSystem.java
... ...
@@ -1,10 +1,10 @@
1 1
package com.sap.sailing.gwt.ui.client.shared.racemap;
2 2
3 3
import com.google.gwt.maps.client.base.LatLng;
4
-import com.sap.sailing.domain.common.Position;
5
-import com.sap.sailing.domain.common.impl.DegreePosition;
6 4
import com.sap.sse.common.Bearing;
5
+import com.sap.sse.common.Position;
7 6
import com.sap.sse.common.impl.DegreeBearingImpl;
7
+import com.sap.sse.common.impl.DegreePosition;
8 8
9 9
/**
10 10
* Translates and rotates a coordinate space. The translation is specified by providing the position
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RotatedCoordinateSystem.java
... ...
@@ -1,10 +1,10 @@
1 1
package com.sap.sailing.gwt.ui.client.shared.racemap;
2 2
3 3
import com.google.gwt.maps.client.base.LatLng;
4
-import com.sap.sailing.domain.common.Position;
5
-import com.sap.sailing.domain.common.impl.DegreePosition;
6 4
import com.sap.sse.common.Bearing;
5
+import com.sap.sse.common.Position;
7 6
import com.sap.sse.common.impl.DegreeBearingImpl;
7
+import com.sap.sse.common.impl.DegreePosition;
8 8
9 9
/**
10 10
* Rotates a coordinate space regarding the calculation of bearings. The rotation is defined by a new equator direction.
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/SmallTransparentInfoOverlay.java
... ...
@@ -6,8 +6,8 @@ import com.google.gwt.canvas.dom.client.TextMetrics;
6 6
import com.google.gwt.maps.client.MapWidget;
7 7
import com.google.gwt.maps.client.base.LatLng;
8 8
import com.google.gwt.maps.client.base.Point;
9
-import com.sap.sailing.domain.common.Position;
10 9
import com.sap.sailing.gwt.ui.shared.racemap.CanvasOverlayV3;
10
+import com.sap.sse.common.Position;
11 11
12 12
/**
13 13
* A google map overlay based on a HTML5 canvas for drawing a short textual information close to some object on a map
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/WindSensorOverlay.java
... ...
@@ -3,13 +3,13 @@ package com.sap.sailing.gwt.ui.client.shared.racemap;
3 3
import com.google.gwt.i18n.client.NumberFormat;
4 4
import com.google.gwt.maps.client.MapWidget;
5 5
import com.google.gwt.maps.client.base.Point;
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sailing.domain.common.WindSource;
8 7
import com.sap.sailing.gwt.ui.client.StringMessages;
9 8
import com.sap.sailing.gwt.ui.client.WindSourceTypeFormatter;
10 9
import com.sap.sailing.gwt.ui.shared.WindDTO;
11 10
import com.sap.sailing.gwt.ui.shared.WindTrackInfoDTO;
12 11
import com.sap.sailing.gwt.ui.shared.racemap.CanvasOverlayV3;
12
+import com.sap.sse.common.Position;
13 13
14 14
/**
15 15
* A google map overlay based on a HTML5 canvas for drawing a wind sensor (as an rotating arrow)
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/windladder/LaylineClipper.java
... ...
@@ -9,9 +9,9 @@ import com.google.gwt.maps.client.base.Point;
9 9
import com.google.gwt.maps.client.overlays.MapCanvasProjection;
10 10
import com.sap.sailing.domain.common.LegType;
11 11
import com.sap.sailing.domain.common.PassingInstruction;
12
-import com.sap.sailing.domain.common.Position;
13 12
import com.sap.sailing.gwt.ui.shared.MarkDTO;
14 13
import com.sap.sailing.gwt.ui.shared.WaypointDTO;
14
+import com.sap.sse.common.Position;
15 15
16 16
public class LaylineClipper {
17 17
protected final List<Position> markPositions = new ArrayList<>(1);
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/windladder/WindLadder.java
... ...
@@ -1,9 +1,9 @@
1 1
package com.sap.sailing.gwt.ui.client.shared.racemap.windladder;
2 2
3 3
import com.google.gwt.maps.client.MapWidget;
4
-import com.sap.sailing.domain.common.Position;
5 4
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
6 5
import com.sap.sailing.gwt.ui.shared.WindDTO;
6
+import com.sap.sse.common.Position;
7 7
8 8
/**
9 9
* <p>Main WindLadder component.</p>
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/windladder/WindLadderOverlay.java
... ...
@@ -7,9 +7,9 @@ import com.google.gwt.maps.client.MapWidget;
7 7
import com.google.gwt.maps.client.base.Point;
8 8
import com.google.gwt.maps.client.overlays.overlayhandlers.OverlayViewMethods;
9 9
import com.google.gwt.maps.client.overlays.overlayhandlers.OverlayViewOnAddHandler;
10
-import com.sap.sailing.domain.common.Position;
11 10
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
12 11
import com.sap.sailing.gwt.ui.simulator.racemap.FullCanvasOverlay;
12
+import com.sap.sse.common.Position;
13 13
14 14
/**
15 15
* <p>The visible overlay used by {@link WindLadder} to draw the actual wind ladder to screen.</p>
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java
... ...
@@ -61,7 +61,6 @@ import com.google.gwt.view.client.SelectionChangeEvent.Handler;
61 61
import com.sap.sailing.domain.common.DetailType;
62 62
import com.sap.sailing.domain.common.LeaderboardNameConstants;
63 63
import com.sap.sailing.domain.common.MaxPointsReason;
64
-import com.sap.sailing.domain.common.Mile;
65 64
import com.sap.sailing.domain.common.RaceIdentifier;
66 65
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
67 66
import com.sap.sailing.domain.common.Tack;
... ...
@@ -97,6 +96,7 @@ import com.sap.sse.common.CountryCodeFactory;
97 96
import com.sap.sse.common.Distance;
98 97
import com.sap.sse.common.Duration;
99 98
import com.sap.sse.common.InvertibleComparator;
99
+import com.sap.sse.common.Mile;
100 100
import com.sap.sse.common.SortingOrder;
101 101
import com.sap.sse.common.Util;
102 102
import com.sap.sse.common.Util.Pair;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/RideHeightQualityMinMaxRender.java
... ...
@@ -4,8 +4,8 @@ import java.util.Comparator;
4 4
5 5
import com.google.gwt.safehtml.shared.SafeHtmlBuilder;
6 6
import com.sap.sailing.domain.common.dto.LeaderboardRowDTO;
7
-import com.sap.sailing.domain.common.impl.MeterDistance;
8 7
import com.sap.sailing.domain.common.tracking.BravoFix;
8
+import com.sap.sse.common.impl.MeterDistance;
9 9
10 10
public class RideHeightQualityMinMaxRender extends MinMaxRenderer<LeaderboardRowDTO> {
11 11
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarmining/FoilingSegmentsDataMiningSettingsDialogComponent.java
... ...
@@ -6,10 +6,10 @@ import com.google.gwt.user.client.ui.Label;
6 6
import com.google.gwt.user.client.ui.VerticalPanel;
7 7
import com.google.gwt.user.client.ui.Widget;
8 8
import com.sap.sailing.datamining.shared.FoilingSegmentsDataMiningSettings;
9
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
10
-import com.sap.sailing.domain.common.impl.MeterDistance;
11 9
import com.sap.sailing.gwt.ui.client.StringMessages;
12 10
import com.sap.sailing.polars.datamining.shared.PolarDataMiningSettings;
11
+import com.sap.sse.common.impl.KnotSpeedImpl;
12
+import com.sap.sse.common.impl.MeterDistance;
13 13
import com.sap.sse.common.impl.MillisecondsDurationImpl;
14 14
import com.sap.sse.gwt.client.dialog.DataEntryDialog;
15 15
import com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java
... ...
@@ -163,7 +163,6 @@ import com.sap.sailing.domain.common.NauticalSide;
163 163
import com.sap.sailing.domain.common.NoWindException;
164 164
import com.sap.sailing.domain.common.NotFoundException;
165 165
import com.sap.sailing.domain.common.PathType;
166
-import com.sap.sailing.domain.common.Position;
167 166
import com.sap.sailing.domain.common.RaceFetcher;
168 167
import com.sap.sailing.domain.common.RankingMetrics;
169 168
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
... ...
@@ -175,7 +174,6 @@ import com.sap.sailing.domain.common.RegattaScoreCorrections;
175 174
import com.sap.sailing.domain.common.RegattaScoreCorrections.ScoreCorrectionForCompetitorInRace;
176 175
import com.sap.sailing.domain.common.RegattaScoreCorrections.ScoreCorrectionsForRace;
177 176
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
178
-import com.sap.sailing.domain.common.SpeedWithBearing;
179 177
import com.sap.sailing.domain.common.Tack;
180 178
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
181 179
import com.sap.sailing.domain.common.Wind;
... ...
@@ -203,9 +201,6 @@ import com.sap.sailing.domain.common.dto.RaceLogTrackingInfoDTO;
203 201
import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO;
204 202
import com.sap.sailing.domain.common.dto.TagDTO;
205 203
import com.sap.sailing.domain.common.dto.TrackedRaceDTO;
206
-import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
207
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
208
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
209 204
import com.sap.sailing.domain.common.impl.WindSourceImpl;
210 205
import com.sap.sailing.domain.common.media.MediaTrack;
211 206
import com.sap.sailing.domain.common.orc.ImpliedWindSource;
... ...
@@ -462,8 +457,10 @@ import com.sap.sse.common.Duration;
462 457
import com.sap.sse.common.MultiTimeRange;
463 458
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
464 459
import com.sap.sse.common.PairingListCreationException;
460
+import com.sap.sse.common.Position;
465 461
import com.sap.sse.common.RepeatablePart;
466 462
import com.sap.sse.common.Speed;
463
+import com.sap.sse.common.SpeedWithBearing;
467 464
import com.sap.sse.common.TimePoint;
468 465
import com.sap.sse.common.TimeRange;
469 466
import com.sap.sse.common.Timed;
... ...
@@ -474,6 +471,9 @@ import com.sap.sse.common.Util;
474 471
import com.sap.sse.common.Util.Pair;
475 472
import com.sap.sse.common.Util.Triple;
476 473
import com.sap.sse.common.WithID;
474
+import com.sap.sse.common.impl.KilometersPerHourSpeedImpl;
475
+import com.sap.sse.common.impl.KnotSpeedImpl;
476
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
477 477
import com.sap.sse.common.impl.MillisecondsTimePoint;
478 478
import com.sap.sse.common.impl.RepeatablePartImpl;
479 479
import com.sap.sse.common.impl.SecondsDurationImpl;
... ...
@@ -896,7 +896,7 @@ public class SailingServiceImpl extends ResultCachingProxiedRemoteServiceServlet
896 896
// total distance traveled in meters has to be expanded for the test to work.
897 897
final boolean storeLeaderboardForTesting = false;
898 898
if (storeLeaderboardForTesting) {
899
- ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("../com.sap.sailing.domain.test/resources/IncrementalLeaderboardDTO.ser")));
899
+ ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(File.createTempFile("IncrementalLeaderboardDTO", ".ser")));
900 900
oos.writeObject(leaderboardDTO);
901 901
oos.close();
902 902
}
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceWriteImpl.java
... ...
@@ -169,7 +169,6 @@ import com.sap.sailing.domain.common.MaxPointsReason;
169 169
import com.sap.sailing.domain.common.NoWindException;
170 170
import com.sap.sailing.domain.common.NotFoundException;
171 171
import com.sap.sailing.domain.common.PassingInstruction;
172
-import com.sap.sailing.domain.common.Position;
173 172
import com.sap.sailing.domain.common.RaceIdentifier;
174 173
import com.sap.sailing.domain.common.RankingMetrics;
175 174
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
... ...
@@ -178,7 +177,6 @@ import com.sap.sailing.domain.common.RegattaName;
178 177
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
179 178
import com.sap.sailing.domain.common.ScoringSchemeType;
180 179
import com.sap.sailing.domain.common.ServiceException;
181
-import com.sap.sailing.domain.common.SpeedWithBearing;
182 180
import com.sap.sailing.domain.common.UnableToCloseDeviceMappingException;
183 181
import com.sap.sailing.domain.common.Wind;
184 182
import com.sap.sailing.domain.common.WindSource;
... ...
@@ -196,9 +194,6 @@ import com.sap.sailing.domain.common.dto.RaceColumnInSeriesDTO;
196 194
import com.sap.sailing.domain.common.dto.RaceDTO;
197 195
import com.sap.sailing.domain.common.dto.RegattaCreationParametersDTO;
198 196
import com.sap.sailing.domain.common.dto.TagDTO;
199
-import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
200
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
201
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
202 197
import com.sap.sailing.domain.common.impl.WindImpl;
203 198
import com.sap.sailing.domain.common.impl.WindSourceImpl;
204 199
import com.sap.sailing.domain.common.media.MediaTrack;
... ...
@@ -368,8 +363,10 @@ import com.sap.sse.aicore.CredentialsParser;
368 363
import com.sap.sse.common.Distance;
369 364
import com.sap.sse.common.Duration;
370 365
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
366
+import com.sap.sse.common.Position;
371 367
import com.sap.sse.common.RepeatablePart;
372 368
import com.sap.sse.common.Speed;
369
+import com.sap.sse.common.SpeedWithBearing;
373 370
import com.sap.sse.common.TimePoint;
374 371
import com.sap.sse.common.TimeRange;
375 372
import com.sap.sse.common.TransformationException;
... ...
@@ -378,6 +375,9 @@ import com.sap.sse.common.Util.Pair;
378 375
import com.sap.sse.common.Util.Triple;
379 376
import com.sap.sse.common.WithID;
380 377
import com.sap.sse.common.impl.DegreeBearingImpl;
378
+import com.sap.sse.common.impl.KilometersPerHourSpeedImpl;
379
+import com.sap.sse.common.impl.KnotSpeedImpl;
380
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
381 381
import com.sap.sse.common.impl.MillisecondsTimePoint;
382 382
import com.sap.sse.common.impl.TimeRangeImpl;
383 383
import com.sap.sse.common.mail.MailException;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SimulatorServiceImpl.java
... ...
@@ -21,13 +21,8 @@ import org.osgi.util.tracker.ServiceTracker;
21 21
22 22
import com.sap.sailing.domain.base.BoatClass;
23 23
import com.sap.sailing.domain.common.PathType;
24
-import com.sap.sailing.domain.common.Position;
25
-import com.sap.sailing.domain.common.SpeedWithBearing;
26 24
import com.sap.sailing.domain.common.Wind;
27 25
import com.sap.sailing.domain.common.dto.BoatClassDTO;
28
-import com.sap.sailing.domain.common.impl.DegreePosition;
29
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
30
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
31 26
import com.sap.sailing.domain.common.security.SecuredDomainType;
32 27
import com.sap.sailing.domain.polars.PolarDataService;
33 28
import com.sap.sailing.gwt.ui.client.SimulatorService;
... ...
@@ -88,11 +83,16 @@ import com.sap.sse.ServerInfo;
88 83
import com.sap.sse.common.Bearing;
89 84
import com.sap.sse.common.Distance;
90 85
import com.sap.sse.common.Duration;
86
+import com.sap.sse.common.Position;
91 87
import com.sap.sse.common.Speed;
88
+import com.sap.sse.common.SpeedWithBearing;
92 89
import com.sap.sse.common.TimePoint;
93 90
import com.sap.sse.common.Util;
94 91
import com.sap.sse.common.impl.DegreeBearingImpl;
92
+import com.sap.sse.common.impl.DegreePosition;
93
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
95 94
import com.sap.sse.common.impl.MillisecondsTimePoint;
95
+import com.sap.sse.common.impl.NauticalMileDistance;
96 96
import com.sap.sse.gwt.server.DelegatingProxiedRemoteServiceServlet;
97 97
import com.sap.sse.security.shared.HasPermissions.DefaultActions;
98 98
import com.sap.sse.security.shared.TypeRelativeObjectIdentifier;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SimulatorServiceUtils.java
... ...
@@ -4,10 +4,6 @@ import java.util.ArrayList;
4 4
import java.util.Collections;
5 5
import java.util.List;
6 6
7
-import com.sap.sailing.domain.common.Position;
8
-import com.sap.sailing.domain.common.SpeedWithBearing;
9
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
10
-import com.sap.sailing.domain.common.impl.RadianPosition;
11 7
import com.sap.sailing.gwt.ui.shared.SimulatorUISelectionDTO;
12 8
import com.sap.sailing.gwt.ui.shared.SimulatorWindDTO;
13 9
import com.sap.sailing.simulator.Path;
... ...
@@ -15,8 +11,12 @@ import com.sap.sailing.simulator.SimulatorUISelection;
15 11
import com.sap.sailing.simulator.TimedPositionWithSpeed;
16 12
import com.sap.sailing.simulator.impl.SimulatorUISelectionImpl;
17 13
import com.sap.sse.common.Bearing;
14
+import com.sap.sse.common.Position;
15
+import com.sap.sse.common.SpeedWithBearing;
18 16
import com.sap.sse.common.TimePoint;
19 17
import com.sap.sse.common.impl.DegreeBearingImpl;
18
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
19
+import com.sap.sse.common.impl.RadianPosition;
20 20
21 21
public class SimulatorServiceUtils {
22 22
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/BearingWithConfidenceDTO.java
... ...
@@ -1,9 +1,9 @@
1 1
package com.sap.sailing.gwt.ui.shared;
2 2
3 3
import com.google.gwt.user.client.rpc.IsSerializable;
4
-import com.sap.sailing.domain.common.confidence.BearingWithConfidence;
5
-import com.sap.sailing.domain.common.confidence.impl.BearingWithConfidenceImpl;
6 4
import com.sap.sse.common.Bearing;
5
+import com.sap.sse.common.confidence.BearingWithConfidence;
6
+import com.sap.sse.common.confidence.impl.BearingWithConfidenceImpl;
7 7
import com.sap.sse.common.impl.DegreeBearingImpl;
8 8
9 9
public class BearingWithConfidenceDTO implements IsSerializable {
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CoursePositionsDTO.java
... ...
@@ -6,7 +6,7 @@ import java.util.Set;
6 6
7 7
import com.google.gwt.user.client.rpc.IsSerializable;
8 8
import com.sap.sailing.domain.common.NauticalSide;
9
-import com.sap.sailing.domain.common.Position;
9
+import com.sap.sse.common.Position;
10 10
11 11
public class CoursePositionsDTO implements IsSerializable {
12 12
public RaceCourseDTO course;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/GPSFixDTO.java
... ...
@@ -3,7 +3,7 @@ package com.sap.sailing.gwt.ui.shared;
3 3
import java.util.Date;
4 4
5 5
import com.google.gwt.user.client.rpc.IsSerializable;
6
-import com.sap.sailing.domain.common.Position;
6
+import com.sap.sse.common.Position;
7 7
8 8
public class GPSFixDTO implements IsSerializable {
9 9
public Date timepoint;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/GPSFixDTOWithSpeedWindTackAndLegType.java
... ...
@@ -4,9 +4,9 @@ import java.util.Date;
4 4
5 5
import com.google.gwt.user.client.rpc.IsSerializable;
6 6
import com.sap.sailing.domain.common.LegType;
7
-import com.sap.sailing.domain.common.Position;
8 7
import com.sap.sailing.domain.common.Tack;
9 8
import com.sap.sse.common.Bearing;
9
+import com.sap.sse.common.Position;
10 10
import com.sap.sse.common.impl.DegreeBearingImpl;
11 11
12 12
public class GPSFixDTOWithSpeedWindTackAndLegType extends GPSFixDTO implements IsSerializable {
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/GPSFixDTOWithSpeedWindTackAndLegTypeIterable.java
... ...
@@ -24,8 +24,6 @@ import com.sap.sailing.domain.base.Leg;
24 24
import com.sap.sailing.domain.common.DetailType;
25 25
import com.sap.sailing.domain.common.LegType;
26 26
import com.sap.sailing.domain.common.NoWindException;
27
-import com.sap.sailing.domain.common.Position;
28
-import com.sap.sailing.domain.common.SpeedWithBearing;
29 27
import com.sap.sailing.domain.common.Tack;
30 28
import com.sap.sailing.domain.common.Wind;
31 29
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
... ...
@@ -37,6 +35,8 @@ import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
37 35
import com.sap.sailing.domain.tracking.TrackedRace;
38 36
import com.sap.sailing.domain.tracking.WindLegTypeAndLegBearingAndORCPerformanceCurveCache;
39 37
import com.sap.sailing.gwt.ui.server.SailingServiceImpl;
38
+import com.sap.sse.common.Position;
39
+import com.sap.sse.common.SpeedWithBearing;
40 40
import com.sap.sse.common.TimePoint;
41 41
import com.sap.sse.common.Util;
42 42
import com.sap.sse.common.Util.Pair;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/IgtimiDeviceWithSecurityDTO.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.gwt.ui.shared;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sailing.domain.common.security.SecuredDomainType;
4
+import com.sap.sse.common.Position;
5 5
import com.sap.sse.common.TimePoint;
6 6
import com.sap.sse.common.Util.Pair;
7 7
import com.sap.sse.security.shared.HasPermissions;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/ManeuverDTO.java
... ...
@@ -8,10 +8,10 @@ import com.google.gwt.i18n.client.NumberFormat;
8 8
import com.google.gwt.user.client.rpc.IsSerializable;
9 9
import com.sap.sailing.domain.common.ManeuverType;
10 10
import com.sap.sailing.domain.common.NauticalSide;
11
-import com.sap.sailing.domain.common.Position;
12 11
import com.sap.sailing.domain.common.Tack;
13 12
import com.sap.sailing.gwt.ui.client.NauticalSideFormatter;
14 13
import com.sap.sailing.gwt.ui.client.StringMessages;
14
+import com.sap.sse.common.Position;
15 15
16 16
public class ManeuverDTO implements IsSerializable {
17 17
private ManeuverType type;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/ManeuverLossDTO.java
... ...
@@ -1,10 +1,10 @@
1 1
package com.sap.sailing.gwt.ui.shared;
2 2
3 3
import com.google.gwt.user.client.rpc.IsSerializable;
4
-import com.sap.sailing.domain.common.Position;
5
-import com.sap.sailing.domain.common.SpeedWithBearing;
6 4
import com.sap.sse.common.Distance;
7 5
import com.sap.sse.common.Duration;
6
+import com.sap.sse.common.Position;
7
+import com.sap.sse.common.SpeedWithBearing;
8 8
9 9
public class ManeuverLossDTO implements IsSerializable {
10 10
private Position maneuverStartPosition;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/MarkDTO.java
... ...
@@ -3,10 +3,10 @@ package com.sap.sailing.gwt.ui.shared;
3 3
import java.util.Collections;
4 4
5 5
import com.sap.sailing.domain.common.MarkType;
6
-import com.sap.sailing.domain.common.Position;
7
-import com.sap.sailing.domain.common.impl.DegreePosition;
8 6
import com.sap.sailing.domain.common.racelog.tracking.MappableToDevice;
9 7
import com.sap.sse.common.Color;
8
+import com.sap.sse.common.Position;
9
+import com.sap.sse.common.impl.DegreePosition;
10 10
11 11
public class MarkDTO extends ControlPointDTO implements MappableToDevice {
12 12
private static final long serialVersionUID = -8031499997812618751L;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/Request1TurnerDTO.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.gwt.ui.shared;
2 2
3 3
import com.google.gwt.user.client.rpc.IsSerializable;
4
-import com.sap.sailing.domain.common.Position;
4
+import com.sap.sse.common.Position;
5 5
6 6
public class Request1TurnerDTO implements IsSerializable {
7 7
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RequestTotalTimeDTO.java
... ...
@@ -4,7 +4,7 @@ import java.util.ArrayList;
4 4
import java.util.List;
5 5
6 6
import com.google.gwt.user.client.rpc.IsSerializable;
7
-import com.sap.sailing.domain.common.Position;
7
+import com.sap.sse.common.Position;
8 8
9 9
public class RequestTotalTimeDTO implements IsSerializable {
10 10
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/Response1TurnerDTO.java
... ...
@@ -3,7 +3,7 @@ package com.sap.sailing.gwt.ui.shared;
3 3
import java.util.List;
4 4
5 5
import com.google.gwt.user.client.rpc.IsSerializable;
6
-import com.sap.sailing.domain.common.Position;
6
+import com.sap.sse.common.Position;
7 7
8 8
public class Response1TurnerDTO implements IsSerializable {
9 9
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/SerializationDummy.java
... ...
@@ -5,9 +5,9 @@ import java.io.Serializable;
5 5
import org.apache.shiro.authz.UnauthorizedException;
6 6
7 7
import com.sap.sailing.domain.common.dto.PersonDTO;
8
-import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
9
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
10 8
import com.sap.sse.common.CountryCode;
9
+import com.sap.sse.common.impl.KilometersPerHourSpeedImpl;
10
+import com.sap.sse.common.impl.KnotSpeedImpl;
11 11
import com.sap.sse.common.impl.SecondsDurationImpl;
12 12
import com.sap.sse.security.shared.HasPermissions;
13 13
import com.sap.sse.security.shared.TypeRelativeObjectIdentifier;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/SimulatorWindDTO.java
... ...
@@ -1,9 +1,9 @@
1 1
package com.sap.sailing.gwt.ui.shared;
2 2
3 3
import com.google.gwt.user.client.rpc.IsSerializable;
4
-import com.sap.sailing.domain.common.Position;
5
-import com.sap.sailing.domain.common.impl.DegreePosition;
4
+import com.sap.sse.common.Position;
6 5
import com.sap.sse.common.TimePoint;
6
+import com.sap.sse.common.impl.DegreePosition;
7 7
8 8
public class SimulatorWindDTO implements IsSerializable {
9 9
public Boolean isTurn;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/WindDTO.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.gwt.ui.shared;
2 2
3 3
import com.google.gwt.user.client.rpc.IsSerializable;
4
-import com.sap.sailing.domain.common.Position;
4
+import com.sap.sse.common.Position;
5 5
6 6
public class WindDTO implements IsSerializable {
7 7
public Double trueWindSpeedInMetersPerSecond;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/WindFieldDTO.java
... ...
@@ -3,7 +3,7 @@ package com.sap.sailing.gwt.ui.shared;
3 3
import java.util.List;
4 4
5 5
import com.google.gwt.user.client.rpc.IsSerializable;
6
-import com.sap.sailing.domain.common.Position;
6
+import com.sap.sse.common.Position;
7 7
8 8
public class WindFieldDTO implements IsSerializable {
9 9
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/WindFieldGenParamsDTO.java
... ...
@@ -3,8 +3,8 @@ package com.sap.sailing.gwt.ui.shared;
3 3
import java.util.Date;
4 4
5 5
import com.google.gwt.user.client.rpc.IsSerializable;
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sse.common.Duration;
7
+import com.sap.sse.common.Position;
8 8
9 9
public class WindFieldGenParamsDTO implements IsSerializable {
10 10
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/WindLatticeDTO.java
... ...
@@ -2,7 +2,7 @@ package com.sap.sailing.gwt.ui.shared;
2 2
3 3
import java.io.Serializable;
4 4
5
-import com.sap.sailing.domain.common.Position;
5
+import com.sap.sse.common.Position;
6 6
7 7
public class WindLatticeDTO implements Serializable {
8 8
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/WindLatticeGenParamsDTO.java
... ...
@@ -2,7 +2,7 @@ package com.sap.sailing.gwt.ui.shared;
2 2
3 3
import java.io.Serializable;
4 4
5
-import com.sap.sailing.domain.common.Position;
5
+import com.sap.sse.common.Position;
6 6
7 7
public class WindLatticeGenParamsDTO implements Serializable {
8 8
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/WindLinesDTO.java
... ...
@@ -7,7 +7,7 @@ import java.util.SortedMap;
7 7
import java.util.TreeMap;
8 8
9 9
import com.google.gwt.user.client.rpc.IsSerializable;
10
-import com.sap.sailing.domain.common.Position;
10
+import com.sap.sse.common.Position;
11 11
12 12
public class WindLinesDTO implements IsSerializable {
13 13
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/WindTrackInfoDTO.java
... ...
@@ -3,8 +3,8 @@ package com.sap.sailing.gwt.ui.shared;
3 3
import java.util.List;
4 4
5 5
import com.google.gwt.user.client.rpc.IsSerializable;
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sse.common.Duration;
7
+import com.sap.sse.common.Position;
8 8
import com.sap.sse.common.TimePoint;
9 9
10 10
public class WindTrackInfoDTO implements IsSerializable {
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/courseCreation/MarkConfigurationDTO.java
... ...
@@ -3,9 +3,9 @@ package com.sap.sailing.gwt.ui.shared.courseCreation;
3 3
import java.util.ArrayList;
4 4
import java.util.Arrays;
5 5
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sailing.gwt.ui.shared.DeviceIdentifierDTO;
8 7
import com.sap.sailing.gwt.ui.shared.GPSFixDTO;
8
+import com.sap.sse.common.Position;
9 9
import com.sap.sse.common.TimeRange;
10 10
import com.sap.sse.common.Util.Triple;
11 11
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/AbstractMarkVectorGraphics.java
... ...
@@ -3,11 +3,11 @@ package com.sap.sailing.gwt.ui.shared.racemap;
3 3
import com.google.gwt.canvas.dom.client.CanvasGradient;
4 4
import com.google.gwt.canvas.dom.client.Context2d;
5 5
import com.sap.sailing.domain.common.MarkType;
6
-import com.sap.sailing.domain.common.impl.MeterDistance;
7 6
import com.sap.sailing.gwt.ui.shared.CoursePositionsDTO;
8 7
import com.sap.sse.common.Bearing;
9 8
import com.sap.sse.common.Color;
10 9
import com.sap.sse.common.Distance;
10
+import com.sap.sse.common.impl.MeterDistance;
11 11
12 12
/**
13 13
* A class for course mark graphics based on SVG graphics drawn to a HTML5 canvas
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/BoatMarkVectorGraphics.java
... ...
@@ -6,15 +6,15 @@ import com.google.gwt.canvas.dom.client.Context2d;
6 6
import com.sap.sailing.domain.common.LegType;
7 7
import com.sap.sailing.domain.common.MarkType;
8 8
import com.sap.sailing.domain.common.PassingInstruction;
9
-import com.sap.sailing.domain.common.Position;
10
-import com.sap.sailing.domain.common.impl.MeterDistance;
11 9
import com.sap.sailing.gwt.ui.shared.CoursePositionsDTO;
12 10
import com.sap.sailing.gwt.ui.shared.MarkDTO;
13 11
import com.sap.sailing.gwt.ui.shared.WaypointDTO;
14 12
import com.sap.sse.common.Bearing;
15 13
import com.sap.sse.common.Color;
16 14
import com.sap.sse.common.Distance;
15
+import com.sap.sse.common.Position;
17 16
import com.sap.sse.common.impl.DegreeBearingImpl;
17
+import com.sap.sse.common.impl.MeterDistance;
18 18
19 19
public class BoatMarkVectorGraphics extends AbstractMarkVectorGraphics {
20 20
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/CanvasOverlayV3.java
... ...
@@ -40,9 +40,9 @@ import com.google.gwt.maps.client.overlays.overlayhandlers.OverlayViewMethods;
40 40
import com.google.gwt.maps.client.overlays.overlayhandlers.OverlayViewOnAddHandler;
41 41
import com.google.gwt.maps.client.overlays.overlayhandlers.OverlayViewOnDrawHandler;
42 42
import com.google.gwt.maps.client.overlays.overlayhandlers.OverlayViewOnRemoveHandler;
43
-import com.sap.sailing.domain.common.Position;
44 43
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
45 44
import com.sap.sse.common.Distance;
45
+import com.sap.sse.common.Position;
46 46
import com.sap.sse.common.impl.DegreeBearingImpl;
47 47
48 48
/**
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/racemap/FixVectorGraphics.java
... ...
@@ -2,8 +2,8 @@ package com.sap.sailing.gwt.ui.shared.racemap;
2 2
3 3
import com.google.gwt.canvas.dom.client.Context2d;
4 4
import com.sap.sailing.domain.common.FixType;
5
-import com.sap.sailing.domain.common.impl.MeterDistance;
6 5
import com.sap.sse.common.Distance;
6
+import com.sap.sse.common.impl.MeterDistance;
7 7
8 8
/**
9 9
* A class for course fix graphics based on SVG graphics drawn to a HTML5 canvas
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/PathCanvasOverlay.java
... ...
@@ -12,13 +12,13 @@ import com.google.gwt.maps.client.MapWidget;
12 12
import com.google.gwt.maps.client.base.LatLng;
13 13
import com.google.gwt.maps.client.base.Point;
14 14
import com.google.gwt.maps.client.geometrylib.SphericalUtils;
15
-import com.sap.sailing.domain.common.Mile;
16 15
import com.sap.sailing.gwt.ui.client.StringMessages;
17 16
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
18 17
import com.sap.sailing.gwt.ui.shared.SimulatorWindDTO;
19 18
import com.sap.sailing.gwt.ui.shared.WindFieldGenParamsDTO;
20 19
import com.sap.sse.common.AbstractBearing;
21 20
import com.sap.sse.common.Duration;
21
+import com.sap.sse.common.Mile;
22 22
import com.sap.sse.common.Named;
23 23
import com.sap.sse.common.TimePoint;
24 24
import com.sap.sse.common.impl.DegreeBearingImpl;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/PathPolyline.java
... ...
@@ -18,10 +18,6 @@ import com.google.gwt.maps.client.overlays.PolylineOptions;
18 18
import com.google.gwt.maps.client.overlays.overlayhandlers.OverlayViewMethods;
19 19
import com.google.gwt.maps.client.overlays.overlayhandlers.OverlayViewOnDrawHandler;
20 20
import com.google.gwt.user.client.rpc.AsyncCallback;
21
-import com.sap.sailing.domain.common.Mile;
22
-import com.sap.sailing.domain.common.Position;
23
-import com.sap.sailing.domain.common.impl.DegreePosition;
24
-import com.sap.sailing.domain.common.impl.RadianPosition;
25 21
import com.sap.sailing.gwt.ui.client.SimulatorServiceAsync;
26 22
import com.sap.sailing.gwt.ui.client.StringMessages;
27 23
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
... ...
@@ -33,6 +29,10 @@ import com.sap.sailing.gwt.ui.simulator.racemap.TwoDPoint;
33 29
import com.sap.sailing.gwt.ui.simulator.racemap.TwoDSegment;
34 30
import com.sap.sailing.gwt.ui.simulator.racemap.TwoDVector;
35 31
import com.sap.sse.common.Bearing;
32
+import com.sap.sse.common.Mile;
33
+import com.sap.sse.common.Position;
34
+import com.sap.sse.common.impl.DegreePosition;
35
+import com.sap.sse.common.impl.RadianPosition;
36 36
import com.sap.sse.gwt.client.ErrorReporter;
37 37
38 38
/**
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/RaceCourseCanvasOverlay.java
... ...
@@ -16,10 +16,10 @@ import com.google.gwt.maps.client.events.mousemove.MouseMoveMapEvent;
16 16
import com.google.gwt.maps.client.events.mousemove.MouseMoveMapHandler;
17 17
import com.google.gwt.maps.client.geometrylib.SphericalUtils;
18 18
import com.google.gwt.maps.client.overlays.Marker;
19
-import com.sap.sailing.domain.common.Mile;
20 19
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
21 20
import com.sap.sailing.gwt.ui.simulator.racemap.FullCanvasOverlay;
22 21
import com.sap.sailing.simulator.util.SailingSimulatorConstants;
22
+import com.sap.sse.common.Mile;
23 23
24 24
/**
25 25
* This class implements the layer to display the race course on the map. Currently the course only consists of the
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/RegattaAreaCanvasOverlay.java
... ...
@@ -5,10 +5,10 @@ import com.google.gwt.canvas.dom.client.Context2d.TextAlign;
5 5
import com.google.gwt.maps.client.MapWidget;
6 6
import com.google.gwt.maps.client.base.LatLng;
7 7
import com.google.gwt.maps.client.base.Point;
8
-import com.sap.sailing.domain.common.impl.DegreePosition;
9 8
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
10 9
import com.sap.sailing.gwt.ui.simulator.racemap.FullCanvasOverlay;
11 10
import com.sap.sailing.simulator.util.SailingSimulatorConstants;
11
+import com.sap.sse.common.impl.DegreePosition;
12 12
13 13
public class RegattaAreaCanvasOverlay extends FullCanvasOverlay {
14 14
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/SimulatorMap.java
... ...
@@ -33,8 +33,6 @@ import com.google.gwt.maps.client.overlays.Polyline;
33 33
import com.google.gwt.user.client.Window;
34 34
import com.google.gwt.user.client.rpc.AsyncCallback;
35 35
import com.google.gwt.user.client.ui.AbsolutePanel;
36
-import com.sap.sailing.domain.common.Position;
37
-import com.sap.sailing.domain.common.impl.DegreePosition;
38 36
import com.sap.sailing.gwt.ui.client.RequiresDataInitialization;
39 37
import com.sap.sailing.gwt.ui.client.SimulatorServiceAsync;
40 38
import com.sap.sailing.gwt.ui.client.StringMessages;
... ...
@@ -54,8 +52,10 @@ import com.sap.sailing.gwt.ui.simulator.util.ColorPaletteGenerator;
54 52
import com.sap.sailing.gwt.ui.simulator.util.SimulatorResources;
55 53
import com.sap.sailing.gwt.ui.simulator.windpattern.WindPatternDisplay;
56 54
import com.sap.sailing.simulator.util.SailingSimulatorConstants;
55
+import com.sap.sse.common.Position;
57 56
import com.sap.sse.common.TimePoint;
58 57
import com.sap.sse.common.Util;
58
+import com.sap.sse.common.impl.DegreePosition;
59 59
import com.sap.sse.common.impl.RGBColor;
60 60
import com.sap.sse.gwt.client.ErrorReporter;
61 61
import com.sap.sse.gwt.client.Notification;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/VenueDescriptorFactory.java
... ...
@@ -3,9 +3,9 @@ package com.sap.sailing.gwt.ui.simulator;
3 3
import java.util.ArrayList;
4 4
5 5
import com.google.gwt.maps.client.base.LatLng;
6
-import com.sap.sailing.domain.common.impl.DegreePosition;
7 6
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
8 7
import com.sap.sailing.simulator.util.SailingSimulatorConstants;
8
+import com.sap.sse.common.impl.DegreePosition;
9 9
10 10
public class VenueDescriptorFactory {
11 11
public static VenueDescriptor createVenue(char event, CoordinateSystem coordinateSystem) {
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/WindGridCanvasOverlay.java
... ...
@@ -18,14 +18,14 @@ import com.google.gwt.canvas.dom.client.Context2d;
18 18
import com.google.gwt.maps.client.MapWidget;
19 19
import com.google.gwt.maps.client.base.LatLng;
20 20
import com.google.gwt.maps.client.base.Point;
21
-import com.sap.sailing.domain.common.Position;
22
-import com.sap.sailing.domain.common.impl.DegreePosition;
23 21
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
24 22
import com.sap.sailing.gwt.ui.shared.SimulatorWindDTO;
25 23
import com.sap.sailing.gwt.ui.shared.WindFieldDTO;
26 24
import com.sap.sailing.gwt.ui.simulator.racemap.FullCanvasOverlay;
27 25
import com.sap.sailing.gwt.ui.simulator.util.WindGridColorPalette;
26
+import com.sap.sse.common.Position;
28 27
import com.sap.sse.common.Util;
28
+import com.sap.sse.common.impl.DegreePosition;
29 29
import com.sap.sse.gwt.client.player.Timer;
30 30
31 31
/**
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/WindLineCanvasOverlay.java
... ...
@@ -16,12 +16,12 @@ import com.google.gwt.canvas.dom.client.Context2d;
16 16
import com.google.gwt.maps.client.MapWidget;
17 17
import com.google.gwt.maps.client.base.LatLng;
18 18
import com.google.gwt.maps.client.base.Point;
19
-import com.sap.sailing.domain.common.Position;
20
-import com.sap.sailing.domain.common.impl.DegreePosition;
21 19
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
22 20
import com.sap.sailing.gwt.ui.shared.WindLinesDTO;
23 21
import com.sap.sailing.gwt.ui.simulator.racemap.FullCanvasOverlay;
24 22
import com.sap.sailing.gwt.ui.simulator.util.LineSegment;
23
+import com.sap.sse.common.Position;
24
+import com.sap.sse.common.impl.DegreePosition;
25 25
import com.sap.sse.gwt.client.player.Timer;
26 26
27 27
public class WindLineCanvasOverlay extends FullCanvasOverlay implements TimeListenerWithStoppingCriteria {
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/WindLineGuidesCanvasOverlay.java
... ...
@@ -15,13 +15,13 @@ import com.google.gwt.canvas.dom.client.Context2d;
15 15
import com.google.gwt.maps.client.MapWidget;
16 16
import com.google.gwt.maps.client.base.LatLng;
17 17
import com.google.gwt.maps.client.base.Point;
18
-import com.sap.sailing.domain.common.Position;
19 18
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
20 19
import com.sap.sailing.gwt.ui.shared.SimulatorWindDTO;
21 20
import com.sap.sailing.gwt.ui.shared.WindFieldDTO;
22 21
import com.sap.sailing.gwt.ui.simulator.racemap.FullCanvasOverlay;
23 22
import com.sap.sailing.gwt.ui.simulator.util.ToolTip;
24 23
import com.sap.sse.common.AbstractBearing;
24
+import com.sap.sse.common.Position;
25 25
import com.sap.sse.common.impl.DegreeBearingImpl;
26 26
import com.sap.sse.gwt.client.player.Timer;
27 27
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/racemap/FullCanvasOverlay.java
... ...
@@ -11,11 +11,11 @@ import com.google.gwt.maps.client.events.center.CenterChangeMapEvent;
11 11
import com.google.gwt.maps.client.events.center.CenterChangeMapHandler;
12 12
import com.google.gwt.maps.client.overlays.overlayhandlers.OverlayViewOnDrawHandler;
13 13
import com.google.gwt.user.client.ui.RequiresResize;
14
-import com.sap.sailing.domain.common.Position;
15 14
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
16 15
import com.sap.sailing.gwt.ui.shared.SimulatorWindDTO;
17 16
import com.sap.sailing.gwt.ui.shared.racemap.CanvasOverlayV3;
18 17
import com.sap.sailing.gwt.ui.simulator.streamlets.Vector;
18
+import com.sap.sse.common.Position;
19 19
20 20
/**
21 21
* This class extends {@link CanvasOverlayV3} to provide the functionality that the canvas always covers the
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/streamlets/PositionDTOWeigher.java
... ...
@@ -2,10 +2,10 @@ package com.sap.sailing.gwt.ui.simulator.streamlets;
2 2
3 3
import java.util.Date;
4 4
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.confidence.Weigher;
7
-import com.sap.sailing.domain.common.impl.DegreePosition;
8 5
import com.sap.sse.common.Distance;
6
+import com.sap.sse.common.Position;
7
+import com.sap.sse.common.confidence.Weigher;
8
+import com.sap.sse.common.impl.DegreePosition;
9 9
10 10
/**
11 11
* A weigher that uses a {@link DegreePosition} and a {@link Date} to compute a confidence based on spatial
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/streamlets/RectField.java
... ...
@@ -6,10 +6,10 @@ import com.google.gwt.json.client.JSONObject;
6 6
import com.google.gwt.json.client.JSONParser;
7 7
import com.google.gwt.maps.client.base.LatLng;
8 8
import com.google.gwt.maps.client.base.LatLngBounds;
9
-import com.sap.sailing.domain.common.Position;
10
-import com.sap.sailing.domain.common.impl.DegreePosition;
11 9
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
12 10
import com.sap.sailing.gwt.ui.simulator.StreamletParameters;
11
+import com.sap.sse.common.Position;
12
+import com.sap.sse.common.impl.DegreePosition;
13 13
14 14
public class RectField implements VectorField {
15 15
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/streamlets/SimulatorField.java
... ...
@@ -6,14 +6,14 @@ import java.util.List;
6 6
import com.google.gwt.core.client.GWT;
7 7
import com.google.gwt.maps.client.base.LatLng;
8 8
import com.google.gwt.maps.client.base.LatLngBounds;
9
-import com.sap.sailing.domain.common.Position;
10
-import com.sap.sailing.domain.common.impl.DegreePosition;
11 9
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
12 10
import com.sap.sailing.gwt.ui.shared.SimulatorWindDTO;
13 11
import com.sap.sailing.gwt.ui.shared.WindFieldDTO;
14 12
import com.sap.sailing.gwt.ui.shared.WindFieldGenParamsDTO;
15 13
import com.sap.sailing.gwt.ui.simulator.StreamletParameters;
16 14
import com.sap.sse.common.Duration;
15
+import com.sap.sse.common.Position;
16
+import com.sap.sse.common.impl.DegreePosition;
17 17
18 18
public class SimulatorField implements VectorField {
19 19
private boolean swarmDebug = false;
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/streamlets/VectorField.java
... ...
@@ -5,8 +5,8 @@ import java.util.Date;
5 5
import com.google.gwt.maps.client.MapWidget;
6 6
import com.google.gwt.maps.client.base.LatLng;
7 7
import com.google.gwt.maps.client.base.LatLngBounds;
8
-import com.sap.sailing.domain.common.Position;
9 8
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
9
+import com.sap.sse.common.Position;
10 10
11 11
/**
12 12
* A field of vectors to display in a streamlet {@link Swarm}. The {@link Vector}s returned by {@link #getVector(Position, Date)}
java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/streamlets/WindInfoForRaceVectorField.java
... ...
@@ -6,20 +6,20 @@ import java.util.Map.Entry;
6 6
7 7
import com.google.gwt.maps.client.base.LatLng;
8 8
import com.google.gwt.maps.client.base.LatLngBounds;
9
-import com.sap.sailing.domain.common.Position;
10 9
import com.sap.sailing.domain.common.WindSource;
11
-import com.sap.sailing.domain.common.confidence.BearingWithConfidence;
12
-import com.sap.sailing.domain.common.confidence.BearingWithConfidenceCluster;
13
-import com.sap.sailing.domain.common.confidence.Weigher;
14
-import com.sap.sailing.domain.common.confidence.impl.BearingWithConfidenceImpl;
15
-import com.sap.sailing.domain.common.impl.MeterDistance;
16 10
import com.sap.sailing.gwt.ui.client.shared.racemap.CoordinateSystem;
17 11
import com.sap.sailing.gwt.ui.shared.WindDTO;
18 12
import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO;
19 13
import com.sap.sailing.gwt.ui.shared.WindTrackInfoDTO;
20 14
import com.sap.sailing.gwt.ui.simulator.streamlets.PositionDTOWeigher.AverageLatitudeProvider;
15
+import com.sap.sse.common.Position;
21 16
import com.sap.sse.common.Util;
17
+import com.sap.sse.common.confidence.BearingWithConfidence;
18
+import com.sap.sse.common.confidence.BearingWithConfidenceCluster;
19
+import com.sap.sse.common.confidence.Weigher;
20
+import com.sap.sse.common.confidence.impl.BearingWithConfidenceImpl;
22 21
import com.sap.sse.common.impl.DegreeBearingImpl;
22
+import com.sap.sse.common.impl.MeterDistance;
23 23
24 24
/**
25 25
* Implements the {@link VectorField} interface by providing real wind data from a <code>TrackedRace</code> which has
java/com.sap.sailing.hanaexport/src/com/sap/sailing/hanaexport/jaxrs/api/InsertEventStatement.java
... ...
@@ -5,7 +5,7 @@ import java.sql.Date;
5 5
import java.sql.SQLException;
6 6
7 7
import com.sap.sailing.domain.base.Event;
8
-import com.sap.sailing.domain.common.Position;
8
+import com.sap.sse.common.Position;
9 9
10 10
public class InsertEventStatement extends AbstractPreparedInsertStatement<Event> {
11 11
protected InsertEventStatement(Connection connection) throws SQLException {
java/com.sap.sailing.landscape/resources/stringmessages/SailingLandscape_StringMessages_cs.properties
... ...
@@ -16,3 +16,5 @@ FinishedToArchiveReplicaSetSubject=Archivace sady replik {0} je dokončena.
16 16
FinishedToArchiveReplicaSetBody=Archivace sady replik {0} je dokončena.\nPokud jste to vyžadovali, původní sada replik byla odebrána.\n\nTento e-mail vám byl doručen, protože máte oprávnění správce pro {0}.\nNechcete-li taková hlášení nadále dostávat, na <https://sapsailing.com/gwt/AdminConsole.html#UserManagementPlace:> tato oprávnění odeberte.
17 17
NewArchiveCandidateReadyForSpotChecksAndRotationSubject=Nový kandidát {0} je připraven na namátkové kontroly
18 18
NewArchiveCandidateReadyForSpotChecksAndRotationBody=Spustili jsme následující kontroly:\n{3}.\nNový kandidát {0} je připraven na namátkové kontroly, a pokud je to v pořádku, rotace se stane novou produkcí {0}.\nSpusťte namátkové kontroly v <https://{1}/gwt/Home.html#EventsPlace:> a porovnejte s <https://{2}/gwt/Home.html#EventsPlace:>.\nPo úspěšných kontrolách spusťte rotaci na nový produkční server na adrese <{4}/gwt/AdminConsole.html#LandscapeManagementPlace:>.
19
+NewArchiveCandidateFailedSubject=Kontrola {1} během spouštění {0} se nezdařila
20
+NewArchiveCandidateFailedBody=Kontrola „{1}“ při spouštění {0} se nezdařila se zprávou „{2}“. Zkontrolujte infrastrukturu a proveďte manuální opravu.
java/com.sap.sailing.landscape/resources/stringmessages/SailingLandscape_StringMessages_da.properties
... ...
@@ -16,3 +16,5 @@ FinishedToArchiveReplicaSetSubject=Arkivering af et replikasæt {0} er afsluttet
16 16
FinishedToArchiveReplicaSetBody=Arkivering af et replikasæt {0} er afsluttet.\nHvis du har anmodet om dette, er det oprindelige replikasæt fjernet.\n\nDu modtager denne e-mail, fordi du har administrationsrettigheder til {0}.\nFjern disse rettigheder på <https://sapsailing.com/gwt/AdminConsole.html#UserManagementPlace:>, hvis du ikke længere vil modtage disse meddelelser.
17 17
NewArchiveCandidateReadyForSpotChecksAndRotationSubject=Den nye {0}-kandidat er klar til stikprøvekontrol
18 18
NewArchiveCandidateReadyForSpotChecksAndRotationBody=Vi har kørt følgende kontroller:\n{3}.\nDen nye {0}-kandidat er klar til stikprøvekontroller, og hvis OK, er rotationen klar til at blive den nye produktion {0}.\nKør dine stikprøvekontroller på <https://{1}/gwt/Home.html#EventsPlace:>, og sammenlign med <https://{2}/gwt/Home.html#EventsPlace:>.\nStart rotationen til den nye produktionsserver på <{4}/gwt/AdminConsole.html#LandscapeManagementPlace:> efter fuldførte kontroller.
19
+NewArchiveCandidateFailedSubject=Kontrollen af {1} mislykkedes under opstart af {0}
20
+NewArchiveCandidateFailedBody=Kontrollen "{1}" mislykkedes med meddelelsen "{2}" under opstart af {0}. Kontroller landskabet, og ret manuelt.
java/com.sap.sailing.landscape/resources/stringmessages/SailingLandscape_StringMessages_es.properties
... ...
@@ -16,3 +16,5 @@ FinishedToArchiveReplicaSetSubject=Archivo de conjunto de réplicas en {0} final
16 16
FinishedToArchiveReplicaSetBody=El archivo de un conjunto de réplicas {0} ha finalizado.\nSi así lo ha solicitado, el conjunto de réplicas original se ha quitado.\n\nEstá recibiendo este correo porque tiene permisos administrativos para {0}.\nRetire esos permisos en <https://sapsailing.com/gwt/AdminConsole.html#UserManagementPlace:> si ya no desea recibir estos mensajes.
17 17
NewArchiveCandidateReadyForSpotChecksAndRotationSubject=El candidato nuevo {0} está listo para los controles puntuales
18 18
NewArchiveCandidateReadyForSpotChecksAndRotationBody=Hemos ejecutado los siguientes controles:\n{3}.\nEl candidato nuevo {0} está listo para los controles puntuales y, si es correcto, la rotación para convertirse en la producción nueva {0}.\nEjecute sus controles puntuales en <https://{1}/gwt/Home.html#EventsPlace:> y compárelos con <https://{2}/gwt/Home.html#EventsPlace:>.\nInicie la rotación al servidor de producción nuevo en <{4}/gwt/AdminConsole.html#LandscapeManagementPlace:> tras los controles correctos.
19
+NewArchiveCandidateFailedSubject=La verificación {1} ha fallado durante el inicio de {0}
20
+NewArchiveCandidateFailedBody=La verificación "{1}" ha fallado con el mensaje "{2}" al iniciar {0}. Verifique la infraestructura y corríjala manualmente.
java/com.sap.sailing.landscape/resources/stringmessages/SailingLandscape_StringMessages_fr.properties
... ...
@@ -16,3 +16,5 @@ FinishedToArchiveReplicaSetSubject=Archivage de l''ensemble de réplicas {0} ter
16 16
FinishedToArchiveReplicaSetBody=L''archivage de l''ensemble de réplicas {0} est terminé.\nSi vous en avez fait la demande, l''ensemble de réplicas d''origine a été supprimé.\n\nVous recevez cet e-mail car vous disposez des autorisations de gestion pour {0}.\nSi vous ne voulez plus recevoir ces messages, retirez ces autorisations sur <https://sapsailing.com/gwt/AdminConsole.html#UserManagementPlace>.
17 17
NewArchiveCandidateReadyForSpotChecksAndRotationSubject=Le nouveau candidat {0} est prêt pour des contrôles ponctuels.
18 18
NewArchiveCandidateReadyForSpotChecksAndRotationBody=Nous avons exécuté les contrôles suivants :\n{3}.\nLe nouveau candidat {0} est prêt pour les contrôles ponctuels et, s''ils donnent de bons résultats, pour la rotation afin de devenir le nouvel élément {0} de production.\nEffectuez vos contrôles ponctuels via le lien <https://{1}/gwt/Home.html#EventsPlace:> et comparez-les à <https://{2}/gwt/Home.html#EventsPlace:>.\nSi les contrôles sont réussis, lancez la rotation vers le nouveau serveur de production via le lien <{4}/gwt/AdminConsole.html#LandscapeManagementPlace:>.
19
+NewArchiveCandidateFailedSubject=Échec de la vérification {1} lors du lancement de {0}
20
+NewArchiveCandidateFailedBody=La vérification "{1}" a échoué avec le message "{2}" lors du lancement de {0}. Vérifiez l''infrastructure et corrigez l''erreur manuellement.
java/com.sap.sailing.landscape/resources/stringmessages/SailingLandscape_StringMessages_it.properties
... ...
@@ -16,3 +16,5 @@ FinishedToArchiveReplicaSetSubject=Archiviazione di un set di replica {0} comple
16 16
FinishedToArchiveReplicaSetBody=L''archiviazione di un set di replica {0} è stata completata.\nSe richiesto, il set di replica originale è stato rimosso.\n\nSi riceve questa e-mail perché si dispone di autorizzazioni amministrative per {0}.\nRimuovere queste autorizzazioni all''indirizzo <https://sapsailing.com/gwt/AdminConsole.html#UserManagementPlace:> se non si desidera ricevere più questi messaggi.
17 17
NewArchiveCandidateReadyForSpotChecksAndRotationSubject=Il nuovo candidato {0} è pronto per i controlli a campione
18 18
NewArchiveCandidateReadyForSpotChecksAndRotationBody=Sono stati eseguiti i seguenti controlli:\n{3}.\nIl nuovo candidato {0} è pronto per i controlli a campione e, se li supera, inizierà la rotazione per diventare il nuovo {0} di produzione .\nEseguire i controlli a campione all''indirizzo <https://{1}/gwt/Home.html#EventsPlace:> e confrontarli con <https://{2}/gwt/Home.html#EventsPlace:>.\nAvviare la rotazione al nuovo server di produzione all''indirizzo <{4}/gwt/AdminConsole.html#LandscapeManagementPlace:> dopo aver eseguito correttamente i controlli.
19
+NewArchiveCandidateFailedSubject=Controllo {1} non riuscito durante l’avvio di {0}
20
+NewArchiveCandidateFailedBody=Il controllo "{1}" non è riuscito con il messaggio "{2}" durante l''avvio di {0}. Controllare l''infrastruttura e correggere l’errore manualmente.
java/com.sap.sailing.landscape/resources/stringmessages/SailingLandscape_StringMessages_ja.properties
... ...
@@ -16,3 +16,5 @@ FinishedToArchiveReplicaSetSubject=複製セット {0} のアーカイブが終
16 16
FinishedToArchiveReplicaSetBody=複製セット {0} のアーカイブが終了しました。\nそのように依頼している場合には、オリジナルの複製セットは削除されています。\n\nこのメールを受信しているのは、{0} の管理権限をお持ちであるためです。\nこれらのメッセージをもう受信しないようにするには、<https://sapsailing.com/gwt/AdminConsole.html#UserManagementPlace:> でそれらの権限を削除してください。
17 17
NewArchiveCandidateReadyForSpotChecksAndRotationSubject=新規 {0} 候補のスポットチェックの準備が完了
18 18
NewArchiveCandidateReadyForSpotChecksAndRotationBody=以下のチェックが実行されました:\n{3}。\n新規 {0} 候補はスポットチェックの準備が完了しており、OK の場合は、ローテーションして新規本稼動 {0} になります。\nスポットチェックを <https://{1}/gwt/Home.html#EventsPlace:> で実行し、<https://{2}/gwt/Home.html#EventsPlace:> と比較します。\nチェックが正常に終了した後、<{4}/gwt/AdminConsole.html#LandscapeManagementPlace:> で新規本稼動サーバへのローテーションを開始します。
19
+NewArchiveCandidateFailedSubject=チェック {1} が {0} 起動時に失敗
20
+NewArchiveCandidateFailedBody={0} の起動時に、チェック "{1}" が失敗し、メッセージ "{2}" が表示されました。ランドスケープを確認し、マニュアルで修正してください。
java/com.sap.sailing.landscape/resources/stringmessages/SailingLandscape_StringMessages_pt.properties
... ...
@@ -16,3 +16,5 @@ FinishedToArchiveReplicaSetSubject=Arquivamento de conjunto de réplicas {0} con
16 16
FinishedToArchiveReplicaSetBody=O arquivamento de conjunto de réplicas {0} foi concluído.\nSe você tiver solicitado, o conjunto de réplicas original terá sido removido.\n\nVocê está recebendo este correio porque tem permissões administrativas para {0}.\nRemova essas permissões em <https://sapsailing.com/gwt/AdminConsole.html#UserManagementPlace:> se você não quiser mais receber estas mensagens.
17 17
NewArchiveCandidateReadyForSpotChecksAndRotationSubject=O novo candidato {0} está pronto para verificações pontuais
18 18
NewArchiveCandidateReadyForSpotChecksAndRotationBody=Executamos as seguintes verificações:\n{3}.\nO novo candidato {0} está pronto para verificações pontuais e, se OK, rotação para se tornar o novo {0} de produção.\nExecute suas verificações pontuais em <https://{1}/gwt/Home.html#EventsPlace:> e compare com <https://{2}/gwt/Home.html#EventsPlace:>.\nInicie a rotação para o novo servidor de produção em <{4}/gwt/AdminConsole.html#LandscapeManagementPlace:> após verificações com êxito.
19
+NewArchiveCandidateFailedSubject=A verificação {1} falhou durante a inicialização {0}
20
+NewArchiveCandidateFailedBody=A verificação "{1}" falhou com a mensagem "{2}" ao inicializar {0}. Verifique a estrutura e corrija manualmente.
java/com.sap.sailing.landscape/resources/stringmessages/SailingLandscape_StringMessages_ru.properties
... ...
@@ -16,3 +16,5 @@ FinishedToArchiveReplicaSetSubject=Завершена архивация наб
16 16
FinishedToArchiveReplicaSetBody=Завершена архивация набора реплик {0}.\nИсходный набор реплик был удален, если вы запросили удаление.\n\nВы получили это письмо, поскольку имеете полномочия администратора для {0}.\nЕсли вы больше не хотите получать эти письма, отмените свои полномочия на странице https://sapsailing.com/gwt/AdminConsole.html#UserManagementPlace:> .
17 17
NewArchiveCandidateReadyForSpotChecksAndRotationSubject=Новый кандидат {0} готов к выборочным проверкам
18 18
NewArchiveCandidateReadyForSpotChecksAndRotationBody=Выполнены следующие проверки:\n{3}.\nНовый кандидат {0} готов к выборочным проверкам и, если все в порядке, к переводу в производство {0}.\nВыполните выборочные проверки по адресу <https://{1}/gwt/Home.html#EventsPlace:> и выполните сравнение с <https://{2}/gwt/Home.html#EventsPlace:>.\nПосле успешных проверок запустите переход на новый продуктивный сервер по адресу <{4}/gwt/AdminConsole.html#LandscapeManagementPlace:> .
19
+NewArchiveCandidateFailedSubject=Проверка {1} не удалась при запуске {0}
20
+NewArchiveCandidateFailedBody=Проверка "{1}" не удалась (сообщение: "{2}") при запуске {0}. Проверьте ландшафт и исправьте вручную.
java/com.sap.sailing.landscape/resources/stringmessages/SailingLandscape_StringMessages_sl.properties
... ...
@@ -16,3 +16,5 @@ FinishedToArchiveReplicaSetSubject=Arhiviranje niza replik {0} je končano
16 16
FinishedToArchiveReplicaSetBody=Arhiviranje niza replik v {0} je končano.\nČe ste to zahtevali, je bil izvirni replik odstranjen.\n\nTo elektronsko sporočilo ste prejeli, ker imate upravljavska dovoljenja za {0}.\nČe teh sporočil ne želite več prejemati, odstranite ta dovoljenja na <https://sapsailing.com/gwt/AdminConsole.html#UserManagementPlace:>.
17 17
NewArchiveCandidateReadyForSpotChecksAndRotationSubject=Novi kandidat za {0} je pripravljen na preglede
18 18
NewArchiveCandidateReadyForSpotChecksAndRotationBody=Izvedeni so naslednji pregledi:\n{3}.\nNovi kandidat za {0} je pripravljen za preglede in v primeru ustreznosti za rotacijo v proizvodnjo kot novi {0}.\nIzvedite preglede na <https://{1}/gwt/Home.html#EventsPlace:> in jih primerjajte z <https://{2}/gwt/Home.html#EventsPlace:>.\nPo uspešnih pregledih zaženite rotacijo v novi proizvodni strežnik na <{4}/gwt/AdminConsole.html#LandscapeManagementPlace:>.
19
+NewArchiveCandidateFailedSubject=Preverjanje {1} ni uspelo med zagonom {0}
20
+NewArchiveCandidateFailedBody=Preverjanje "{1}" ni uspelo s sporočilom "{2}" med zagonom {0}. Preverite infrastrukturo in ročno popravite.
java/com.sap.sailing.landscape/resources/stringmessages/SailingLandscape_StringMessages_zh.properties
... ...
@@ -16,3 +16,5 @@ FinishedToArchiveReplicaSetSubject=归档复本集 {0} 已完成
16 16
FinishedToArchiveReplicaSetBody=归档复本集 {0} 已完成。\n如果您要求这样做,原始复本集已移除。\n\n您之所以收到此邮件,是因为您具有 {0} 的管理权限。\n如果不想再收到这些消息,请在 <https://sapsailing.com/gwt/AdminConsole.html#UserManagementPlace:> 移除这些权限。
17 17
NewArchiveCandidateReadyForSpotChecksAndRotationSubject=新 {0} 候选项已准备好进行抽查
18 18
NewArchiveCandidateReadyForSpotChecksAndRotationBody=我们已运行以下检查:\n{3}。\n 新 {0} 候选项已准备好进行抽查,如果良好,则轮换到新生产{0}。\n在 <https://{1}/gwt/Home.html#EventsPlace:> 上运行抽查,并与 <https://{2}/gwt/Home.html#EventsPlace:> 进行比较。\n检查成功后,在 <{4}/gwt/AdminConsole.html#LandscapeManagementPlace:> 上启动轮换到新生产服务器。
19
+NewArchiveCandidateFailedSubject={1} 启动期间的检查 {0} 失败
20
+NewArchiveCandidateFailedBody=检查 "{1}" 在启动 {0} 时失败,并显示消息 "{2}"。请检查架构并手动修复。
java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogMongoDBTest.java
... ...
@@ -23,11 +23,7 @@ import com.sap.sailing.domain.base.impl.MarkImpl;
23 23
import com.sap.sailing.domain.base.impl.WaypointImpl;
24 24
import com.sap.sailing.domain.common.MarkType;
25 25
import com.sap.sailing.domain.common.PassingInstruction;
26
-import com.sap.sailing.domain.common.Position;
27
-import com.sap.sailing.domain.common.SpeedWithBearing;
28 26
import com.sap.sailing.domain.common.Wind;
29
-import com.sap.sailing.domain.common.impl.DegreePosition;
30
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
31 27
import com.sap.sailing.domain.common.impl.WindImpl;
32 28
import com.sap.sailing.domain.persistence.DomainObjectFactory;
33 29
import com.sap.sailing.domain.persistence.MongoObjectFactory;
... ...
@@ -37,10 +33,14 @@ import com.sap.sailing.domain.persistence.PersistenceFactory;
37 33
import com.sap.sailing.domain.racelog.RaceLogStore;
38 34
import com.sap.sailing.domain.regattalog.RegattaLogStore;
39 35
import com.sap.sse.common.Bearing;
36
+import com.sap.sse.common.Position;
37
+import com.sap.sse.common.SpeedWithBearing;
40 38
import com.sap.sse.common.TimePoint;
41 39
import com.sap.sse.common.Util;
42 40
import com.sap.sse.common.impl.AbstractColor;
43 41
import com.sap.sse.common.impl.DegreeBearingImpl;
42
+import com.sap.sse.common.impl.DegreePosition;
43
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
44 44
45 45
public abstract class RaceLogMongoDBTest extends AbstractMongoDBTest {
46 46
java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java
... ...
@@ -68,8 +68,6 @@ import com.sap.sailing.domain.common.RankingMetrics;
68 68
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
69 69
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
70 70
import com.sap.sailing.domain.common.ScoringSchemeType;
71
-import com.sap.sailing.domain.common.impl.DegreePosition;
72
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
73 71
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
74 72
import com.sap.sailing.domain.leaderboard.EventResolver;
75 73
import com.sap.sailing.domain.leaderboard.Leaderboard;
... ...
@@ -106,7 +104,9 @@ import com.sap.sailing.server.operationaltransformation.UpdateLeaderboardMaxPoin
106 104
import com.sap.sse.common.Color;
107 105
import com.sap.sse.common.TimePoint;
108 106
import com.sap.sse.common.Util;
107
+import com.sap.sse.common.impl.DegreePosition;
109 108
import com.sap.sse.common.impl.MillisecondsTimePoint;
109
+import com.sap.sse.common.impl.NauticalMileDistance;
110 110
import com.sap.sse.common.media.MediaTagConstants;
111 111
import com.sap.sse.common.media.MimeType;
112 112
import com.sap.sse.shared.media.ImageDescriptor;
java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingRaceORCLegDataEvent.java
... ...
@@ -25,7 +25,6 @@ import com.sap.sailing.domain.abstractlog.orc.impl.RaceLogORCLegDataEventImpl;
25 25
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
26 26
import com.sap.sailing.domain.base.Competitor;
27 27
import com.sap.sailing.domain.base.DomainFactory;
28
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
29 28
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveLegTypes;
30 29
import com.sap.sailing.domain.persistence.FieldNames;
31 30
import com.sap.sailing.domain.persistence.PersistenceFactory;
... ...
@@ -37,6 +36,7 @@ import com.sap.sse.common.TimePoint;
37 36
import com.sap.sse.common.Util;
38 37
import com.sap.sse.common.impl.DegreeBearingImpl;
39 38
import com.sap.sse.common.impl.MillisecondsTimePoint;
39
+import com.sap.sse.common.impl.NauticalMileDistance;
40 40
import com.sap.sse.shared.json.JsonDeserializationException;
41 41
42 42
/**
java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindData.java
... ...
@@ -12,14 +12,14 @@ import org.junit.jupiter.api.Test;
12 12
import com.mongodb.MongoException;
13 13
import com.mongodb.client.MongoCollection;
14 14
import com.sap.sailing.domain.common.Wind;
15
-import com.sap.sailing.domain.common.impl.DegreePosition;
16
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
17 15
import com.sap.sailing.domain.common.impl.WindImpl;
18 16
import com.sap.sailing.domain.persistence.PersistenceFactory;
19 17
import com.sap.sailing.domain.persistence.impl.DomainObjectFactoryImpl;
20 18
import com.sap.sailing.domain.persistence.impl.MongoObjectFactoryImpl;
21 19
import com.sap.sse.common.TimePoint;
22 20
import com.sap.sse.common.impl.DegreeBearingImpl;
21
+import com.sap.sse.common.impl.DegreePosition;
22
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
23 23
import com.sap.sse.common.impl.MillisecondsTimePoint;
24 24
25 25
public class TestStoringAndRetrievingWindData extends AbstractMongoDBTest {
java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingWindTracksTest.java
... ...
@@ -21,12 +21,9 @@ import com.mongodb.client.MongoDatabase;
21 21
import com.sap.sailing.domain.base.RaceDefinition;
22 22
import com.sap.sailing.domain.base.Regatta;
23 23
import com.sap.sailing.domain.base.Sideline;
24
-import com.sap.sailing.domain.common.Position;
25 24
import com.sap.sailing.domain.common.Wind;
26 25
import com.sap.sailing.domain.common.WindSource;
27 26
import com.sap.sailing.domain.common.WindSourceType;
28
-import com.sap.sailing.domain.common.impl.DegreePosition;
29
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
30 27
import com.sap.sailing.domain.common.impl.WindImpl;
31 28
import com.sap.sailing.domain.common.impl.WindSourceImpl;
32 29
import com.sap.sailing.domain.leaderboard.LeaderboardGroupResolver;
... ...
@@ -48,9 +45,12 @@ import com.sap.sailing.domain.tractracadapter.DomainFactory;
48 45
import com.sap.sailing.domain.tractracadapter.Receiver;
49 46
import com.sap.sailing.domain.tractracadapter.ReceiverType;
50 47
import com.sap.sailing.server.impl.RacingEventServiceImpl;
48
+import com.sap.sse.common.Position;
51 49
import com.sap.sse.common.TimePoint;
52 50
import com.sap.sse.common.Util;
53 51
import com.sap.sse.common.impl.DegreeBearingImpl;
52
+import com.sap.sse.common.impl.DegreePosition;
53
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
54 54
import com.sap.sse.common.impl.MillisecondsTimePoint;
55 55
import com.sap.sse.mongodb.MongoDBConfiguration;
56 56
java/com.sap.sailing.nmeaconnector/src/com/sap/sailing/nmeaconnector/NmeaUtil.java
... ...
@@ -1,9 +1,9 @@
1 1
package com.sap.sailing.nmeaconnector;
2 2
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.SpeedWithBearing;
5 3
import com.sap.sailing.domain.common.Wind;
4
+import com.sap.sse.common.Position;
6 5
import com.sap.sse.common.Speed;
6
+import com.sap.sse.common.SpeedWithBearing;
7 7
import com.sap.sse.common.TimePoint;
8 8
9 9
import net.sf.marineapi.nmea.parser.SentenceFactory;
java/com.sap.sailing.nmeaconnector/src/com/sap/sailing/nmeaconnector/TimedSpeedWithBearing.java
... ...
@@ -1,6 +1,6 @@
1 1
package com.sap.sailing.nmeaconnector;
2 2
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
3
+import com.sap.sse.common.SpeedWithBearing;
4 4
import com.sap.sse.common.Timed;
5 5
6 6
public interface TimedSpeedWithBearing extends Timed, SpeedWithBearing {
java/com.sap.sailing.nmeaconnector/src/com/sap/sailing/nmeaconnector/impl/KnotSpeedWithBearingAndTimepoint.java
... ...
@@ -1,9 +1,9 @@
1 1
package com.sap.sailing.nmeaconnector.impl;
2 2
3
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
4 3
import com.sap.sailing.nmeaconnector.TimedSpeedWithBearing;
5 4
import com.sap.sse.common.Bearing;
6 5
import com.sap.sse.common.TimePoint;
6
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
7 7
8 8
/**
9 9
* Can be used as a wind vector in a {@code Track} because it has a {@link TimePoint}.
java/com.sap.sailing.nmeaconnector/src/com/sap/sailing/nmeaconnector/impl/NMEAWindReceiverImpl.java
... ...
@@ -12,18 +12,8 @@ import java.util.logging.Logger;
12 12
13 13
import com.sap.sailing.declination.Declination;
14 14
import com.sap.sailing.declination.DeclinationService;
15
-import com.sap.sailing.domain.common.Position;
16
-import com.sap.sailing.domain.common.SpeedWithBearing;
17 15
import com.sap.sailing.domain.common.Wind;
18
-import com.sap.sailing.domain.common.impl.DegreePosition;
19
-import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
20
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
21
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
22
-import com.sap.sailing.domain.common.impl.MeterPerSecondSpeedImpl;
23 16
import com.sap.sailing.domain.common.impl.WindImpl;
24
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
25
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition;
26
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableSpeedWithBearing;
27 17
import com.sap.sailing.domain.common.tracking.GPSFix;
28 18
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
29 19
import com.sap.sailing.domain.tracking.DynamicTrack;
... ...
@@ -33,10 +23,20 @@ import com.sap.sailing.nmeaconnector.NMEAWindReceiver;
33 23
import com.sap.sailing.nmeaconnector.TimedBearing;
34 24
import com.sap.sailing.nmeaconnector.TimedSpeedWithBearing;
35 25
import com.sap.sse.common.Bearing;
26
+import com.sap.sse.common.Position;
36 27
import com.sap.sse.common.Speed;
28
+import com.sap.sse.common.SpeedWithBearing;
37 29
import com.sap.sse.common.TimePoint;
38 30
import com.sap.sse.common.impl.DegreeBearingImpl;
31
+import com.sap.sse.common.impl.DegreePosition;
32
+import com.sap.sse.common.impl.KilometersPerHourSpeedImpl;
33
+import com.sap.sse.common.impl.KnotSpeedImpl;
34
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
35
+import com.sap.sse.common.impl.MeterPerSecondSpeedImpl;
39 36
import com.sap.sse.common.impl.MillisecondsTimePoint;
37
+import com.sap.sse.common.scalablevalue.impl.ScalableBearing;
38
+import com.sap.sse.common.scalablevalue.impl.ScalablePosition;
39
+import com.sap.sse.common.scalablevalue.impl.ScalableSpeedWithBearing;
40 40
41 41
import net.sf.marineapi.nmea.event.AbstractSentenceListener;
42 42
import net.sf.marineapi.nmea.io.SentenceReader;
... ...
@@ -125,7 +125,7 @@ public class NMEAWindReceiverImpl implements NMEAWindReceiver {
125 125
// or degrees magnetic, and we need to find out which is available
126 126
final TimePoint timePoint = getLastTimePoint();
127 127
if (timePoint != null) {
128
- final com.sap.sailing.domain.common.Position position = getPosition(timePoint);
128
+ final com.sap.sse.common.Position position = getPosition(timePoint);
129 129
if (position != null) {
130 130
final Speed speed;
131 131
if (!Double.isNaN(sentence.getWindSpeed())) {
... ...
@@ -335,7 +335,7 @@ public class NMEAWindReceiverImpl implements NMEAWindReceiver {
335 335
* to {@link #notifyListeners(Wind)}.
336 336
*/
337 337
private void tryToCreateWindFixFromTrueWind(TimedSpeedWithBearing trueWind) {
338
- final com.sap.sailing.domain.common.Position position = getPosition(trueWind.getTimePoint());
338
+ final com.sap.sse.common.Position position = getPosition(trueWind.getTimePoint());
339 339
if (position != null) {
340 340
final Wind wind = new WindImpl(position, trueWind.getTimePoint(), trueWind);
341 341
notifyListeners(wind);
... ...
@@ -349,7 +349,7 @@ public class NMEAWindReceiverImpl implements NMEAWindReceiver {
349 349
* passed to {@link #notifyListeners(Wind)}.
350 350
*/
351 351
private void tryToCreateWindFixFromApparentWind(TimedSpeedWithBearing apparentWind) {
352
- final com.sap.sailing.domain.common.Position position = getPosition(apparentWind.getTimePoint());
352
+ final com.sap.sse.common.Position position = getPosition(apparentWind.getTimePoint());
353 353
if (position != null) {
354 354
final SpeedWithBearing sensorSpeed = sensorSpeeds.getInterpolatedValue(getLastTimePoint(), fix->new ScalableSpeedWithBearing(fix));
355 355
if (sensorSpeed != null) {
... ...
@@ -385,7 +385,7 @@ public class NMEAWindReceiverImpl implements NMEAWindReceiver {
385 385
return result;
386 386
}
387 387
388
- private com.sap.sailing.domain.common.Position getPosition(TimePoint timePoint) {
388
+ private com.sap.sse.common.Position getPosition(TimePoint timePoint) {
389 389
return sensorPositions.getInterpolatedValue(timePoint, gpsFix->new ScalablePosition(gpsFix.getPosition()));
390 390
}
391 391
java/com.sap.sailing.nmeaconnector/src/com/sap/sailing/nmeaconnector/impl/NmeaUtilImpl.java
... ...
@@ -5,18 +5,18 @@ import java.util.Map;
5 5
import java.util.Map.Entry;
6 6
7 7
import com.sap.sailing.domain.base.impl.KilometersPerHourSpeedWithBearingImpl;
8
-import com.sap.sailing.domain.common.Position;
9
-import com.sap.sailing.domain.common.SpeedWithBearing;
10 8
import com.sap.sailing.domain.common.Wind;
11
-import com.sap.sailing.domain.common.impl.KilometersPerHourSpeedImpl;
12
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
13
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
14 9
import com.sap.sailing.domain.common.impl.WindImpl;
15 10
import com.sap.sailing.nmeaconnector.NmeaUtil;
16 11
import com.sap.sse.common.Bearing;
12
+import com.sap.sse.common.Position;
17 13
import com.sap.sse.common.Speed;
14
+import com.sap.sse.common.SpeedWithBearing;
18 15
import com.sap.sse.common.TimePoint;
19 16
import com.sap.sse.common.impl.DegreeBearingImpl;
17
+import com.sap.sse.common.impl.KilometersPerHourSpeedImpl;
18
+import com.sap.sse.common.impl.KnotSpeedImpl;
19
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
20 20
21 21
import net.sf.marineapi.nmea.parser.SentenceFactory;
22 22
import net.sf.marineapi.nmea.parser.SentenceParser;
java/com.sap.sailing.polars.datamining.shared/src/com/sap/sailing/polars/datamining/shared/PolarStatistic.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.polars.datamining.shared;
2 2
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
4 3
import com.sap.sse.common.Speed;
4
+import com.sap.sse.common.SpeedWithBearing;
5 5
6 6
public interface PolarStatistic {
7 7
java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/components/PolarGPSFixRetrievalProcessor.java
... ...
@@ -7,7 +7,6 @@ import java.util.concurrent.ExecutorService;
7 7
8 8
import com.sap.sailing.domain.base.Competitor;
9 9
import com.sap.sailing.domain.base.Leg;
10
-import com.sap.sailing.domain.common.Position;
11 10
import com.sap.sailing.domain.common.WindSource;
12 11
import com.sap.sailing.domain.common.impl.WindSpeedSteppingWithMaxDistance;
13 12
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -21,6 +20,7 @@ import com.sap.sailing.polars.datamining.data.impl.GPSFixWithPolarContext;
21 20
import com.sap.sailing.polars.datamining.data.impl.PolarStatisticImpl;
22 21
import com.sap.sailing.polars.datamining.data.impl.SpeedClusterGroup;
23 22
import com.sap.sailing.polars.datamining.shared.PolarDataMiningSettings;
23
+import com.sap.sse.common.Position;
24 24
import com.sap.sse.common.Speed;
25 25
import com.sap.sse.common.TimePoint;
26 26
import com.sap.sse.common.Util.Pair;
java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/components/aggregators/PolarBackendDataAggregationProcessor.java
... ...
@@ -10,13 +10,13 @@ import org.apache.commons.math.analysis.polynomials.PolynomialFunction;
10 10
import com.sap.sailing.domain.base.BoatClass;
11 11
import com.sap.sailing.domain.base.SpeedWithConfidence;
12 12
import com.sap.sailing.domain.common.LegType;
13
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
14 13
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
15 14
import com.sap.sailing.domain.polars.PolarDataService;
16 15
import com.sap.sailing.polars.datamining.data.HasBackendPolarBoatClassContext;
17 16
import com.sap.sailing.polars.datamining.shared.PolarBackendData;
18 17
import com.sap.sailing.polars.datamining.shared.PolarBackendDataImpl;
19 18
import com.sap.sse.common.impl.DegreeBearingImpl;
19
+import com.sap.sse.common.impl.KnotSpeedImpl;
20 20
import com.sap.sse.datamining.components.AggregationProcessorDefinition;
21 21
import com.sap.sse.datamining.components.Processor;
22 22
import com.sap.sse.datamining.impl.components.GroupedDataEntry;
java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/data/impl/BoatClassWithBackendPolarContext.java
... ...
@@ -3,10 +3,10 @@ package com.sap.sailing.polars.datamining.data.impl;
3 3
import com.sap.sailing.domain.base.BoatClass;
4 4
import com.sap.sailing.domain.common.LegType;
5 5
import com.sap.sailing.domain.common.Tack;
6
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
7 6
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
8 7
import com.sap.sailing.domain.polars.PolarDataService;
9 8
import com.sap.sailing.polars.datamining.data.HasBackendPolarBoatClassContext;
9
+import com.sap.sse.common.impl.KnotSpeedImpl;
10 10
11 11
public class BoatClassWithBackendPolarContext implements HasBackendPolarBoatClassContext {
12 12
java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/data/impl/GPSFixWithPolarContext.java
... ...
@@ -6,7 +6,6 @@ import com.sap.sailing.datamining.data.HasTrackedRaceContext;
6 6
import com.sap.sailing.datamining.impl.data.TrackedRaceWithContext;
7 7
import com.sap.sailing.domain.base.Competitor;
8 8
import com.sap.sailing.domain.base.RaceColumn;
9
-import com.sap.sailing.domain.common.Position;
10 9
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
11 10
import com.sap.sailing.domain.leaderboard.Leaderboard;
12 11
import com.sap.sailing.domain.tracking.BravoFixTrack;
... ...
@@ -18,6 +17,7 @@ import com.sap.sailing.polars.datamining.data.HasGPSFixPolarContext;
18 17
import com.sap.sailing.polars.datamining.data.HasLeaderboardPolarContext;
19 18
import com.sap.sailing.polars.datamining.shared.PolarDataMiningSettings;
20 19
import com.sap.sailing.polars.datamining.shared.PolarStatistic;
20
+import com.sap.sse.common.Position;
21 21
import com.sap.sse.common.Speed;
22 22
import com.sap.sse.common.TimePoint;
23 23
import com.sap.sse.common.Util.Pair;
java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/data/impl/PolarStatisticImpl.java
... ...
@@ -4,8 +4,6 @@ import java.util.HashSet;
4 4
import java.util.Set;
5 5
6 6
import com.sap.sailing.domain.base.Competitor;
7
-import com.sap.sailing.domain.common.Position;
8
-import com.sap.sailing.domain.common.SpeedWithBearing;
9 7
import com.sap.sailing.domain.common.Wind;
10 8
import com.sap.sailing.domain.common.WindSource;
11 9
import com.sap.sailing.domain.common.WindSourceType;
... ...
@@ -15,7 +13,9 @@ import com.sap.sailing.domain.tracking.TrackedRace;
15 13
import com.sap.sailing.polars.datamining.shared.PolarDataMiningSettings;
16 14
import com.sap.sailing.polars.datamining.shared.PolarStatistic;
17 15
import com.sap.sse.common.Bearing;
16
+import com.sap.sse.common.Position;
18 17
import com.sap.sse.common.Speed;
18
+import com.sap.sse.common.SpeedWithBearing;
19 19
20 20
public class PolarStatisticImpl implements PolarStatistic {
21 21
java/com.sap.sailing.polars.datamining/src/com/sap/sailing/polars/datamining/data/impl/SpeedClusterGroup.java
... ...
@@ -3,9 +3,9 @@ package com.sap.sailing.polars.datamining.data.impl;
3 3
import java.util.ArrayList;
4 4
import java.util.Collection;
5 5
6
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
7 6
import com.sap.sailing.domain.common.impl.WindSpeedSteppingWithMaxDistance;
8 7
import com.sap.sse.common.Speed;
8
+import com.sap.sse.common.impl.KnotSpeedImpl;
9 9
import com.sap.sse.datamining.data.Cluster;
10 10
import com.sap.sse.datamining.data.ClusterBoundary;
11 11
import com.sap.sse.datamining.data.ClusterGroup;
java/com.sap.sailing.polars.test/resources/polar_data
12 12
index d3a841e..cb9ff6b
... ...
Binary files a/java/com.sap.sailing.polars.test/resources/polar_data and b/java/com.sap.sailing.polars.test/resources/polar_data differ
java/com.sap.sailing.polars.test/src/com/sap/sailing/polars/clusters/test/SpeedClusterGroupTest.java
... ...
@@ -8,9 +8,9 @@ import org.junit.jupiter.api.Test;
8 8
9 9
import static org.hamcrest.MatcherAssert.assertThat;
10 10
11
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
12 11
import com.sap.sailing.polars.datamining.data.impl.SpeedClusterGroup;
13 12
import com.sap.sse.common.Speed;
13
+import com.sap.sse.common.impl.KnotSpeedImpl;
14 14
import com.sap.sse.datamining.data.Cluster;
15 15
16 16
public class SpeedClusterGroupTest {
java/com.sap.sailing.polars.test/src/com/sap/sailing/polars/jaxrs/api/test/PolarDataClientMock.java
... ...
@@ -1,30 +0,0 @@
1
-package com.sap.sailing.polars.jaxrs.api.test;
2
-
3
-import java.io.File;
4
-import java.io.FileInputStream;
5
-import java.io.IOException;
6
-import java.io.InputStream;
7
-import java.util.Optional;
8
-
9
-import org.json.simple.parser.ParseException;
10
-
11
-import com.sap.sailing.domain.base.DomainFactory;
12
-import com.sap.sailing.polars.ReplicablePolarService;
13
-import com.sap.sailing.polars.jaxrs.client.PolarDataClient;
14
-
15
-public class PolarDataClientMock extends PolarDataClient {
16
-
17
- private final File file;
18
-
19
- public PolarDataClientMock(File file, ReplicablePolarService polarService, DomainFactory domainFactory) {
20
- super(null, polarService, Optional.empty());
21
- polarService.registerDomainFactory(domainFactory);
22
- this.file = file;
23
- }
24
-
25
- @Override
26
- protected InputStream getContentFromResponse() throws IOException, ParseException {
27
- return new FileInputStream(file);
28
- }
29
-
30
-}
java/com.sap.sailing.polars.test/src/com/sap/sailing/polars/jaxrs/api/test/PolarDataResourceTest.java
... ...
@@ -19,13 +19,14 @@ import com.sap.sailing.domain.base.impl.DomainFactoryImpl;
19 19
import com.sap.sailing.domain.common.LegType;
20 20
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
21 21
import com.sap.sailing.polars.impl.PolarDataServiceImpl;
22
+import com.sap.sailing.polars.jaxrs.client.FileBasedPolarDataClient;
22 23
23 24
public class PolarDataResourceTest {
24 25
private static final Logger logger = Logger.getLogger(PolarDataResourceTest.class.getName());
25 26
private static final double[] SPEED_FUNCTIONS_COEFFS_DOWNWIND =
26
- new double[]{ 0, 2.2378615205516326, -0.0801870828343283, 9.81959605693472E-4 };
27
+ new double[]{ 0, 1.2454692253503623, 0.13300922896236855, -0.006811462395111101 };
27 28
private static final double[] ANGLE_FUNCTION_COEFFS_DOWNWIND =
28
- new double[]{ 138.3296034098894, -5.908558698662091, 1.1870404653964215, -0.056603488833331994 };
29
+ new double[]{ 146.08526498113133, -8.612243308300094, 1.2273401844320233, -0.0411405074199962 };
29 30
private static final String BOAT_CLASS = "GC32";
30 31
31 32
private PolarDataServiceImpl polarService;
... ...
@@ -35,7 +36,7 @@ public class PolarDataResourceTest {
35 36
public void setUp() throws IOException, ParseException, ClassNotFoundException, InterruptedException {
36 37
polarService = new PolarDataServiceImpl();
37 38
domainFactory = new DomainFactoryImpl(/* raceLogResolver */ null);
38
- final PolarDataClientMock client = new PolarDataClientMock(new File("resources/polar_data"), polarService, domainFactory);
39
+ final FileBasedPolarDataClient client = new FileBasedPolarDataClient(new File("resources/polar_data"), polarService, domainFactory);
39 40
client.updatePolarDataRegressions();
40 41
// ensure that setting the domain factory has worked
41 42
polarService.runWithDomainFactory(domainFactory -> {
... ...
@@ -48,7 +49,7 @@ public class PolarDataResourceTest {
48 49
}
49 50
50 51
/**
51
- * Test to check if client importing data correctly. Using {@link PolarDataClientMock} which use {@link File}
52
+ * Test to check if client importing data correctly. Using {@link FileBasedPolarDataClient} which use {@link File}
52 53
* polar_data.json as source
53 54
*
54 55
* @throws NotEnoughDataHasBeenAddedException
... ...
@@ -58,9 +59,9 @@ public class PolarDataResourceTest {
58 59
BoatClass boatClass = domainFactory.getOrCreateBoatClass(BOAT_CLASS);
59 60
PolynomialFunction angleDownwindFunction = new PolynomialFunction(ANGLE_FUNCTION_COEFFS_DOWNWIND);
60 61
PolynomialFunction speedDownwindFunction = new PolynomialFunction(SPEED_FUNCTIONS_COEFFS_DOWNWIND);
61
- assertThat(polarService.getSpeedRegressionsPerAngle().size(), is(68));
62
- assertThat(polarService.getCubicRegressionsPerCourse().size(), is(4));
63
- assertThat(polarService.getFixCountPerBoatClass().get(boatClass), is(9330L));
62
+ assertThat(polarService.getSpeedRegressionsPerAngle().size(), is(36));
63
+ assertThat(polarService.getCubicRegressionsPerCourse().size(), is(2));
64
+ assertThat(polarService.getFixCountPerBoatClass().get(boatClass), is(248239L));
64 65
// presuming that if downwind functions & regression collections' size are correct then any other thing is
65 66
// imported correctly
66 67
assertThat(polarService.getAngleRegressionFunction(boatClass, LegType.DOWNWIND), is(angleDownwindFunction));
java/com.sap.sailing.polars.test/src/com/sap/sailing/polars/mining/test/PolarDataMinerTest.java
... ...
@@ -30,13 +30,8 @@ import com.sap.sailing.domain.base.RaceDefinition;
30 30
import com.sap.sailing.domain.base.SpeedWithConfidence;
31 31
import com.sap.sailing.domain.base.Waypoint;
32 32
import com.sap.sailing.domain.common.PolarSheetGenerationSettings;
33
-import com.sap.sailing.domain.common.Position;
34
-import com.sap.sailing.domain.common.SpeedWithBearing;
35 33
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
36 34
import com.sap.sailing.domain.common.Wind;
37
-import com.sap.sailing.domain.common.impl.DegreePosition;
38
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
39
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
40 35
import com.sap.sailing.domain.common.impl.PolarSheetGenerationSettingsImpl;
41 36
import com.sap.sailing.domain.common.impl.WindImpl;
42 37
import com.sap.sailing.domain.common.impl.WindSpeedSteppingWithMaxDistance;
... ...
@@ -54,9 +49,14 @@ import com.sap.sailing.polars.mining.CubicRegressionPerCourseProcessor;
54 49
import com.sap.sailing.polars.mining.PolarDataMiner;
55 50
import com.sap.sailing.polars.mining.SpeedRegressionPerAngleClusterProcessor;
56 51
import com.sap.sse.common.Bearing;
52
+import com.sap.sse.common.Position;
53
+import com.sap.sse.common.SpeedWithBearing;
57 54
import com.sap.sse.common.TimePoint;
58 55
import com.sap.sse.common.Util.Pair;
59 56
import com.sap.sse.common.impl.DegreeBearingImpl;
57
+import com.sap.sse.common.impl.DegreePosition;
58
+import com.sap.sse.common.impl.KnotSpeedImpl;
59
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
60 60
import com.sap.sse.common.impl.MillisecondsTimePoint;
61 61
import com.sap.sse.datamining.data.ClusterGroup;
62 62
java/com.sap.sailing.polars.test/src/com/sap/sailing/polars/windestimation/TestWindEstimationFromManeuversOnAFew505Races.java
... ...
@@ -19,7 +19,6 @@ import com.sap.sailing.domain.common.ManeuverType;
19 19
import com.sap.sailing.domain.common.Wind;
20 20
import com.sap.sailing.domain.common.confidence.impl.ScalableWind;
21 21
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
22
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
23 22
import com.sap.sailing.domain.test.OnlineTracTracBasedTest;
24 23
import com.sap.sailing.domain.tractracadapter.ReceiverType;
25 24
import com.sap.sailing.polars.impl.PolarDataServiceImpl;
... ...
@@ -27,6 +26,7 @@ import com.sap.sse.common.Bearing;
27 26
import com.sap.sse.common.Util.Pair;
28 27
import com.sap.sse.common.impl.DegreeBearingImpl;
29 28
import com.sap.sse.common.scalablevalue.ScalableDouble;
29
+import com.sap.sse.common.scalablevalue.impl.ScalableBearing;
30 30
import com.sap.sse.util.kmeans.Cluster;
31 31
import com.sap.sse.util.kmeans.KMeansMappingClusterer;
32 32
java/com.sap.sailing.polars/src/com/sap/sailing/polars/impl/PolarDataServiceImpl.java
... ...
@@ -23,9 +23,6 @@ import com.sap.sailing.domain.common.LegType;
23 23
import com.sap.sailing.domain.common.ManeuverType;
24 24
import com.sap.sailing.domain.common.PolarSheetGenerationSettings;
25 25
import com.sap.sailing.domain.common.Tack;
26
-import com.sap.sailing.domain.common.confidence.BearingWithConfidence;
27
-import com.sap.sailing.domain.common.confidence.impl.BearingWithConfidenceImpl;
28
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
29 26
import com.sap.sailing.domain.common.impl.PolarSheetGenerationSettingsImpl;
30 27
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
31 28
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
... ...
@@ -44,7 +41,10 @@ import com.sap.sailing.polars.regression.impl.IncrementalAnyOrderLeastSquaresImp
44 41
import com.sap.sse.common.Bearing;
45 42
import com.sap.sse.common.Speed;
46 43
import com.sap.sse.common.Util.Pair;
44
+import com.sap.sse.common.confidence.BearingWithConfidence;
45
+import com.sap.sse.common.confidence.impl.BearingWithConfidenceImpl;
47 46
import com.sap.sse.common.impl.DegreeBearingImpl;
47
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
48 48
import com.sap.sse.datamining.data.ClusterGroup;
49 49
import com.sap.sse.datamining.shared.GroupKey;
50 50
import com.sap.sse.replication.interfaces.impl.AbstractReplicableWithObjectInputStream;
... ...
@@ -74,6 +74,13 @@ public class PolarDataServiceImpl extends AbstractReplicableWithObjectInputStrea
74 74
resetState();
75 75
}
76 76
77
+ public PolarDataServiceImpl filterToBoatClasses(Iterable<BoatClass> boatClassesToFilterTo) {
78
+ final PolarDataMiner filteredPolarDataMiner = polarDataMiner.filterToBoatClasses(boatClassesToFilterTo);
79
+ final PolarDataServiceImpl filteredService = new PolarDataServiceImpl();
80
+ filteredService.polarDataMiner = filteredPolarDataMiner;
81
+ return filteredService;
82
+ }
83
+
77 84
@Override
78 85
public void resetState() {
79 86
PolarSheetGenerationSettings settings = PolarSheetGenerationSettingsImpl.createBackendPolarSettings();
java/com.sap.sailing.polars/src/com/sap/sailing/polars/jaxrs/api/PolarDataResource.java
... ...
@@ -2,11 +2,13 @@ package com.sap.sailing.polars.jaxrs.api;
2 2
3 3
import java.io.IOException;
4 4
import java.io.OutputStream;
5
+import java.util.List;
5 6
import java.util.logging.Logger;
6 7
7 8
import javax.ws.rs.GET;
8 9
import javax.ws.rs.Path;
9 10
import javax.ws.rs.Produces;
11
+import javax.ws.rs.QueryParam;
10 12
import javax.ws.rs.WebApplicationException;
11 13
import javax.ws.rs.core.Response;
12 14
import javax.ws.rs.core.StreamingOutput;
... ...
@@ -14,9 +16,12 @@ import javax.ws.rs.core.StreamingOutput;
14 16
import org.apache.shiro.SecurityUtils;
15 17
import org.apache.shiro.subject.Subject;
16 18
19
+import com.sap.sailing.domain.base.BoatClass;
17 20
import com.sap.sailing.domain.common.security.SecuredDomainType;
21
+import com.sap.sailing.polars.impl.PolarDataServiceImpl;
18 22
import com.sap.sailing.polars.jaxrs.AbstractPolarResource;
19 23
import com.sap.sse.ServerInfo;
24
+import com.sap.sse.common.Util;
20 25
import com.sap.sse.security.shared.HasPermissions.DefaultActions;
21 26
import com.sap.sse.security.shared.TypeRelativeObjectIdentifier;
22 27
... ...
@@ -26,7 +31,7 @@ public class PolarDataResource extends AbstractPolarResource {
26 31
27 32
@GET
28 33
@Produces("application/octet-stream;charset=UTF-8")
29
- public Response getRegressions() throws IOException {
34
+ public Response getRegressions(@QueryParam("boatClassName") final List<String> boatClassNames) throws IOException {
30 35
final Subject subject = SecurityUtils.getSubject();
31 36
logger.info("Polar Data requested by "+ (subject.getPrincipal() == null ? "anonymous user" : subject.getPrincipal().toString()));
32 37
subject.checkPermission(SecuredDomainType.POLAR_DATA.getStringPermissionForTypeRelativeIdentifier(DefaultActions.READ,
... ...
@@ -34,7 +39,24 @@ public class PolarDataResource extends AbstractPolarResource {
34 39
return Response.ok(new StreamingOutput() {
35 40
@Override
36 41
public void write(OutputStream output) throws IOException, WebApplicationException {
37
- getPolarDataServiceImpl().serializeForInitialReplication(output);
42
+ PolarDataServiceImpl polarDataService = getPolarDataServiceImpl();
43
+ @SuppressWarnings("unchecked")
44
+ final Iterable<BoatClass>[] boatClassesToFilterTo = new Iterable[1];
45
+ if (boatClassNames == null || boatClassNames.isEmpty()) {
46
+ boatClassesToFilterTo[0] = null;
47
+ } else {
48
+ try {
49
+ polarDataService.runWithDomainFactory(domainFactory->{
50
+ boatClassesToFilterTo[0] = Util.map(boatClassNames, bcn->domainFactory.getBoatClass(bcn));
51
+ });
52
+ } catch (InterruptedException e) {
53
+ throw new RuntimeException(e);
54
+ }
55
+ }
56
+ if (boatClassesToFilterTo[0] != null) {
57
+ polarDataService = polarDataService.filterToBoatClasses(boatClassesToFilterTo[0]);
58
+ }
59
+ polarDataService.serializeForInitialReplication(output);
38 60
}
39 61
}).header("Content-Type", "application/octet-stream").build();
40 62
}
java/com.sap.sailing.polars/src/com/sap/sailing/polars/jaxrs/client/FileBasedPolarDataClient.java
... ...
@@ -0,0 +1,28 @@
1
+package com.sap.sailing.polars.jaxrs.client;
2
+
3
+import java.io.File;
4
+import java.io.FileInputStream;
5
+import java.io.IOException;
6
+import java.io.InputStream;
7
+import java.util.Optional;
8
+
9
+import org.json.simple.parser.ParseException;
10
+
11
+import com.sap.sailing.domain.base.DomainFactory;
12
+import com.sap.sailing.polars.ReplicablePolarService;
13
+
14
+public class FileBasedPolarDataClient extends PolarDataClient {
15
+
16
+ private final File file;
17
+
18
+ public FileBasedPolarDataClient(File file, ReplicablePolarService polarService, DomainFactory domainFactory) {
19
+ super(null, polarService, Optional.empty());
20
+ polarService.registerDomainFactory(domainFactory);
21
+ this.file = file;
22
+ }
23
+
24
+ @Override
25
+ protected InputStream getContentFromResponse() throws IOException, ParseException {
26
+ return new FileInputStream(file);
27
+ }
28
+}
java/com.sap.sailing.polars/src/com/sap/sailing/polars/mining/AngleAndSpeedRegression.java
... ...
@@ -9,21 +9,21 @@ import org.apache.commons.math.analysis.polynomials.PolynomialFunction;
9 9
import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
10 10
import com.sap.sailing.domain.base.impl.SpeedWithBearingWithConfidenceImpl;
11 11
import com.sap.sailing.domain.common.LegType;
12
-import com.sap.sailing.domain.common.Position;
13
-import com.sap.sailing.domain.common.SpeedWithBearing;
14 12
import com.sap.sailing.domain.common.Tack;
15
-import com.sap.sailing.domain.common.confidence.BearingWithConfidence;
16
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
17 13
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
18 14
import com.sap.sailing.domain.tracking.WindWithConfidence;
19 15
import com.sap.sailing.polars.impl.CubicEquation;
20 16
import com.sap.sailing.polars.regression.IncrementalLeastSquares;
21 17
import com.sap.sailing.polars.regression.impl.IncrementalAnyOrderLeastSquaresImpl;
22 18
import com.sap.sse.common.Bearing;
19
+import com.sap.sse.common.Position;
23 20
import com.sap.sse.common.Speed;
21
+import com.sap.sse.common.SpeedWithBearing;
24 22
import com.sap.sse.common.TimePoint;
25 23
import com.sap.sse.common.Util.Pair;
24
+import com.sap.sse.common.confidence.BearingWithConfidence;
26 25
import com.sap.sse.common.impl.DegreeBearingImpl;
26
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
27 27
28 28
/**
29 29
* This container has two regressions. One for boatSpeed over windSpeed and one for TWA (true wind angle) over windSpeed
java/com.sap.sailing.polars/src/com/sap/sailing/polars/mining/CubicRegressionPerCourseProcessor.java
... ...
@@ -18,11 +18,13 @@ import com.sap.sailing.domain.common.Tack;
18 18
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
19 19
import com.sap.sailing.domain.polars.PolarsChangedListener;
20 20
import com.sap.sse.common.Speed;
21
+import com.sap.sse.common.Util;
21 22
import com.sap.sse.datamining.components.AdditionalResultDataBuilder;
22 23
import com.sap.sse.datamining.components.Processor;
23 24
import com.sap.sse.datamining.factories.GroupKeyFactory;
24 25
import com.sap.sse.datamining.impl.components.GroupedDataEntry;
25 26
import com.sap.sse.datamining.shared.GroupKey;
27
+import com.sap.sse.datamining.shared.impl.GenericGroupKey;
26 28
27 29
/**
28 30
* Groups incoming fixes by boatclass and legtype into {@link AngleAndSpeedRegression} instances and
... ...
@@ -45,6 +47,40 @@ public class CubicRegressionPerCourseProcessor implements
45 47
*/
46 48
private transient ConcurrentMap<BoatClass, Set<PolarsChangedListener>> listeners;
47 49
50
+ public CubicRegressionPerCourseProcessor filterToBoatClasses(Iterable<BoatClass> boatClasses) {
51
+ final Set<BoatClass> allowedBoatClasses = Util.asSet(boatClasses);
52
+ final CubicRegressionPerCourseProcessor filteredProcessor = new CubicRegressionPerCourseProcessor();
53
+ for (final Map.Entry<GroupKey, AngleAndSpeedRegression> entry : regressions.entrySet()) {
54
+ GroupKey key = entry.getKey();
55
+ BoatClass boatClass = extractBoatClass(key);
56
+ if (boatClass != null && allowedBoatClasses.contains(boatClass)) {
57
+ filteredProcessor.regressions.put(key, entry.getValue());
58
+ }
59
+ }
60
+ return filteredProcessor;
61
+ }
62
+
63
+ private BoatClass extractBoatClass(GroupKey key) {
64
+ final BoatClass result;
65
+ if (key.hasSubKeys()) {
66
+ // In the compound key, BoatClass is the second dimension (index 1)
67
+ GroupKey boatClassKey = key.getKeys().get(1);
68
+ if (boatClassKey instanceof GenericGroupKey) {
69
+ Object value = ((GenericGroupKey<?>) boatClassKey).getValue();
70
+ if (value instanceof BoatClass) {
71
+ result = (BoatClass) value;
72
+ } else {
73
+ result = null;
74
+ }
75
+ } else {
76
+ result = null;
77
+ }
78
+ } else {
79
+ result = null;
80
+ }
81
+ return result;
82
+ }
83
+
48 84
@Override
49 85
public boolean canProcessElements() {
50 86
return true;
... ...
@@ -109,7 +145,6 @@ public class CubicRegressionPerCourseProcessor implements
109 145
110 146
private GroupKey createGroupKey(final BoatClass boatClass, final LegType legType) {
111 147
LegTypePolarClusterKey key = new LegTypePolarClusterKey() {
112
-
113 148
@Override
114 149
public BoatClass getBoatClass() {
115 150
return boatClass;
java/com.sap.sailing.polars/src/com/sap/sailing/polars/mining/GPSFixMovingWithPolarContext.java
... ...
@@ -8,12 +8,8 @@ import com.sap.sailing.domain.base.Competitor;
8 8
import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
9 9
import com.sap.sailing.domain.common.LegType;
10 10
import com.sap.sailing.domain.common.NoWindException;
11
-import com.sap.sailing.domain.common.Position;
12 11
import com.sap.sailing.domain.common.WindSource;
13 12
import com.sap.sailing.domain.common.WindSourceType;
14
-import com.sap.sailing.domain.common.confidence.BearingWithConfidence;
15
-import com.sap.sailing.domain.common.confidence.ConfidenceFactory;
16
-import com.sap.sailing.domain.common.confidence.impl.BearingWithConfidenceImpl;
17 13
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
18 14
import com.sap.sailing.domain.tracking.GPSFixTrack;
19 15
import com.sap.sailing.domain.tracking.TrackedLeg;
... ...
@@ -21,8 +17,12 @@ import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
21 17
import com.sap.sailing.domain.tracking.TrackedRace;
22 18
import com.sap.sailing.domain.tracking.WindWithConfidence;
23 19
import com.sap.sse.common.Bearing;
20
+import com.sap.sse.common.Position;
24 21
import com.sap.sse.common.TimePoint;
25 22
import com.sap.sse.common.Util.Pair;
23
+import com.sap.sse.common.confidence.BearingWithConfidence;
24
+import com.sap.sse.common.confidence.ConfidenceFactory;
25
+import com.sap.sse.common.confidence.impl.BearingWithConfidenceImpl;
26 26
import com.sap.sse.common.impl.DegreeBearingImpl;
27 27
import com.sap.sse.datamining.data.Cluster;
28 28
import com.sap.sse.datamining.data.ClusterGroup;
java/com.sap.sailing.polars/src/com/sap/sailing/polars/mining/PolarDataDimensionCollectionFactory.java
... ...
@@ -40,7 +40,6 @@ public class PolarDataDimensionCollectionFactory {
40 40
Collection<Function<?>> dimensions = new ArrayList<>();
41 41
FunctionFactory functionFactory = new FunctionFactory();
42 42
addTackAndLegTypeDimensions(dimensions, functionFactory);
43
-
44 43
addPolarBaseDimension(dimensions, functionFactory);
45 44
return dimensions;
46 45
}
java/com.sap.sailing.polars/src/com/sap/sailing/polars/mining/PolarDataMiner.java
... ...
@@ -34,8 +34,6 @@ import com.sap.sailing.domain.common.PolarSheetsData;
34 34
import com.sap.sailing.domain.common.PolarSheetsHistogramData;
35 35
import com.sap.sailing.domain.common.Tack;
36 36
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
37
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
38
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
39 37
import com.sap.sailing.domain.common.impl.PolarSheetsDataImpl;
40 38
import com.sap.sailing.domain.common.impl.PolarSheetsHistogramDataImpl;
41 39
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
... ...
@@ -48,6 +46,8 @@ import com.sap.sse.common.Bearing;
48 46
import com.sap.sse.common.Speed;
49 47
import com.sap.sse.common.Util.Pair;
50 48
import com.sap.sse.common.impl.DegreeBearingImpl;
49
+import com.sap.sse.common.impl.KnotSpeedImpl;
50
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
51 51
import com.sap.sse.datamining.components.FilterCriterion;
52 52
import com.sap.sse.datamining.components.Processor;
53 53
import com.sap.sse.datamining.data.ClusterGroup;
... ...
@@ -136,6 +136,13 @@ public class PolarDataMiner {
136 136
throw new RuntimeException(e);
137 137
}
138 138
}
139
+
140
+ public PolarDataMiner filterToBoatClasses(Iterable<BoatClass> boatClasses) {
141
+ return new PolarDataMiner(backendPolarSheetGenerationSettings,
142
+ cubicRegressionPerCourseProcessor.filterToBoatClasses(boatClasses),
143
+ speedRegressionPerAngleClusterProcessor.filterToBoatClasses(boatClasses),
144
+ angleClusterGroup);
145
+ }
139 146
140 147
private void setUpWorkflow() throws ClassCastException, NoSuchMethodException, SecurityException {
141 148
Collection<Processor<GroupedDataEntry<GPSFixMovingWithPolarContext>, ?>> regressionPerCourseGrouperResultReceivers = new ArrayList<Processor<GroupedDataEntry<GPSFixMovingWithPolarContext>, ?>>();
java/com.sap.sailing.polars/src/com/sap/sailing/polars/mining/PolarFixFilterCriteria.java
... ...
@@ -10,15 +10,15 @@ import com.sap.sailing.domain.base.Course;
10 10
import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
11 11
import com.sap.sailing.domain.base.Waypoint;
12 12
import com.sap.sailing.domain.common.LegType;
13
-import com.sap.sailing.domain.common.Position;
14
-import com.sap.sailing.domain.common.confidence.BearingWithConfidence;
15 13
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
16 14
import com.sap.sailing.domain.tracking.GPSFixTrack;
17 15
import com.sap.sailing.domain.tracking.MarkPassing;
18 16
import com.sap.sailing.domain.tracking.TrackedRace;
19 17
import com.sap.sailing.domain.tracking.WindWithConfidence;
18
+import com.sap.sse.common.Position;
20 19
import com.sap.sse.common.TimePoint;
21 20
import com.sap.sse.common.Util.Pair;
21
+import com.sap.sse.common.confidence.BearingWithConfidence;
22 22
import com.sap.sse.common.impl.MillisecondsTimePoint;
23 23
import com.sap.sse.datamining.components.FilterCriterion;
24 24
java/com.sap.sailing.polars/src/com/sap/sailing/polars/mining/SpeedRegressionPerAngleClusterProcessor.java
... ...
@@ -15,7 +15,6 @@ import org.apache.commons.math.analysis.polynomials.PolynomialFunction;
15 15
import com.sap.sailing.domain.base.BoatClass;
16 16
import com.sap.sailing.domain.base.SpeedWithConfidence;
17 17
import com.sap.sailing.domain.base.impl.SpeedWithConfidenceImpl;
18
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
19 18
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
20 19
import com.sap.sailing.domain.polars.PolarsChangedListener;
21 20
import com.sap.sailing.polars.impl.CubicEquation;
... ...
@@ -23,8 +22,10 @@ import com.sap.sailing.polars.regression.IncrementalLeastSquares;
23 22
import com.sap.sailing.polars.regression.impl.IncrementalAnyOrderLeastSquaresImpl;
24 23
import com.sap.sse.common.Bearing;
25 24
import com.sap.sse.common.Speed;
25
+import com.sap.sse.common.Util;
26 26
import com.sap.sse.common.Util.Pair;
27 27
import com.sap.sse.common.impl.DegreeBearingImpl;
28
+import com.sap.sse.common.impl.KnotSpeedImpl;
28 29
import com.sap.sse.datamining.components.AdditionalResultDataBuilder;
29 30
import com.sap.sse.datamining.components.Processor;
30 31
import com.sap.sse.datamining.data.Cluster;
... ...
@@ -32,6 +33,7 @@ import com.sap.sse.datamining.data.ClusterGroup;
32 33
import com.sap.sse.datamining.factories.GroupKeyFactory;
33 34
import com.sap.sse.datamining.impl.components.GroupedDataEntry;
34 35
import com.sap.sse.datamining.shared.GroupKey;
36
+import com.sap.sse.datamining.shared.impl.GenericGroupKey;
35 37
36 38
/**
37 39
* Holds one speed regression per BoatClass, WindSpeed, Beat Angle Range combination and provides means for adding and
... ...
@@ -63,6 +65,49 @@ public class SpeedRegressionPerAngleClusterProcessor implements
63 65
this.angleClusterGroup = angleClusterGroup;
64 66
}
65 67
68
+ public SpeedRegressionPerAngleClusterProcessor filterToBoatClasses(Iterable<BoatClass> boatClasses) {
69
+ final Set<BoatClass> allowedBoatClasses = Util.asSet(boatClasses);
70
+ final SpeedRegressionPerAngleClusterProcessor filteredProcessor = new SpeedRegressionPerAngleClusterProcessor(angleClusterGroup);
71
+ synchronized (regressions) {
72
+ for (Map.Entry<GroupKey, IncrementalLeastSquares> entry : regressions.entrySet()) {
73
+ GroupKey key = entry.getKey();
74
+ BoatClass boatClass = extractBoatClass(key);
75
+ if (boatClass != null && allowedBoatClasses.contains(boatClass)) {
76
+ filteredProcessor.regressions.put(key, entry.getValue());
77
+ }
78
+ }
79
+ }
80
+ synchronized (fixCountPerBoatClass) {
81
+ for (Map.Entry<BoatClass, Long> entry : fixCountPerBoatClass.entrySet()) {
82
+ if (allowedBoatClasses.contains(entry.getKey())) {
83
+ filteredProcessor.fixCountPerBoatClass.put(entry.getKey(), entry.getValue());
84
+ }
85
+ }
86
+ }
87
+ return filteredProcessor;
88
+ }
89
+
90
+ private BoatClass extractBoatClass(GroupKey key) {
91
+ final BoatClass result;
92
+ if (key.hasSubKeys()) {
93
+ // In the compound key, BoatClass is the first dimension (index 0)
94
+ GroupKey boatClassKey = key.getKeys().get(0);
95
+ if (boatClassKey instanceof GenericGroupKey) {
96
+ Object value = ((GenericGroupKey<?>) boatClassKey).getValue();
97
+ if (value instanceof BoatClass) {
98
+ result = (BoatClass) value;
99
+ } else {
100
+ result = null;
101
+ }
102
+ } else {
103
+ result = null;
104
+ }
105
+ } else {
106
+ result = null;
107
+ }
108
+ return result;
109
+ }
110
+
66 111
@Override
67 112
public boolean canProcessElements() {
68 113
// TODO Auto-generated method stub
java/com.sap.sailing.polars/src/com/sap/sailing/polars/windestimation/AbstractManeuverBasedWindEstimationTrackImpl.java
... ...
@@ -12,24 +12,24 @@ import java.util.stream.Stream;
12 12
13 13
import com.sap.sailing.domain.base.BoatClass;
14 14
import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
15
-import com.sap.sailing.domain.common.DoublePair;
16 15
import com.sap.sailing.domain.common.ManeuverType;
17 16
import com.sap.sailing.domain.common.Wind;
18
-import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
19
-import com.sap.sailing.domain.common.confidence.ConfidenceFactory;
20 17
import com.sap.sailing.domain.common.impl.WindImpl;
21 18
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
22
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
23
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableSpeed;
24 19
import com.sap.sailing.domain.polars.PolarDataService;
25 20
import com.sap.sailing.domain.tracking.impl.WindTrackImpl;
26 21
import com.sap.sse.common.Bearing;
22
+import com.sap.sse.common.DoublePair;
27 23
import com.sap.sse.common.Speed;
28 24
import com.sap.sse.common.Util.Pair;
29 25
import com.sap.sse.common.Util.Triple;
26
+import com.sap.sse.common.confidence.ConfidenceBasedAverager;
27
+import com.sap.sse.common.confidence.ConfidenceFactory;
28
+import com.sap.sse.common.confidence.HasConfidence;
30 29
import com.sap.sse.common.impl.DegreeBearingImpl;
31
-import com.sap.sse.common.scalablevalue.HasConfidence;
32 30
import com.sap.sse.common.scalablevalue.ScalableDouble;
31
+import com.sap.sse.common.scalablevalue.impl.ScalableBearing;
32
+import com.sap.sse.common.scalablevalue.impl.ScalableSpeed;
33 33
import com.sap.sse.util.kmeans.Cluster;
34 34
import com.sap.sse.util.kmeans.KMeansMappingClusterer;
35 35
java/com.sap.sailing.polars/src/com/sap/sailing/polars/windestimation/ManeuverBasedWindEstimationTrack.java
... ...
@@ -6,11 +6,11 @@ import java.util.stream.Stream;
6 6
7 7
import com.sap.sailing.domain.base.BoatClass;
8 8
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
9
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
10 9
import com.sap.sailing.domain.tracking.WindTrack;
11 10
import com.sap.sse.common.Bearing;
12 11
import com.sap.sse.common.Util.Pair;
13 12
import com.sap.sse.common.scalablevalue.ScalableDouble;
13
+import com.sap.sse.common.scalablevalue.impl.ScalableBearing;
14 14
import com.sap.sse.util.kmeans.Cluster;
15 15
16 16
public interface ManeuverBasedWindEstimationTrack extends WindTrack {
java/com.sap.sailing.polars/src/com/sap/sailing/polars/windestimation/ManeuverBasedWindEstimationTrackImpl.java
... ...
@@ -14,7 +14,6 @@ import com.sap.sailing.domain.base.Waypoint;
14 14
import com.sap.sailing.domain.base.impl.CompetitorAndBoatImpl;
15 15
import com.sap.sailing.domain.common.ManeuverType;
16 16
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
17
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
18 17
import com.sap.sailing.domain.polars.PolarDataService;
19 18
import com.sap.sailing.domain.tracking.Maneuver;
20 19
import com.sap.sailing.domain.tracking.TrackedRace;
... ...
@@ -26,6 +25,7 @@ import com.sap.sse.common.Util.Pair;
26 25
import com.sap.sse.common.impl.DegreeBearingImpl;
27 26
import com.sap.sse.common.impl.MillisecondsTimePoint;
28 27
import com.sap.sse.common.scalablevalue.ScalableDouble;
28
+import com.sap.sse.common.scalablevalue.impl.ScalableBearing;
29 29
import com.sap.sse.util.kmeans.Cluster;
30 30
31 31
/**
java/com.sap.sailing.polars/src/com/sap/sailing/polars/windestimation/ManeuverClassification.java
... ...
@@ -3,8 +3,8 @@ package com.sap.sailing.polars.windestimation;
3 3
import com.sap.sailing.domain.base.BoatClass;
4 4
import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
5 5
import com.sap.sailing.domain.common.ManeuverType;
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sse.common.Bearing;
7
+import com.sap.sse.common.Position;
8 8
import com.sap.sse.common.Speed;
9 9
import com.sap.sse.common.TimePoint;
10 10
java/com.sap.sailing.polars/src/com/sap/sailing/polars/windestimation/ManeuverClassificationImpl.java
... ...
@@ -9,16 +9,16 @@ import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
9 9
import com.sap.sailing.domain.base.impl.SpeedWithBearingWithConfidenceImpl;
10 10
import com.sap.sailing.domain.common.LegType;
11 11
import com.sap.sailing.domain.common.ManeuverType;
12
-import com.sap.sailing.domain.common.Position;
13
-import com.sap.sailing.domain.common.SpeedWithBearing;
14
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
15 12
import com.sap.sailing.domain.polars.PolarDataService;
16 13
import com.sap.sailing.domain.tracking.Maneuver;
17 14
import com.sap.sse.common.Bearing;
18 15
import com.sap.sse.common.Distance;
16
+import com.sap.sse.common.Position;
19 17
import com.sap.sse.common.Speed;
18
+import com.sap.sse.common.SpeedWithBearing;
20 19
import com.sap.sse.common.TimePoint;
21 20
import com.sap.sse.common.Util.Pair;
21
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
22 22
23 23
/**
24 24
* Collects data about a maneuver that will be used to assign probabilities for maneuver types such as tack or jibe,
java/com.sap.sailing.polars/src/com/sap/sailing/polars/windestimation/ManeuverClassificationToHasConfidenceAndIsScalableAdapter.java
... ...
@@ -3,8 +3,8 @@ package com.sap.sailing.polars.windestimation;
3 3
import java.util.function.Function;
4 4
5 5
import com.sap.sailing.domain.common.ManeuverType;
6
-import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
7 6
import com.sap.sailing.domain.polars.PolarDataService;
7
+import com.sap.sse.common.confidence.ConfidenceBasedAverager;
8 8
import com.sap.sse.common.scalablevalue.HasConfidenceAndIsScalable;
9 9
import com.sap.sse.common.scalablevalue.ScalableValue;
10 10
java/com.sap.sailing.polars/src/com/sap/sailing/polars/windestimation/ScalableBearingAndScalableDouble.java
... ...
@@ -1,11 +1,11 @@
1 1
package com.sap.sailing.polars.windestimation;
2 2
3
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
4 3
import com.sap.sse.common.Bearing;
5 4
import com.sap.sse.common.Util.Pair;
6 5
import com.sap.sse.common.scalablevalue.ScalableDouble;
7 6
import com.sap.sse.common.scalablevalue.ScalableValue;
8 7
import com.sap.sse.common.scalablevalue.ScalableValueWithDistance;
8
+import com.sap.sse.common.scalablevalue.impl.ScalableBearing;
9 9
10 10
/**
11 11
* Two {@link Bearings} combined in one scalable object, like a vector of two bearings. {@link #add(ScalableValue)
java/com.sap.sailing.polars/webservices/api/polar_data.html
... ...
@@ -13,7 +13,9 @@
13 13
14 14
<b>Description:</b>
15 15
<p>
16
-Gets the binary representation of the server's polar data for all boat classes.
16
+Gets the binary representation of the server's polar data. By default, data for all boat classes is returned.
17
+Optionally, the results can be filtered to specific boat classes using the <tt>boatClassName</tt> query parameter,
18
+which may be specified multiple times to include several boat classes.
17 19
</p>
18 20
<p>
19 21
You need the <tt>POLAR_DATA:READ</tt> permission for this. The output can be deserialized into a Java object of type
... ...
@@ -36,9 +38,29 @@ class.
36 38
<td>Binary Java Object</td>
37 39
</tr>
38 40
<tr>
39
- <td>Example:</td>
40
- <td><a href="https://www.sapsailing.com/polars/api/polar_data">
41
- curl -o polar.dat -H 'Authorization: Bearer {your-access-token-here}' <a href="https://www.sapsailing.com/polars/api/polar_data">https://www.sapsailing.com/polars/api/polar_data</a>
41
+ <td valign="top">Query Parameters:</td>
42
+ <td>
43
+ <table border="1" cellpadding="4" cellspacing="0">
44
+ <tr>
45
+ <th>Name</th><th>Required</th><th>Description</th>
46
+ </tr>
47
+ <tr>
48
+ <td><tt>boatClassName</tt></td>
49
+ <td>No</td>
50
+ <td>Name of a boat class to include in the response. May be specified multiple times
51
+ to request data for several boat classes. If omitted, data for all boat classes is returned.</td>
52
+ </tr>
53
+ </table>
54
+ </td>
55
+ </tr>
56
+ <tr>
57
+ <td valign="top">Examples:</td>
58
+ <td>
59
+ All boat classes:<br/>
60
+ <tt>curl -o polar.dat -H 'Authorization: Bearer {your-access-token-here}' <a href="https://www.sapsailing.com/polars/api/polar_data">https://www.sapsailing.com/polars/api/polar_data</a></tt>
61
+ <br/><br/>
62
+ Filtered to specific boat classes:<br/>
63
+ <tt>curl -o polar.dat -H 'Authorization: Bearer {your-access-token-here}' "<a href="https://www.sapsailing.com/polars/api/polar_data?boatClassName=49er&amp;boatClassName=Nacra17">https://www.sapsailing.com/polars/api/polar_data?boatClassName=49er&amp;boatClassName=Nacra17</a>"</tt>
42 64
</td>
43 65
</tr>
44 66
</table>
java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/coursetemplate/DeviceMapping.java
... ...
@@ -2,10 +2,10 @@ package com.sap.sailing.selenium.api.coursetemplate;
2 2
3 3
import org.json.simple.JSONObject;
4 4
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.impl.DegreePosition;
7 5
import com.sap.sailing.selenium.api.core.JsonWrapper;
6
+import com.sap.sse.common.Position;
8 7
import com.sap.sse.common.TimePoint;
8
+import com.sap.sse.common.impl.DegreePosition;
9 9
import com.sap.sse.common.impl.MillisecondsTimePoint;
10 10
11 11
public class DeviceMapping extends JsonWrapper {
java/com.sap.sailing.selenium.test/src/com/sap/sailing/selenium/api/coursetemplate/MarkConfiguration.java
... ...
@@ -11,9 +11,9 @@ import java.util.stream.Collectors;
11 11
import org.json.simple.JSONArray;
12 12
import org.json.simple.JSONObject;
13 13
14
-import com.sap.sailing.domain.common.Position;
15
-import com.sap.sailing.domain.common.impl.DegreePosition;
16 14
import com.sap.sailing.selenium.api.core.JsonWrapper;
15
+import com.sap.sse.common.Position;
16
+import com.sap.sse.common.impl.DegreePosition;
17 17
18 18
public class MarkConfiguration extends JsonWrapper {
19 19
java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/CourseAreaJsonDeserializer.java
... ...
@@ -7,10 +7,10 @@ import org.json.simple.JSONObject;
7 7
8 8
import com.sap.sailing.domain.base.CourseArea;
9 9
import com.sap.sailing.domain.base.SharedDomainFactory;
10
-import com.sap.sailing.domain.common.Position;
11
-import com.sap.sailing.domain.common.impl.MeterDistance;
12 10
import com.sap.sailing.server.gateway.serialization.impl.CourseAreaJsonSerializer;
13 11
import com.sap.sse.common.Distance;
12
+import com.sap.sse.common.Position;
13
+import com.sap.sse.common.impl.MeterDistance;
14 14
import com.sap.sse.shared.json.JsonDeserializationException;
15 15
import com.sap.sse.shared.json.JsonDeserializer;
16 16
import com.sap.sse.shared.util.impl.UUIDHelper;
java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/PositionJsonDeserializer.java
... ...
@@ -2,9 +2,9 @@ package com.sap.sailing.server.gateway.deserialization.impl;
2 2
3 3
import org.json.simple.JSONObject;
4 4
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.impl.DegreePosition;
7 5
import com.sap.sailing.server.gateway.serialization.impl.PositionJsonSerializer;
6
+import com.sap.sse.common.Position;
7
+import com.sap.sse.common.impl.DegreePosition;
8 8
import com.sap.sse.shared.json.JsonDeserializationException;
9 9
import com.sap.sse.shared.json.JsonDeserializer;
10 10
java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/StatisticsJsonDeserializer.java
... ...
@@ -4,8 +4,6 @@ import org.json.simple.JSONObject;
4 4
5 5
import com.sap.sailing.domain.base.Competitor;
6 6
import com.sap.sailing.domain.base.SharedDomainFactory;
7
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
8
-import com.sap.sailing.domain.common.impl.MeterDistance;
9 7
import com.sap.sailing.domain.statistics.Statistics;
10 8
import com.sap.sailing.domain.statistics.impl.StatisticsImpl;
11 9
import com.sap.sailing.server.gateway.serialization.impl.StatisticsJsonSerializer;
... ...
@@ -13,6 +11,8 @@ import com.sap.sse.common.Distance;
13 11
import com.sap.sse.common.Speed;
14 12
import com.sap.sse.common.TimePoint;
15 13
import com.sap.sse.common.Util.Triple;
14
+import com.sap.sse.common.impl.KnotSpeedImpl;
15
+import com.sap.sse.common.impl.MeterDistance;
16 16
import com.sap.sse.common.impl.MillisecondsTimePoint;
17 17
import com.sap.sse.shared.json.JsonDeserializationException;
18 18
import com.sap.sse.shared.json.JsonDeserializer;
java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/TargetTimeInfoDeserializer.java
... ...
@@ -10,7 +10,6 @@ import com.sap.sailing.domain.common.LegType;
10 10
import com.sap.sailing.domain.common.TargetTimeInfo;
11 11
import com.sap.sailing.domain.common.TargetTimeInfo.LegTargetTimeInfo;
12 12
import com.sap.sailing.domain.common.Wind;
13
-import com.sap.sailing.domain.common.impl.MeterDistance;
14 13
import com.sap.sailing.domain.common.impl.TargetTimeInfoImpl;
15 14
import com.sap.sailing.server.gateway.serialization.impl.TargetTimeInfoSerializer;
16 15
import com.sap.sse.common.Bearing;
... ...
@@ -18,6 +17,7 @@ import com.sap.sse.common.Distance;
18 17
import com.sap.sse.common.Duration;
19 18
import com.sap.sse.common.TimePoint;
20 19
import com.sap.sse.common.impl.DegreeBearingImpl;
20
+import com.sap.sse.common.impl.MeterDistance;
21 21
import com.sap.sse.common.impl.MillisecondsDurationImpl;
22 22
import com.sap.sse.common.impl.MillisecondsTimePoint;
23 23
import com.sap.sse.shared.json.JsonDeserializationException;
java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/impl/WindJsonDeserializer.java
... ...
@@ -2,14 +2,14 @@ package com.sap.sailing.server.gateway.deserialization.impl;
2 2
3 3
import org.json.simple.JSONObject;
4 4
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.SpeedWithBearing;
7 5
import com.sap.sailing.domain.common.Wind;
8
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
9 6
import com.sap.sailing.domain.common.impl.WindImpl;
10 7
import com.sap.sailing.server.gateway.serialization.impl.WindJsonSerializer;
11 8
import com.sap.sse.common.Bearing;
9
+import com.sap.sse.common.Position;
10
+import com.sap.sse.common.SpeedWithBearing;
12 11
import com.sap.sse.common.impl.DegreeBearingImpl;
12
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
13 13
import com.sap.sse.common.impl.MillisecondsTimePoint;
14 14
import com.sap.sse.shared.json.JsonDeserializationException;
15 15
import com.sap.sse.shared.json.JsonDeserializer;
java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/ImpliedWindSourceDeserializer.java
... ...
@@ -5,7 +5,6 @@ import java.util.logging.Logger;
5 5
6 6
import org.json.simple.JSONObject;
7 7
8
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
9 8
import com.sap.sailing.domain.common.orc.FixedSpeedImpliedWind;
10 9
import com.sap.sailing.domain.common.orc.ImpliedWindSource;
11 10
import com.sap.sailing.domain.common.orc.OtherRaceAsImpliedWindSource;
... ...
@@ -16,6 +15,7 @@ import com.sap.sailing.domain.common.orc.impl.OwnMaxImpliedWindImpl;
16 15
import com.sap.sailing.server.gateway.serialization.racelog.impl.ImpliedWindSourceSerializer;
17 16
import com.sap.sse.common.Speed;
18 17
import com.sap.sse.common.Util.Triple;
18
+import com.sap.sse.common.impl.KnotSpeedImpl;
19 19
import com.sap.sse.shared.json.JsonDeserializationException;
20 20
import com.sap.sse.shared.json.JsonDeserializer;
21 21
java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/ORCCertificateJsonDeserializer.java
... ...
@@ -9,8 +9,6 @@ import java.util.function.Function;
9 9
import org.json.simple.JSONArray;
10 10
import org.json.simple.JSONObject;
11 11
12
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
13
-import com.sap.sailing.domain.common.impl.MeterDistance;
14 12
import com.sap.sailing.domain.common.orc.ORCCertificate;
15 13
import com.sap.sailing.domain.common.orc.impl.ORCCertificateImpl;
16 14
import com.sap.sailing.server.gateway.serialization.racelog.impl.ORCCertificateJsonSerializer;
... ...
@@ -22,6 +20,8 @@ import com.sap.sse.common.Duration;
22 20
import com.sap.sse.common.Speed;
23 21
import com.sap.sse.common.TimePoint;
24 22
import com.sap.sse.common.impl.DegreeBearingImpl;
23
+import com.sap.sse.common.impl.KnotSpeedImpl;
24
+import com.sap.sse.common.impl.MeterDistance;
25 25
import com.sap.sse.common.impl.MillisecondsTimePoint;
26 26
import com.sap.sse.common.impl.SecondsDurationImpl;
27 27
import com.sap.sse.shared.json.JsonDeserializationException;
java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogORCLegDataEventDeserializer.java
... ...
@@ -10,13 +10,13 @@ import com.sap.sailing.domain.abstractlog.orc.impl.RaceLogORCLegDataEventImpl;
10 10
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
11 11
import com.sap.sailing.domain.base.Competitor;
12 12
import com.sap.sailing.domain.base.impl.DynamicCompetitor;
13
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
14 13
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveLegTypes;
15 14
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogORCLegDataEventSerializer;
16 15
import com.sap.sse.common.Bearing;
17 16
import com.sap.sse.common.Distance;
18 17
import com.sap.sse.common.TimePoint;
19 18
import com.sap.sse.common.impl.DegreeBearingImpl;
19
+import com.sap.sse.common.impl.NauticalMileDistance;
20 20
import com.sap.sse.shared.json.JsonDeserializationException;
21 21
import com.sap.sse.shared.json.JsonDeserializer;
22 22
java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/MarkJsonSerializerWithPosition.java
... ...
@@ -3,9 +3,9 @@ package com.sap.sailing.server.gateway.serialization.impl;
3 3
import org.json.simple.JSONObject;
4 4
5 5
import com.sap.sailing.domain.base.ControlPoint;
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
8 7
import com.sap.sailing.server.gateway.serialization.coursedata.impl.MarkJsonSerializer;
8
+import com.sap.sse.common.Position;
9 9
import com.sap.sse.common.Util.Pair;
10 10
import com.sap.sse.common.impl.MillisecondsTimePoint;
11 11
import com.sap.sse.shared.json.JsonSerializer;
java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/PositionJsonSerializer.java
... ...
@@ -2,7 +2,7 @@ package com.sap.sailing.server.gateway.serialization.impl;
2 2
3 3
import org.json.simple.JSONObject;
4 4
5
-import com.sap.sailing.domain.common.Position;
5
+import com.sap.sse.common.Position;
6 6
import com.sap.sse.shared.json.JsonSerializer;
7 7
8 8
public class PositionJsonSerializer implements JsonSerializer<Position> {
java/com.sap.sailing.server.gateway.serialization.shared.android/src/com/sap/sailing/server/gateway/serialization/impl/WindJsonSerializer.java
... ...
@@ -2,8 +2,8 @@ package com.sap.sailing.server.gateway.serialization.impl;
2 2
3 3
import org.json.simple.JSONObject;
4 4
5
-import com.sap.sailing.domain.common.Position;
6 5
import com.sap.sailing.domain.common.Wind;
6
+import com.sap.sse.common.Position;
7 7
import com.sap.sse.shared.json.JsonSerializer;
8 8
9 9
public class WindJsonSerializer implements JsonSerializer<Wind> {
java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/deserialization/test/racelog/ORCCertificateJsonDeserializerTest.java
... ...
@@ -16,7 +16,6 @@ import org.json.simple.parser.ParseException;
16 16
import org.junit.jupiter.api.BeforeEach;
17 17
import org.junit.jupiter.api.Test;
18 18
19
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
20 19
import com.sap.sailing.domain.common.orc.ORCCertificate;
21 20
import com.sap.sailing.domain.orc.ORCCertificatesCollection;
22 21
import com.sap.sailing.domain.orc.ORCCertificatesImporter;
... ...
@@ -25,6 +24,7 @@ import com.sap.sailing.server.gateway.serialization.racelog.impl.ORCCertificateJ
25 24
import com.sap.sse.common.Bearing;
26 25
import com.sap.sse.common.Speed;
27 26
import com.sap.sse.common.impl.DegreeBearingImpl;
27
+import com.sap.sse.common.impl.KnotSpeedImpl;
28 28
29 29
public class ORCCertificateJsonDeserializerTest {
30 30
private ORCCertificateJsonSerializer serializer;
java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/deserialization/test/racelog/RaceLogEventDeserializerTest.java
... ...
@@ -34,7 +34,6 @@ import com.sap.sailing.domain.base.impl.DynamicCompetitor;
34 34
import com.sap.sailing.domain.common.BoatClassMasterdata;
35 35
import com.sap.sailing.domain.common.WindSource;
36 36
import com.sap.sailing.domain.common.WindSourceType;
37
-import com.sap.sailing.domain.common.impl.MeterDistance;
38 37
import com.sap.sailing.domain.common.impl.WindSourceImpl;
39 38
import com.sap.sailing.domain.common.impl.WindSourceWithAdditionalID;
40 39
import com.sap.sailing.domain.common.orc.ORCCertificate;
... ...
@@ -57,6 +56,7 @@ import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogEventSer
57 56
import com.sap.sse.common.TimePoint;
58 57
import com.sap.sse.common.Util;
59 58
import com.sap.sse.common.impl.DegreeBearingImpl;
59
+import com.sap.sse.common.impl.MeterDistance;
60 60
import com.sap.sse.shared.json.JsonDeserializer;
61 61
62 62
public class RaceLogEventDeserializerTest {
java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EstimationDataSerializationDeserializationTest.java
... ...
@@ -11,12 +11,7 @@ import org.junit.jupiter.api.Test;
11 11
import com.sap.sailing.domain.base.BoatClass;
12 12
import com.sap.sailing.domain.base.DomainFactory;
13 13
import com.sap.sailing.domain.common.BoatHullType;
14
-import com.sap.sailing.domain.common.SpeedWithBearing;
15 14
import com.sap.sailing.domain.common.Wind;
16
-import com.sap.sailing.domain.common.impl.DegreePosition;
17
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
18
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
19
-import com.sap.sailing.domain.common.impl.MeterDistance;
20 15
import com.sap.sailing.domain.common.impl.WindImpl;
21 16
import com.sap.sailing.domain.maneuverdetection.CompleteManeuverCurveWithEstimationData;
22 17
import com.sap.sailing.domain.maneuverdetection.ManeuverMainCurveWithEstimationData;
... ...
@@ -39,7 +34,12 @@ import com.sap.sse.common.Bearing;
39 34
import com.sap.sse.common.Distance;
40 35
import com.sap.sse.common.Duration;
41 36
import com.sap.sse.common.Speed;
37
+import com.sap.sse.common.SpeedWithBearing;
42 38
import com.sap.sse.common.impl.DegreeBearingImpl;
39
+import com.sap.sse.common.impl.DegreePosition;
40
+import com.sap.sse.common.impl.KnotSpeedImpl;
41
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
42
+import com.sap.sse.common.impl.MeterDistance;
43 43
import com.sap.sse.common.impl.MillisecondsDurationImpl;
44 44
import com.sap.sse.common.impl.MillisecondsTimePoint;
45 45
import com.sap.sse.shared.json.JsonDeserializationException;
java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerTest.java
... ...
@@ -23,8 +23,6 @@ import com.sap.sailing.domain.base.DomainFactory;
23 23
import com.sap.sailing.domain.base.EventBase;
24 24
import com.sap.sailing.domain.base.Venue;
25 25
import com.sap.sailing.domain.base.impl.VenueImpl;
26
-import com.sap.sailing.domain.common.impl.DegreePosition;
27
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
28 26
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
29 27
import com.sap.sailing.server.gateway.deserialization.impl.CourseAreaJsonDeserializer;
30 28
import com.sap.sailing.server.gateway.deserialization.impl.EventBaseJsonDeserializer;
... ...
@@ -38,7 +36,9 @@ import com.sap.sailing.server.gateway.serialization.impl.TrackingConnectorInfoJs
38 36
import com.sap.sailing.server.gateway.serialization.impl.VenueJsonSerializer;
39 37
import com.sap.sse.common.TimePoint;
40 38
import com.sap.sse.common.Util;
39
+import com.sap.sse.common.impl.DegreePosition;
41 40
import com.sap.sse.common.impl.MillisecondsTimePoint;
41
+import com.sap.sse.common.impl.NauticalMileDistance;
42 42
import com.sap.sse.shared.json.JsonDeserializationException;
43 43
import com.sap.sse.shared.json.JsonSerializer;
44 44
import com.sap.sse.shared.media.ImageDescriptor;
java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogWindFixEventSerializerTest.java
... ...
@@ -13,11 +13,7 @@ import com.sap.sailing.domain.abstractlog.race.RaceLogWindFixEvent;
13 13
import com.sap.sailing.domain.abstractlog.race.impl.RaceLogWindFixEventImpl;
14 14
import com.sap.sailing.domain.base.DomainFactory;
15 15
import com.sap.sailing.domain.base.SharedDomainFactory;
16
-import com.sap.sailing.domain.common.Position;
17
-import com.sap.sailing.domain.common.SpeedWithBearing;
18 16
import com.sap.sailing.domain.common.Wind;
19
-import com.sap.sailing.domain.common.impl.DegreePosition;
20
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
21 17
import com.sap.sailing.domain.common.impl.WindImpl;
22 18
import com.sap.sailing.server.gateway.deserialization.impl.CompetitorJsonDeserializer;
23 19
import com.sap.sailing.server.gateway.deserialization.impl.PositionJsonDeserializer;
... ...
@@ -33,9 +29,13 @@ import com.sap.sailing.server.gateway.serialization.impl.TeamJsonSerializer;
33 29
import com.sap.sailing.server.gateway.serialization.impl.WindJsonSerializer;
34 30
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogWindFixEventSerializer;
35 31
import com.sap.sse.common.Bearing;
32
+import com.sap.sse.common.Position;
33
+import com.sap.sse.common.SpeedWithBearing;
36 34
import com.sap.sse.common.TimePoint;
37 35
import com.sap.sse.common.Util;
38 36
import com.sap.sse.common.impl.DegreeBearingImpl;
37
+import com.sap.sse.common.impl.DegreePosition;
38
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
39 39
import com.sap.sse.common.impl.MillisecondsTimePoint;
40 40
import com.sap.sse.shared.json.JsonDeserializationException;
41 41
java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/CompleteManeuverCurveWithEstimationDataJsonDeserializer.java
... ...
@@ -2,10 +2,7 @@ package com.sap.sailing.server.gateway.deserialization.impl;
2 2
3 3
import org.json.simple.JSONObject;
4 4
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.SpeedWithBearing;
7 5
import com.sap.sailing.domain.common.Wind;
8
-import com.sap.sailing.domain.common.impl.MeterDistance;
9 6
import com.sap.sailing.domain.common.impl.WindImpl;
10 7
import com.sap.sailing.domain.maneuverdetection.CompleteManeuverCurveWithEstimationData;
11 8
import com.sap.sailing.domain.maneuverdetection.ManeuverCurveWithUnstableCourseAndSpeedWithEstimationData;
... ...
@@ -14,7 +11,10 @@ import com.sap.sailing.domain.maneuverdetection.impl.CompleteManeuverCurveWithEs
14 11
import com.sap.sailing.server.gateway.serialization.impl.CompleteManeuverCurveWithEstimationDataJsonSerializer;
15 12
import com.sap.sse.common.Bearing;
16 13
import com.sap.sse.common.Distance;
14
+import com.sap.sse.common.Position;
15
+import com.sap.sse.common.SpeedWithBearing;
17 16
import com.sap.sse.common.impl.DegreeBearingImpl;
17
+import com.sap.sse.common.impl.MeterDistance;
18 18
import com.sap.sse.shared.json.JsonDeserializationException;
19 19
import com.sap.sse.shared.json.JsonDeserializer;
20 20
java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/FlatSmartphoneUuidAndGPSFixMovingJsonDeserializer.java
... ...
@@ -14,14 +14,14 @@ import org.json.simple.JSONArray;
14 14
import org.json.simple.JSONObject;
15 15
16 16
import com.sap.sailing.declination.DeclinationService;
17
-import com.sap.sailing.domain.common.impl.DegreePosition;
18
-import com.sap.sailing.domain.common.impl.MeterPerSecondSpeedImpl;
19 17
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
20 18
import com.sap.sailing.domain.common.tracking.impl.FlatSmartphoneUuidAndGPSFixMovingJsonSerializer;
21 19
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
22 20
import com.sap.sse.common.TimePoint;
23 21
import com.sap.sse.common.Util.Pair;
24 22
import com.sap.sse.common.impl.DegreeBearingImpl;
23
+import com.sap.sse.common.impl.DegreePosition;
24
+import com.sap.sse.common.impl.MeterPerSecondSpeedImpl;
25 25
import com.sap.sse.shared.json.JsonDeserializationException;
26 26
import com.sap.sse.shared.json.JsonDeserializer;
27 27
java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/GPSFixJsonDeserializer.java
... ...
@@ -4,12 +4,12 @@ import java.util.Date;
4 4
5 5
import org.json.simple.JSONObject;
6 6
7
-import com.sap.sailing.domain.common.Position;
8
-import com.sap.sailing.domain.common.impl.DegreePosition;
9 7
import com.sap.sailing.domain.common.tracking.GPSFix;
10 8
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
11 9
import com.sap.sailing.server.gateway.deserialization.TypeBasedJsonDeserializer;
10
+import com.sap.sse.common.Position;
12 11
import com.sap.sse.common.TimePoint;
12
+import com.sap.sse.common.impl.DegreePosition;
13 13
import com.sap.sse.common.impl.MillisecondsTimePoint;
14 14
import com.sap.sse.shared.json.JsonDeserializationException;
15 15
java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/GPSFixMovingJsonDeserializer.java
... ...
@@ -2,14 +2,14 @@ package com.sap.sailing.server.gateway.deserialization.impl;
2 2
3 3
import org.json.simple.JSONObject;
4 4
5
-import com.sap.sailing.domain.common.SpeedWithBearing;
6
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
7 5
import com.sap.sailing.domain.common.tracking.GPSFix;
8 6
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
9 7
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
10 8
import com.sap.sailing.server.gateway.deserialization.TypeBasedJsonDeserializer;
11 9
import com.sap.sse.common.Bearing;
10
+import com.sap.sse.common.SpeedWithBearing;
12 11
import com.sap.sse.common.impl.DegreeBearingImpl;
12
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
13 13
import com.sap.sse.shared.json.JsonDeserializationException;
14 14
15 15
public class GPSFixMovingJsonDeserializer extends TypeBasedJsonDeserializer<GPSFixMoving> {
java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/ManeuverCurveBoundariesJsonDeserializer.java
... ...
@@ -2,12 +2,12 @@ package com.sap.sailing.server.gateway.deserialization.impl;
2 2
3 3
import org.json.simple.JSONObject;
4 4
5
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
6
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
7 5
import com.sap.sailing.domain.tracking.ManeuverCurveBoundaries;
8 6
import com.sap.sailing.domain.tracking.impl.ManeuverCurveBoundariesImpl;
9 7
import com.sap.sailing.server.gateway.serialization.impl.ManeuverCurveBoundariesJsonSerializer;
10 8
import com.sap.sse.common.impl.DegreeBearingImpl;
9
+import com.sap.sse.common.impl.KnotSpeedImpl;
10
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
11 11
import com.sap.sse.common.impl.MillisecondsTimePoint;
12 12
import com.sap.sse.shared.json.JsonDeserializationException;
13 13
import com.sap.sse.shared.json.JsonDeserializer;
java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/ManeuverCurveWithUnstableCourseAndSpeedWithEstimationDataJsonDeserializer.java
... ...
@@ -2,14 +2,14 @@ package com.sap.sailing.server.gateway.deserialization.impl;
2 2
3 3
import org.json.simple.JSONObject;
4 4
5
-import com.sap.sailing.domain.common.SpeedWithBearing;
6
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
7 5
import com.sap.sailing.domain.maneuverdetection.ManeuverCurveWithUnstableCourseAndSpeedWithEstimationData;
8 6
import com.sap.sailing.domain.maneuverdetection.impl.ManeuverCurveWithUnstableCourseAndSpeedWithEstimationDataImpl;
9 7
import com.sap.sailing.domain.tracking.ManeuverCurveBoundaries;
10 8
import com.sap.sailing.server.gateway.serialization.impl.ManeuverCurveWithUnstableCourseAndSpeedWithEstimationDataJsonSerializer;
11 9
import com.sap.sse.common.Duration;
10
+import com.sap.sse.common.SpeedWithBearing;
12 11
import com.sap.sse.common.impl.DegreeBearingImpl;
12
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
13 13
import com.sap.sse.common.impl.MillisecondsDurationImpl;
14 14
import com.sap.sse.shared.json.JsonDeserializationException;
15 15
java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/ManeuverMainCurveWithEstimationDataJsonDeserializer.java
... ...
@@ -2,12 +2,12 @@ package com.sap.sailing.server.gateway.deserialization.impl;
2 2
3 3
import org.json.simple.JSONObject;
4 4
5
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
6 5
import com.sap.sailing.domain.maneuverdetection.ManeuverMainCurveWithEstimationData;
7 6
import com.sap.sailing.domain.maneuverdetection.impl.ManeuverMainCurveWithEstimationDataImpl;
8 7
import com.sap.sailing.domain.tracking.ManeuverCurveBoundaries;
9 8
import com.sap.sailing.server.gateway.serialization.impl.ManeuverMainCurveWithEstimationDataJsonSerializer;
10 9
import com.sap.sse.common.impl.DegreeBearingImpl;
10
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
11 11
import com.sap.sse.common.impl.MillisecondsDurationImpl;
12 12
import com.sap.sse.common.impl.MillisecondsTimePoint;
13 13
import com.sap.sse.shared.json.JsonDeserializationException;
java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/ManeuverWindJsonDeserializer.java
... ...
@@ -2,11 +2,11 @@ package com.sap.sailing.server.gateway.deserialization.impl;
2 2
3 3
import org.json.simple.JSONObject;
4 4
5
-import com.sap.sailing.domain.common.SpeedWithBearing;
6
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
7 5
import com.sap.sailing.server.gateway.serialization.impl.ManeuverWindJsonSerializer;
8 6
import com.sap.sse.common.Bearing;
7
+import com.sap.sse.common.SpeedWithBearing;
9 8
import com.sap.sse.common.impl.DegreeBearingImpl;
9
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
10 10
import com.sap.sse.shared.json.JsonDeserializationException;
11 11
import com.sap.sse.shared.json.JsonDeserializer;
12 12
java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/MongoDbFriendlyPositionJsonDeserializer.java
... ...
@@ -3,9 +3,9 @@ package com.sap.sailing.server.gateway.deserialization.impl;
3 3
import org.json.simple.JSONArray;
4 4
import org.json.simple.JSONObject;
5 5
6
-import com.sap.sailing.domain.common.Position;
7
-import com.sap.sailing.domain.common.impl.DegreePosition;
8 6
import com.sap.sailing.server.gateway.serialization.impl.MongoDbFriendlyPositionJsonSerializer;
7
+import com.sap.sse.common.Position;
8
+import com.sap.sse.common.impl.DegreePosition;
9 9
import com.sap.sse.shared.json.JsonDeserializationException;
10 10
import com.sap.sse.shared.json.JsonDeserializer;
11 11
java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/SpeedWithConfidenceWithIntegerRelationJsonDeserializer.java
... ...
@@ -4,9 +4,9 @@ import org.json.simple.JSONObject;
4 4
5 5
import com.sap.sailing.domain.base.SpeedWithConfidence;
6 6
import com.sap.sailing.domain.base.impl.SpeedWithConfidenceImpl;
7
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
8 7
import com.sap.sailing.server.gateway.serialization.impl.SpeedWithConfidenceWithIntegerRelationJsonSerializer;
9 8
import com.sap.sse.common.Speed;
9
+import com.sap.sse.common.impl.KnotSpeedImpl;
10 10
import com.sap.sse.shared.json.JsonDeserializationException;
11 11
import com.sap.sse.shared.json.JsonDeserializer;
12 12
java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/GPSFixMovingJsonSerializer.java
... ...
@@ -2,10 +2,10 @@ package com.sap.sailing.server.gateway.serialization.impl;
2 2
3 3
import org.json.simple.JSONObject;
4 4
5
-import com.sap.sailing.domain.common.SpeedWithBearing;
6 5
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
7 6
import com.sap.sailing.server.gateway.deserialization.TypeBasedJsonDeserializer;
8 7
import com.sap.sailing.server.gateway.deserialization.impl.GPSFixMovingJsonDeserializer;
8
+import com.sap.sse.common.SpeedWithBearing;
9 9
import com.sap.sse.shared.json.JsonSerializer;
10 10
11 11
public class GPSFixMovingJsonSerializer implements JsonSerializer<GPSFixMoving> {
java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/GpsFixesWithEstimationDataJsonSerializer.java
... ...
@@ -4,7 +4,6 @@ import org.json.simple.JSONArray;
4 4
import org.json.simple.JSONObject;
5 5
6 6
import com.sap.sailing.domain.base.Competitor;
7
-import com.sap.sailing.domain.common.SpeedWithBearing;
8 7
import com.sap.sailing.domain.common.Wind;
9 8
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
10 9
import com.sap.sailing.domain.maneuverdetection.TrackTimeInfo;
... ...
@@ -14,6 +13,7 @@ import com.sap.sailing.domain.tracking.GPSFixTrack;
14 13
import com.sap.sailing.domain.tracking.TrackedRace;
15 14
import com.sap.sse.common.Bearing;
16 15
import com.sap.sse.common.Distance;
16
+import com.sap.sse.common.SpeedWithBearing;
17 17
import com.sap.sse.common.TimePoint;
18 18
19 19
java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/MongoDbFriendlyPositionJsonSerializer.java
... ...
@@ -3,7 +3,7 @@ package com.sap.sailing.server.gateway.serialization.impl;
3 3
import org.json.simple.JSONArray;
4 4
import org.json.simple.JSONObject;
5 5
6
-import com.sap.sailing.domain.common.Position;
6
+import com.sap.sse.common.Position;
7 7
import com.sap.sse.shared.json.JsonSerializer;
8 8
9 9
public class MongoDbFriendlyPositionJsonSerializer implements JsonSerializer<Position> {
java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/PositionedMarkJsonSerializer.java
... ...
@@ -4,7 +4,7 @@ import org.json.simple.JSONObject;
4 4
5 5
import com.sap.sailing.domain.base.ControlPoint;
6 6
import com.sap.sailing.domain.base.Mark;
7
-import com.sap.sailing.domain.common.Position;
7
+import com.sap.sse.common.Position;
8 8
import com.sap.sse.common.Util;
9 9
import com.sap.sse.shared.json.JsonSerializer;
10 10
java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RaceWindJsonSerializer.java
... ...
@@ -8,13 +8,13 @@ import java.util.stream.Collectors;
8 8
import org.json.simple.JSONArray;
9 9
import org.json.simple.JSONObject;
10 10
11
-import com.sap.sailing.domain.common.Position;
12 11
import com.sap.sailing.domain.common.Wind;
13 12
import com.sap.sailing.domain.common.WindSource;
14 13
import com.sap.sailing.domain.common.WindSourceType;
15 14
import com.sap.sailing.domain.tracking.TrackedRace;
16 15
import com.sap.sailing.domain.tracking.WindTrack;
17 16
import com.sap.sse.common.Duration;
17
+import com.sap.sse.common.Position;
18 18
import com.sap.sse.common.TimePoint;
19 19
import com.sap.sse.common.Util;
20 20
java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java
... ...
@@ -25,12 +25,12 @@ import org.junit.jupiter.api.Test;
25 25
26 26
import com.sap.sailing.domain.common.CompetitorRegistrationType;
27 27
import com.sap.sailing.domain.common.NotFoundException;
28
-import com.sap.sailing.domain.common.Position;
29 28
import com.sap.sailing.domain.common.RankingMetrics;
30 29
import com.sap.sailing.domain.common.ScoringSchemeType;
31
-import com.sap.sailing.domain.common.impl.DegreePosition;
32 30
import com.sap.sailing.server.gateway.jaxrs.api.AbstractLeaderboardsResource;
33 31
import com.sap.sse.InvalidDateException;
32
+import com.sap.sse.common.Position;
33
+import com.sap.sse.common.impl.DegreePosition;
34 34
import com.sap.sse.rest.StreamingOutputUtil;
35 35
36 36
public class EventResourceTest extends AbstractJaxRsApiTest {
java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/ExpeditionWindMeasureStatusGetServlet.java
... ...
@@ -17,12 +17,12 @@ import javax.servlet.http.HttpServletResponse;
17 17
import org.osgi.framework.BundleContext;
18 18
import org.osgi.util.tracker.ServiceTracker;
19 19
20
-import com.sap.sailing.domain.common.SpeedWithBearing;
21 20
import com.sap.sailing.domain.common.tracking.GPSFix;
22 21
import com.sap.sailing.expeditionconnector.ExpeditionListener;
23 22
import com.sap.sailing.expeditionconnector.ExpeditionMessage;
24 23
import com.sap.sailing.expeditionconnector.ExpeditionTrackerFactory;
25 24
import com.sap.sailing.expeditionconnector.UDPExpeditionReceiver;
25
+import com.sap.sse.common.SpeedWithBearing;
26 26
27 27
public class ExpeditionWindMeasureStatusGetServlet extends SailingServerHttpServletWithPostBasedContentReplacing implements ExpeditionListener {
28 28
private static final long serialVersionUID = -6791613843435009810L;
java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/MarkPositionsJsonExportServlet.java
... ...
@@ -13,7 +13,6 @@ import org.json.simple.JSONArray;
13 13
import com.sap.sailing.domain.base.Fleet;
14 14
import com.sap.sailing.domain.base.Mark;
15 15
import com.sap.sailing.domain.base.RaceColumn;
16
-import com.sap.sailing.domain.common.Position;
17 16
import com.sap.sailing.domain.common.racelog.RaceLogServletConstants;
18 17
import com.sap.sailing.domain.leaderboard.Leaderboard;
19 18
import com.sap.sailing.domain.tracking.TrackedRace;
... ...
@@ -23,6 +22,7 @@ import com.sap.sailing.server.gateway.serialization.impl.PositionJsonSerializer;
23 22
import com.sap.sailing.server.gateway.serialization.impl.PositionedMarkJsonSerializer;
24 23
import com.sap.sailing.server.interfaces.RacingEventService;
25 24
import com.sap.sse.common.Distance;
25
+import com.sap.sse.common.Position;
26 26
import com.sap.sse.common.Util;
27 27
import com.sap.sse.common.impl.MillisecondsTimePoint;
28 28
import com.sap.sse.security.shared.HasPermissions.DefaultActions;
java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java
... ...
@@ -59,14 +59,12 @@ import com.sap.sailing.domain.base.impl.EventBaseImpl;
59 59
import com.sap.sailing.domain.common.CompetitorRegistrationType;
60 60
import com.sap.sailing.domain.common.LeaderboardNameConstants;
61 61
import com.sap.sailing.domain.common.NotFoundException;
62
-import com.sap.sailing.domain.common.Position;
63 62
import com.sap.sailing.domain.common.RankingMetrics;
64 63
import com.sap.sailing.domain.common.RegattaName;
65 64
import com.sap.sailing.domain.common.ScoringSchemeType;
66 65
import com.sap.sailing.domain.common.dto.FleetDTO;
67 66
import com.sap.sailing.domain.common.dto.RegattaCreationParametersDTO;
68 67
import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO;
69
-import com.sap.sailing.domain.common.impl.DegreePosition;
70 68
import com.sap.sailing.domain.common.security.SecuredDomainType;
71 69
import com.sap.sailing.domain.leaderboard.Leaderboard;
72 70
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
... ...
@@ -104,10 +102,12 @@ import com.sap.sailing.shared.server.gateway.jaxrs.AbstractSailingServerResource
104 102
import com.sap.sse.InvalidDateException;
105 103
import com.sap.sse.common.Distance;
106 104
import com.sap.sse.common.Duration;
105
+import com.sap.sse.common.Position;
107 106
import com.sap.sse.common.TimePoint;
108 107
import com.sap.sse.common.Util;
109 108
import com.sap.sse.common.Util.Pair;
110 109
import com.sap.sse.common.Util.Triple;
110
+import com.sap.sse.common.impl.DegreePosition;
111 111
import com.sap.sse.common.impl.MillisecondsDurationImpl;
112 112
import com.sap.sse.common.impl.MillisecondsTimePoint;
113 113
import com.sap.sse.security.SecurityService;
java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java
... ...
@@ -80,24 +80,20 @@ import com.sap.sailing.domain.common.MaxPointsReason;
80 80
import com.sap.sailing.domain.common.NoWindException;
81 81
import com.sap.sailing.domain.common.NotFoundException;
82 82
import com.sap.sailing.domain.common.PassingInstruction;
83
-import com.sap.sailing.domain.common.Position;
84 83
import com.sap.sailing.domain.common.RegattaScoreCorrections;
85 84
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
86
-import com.sap.sailing.domain.common.SpeedWithBearing;
87 85
import com.sap.sailing.domain.common.dto.CompetitorDTO;
88 86
import com.sap.sailing.domain.common.dto.FleetDTO;
89 87
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
90 88
import com.sap.sailing.domain.common.dto.LeaderboardEntryDTO;
91 89
import com.sap.sailing.domain.common.dto.LeaderboardRowDTO;
92 90
import com.sap.sailing.domain.common.dto.RaceColumnDTO;
93
-import com.sap.sailing.domain.common.impl.MeterDistance;
94 91
import com.sap.sailing.domain.common.impl.RaceColumnConstants;
95 92
import com.sap.sailing.domain.common.racelog.RaceLogServletConstants;
96 93
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
97 94
import com.sap.sailing.domain.common.racelog.tracking.DeviceMappingConstants;
98 95
import com.sap.sailing.domain.common.racelog.tracking.NotDenotableForRaceLogTrackingException;
99 96
import com.sap.sailing.domain.common.racelog.tracking.NotDenotedForRaceLogTrackingException;
100
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
101 97
import com.sap.sailing.domain.common.security.SecuredDomainType;
102 98
import com.sap.sailing.domain.common.sharding.ShardingType;
103 99
import com.sap.sailing.domain.common.tracking.GPSFix;
... ...
@@ -147,12 +143,16 @@ import com.sap.sse.common.Distance;
147 143
import com.sap.sse.common.Duration;
148 144
import com.sap.sse.common.Named;
149 145
import com.sap.sse.common.NamedWithID;
146
+import com.sap.sse.common.Position;
147
+import com.sap.sse.common.SpeedWithBearing;
150 148
import com.sap.sse.common.TimePoint;
151 149
import com.sap.sse.common.Util;
152 150
import com.sap.sse.common.Util.Pair;
153 151
import com.sap.sse.common.Util.Triple;
154 152
import com.sap.sse.common.impl.DegreeBearingImpl;
153
+import com.sap.sse.common.impl.MeterDistance;
155 154
import com.sap.sse.common.impl.MillisecondsTimePoint;
155
+import com.sap.sse.common.scalablevalue.impl.ScalableBearing;
156 156
import com.sap.sse.security.SessionUtils;
157 157
import com.sap.sse.security.shared.HasPermissions.DefaultActions;
158 158
import com.sap.sse.security.shared.OwnershipAnnotation;
java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResourceV2.java
... ...
@@ -31,7 +31,6 @@ import com.sap.sailing.domain.common.DetailType;
31 31
import com.sap.sailing.domain.common.ManeuverType;
32 32
import com.sap.sailing.domain.common.MaxPointsReason;
33 33
import com.sap.sailing.domain.common.NoWindException;
34
-import com.sap.sailing.domain.common.Position;
35 34
import com.sap.sailing.domain.common.dto.BoatDTO;
36 35
import com.sap.sailing.domain.common.dto.CompetitorDTO;
37 36
import com.sap.sailing.domain.common.dto.FleetDTO;
... ...
@@ -50,6 +49,7 @@ import com.sap.sailing.domain.tracking.TrackedRace;
50 49
import com.sap.sse.InvalidDateException;
51 50
import com.sap.sse.common.Distance;
52 51
import com.sap.sse.common.Duration;
52
+import com.sap.sse.common.Position;
53 53
import com.sap.sse.common.TimePoint;
54 54
import com.sap.sse.common.Util;
55 55
import com.sap.sse.common.Util.Pair;
java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/PolarResource.java
... ...
@@ -26,9 +26,7 @@ import com.sap.sailing.domain.base.SpeedWithConfidence;
26 26
import com.sap.sailing.domain.common.LegType;
27 27
import com.sap.sailing.domain.common.Tack;
28 28
import com.sap.sailing.domain.common.Wind;
29
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
30 29
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
31
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
32 30
import com.sap.sailing.domain.polars.PolarDataService;
33 31
import com.sap.sailing.domain.tracking.TrackedRace;
34 32
import com.sap.sailing.polars.windestimation.ManeuverBasedWindEstimationTrack;
... ...
@@ -42,7 +40,9 @@ import com.sap.sse.common.Bearing;
42 40
import com.sap.sse.common.Speed;
43 41
import com.sap.sse.common.Util.Pair;
44 42
import com.sap.sse.common.impl.DegreeBearingImpl;
43
+import com.sap.sse.common.impl.KnotSpeedImpl;
45 44
import com.sap.sse.common.scalablevalue.ScalableDouble;
45
+import com.sap.sse.common.scalablevalue.impl.ScalableBearing;
46 46
import com.sap.sse.util.kmeans.Cluster;
47 47
48 48
/**
java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java
... ...
@@ -89,7 +89,6 @@ import com.sap.sailing.domain.common.ManeuverType;
89 89
import com.sap.sailing.domain.common.NoWindException;
90 90
import com.sap.sailing.domain.common.RegattaName;
91 91
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
92
-import com.sap.sailing.domain.common.SpeedWithBearing;
93 92
import com.sap.sailing.domain.common.Tack;
94 93
import com.sap.sailing.domain.common.TargetTimeInfo;
95 94
import com.sap.sailing.domain.common.WindSource;
... ...
@@ -180,6 +179,7 @@ import com.sap.sse.common.Color;
180 179
import com.sap.sse.common.Distance;
181 180
import com.sap.sse.common.Duration;
182 181
import com.sap.sse.common.Speed;
182
+import com.sap.sse.common.SpeedWithBearing;
183 183
import com.sap.sse.common.TimePoint;
184 184
import com.sap.sse.common.TimeRange;
185 185
import com.sap.sse.common.Util;
java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java
... ...
@@ -50,7 +50,6 @@ import com.sap.sailing.domain.base.impl.EventBaseImpl;
50 50
import com.sap.sailing.domain.common.CompetitorRegistrationType;
51 51
import com.sap.sailing.domain.common.LeaderboardNameConstants;
52 52
import com.sap.sailing.domain.common.Placemark;
53
-import com.sap.sailing.domain.common.Position;
54 53
import com.sap.sailing.domain.common.RankingMetrics;
55 54
import com.sap.sailing.domain.common.RegattaIdentifier;
56 55
import com.sap.sailing.domain.common.RegattaName;
... ...
@@ -101,6 +100,7 @@ import com.sap.sailing.server.util.WaitForTrackedRaceUtil;
101 100
import com.sap.sse.common.Distance;
102 101
import com.sap.sse.common.Duration;
103 102
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
103
+import com.sap.sse.common.Position;
104 104
import com.sap.sse.common.TimePoint;
105 105
import com.sap.sse.common.TransformationException;
106 106
import com.sap.sse.common.TypeBasedServiceFinderFactory;
java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionCourseInferrer.java
... ...
@@ -28,7 +28,6 @@ import com.sap.sailing.domain.base.impl.WaypointImpl;
28 28
import com.sap.sailing.domain.common.CourseDesignerMode;
29 29
import com.sap.sailing.domain.common.PassingInstruction;
30 30
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
31
-import com.sap.sailing.domain.common.impl.DegreePosition;
32 31
import com.sap.sailing.domain.common.sensordata.ExpeditionExtendedSensorDataMetadata;
33 32
import com.sap.sailing.domain.common.tracking.GPSFix;
34 33
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
... ...
@@ -43,6 +42,7 @@ import com.sap.sailing.server.trackfiles.impl.ExpeditionExtendedDataImporterImpl
43 42
import com.sap.sailing.server.trackfiles.impl.ExpeditionImportFileHandler;
44 43
import com.sap.sse.common.TimePoint;
45 44
import com.sap.sse.common.Util;
45
+import com.sap.sse.common.impl.DegreePosition;
46 46
import com.sap.sse.common.impl.MillisecondsTimePoint;
47 47
48 48
/**
java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/windimport/bravo/BravoWindImporter.java
... ...
@@ -17,8 +17,6 @@ import java.util.zip.ZipInputStream;
17 17
import com.sap.sailing.domain.common.Wind;
18 18
import com.sap.sailing.domain.common.WindSource;
19 19
import com.sap.sailing.domain.common.WindSourceType;
20
-import com.sap.sailing.domain.common.impl.DegreePosition;
21
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
22 20
import com.sap.sailing.domain.common.impl.WindImpl;
23 21
import com.sap.sailing.domain.common.impl.WindSourceWithAdditionalID;
24 22
import com.sap.sailing.domain.common.tracking.DoubleVectorFix;
... ...
@@ -30,6 +28,8 @@ import com.sap.sailing.server.trackfiles.impl.BaseBravoDataImporterImpl;
30 28
import com.sap.sse.common.Util;
31 29
import com.sap.sse.common.Util.Pair;
32 30
import com.sap.sse.common.impl.DegreeBearingImpl;
31
+import com.sap.sse.common.impl.DegreePosition;
32
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
33 33
import com.sap.sse.common.impl.MillisecondsTimePoint;
34 34
35 35
public class BravoWindImporter extends AbstractWindImporter {
java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/windimport/expedition/WindLogParser.java
... ...
@@ -9,16 +9,16 @@ import java.util.List;
9 9
import java.util.Map;
10 10
import java.util.concurrent.atomic.AtomicInteger;
11 11
12
-import com.sap.sailing.domain.common.Position;
13
-import com.sap.sailing.domain.common.SpeedWithBearing;
14 12
import com.sap.sailing.domain.common.Wind;
15
-import com.sap.sailing.domain.common.impl.DegreePosition;
16
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
17 13
import com.sap.sailing.domain.common.impl.WindImpl;
18 14
import com.sap.sailing.server.trackfiles.impl.ExpeditionExtendedDataImporterImpl;
19 15
import com.sap.sse.common.Bearing;
16
+import com.sap.sse.common.Position;
17
+import com.sap.sse.common.SpeedWithBearing;
20 18
import com.sap.sse.common.TimePoint;
21 19
import com.sap.sse.common.impl.DegreeBearingImpl;
20
+import com.sap.sse.common.impl.DegreePosition;
21
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
22 22
23 23
public class WindLogParser {
24 24
/**
java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/windimport/grib/GribWindImporter.java
... ...
@@ -10,7 +10,6 @@ import java.util.Set;
10 10
import java.util.logging.Level;
11 11
import java.util.logging.Logger;
12 12
13
-import com.sap.sailing.domain.common.Position;
14 13
import com.sap.sailing.domain.common.Wind;
15 14
import com.sap.sailing.domain.common.WindSource;
16 15
import com.sap.sailing.domain.common.WindSourceType;
... ...
@@ -19,6 +18,7 @@ import com.sap.sailing.domain.common.impl.WindSourceWithAdditionalID;
19 18
import com.sap.sailing.grib.GribWindField;
20 19
import com.sap.sailing.grib.GribWindFieldFactory;
21 20
import com.sap.sailing.server.gateway.windimport.AbstractWindImporter;
21
+import com.sap.sse.common.Position;
22 22
import com.sap.sse.common.Util;
23 23
import com.sap.sse.common.Util.Pair;
24 24
java/com.sap.sailing.server.interface/src/com/sap/sailing/server/interfaces/RacingEventService.java
... ...
@@ -59,7 +59,6 @@ import com.sap.sailing.domain.common.DataImportProgress;
59 59
import com.sap.sailing.domain.common.DataImportSubProgress;
60 60
import com.sap.sailing.domain.common.DetailType;
61 61
import com.sap.sailing.domain.common.NoWindException;
62
-import com.sap.sailing.domain.common.Position;
63 62
import com.sap.sailing.domain.common.RaceFetcher;
64 63
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
65 64
import com.sap.sailing.domain.common.RegattaFetcher;
... ...
@@ -114,6 +113,7 @@ import com.sap.sailing.domain.tracking.WindTracker;
114 113
import com.sap.sailing.server.operationaltransformation.RemoveEvent;
115 114
import com.sap.sse.common.Distance;
116 115
import com.sap.sse.common.PairingListCreationException;
116
+import com.sap.sse.common.Position;
117 117
import com.sap.sse.common.TimePoint;
118 118
import com.sap.sse.common.TypeBasedServiceFinder;
119 119
import com.sap.sse.common.TypeBasedServiceFinderFactory;
java/com.sap.sailing.server.interface/src/com/sap/sailing/server/operationaltransformation/AddCourseAreas.java
... ...
@@ -5,10 +5,10 @@ import java.util.UUID;
5 5
import com.sap.sailing.domain.base.CourseArea;
6 6
import com.sap.sailing.domain.base.Event;
7 7
import com.sap.sailing.domain.base.Venue;
8
-import com.sap.sailing.domain.common.Position;
9 8
import com.sap.sailing.server.interfaces.RacingEventService;
10 9
import com.sap.sailing.server.interfaces.RacingEventServiceOperation;
11 10
import com.sap.sse.common.Distance;
11
+import com.sap.sse.common.Position;
12 12
13 13
/**
14 14
* Adds a course area to an {@link Event}'s {@link Venue}.
java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java
... ...
@@ -19,7 +19,6 @@ import com.sap.sailing.domain.base.Event;
19 19
import com.sap.sailing.domain.base.Regatta;
20 20
import com.sap.sailing.domain.base.Series;
21 21
import com.sap.sailing.domain.common.CompetitorRegistrationType;
22
-import com.sap.sailing.domain.common.Position;
23 22
import com.sap.sailing.domain.common.RankingMetrics;
24 23
import com.sap.sailing.domain.common.RegattaName;
25 24
import com.sap.sailing.domain.common.dto.FleetDTO;
... ...
@@ -36,6 +35,7 @@ import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboar
36 35
import com.sap.sse.common.Color;
37 36
import com.sap.sse.common.Distance;
38 37
import com.sap.sse.common.Duration;
38
+import com.sap.sse.common.Position;
39 39
import com.sap.sse.common.TimePoint;
40 40
import com.sap.sse.common.Util;
41 41
java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/BoatReplicationTest.java
... ...
@@ -35,8 +35,6 @@ import com.sap.sailing.domain.common.CompetitorRegistrationType;
35 35
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
36 36
import com.sap.sailing.domain.common.RegattaName;
37 37
import com.sap.sailing.domain.common.ScoringSchemeType;
38
-import com.sap.sailing.domain.common.impl.DegreePosition;
39
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
40 38
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
41 39
import com.sap.sailing.domain.ranking.OneDesignRankingMetric;
42 40
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
... ...
@@ -49,6 +47,8 @@ import com.sap.sailing.server.operationaltransformation.UpdateBoat;
49 47
import com.sap.sse.common.Color;
50 48
import com.sap.sse.common.Util;
51 49
import com.sap.sse.common.impl.DegreeBearingImpl;
50
+import com.sap.sse.common.impl.DegreePosition;
51
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
52 52
import com.sap.sse.common.impl.MillisecondsTimePoint;
53 53
54 54
/**
java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java
... ...
@@ -38,8 +38,6 @@ import com.sap.sailing.domain.common.CompetitorRegistrationType;
38 38
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
39 39
import com.sap.sailing.domain.common.RegattaName;
40 40
import com.sap.sailing.domain.common.ScoringSchemeType;
41
-import com.sap.sailing.domain.common.impl.DegreePosition;
42
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
43 41
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
44 42
import com.sap.sailing.domain.ranking.OneDesignRankingMetric;
45 43
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
... ...
@@ -52,6 +50,8 @@ import com.sap.sailing.server.operationaltransformation.UpdateCompetitor;
52 50
import com.sap.sse.common.Color;
53 51
import com.sap.sse.common.Util;
54 52
import com.sap.sse.common.impl.DegreeBearingImpl;
53
+import com.sap.sse.common.impl.DegreePosition;
54
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
55 55
import com.sap.sse.common.impl.MillisecondsTimePoint;
56 56
57 57
/**
java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/EventReplicationTest.java
... ...
@@ -15,12 +15,12 @@ import org.junit.jupiter.api.Test;
15 15
16 16
import com.sap.sailing.domain.base.CourseArea;
17 17
import com.sap.sailing.domain.base.Event;
18
-import com.sap.sailing.domain.common.Position;
19 18
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
20 19
import com.sap.sailing.server.operationaltransformation.AddLeaderboardGroupToEvent;
21 20
import com.sap.sailing.server.operationaltransformation.CreateLeaderboardGroup;
22 21
import com.sap.sailing.server.operationaltransformation.RemoveLeaderboardGroupFromEvent;
23 22
import com.sap.sse.common.Distance;
23
+import com.sap.sse.common.Position;
24 24
import com.sap.sse.common.TimePoint;
25 25
import com.sap.sse.common.Util;
26 26
import com.sap.sse.common.impl.MillisecondsTimePoint;
java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java
... ...
@@ -50,8 +50,6 @@ import com.sap.sailing.domain.common.RegattaNameAndRaceName;
50 50
import com.sap.sailing.domain.common.ScoringSchemeType;
51 51
import com.sap.sailing.domain.common.Wind;
52 52
import com.sap.sailing.domain.common.WindSourceType;
53
-import com.sap.sailing.domain.common.impl.DegreePosition;
54
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
55 53
import com.sap.sailing.domain.common.impl.WindImpl;
56 54
import com.sap.sailing.domain.common.impl.WindSourceImpl;
57 55
import com.sap.sailing.domain.common.media.MediaTrack;
... ...
@@ -83,6 +81,8 @@ import com.sap.sse.common.TimePoint;
83 81
import com.sap.sse.common.Util;
84 82
import com.sap.sse.common.Util.Pair;
85 83
import com.sap.sse.common.impl.DegreeBearingImpl;
84
+import com.sap.sse.common.impl.DegreePosition;
85
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
86 86
import com.sap.sse.common.impl.MillisecondsDurationImpl;
87 87
import com.sap.sse.common.impl.MillisecondsTimePoint;
88 88
import com.sap.sse.common.media.MimeType;
java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java
... ...
@@ -28,7 +28,6 @@ import com.sap.sailing.domain.base.impl.RegattaImpl;
28 28
import com.sap.sailing.domain.base.impl.SeriesImpl;
29 29
import com.sap.sailing.domain.common.CompetitorRegistrationType;
30 30
import com.sap.sailing.domain.common.CourseDesignerMode;
31
-import com.sap.sailing.domain.common.Position;
32 31
import com.sap.sailing.domain.common.RegattaName;
33 32
import com.sap.sailing.domain.common.ScoringSchemeType;
34 33
import com.sap.sailing.domain.common.dto.FleetDTO;
... ...
@@ -37,6 +36,7 @@ import com.sap.sailing.server.operationaltransformation.UpdateSeries;
37 36
import com.sap.sailing.server.operationaltransformation.UpdateSpecificRegatta;
38 37
import com.sap.sse.common.Color;
39 38
import com.sap.sse.common.Distance;
39
+import com.sap.sse.common.Position;
40 40
import com.sap.sse.common.TimePoint;
41 41
import com.sap.sse.common.Util;
42 42
import com.sap.sse.common.impl.MillisecondsTimePoint;
java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceContentsReplicationTest.java
... ...
@@ -35,8 +35,6 @@ import com.sap.sailing.domain.common.RegattaNameAndRaceName;
35 35
import com.sap.sailing.domain.common.Wind;
36 36
import com.sap.sailing.domain.common.WindSource;
37 37
import com.sap.sailing.domain.common.WindSourceType;
38
-import com.sap.sailing.domain.common.impl.DegreePosition;
39
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
40 38
import com.sap.sailing.domain.common.impl.WindImpl;
41 39
import com.sap.sailing.domain.common.impl.WindSourceImpl;
42 40
import com.sap.sailing.domain.common.tracking.GPSFix;
... ...
@@ -62,6 +60,8 @@ import com.sap.sse.common.Color;
62 60
import com.sap.sse.common.TimePoint;
63 61
import com.sap.sse.common.Util;
64 62
import com.sap.sse.common.impl.DegreeBearingImpl;
63
+import com.sap.sse.common.impl.DegreePosition;
64
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
65 65
import com.sap.sse.common.impl.MillisecondsTimePoint;
66 66
67 67
public class TrackedRaceContentsReplicationTest extends AbstractServerReplicationTest {
java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackedRaceWithSensorFixStoreContentsReplicationTest.java
... ...
@@ -31,8 +31,6 @@ import com.sap.sailing.domain.base.impl.TeamImpl;
31 31
import com.sap.sailing.domain.base.impl.WaypointImpl;
32 32
import com.sap.sailing.domain.common.RegattaName;
33 33
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
34
-import com.sap.sailing.domain.common.impl.DegreePosition;
35
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
36 34
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
37 35
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
38 36
import com.sap.sailing.domain.persistence.MongoWindStoreFactory;
... ...
@@ -53,6 +51,8 @@ import com.sap.sse.common.Color;
53 51
import com.sap.sse.common.Util;
54 52
import com.sap.sse.common.Util.Pair;
55 53
import com.sap.sse.common.impl.DegreeBearingImpl;
54
+import com.sap.sse.common.impl.DegreePosition;
55
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
56 56
import com.sap.sse.common.impl.MillisecondsTimePoint;
57 57
import com.sap.sse.replication.ReplicationMasterDescriptor;
58 58
import com.sap.sse.replication.testsupport.AbstractServerReplicationTestSetUp.ReplicationServiceTestImpl;
java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java
... ...
@@ -34,7 +34,6 @@ import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
34 34
import com.sap.sailing.domain.base.impl.RegattaImpl;
35 35
import com.sap.sailing.domain.base.impl.WaypointImpl;
36 36
import com.sap.sailing.domain.common.CompetitorRegistrationType;
37
-import com.sap.sailing.domain.common.impl.DegreePosition;
38 37
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
39 38
import com.sap.sailing.domain.racelog.RaceLogAndTrackedRaceResolver;
40 39
import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore;
... ...
@@ -48,6 +47,7 @@ import com.sap.sailing.domain.tracking.impl.DynamicTrackedRegattaImpl;
48 47
import com.sap.sailing.domain.tracking.impl.EmptyWindStore;
49 48
import com.sap.sailing.domain.tracking.impl.MarkPassingImpl;
50 49
import com.sap.sse.common.impl.DegreeBearingImpl;
50
+import com.sap.sse.common.impl.DegreePosition;
51 51
import com.sap.sse.common.impl.MillisecondsTimePoint;
52 52
53 53
public class StatisticsTest {
java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java
... ...
@@ -95,18 +95,14 @@ import com.sap.sailing.domain.common.CourseDesignerMode;
95 95
import com.sap.sailing.domain.common.DeviceIdentifier;
96 96
import com.sap.sailing.domain.common.MasterDataImportObjectCreationCount;
97 97
import com.sap.sailing.domain.common.MaxPointsReason;
98
-import com.sap.sailing.domain.common.Position;
99 98
import com.sap.sailing.domain.common.RaceIdentifier;
100 99
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
101 100
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
102 101
import com.sap.sailing.domain.common.ScoringSchemeType;
103
-import com.sap.sailing.domain.common.SpeedWithBearing;
104 102
import com.sap.sailing.domain.common.Wind;
105 103
import com.sap.sailing.domain.common.WindSource;
106 104
import com.sap.sailing.domain.common.WindSourceType;
107 105
import com.sap.sailing.domain.common.impl.DataImportProgressImpl;
108
-import com.sap.sailing.domain.common.impl.DegreePosition;
109
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
110 106
import com.sap.sailing.domain.common.impl.WindImpl;
111 107
import com.sap.sailing.domain.common.impl.WindSourceWithAdditionalID;
112 108
import com.sap.sailing.domain.common.media.MediaTrack;
... ...
@@ -147,11 +143,15 @@ import com.sap.sailing.server.testsupport.RacingEventServiceImplMock;
147 143
import com.sap.sailing.shared.server.gateway.jaxrs.AbstractSailingServerResource;
148 144
import com.sap.sse.common.Color;
149 145
import com.sap.sse.common.Distance;
146
+import com.sap.sse.common.Position;
147
+import com.sap.sse.common.SpeedWithBearing;
150 148
import com.sap.sse.common.TimePoint;
151 149
import com.sap.sse.common.Timed;
152 150
import com.sap.sse.common.TypeBasedServiceFinderFactory;
153 151
import com.sap.sse.common.Util;
154 152
import com.sap.sse.common.impl.DegreeBearingImpl;
153
+import com.sap.sse.common.impl.DegreePosition;
154
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
155 155
import com.sap.sse.common.impl.MillisecondsDurationImpl;
156 156
import com.sap.sse.common.impl.MillisecondsTimePoint;
157 157
import com.sap.sse.common.media.MimeType;
java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceColumnReloadTest.java
... ...
@@ -35,15 +35,11 @@ import com.sap.sailing.domain.base.impl.PersonImpl;
35 35
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
36 36
import com.sap.sailing.domain.base.impl.RegattaImpl;
37 37
import com.sap.sailing.domain.base.impl.TeamImpl;
38
-import com.sap.sailing.domain.common.Position;
39 38
import com.sap.sailing.domain.common.RegattaName;
40 39
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
41
-import com.sap.sailing.domain.common.SpeedWithBearing;
42 40
import com.sap.sailing.domain.common.Wind;
43 41
import com.sap.sailing.domain.common.WindSource;
44 42
import com.sap.sailing.domain.common.WindSourceType;
45
-import com.sap.sailing.domain.common.impl.DegreePosition;
46
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
47 43
import com.sap.sailing.domain.common.impl.WindImpl;
48 44
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
49 45
import com.sap.sailing.domain.persistence.MongoObjectFactory;
... ...
@@ -62,9 +58,13 @@ import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboar
62 58
import com.sap.sailing.server.operationaltransformation.CreateTrackedRace;
63 59
import com.sap.sailing.server.operationaltransformation.TrackRegatta;
64 60
import com.sap.sse.common.Color;
61
+import com.sap.sse.common.Position;
62
+import com.sap.sse.common.SpeedWithBearing;
65 63
import com.sap.sse.common.TimePoint;
66 64
import com.sap.sse.common.Util;
67 65
import com.sap.sse.common.impl.DegreeBearingImpl;
66
+import com.sap.sse.common.impl.DegreePosition;
67
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
68 68
import com.sap.sse.common.impl.MillisecondsTimePoint;
69 69
import com.sap.sse.mongodb.MongoDBService;
70 70
java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/WindByRaceLogTest.java
... ...
@@ -40,8 +40,6 @@ import com.sap.sailing.domain.common.RegattaNameAndRaceName;
40 40
import com.sap.sailing.domain.common.Wind;
41 41
import com.sap.sailing.domain.common.WindSource;
42 42
import com.sap.sailing.domain.common.WindSourceType;
43
-import com.sap.sailing.domain.common.impl.DegreePosition;
44
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
45 43
import com.sap.sailing.domain.common.impl.WindImpl;
46 44
import com.sap.sailing.domain.common.impl.WindSourceImpl;
47 45
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
... ...
@@ -63,6 +61,8 @@ import com.sap.sse.common.Color;
63 61
import com.sap.sse.common.TimePoint;
64 62
import com.sap.sse.common.Util;
65 63
import com.sap.sse.common.impl.DegreeBearingImpl;
64
+import com.sap.sse.common.impl.DegreePosition;
65
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
66 66
import com.sap.sse.common.impl.MillisecondsTimePoint;
67 67
68 68
public class WindByRaceLogTest {
java/com.sap.sailing.server.trackfiles.test/src/com/sap/sailing/server/trackfiles/test/JumpyTrackSmootheningTest.java
... ...
@@ -51,9 +51,7 @@ import com.sap.sailing.domain.common.BoatClassMasterdata;
51 51
import com.sap.sailing.domain.common.CompetitorRegistrationType;
52 52
import com.sap.sailing.domain.common.MarkType;
53 53
import com.sap.sailing.domain.common.PassingInstruction;
54
-import com.sap.sailing.domain.common.SpeedWithBearing;
55 54
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
56
-import com.sap.sailing.domain.common.impl.DegreePosition;
57 55
import com.sap.sailing.domain.common.tracking.GPSFix;
58 56
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
59 57
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
... ...
@@ -75,9 +73,11 @@ import com.sap.sailing.domain.tracking.impl.TrackedRaceStatusImpl;
75 73
import com.sap.sailing.server.trackfiles.RouteConverterGPSFixImporterFactory;
76 74
import com.sap.sse.common.Color;
77 75
import com.sap.sse.common.Duration;
76
+import com.sap.sse.common.SpeedWithBearing;
78 77
import com.sap.sse.common.TimePoint;
79 78
import com.sap.sse.common.Util;
80 79
import com.sap.sse.common.Util.Pair;
80
+import com.sap.sse.common.impl.DegreePosition;
81 81
82 82
import difflib.PatchFailedException;
83 83
java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/common/BaseGPSFixImporterImpl.java
... ...
@@ -1,11 +1,11 @@
1 1
package com.sap.sailing.server.trackfiles.common;
2 2
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
4 3
import com.sap.sailing.domain.common.tracking.GPSFix;
5 4
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
6 5
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
7 6
import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier;
8 7
import com.sap.sailing.domain.trackimport.GPSFixImporter;
8
+import com.sap.sse.common.SpeedWithBearing;
9 9
10 10
/**
11 11
* When an importer only provides latitude/longitude positions but no course over ground (COG) and no speed over ground
java/com.sap.sailing.server.trackfiles/src/com/sap/sailing/server/trackfiles/impl/RouteConverterGPSFixImporterImpl.java
... ...
@@ -5,14 +5,14 @@ import java.util.Date;
5 5
import java.util.List;
6 6
7 7
import com.sap.sailing.domain.base.impl.KilometersPerHourSpeedWithBearingImpl;
8
-import com.sap.sailing.domain.common.Position;
9
-import com.sap.sailing.domain.common.SpeedWithBearing;
10
-import com.sap.sailing.domain.common.impl.DegreePosition;
11 8
import com.sap.sailing.domain.common.tracking.GPSFix;
12 9
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
13 10
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
11
+import com.sap.sse.common.Position;
12
+import com.sap.sse.common.SpeedWithBearing;
14 13
import com.sap.sse.common.TimePoint;
15 14
import com.sap.sse.common.impl.DegreeBearingImpl;
15
+import com.sap.sse.common.impl.DegreePosition;
16 16
import com.sap.sse.common.impl.MillisecondsTimePoint;
17 17
18 18
import slash.common.type.CompactCalendar;
java/com.sap.sailing.server/SailingServer (No Proxy).launch
... ...
@@ -24,7 +24,7 @@
24 24
<stringAttribute key="org.eclipse.jdt.launching.JRE_CONTAINER" value="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
25 25
<stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-os ${target.os} -ws ${target.ws} -arch ${target.arch} -nl ${target.nl} -consoleLog -console 12001 -clean"/>
26 26
<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.pde.ui.workbenchClasspathProvider"/>
27
- <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dfile.encoding=cp1252 -Dexpedition.udp.port=5010 -Xmx6000m -XX:ThreadPriorityPolicy=2 -XX:+UseG1GC -Djetty.home=${project_loc:com.sap.sailing.server}/../target/configuration/jetty -Djava.util.logging.config.file=${project_loc:com.sap.sailing.server}/../target/configuration/logging_debug.properties -Dkiwo.results=${project_loc:com.sap.sailing.kiworesultimport.test}/resources -Dpersistentcompetitors.clear=false -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -Drestore.tracked.races=true -Dorg.eclipse.jetty.server.Request.maxFormContentSize=50000000 -DAnniversaryRaceDeterminator.enabled=true -Djava.naming.factory.url.pkgs=org.eclipse.jetty.jndi -Djava.naming.factory.initial=org.eclipse.jetty.jndi.InitialContextFactory -Dorg.eclipse.jetty.annotations.maxWait=120 -Dchargebee.site=${CHARGEBEE_SITE} -Dchargebee.apikey=${CHARGEBEE_API_KEY} -Dmanage2sail.accesstoken=${MANAGE2SAIL_ACCESS_TOKEN} -Dsubscriptions.disableMailVerificationRequirement=true -Dgoogle.maps.authenticationparams=${GOOGLE_MAPS_AUTHENTICATION_PARAMS} -Dgwt.rpc.version=9 -Dwindestimation.source.bearertoken=${WIND_ESTIMATION_MODEL_BEARER_TOKEN} -Dpolardata.source.bearertoken=${POLAR_DATA_BEARER_TOKEN} -Dcom.sap.sse.branding=SAP -Digtimi.riot.port=6000 -Digtimi.base.url=http://127.0.0.1:8888 -Dsap.aicore.credentials='${SAP_AICORE_CREDENTIALS}' -Dsap.sailing.aiagent.modelname=gpt-4o -Dgeonames.org.usernames=&quot;${GEONAMES_ORG_USERNAMES}&quot;"/>
27
+ <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-ea -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dfile.encoding=cp1252 -Dexpedition.udp.port=5010 -Xmx12g -XX:ThreadPriorityPolicy=2 -XX:+UseG1GC -Djetty.home=${project_loc:com.sap.sailing.server}/../target/configuration/jetty -Djava.util.logging.config.file=${project_loc:com.sap.sailing.server}/../target/configuration/logging_debug.properties -Dkiwo.results=${project_loc:com.sap.sailing.kiworesultimport.test}/resources -Dpersistentcompetitors.clear=false -Dpolardata.source.url=https://www.sapsailing.com -Dwindestimation.source.url=https://www.sapsailing.com -Drestore.tracked.races=true -Dorg.eclipse.jetty.server.Request.maxFormContentSize=50000000 -DAnniversaryRaceDeterminator.enabled=true -Djava.naming.factory.url.pkgs=org.eclipse.jetty.jndi -Djava.naming.factory.initial=org.eclipse.jetty.jndi.InitialContextFactory -Dorg.eclipse.jetty.annotations.maxWait=120 -Dchargebee.site=${CHARGEBEE_SITE} -Dchargebee.apikey=${CHARGEBEE_API_KEY} -Dmanage2sail.accesstoken=${MANAGE2SAIL_ACCESS_TOKEN} -Dsubscriptions.disableMailVerificationRequirement=true -Dgoogle.maps.authenticationparams=${GOOGLE_MAPS_AUTHENTICATION_PARAMS} -Dgwt.rpc.version=9 -Dwindestimation.source.bearertoken=${WIND_ESTIMATION_MODEL_BEARER_TOKEN} -Dpolardata.source.bearertoken=${POLAR_DATA_BEARER_TOKEN} -Dcom.sap.sse.branding=SAP -Digtimi.riot.port=6000 -Digtimi.base.url=http://127.0.0.1:8888 -Dsap.aicore.credentials='${SAP_AICORE_CREDENTIALS}' -Dsap.sailing.aiagent.modelname=gpt-4o -Dgeonames.org.usernames=&quot;${GEONAMES_ORG_USERNAMES}&quot;"/>
28 28
<stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc}"/>
29 29
<stringAttribute key="pde.version" value="3.3"/>
30 30
<stringAttribute key="profilingTraceType-ALLOCATION_TRACE" value="KEY_APPLICATION_FILTER%CTX_KEY%*%CTX_ENTRY%INCREASE_COUNT%CTX_KEY%8192%CTX_ENTRY%KEY_MIN_SIZE%CTX_KEY%32%CTX_ENTRY%KEY_MAX_SIZE%CTX_KEY%65536%CTX_ENTRY%KEY_INC_LINE_NRS%CTX_KEY%true%CTX_ENTRY%KEY_SESSION_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_ENABLEMENT%CTX_KEY%false%CTX_ENTRY%CLASS_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_USER_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_REQUEST_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_TENANT_FILTER%CTX_KEY%*%CTX_ENTRY%KEY_ADAPTIVE%CTX_KEY%false%CTX_ENTRY%"/>
java/com.sap.sailing.server/src/com/sap/sailing/server/impl/CourseAndMarkConfigurationFactoryImpl.java
... ...
@@ -41,7 +41,6 @@ import com.sap.sailing.domain.base.impl.CourseDataImpl;
41 41
import com.sap.sailing.domain.base.impl.WaypointImpl;
42 42
import com.sap.sailing.domain.common.DeviceIdentifier;
43 43
import com.sap.sailing.domain.common.PassingInstruction;
44
-import com.sap.sailing.domain.common.Position;
45 44
import com.sap.sailing.domain.common.tracking.GPSFix;
46 45
import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl;
47 46
import com.sap.sailing.domain.coursetemplate.CommonMarkProperties;
... ...
@@ -91,6 +90,7 @@ import com.sap.sailing.server.gateway.deserialization.impl.CourseConfigurationBu
91 90
import com.sap.sailing.server.interfaces.CourseAndMarkConfigurationFactory;
92 91
import com.sap.sailing.shared.server.SharedSailingData;
93 92
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
93
+import com.sap.sse.common.Position;
94 94
import com.sap.sse.common.RepeatablePart;
95 95
import com.sap.sse.common.TimePoint;
96 96
import com.sap.sse.common.Timed;
java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java
... ...
@@ -146,14 +146,12 @@ import com.sap.sailing.domain.common.DeviceIdentifier;
146 146
import com.sap.sailing.domain.common.LeaderboardType;
147 147
import com.sap.sailing.domain.common.MaxPointsReason;
148 148
import com.sap.sailing.domain.common.NoWindException;
149
-import com.sap.sailing.domain.common.Position;
150 149
import com.sap.sailing.domain.common.RaceIdentifier;
151 150
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
152 151
import com.sap.sailing.domain.common.RegattaIdentifier;
153 152
import com.sap.sailing.domain.common.RegattaName;
154 153
import com.sap.sailing.domain.common.ScoreCorrectionProvider;
155 154
import com.sap.sailing.domain.common.ScoringSchemeType;
156
-import com.sap.sailing.domain.common.SpeedWithBearing;
157 155
import com.sap.sailing.domain.common.TackType;
158 156
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
159 157
import com.sap.sailing.domain.common.Wind;
... ...
@@ -339,7 +337,9 @@ import com.sap.sse.common.Bearing;
339 337
import com.sap.sse.common.Distance;
340 338
import com.sap.sse.common.Duration;
341 339
import com.sap.sse.common.PairingListCreationException;
340
+import com.sap.sse.common.Position;
342 341
import com.sap.sse.common.Speed;
342
+import com.sap.sse.common.SpeedWithBearing;
343 343
import com.sap.sse.common.TimePoint;
344 344
import com.sap.sse.common.TypeBasedServiceFinder;
345 345
import com.sap.sse.common.TypeBasedServiceFinderFactory;
java/com.sap.sailing.server/src/com/sap/sailing/server/simulation/SimulationServiceImpl.java
... ...
@@ -32,7 +32,6 @@ import com.sap.sailing.domain.common.LegIdentifierImpl;
32 32
import com.sap.sailing.domain.common.LegType;
33 33
import com.sap.sailing.domain.common.NoWindException;
34 34
import com.sap.sailing.domain.common.PathType;
35
-import com.sap.sailing.domain.common.Position;
36 35
import com.sap.sailing.domain.common.RaceIdentifier;
37 36
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
38 37
import com.sap.sailing.domain.common.Wind;
... ...
@@ -64,6 +63,7 @@ import com.sap.sailing.simulator.util.SailingSimulatorConstants;
64 63
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
65 64
import com.sap.sailing.simulator.windfield.impl.WindFieldTrackedRaceImpl;
66 65
import com.sap.sse.common.Duration;
66
+import com.sap.sse.common.Position;
67 67
import com.sap.sse.common.TimePoint;
68 68
import com.sap.sse.common.Util;
69 69
import com.sap.sse.common.Util.Pair;
java/com.sap.sailing.shared.persistence/src/com/sap/sailing/shared/persistence/impl/DomainObjectFactoryImpl.java
... ...
@@ -24,8 +24,6 @@ import com.mongodb.client.MongoDatabase;
24 24
import com.sap.sailing.domain.common.DeviceIdentifier;
25 25
import com.sap.sailing.domain.common.MarkType;
26 26
import com.sap.sailing.domain.common.PassingInstruction;
27
-import com.sap.sailing.domain.common.Position;
28
-import com.sap.sailing.domain.common.impl.DegreePosition;
29 27
import com.sap.sailing.domain.coursetemplate.ControlPointTemplate;
30 28
import com.sap.sailing.domain.coursetemplate.CourseTemplate;
31 29
import com.sap.sailing.domain.coursetemplate.MarkProperties;
... ...
@@ -44,11 +42,13 @@ import com.sap.sailing.shared.persistence.device.DeviceIdentifierMongoHandler;
44 42
import com.sap.sailing.shared.persistence.device.impl.PlaceHolderDeviceIdentifierMongoHandler;
45 43
import com.sap.sse.common.Color;
46 44
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
45
+import com.sap.sse.common.Position;
47 46
import com.sap.sse.common.RepeatablePart;
48 47
import com.sap.sse.common.TimePoint;
49 48
import com.sap.sse.common.TypeBasedServiceFinder;
50 49
import com.sap.sse.common.TypeBasedServiceFinderFactory;
51 50
import com.sap.sse.common.impl.AbstractColor;
51
+import com.sap.sse.common.impl.DegreePosition;
52 52
import com.sap.sse.common.impl.MillisecondsTimePoint;
53 53
import com.sap.sse.common.impl.RepeatablePartImpl;
54 54
import com.sap.sse.common.TransformationException;
java/com.sap.sailing.shared.persistence/src/com/sap/sailing/shared/persistence/impl/MongoObjectFactoryImpl.java
... ...
@@ -19,7 +19,6 @@ import com.mongodb.client.model.Filters;
19 19
import com.mongodb.client.model.ReplaceOptions;
20 20
import com.sap.sailing.domain.common.DeviceIdentifier;
21 21
import com.sap.sailing.domain.common.PassingInstruction;
22
-import com.sap.sailing.domain.common.Position;
23 22
import com.sap.sailing.domain.coursetemplate.CommonMarkProperties;
24 23
import com.sap.sailing.domain.coursetemplate.CourseTemplate;
25 24
import com.sap.sailing.domain.coursetemplate.FixedPositioning;
... ...
@@ -33,6 +32,7 @@ import com.sap.sailing.shared.persistence.MongoObjectFactory;
33 32
import com.sap.sailing.shared.persistence.device.DeviceIdentifierMongoHandler;
34 33
import com.sap.sailing.shared.persistence.device.impl.PlaceHolderDeviceIdentifierMongoHandler;
35 34
import com.sap.sse.common.NoCorrespondingServiceRegisteredException;
35
+import com.sap.sse.common.Position;
36 36
import com.sap.sse.common.TransformationException;
37 37
import com.sap.sse.common.TypeBasedServiceFinder;
38 38
import com.sap.sse.common.TypeBasedServiceFinderFactory;
java/com.sap.sailing.shared.server.gateway/src/com/sap/sailing/shared/server/gateway/jaxrs/api/MarkPropertiesResource.java
... ...
@@ -22,8 +22,6 @@ import org.json.simple.JSONObject;
22 22
23 23
import com.sap.sailing.domain.common.DeviceIdentifier;
24 24
import com.sap.sailing.domain.common.MarkType;
25
-import com.sap.sailing.domain.common.Position;
26
-import com.sap.sailing.domain.common.impl.DegreePosition;
27 25
import com.sap.sailing.domain.coursetemplate.MarkProperties;
28 26
import com.sap.sailing.domain.coursetemplate.MarkPropertiesBuilder;
29 27
import com.sap.sailing.domain.coursetemplate.Positioning;
... ...
@@ -36,7 +34,9 @@ import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdent
36 34
import com.sap.sailing.server.gateway.serialization.racelog.tracking.impl.PlaceHolderDeviceIdentifierJsonHandler;
37 35
import com.sap.sailing.shared.server.gateway.jaxrs.SharedAbstractSailingServerResource;
38 36
import com.sap.sse.common.Color;
37
+import com.sap.sse.common.Position;
39 38
import com.sap.sse.common.TypeBasedServiceFinder;
39
+import com.sap.sse.common.impl.DegreePosition;
40 40
import com.sap.sse.common.impl.RGBColor;
41 41
import com.sap.sse.shared.json.JsonSerializer;
42 42
import com.sun.jersey.api.client.ClientResponse.Status;
java/com.sap.sailing.shared.server/src/com/sap/sailing/shared/server/SharedSailingData.java
... ...
@@ -7,7 +7,6 @@ import java.util.Optional;
7 7
import java.util.UUID;
8 8
9 9
import com.sap.sailing.domain.common.DeviceIdentifier;
10
-import com.sap.sailing.domain.common.Position;
11 10
import com.sap.sailing.domain.coursetemplate.CommonMarkProperties;
12 11
import com.sap.sailing.domain.coursetemplate.CourseTemplate;
13 12
import com.sap.sailing.domain.coursetemplate.FixedPositioning;
... ...
@@ -18,6 +17,7 @@ import com.sap.sailing.domain.coursetemplate.Positioning;
18 17
import com.sap.sailing.domain.coursetemplate.WaypointTemplate;
19 18
import com.sap.sailing.shared.server.impl.ReplicatingSharedSailingData;
20 19
import com.sap.sailing.shared.server.impl.SharedSailingDataImpl;
20
+import com.sap.sse.common.Position;
21 21
import com.sap.sse.common.RepeatablePart;
22 22
import com.sap.sse.common.TimePoint;
23 23
import com.sap.sse.common.impl.MillisecondsTimePoint;
java/com.sap.sailing.shared.server/src/com/sap/sailing/shared/server/impl/SharedSailingDataImpl.java
... ...
@@ -17,7 +17,6 @@ import java.util.concurrent.ConcurrentHashMap;
17 17
import java.util.stream.Collectors;
18 18
19 19
import com.sap.sailing.domain.common.DeviceIdentifier;
20
-import com.sap.sailing.domain.common.Position;
21 20
import com.sap.sailing.domain.common.security.SecuredDomainType;
22 21
import com.sap.sailing.domain.coursetemplate.CommonMarkProperties;
23 22
import com.sap.sailing.domain.coursetemplate.CourseTemplate;
... ...
@@ -49,6 +48,7 @@ import com.sap.sailing.shared.server.operations.RecordUsageForMarkTemplateOperat
49 48
import com.sap.sailing.shared.server.operations.SetPositioningInformationForMarkPropertiesOperation;
50 49
import com.sap.sailing.shared.server.operations.UpdateCourseTemplateOperation;
51 50
import com.sap.sailing.shared.server.operations.UpdateMarkPropertiesOperation;
51
+import com.sap.sse.common.Position;
52 52
import com.sap.sse.common.RepeatablePart;
53 53
import com.sap.sse.common.TimePoint;
54 54
import com.sap.sse.common.TypeBasedServiceFinder;
java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/ConfigurationManagerTest.java
... ...
@@ -7,12 +7,12 @@ import org.junit.jupiter.api.Assertions;
7 7
import org.junit.jupiter.api.BeforeEach;
8 8
import org.junit.jupiter.api.Test;
9 9
10
-import com.sap.sailing.domain.common.impl.MeterDistance;
11 10
import com.sap.sailing.simulator.BoatClassProperties;
12 11
import com.sap.sailing.simulator.RaceProperties;
13 12
import com.sap.sailing.simulator.impl.BoatClassPropertiesImpl;
14 13
import com.sap.sailing.simulator.impl.ConfigurationManager;
15 14
import com.sap.sailing.simulator.impl.RacePropertiesImpl;
15
+import com.sap.sse.common.impl.MeterDistance;
16 16
17 17
public class ConfigurationManagerTest {
18 18
java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/PolarDiagramCSVTest.java
... ...
@@ -8,8 +8,6 @@ import java.util.Set;
8 8
import org.junit.jupiter.api.Assertions;
9 9
import org.junit.jupiter.api.Test;
10 10
11
-import com.sap.sailing.domain.common.SpeedWithBearing;
12
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
13 11
import com.sap.sailing.simulator.PolarDiagram;
14 12
import com.sap.sailing.simulator.impl.PolarDiagram49;
15 13
import com.sap.sailing.simulator.impl.PolarDiagram49Bethwaite;
... ...
@@ -20,7 +18,9 @@ import com.sap.sailing.simulator.impl.PolarDiagramCSV;
20 18
import com.sap.sse.common.AbstractBearing;
21 19
import com.sap.sse.common.Bearing;
22 20
import com.sap.sse.common.Speed;
21
+import com.sap.sse.common.SpeedWithBearing;
23 22
import com.sap.sse.common.impl.DegreeBearingImpl;
23
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
24 24
25 25
public class PolarDiagramCSVTest {
26 26
private static double DELTA_PERCENTAGE = 0.54;
java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/RectangularBoundaryTest.java
... ...
@@ -4,10 +4,10 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
4 4
5 5
import org.junit.jupiter.api.Test;
6 6
7
-import com.sap.sailing.domain.common.Position;
8
-import com.sap.sailing.domain.common.impl.DegreePosition;
9 7
import com.sap.sailing.simulator.Grid;
10 8
import com.sap.sailing.simulator.impl.RectangularGrid;
9
+import com.sap.sse.common.Position;
10
+import com.sap.sse.common.impl.DegreePosition;
11 11
12 12
public class RectangularBoundaryTest {
13 13
java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/SimulatorTest.java
... ...
@@ -10,8 +10,6 @@ import org.junit.jupiter.api.Assertions;
10 10
import org.junit.jupiter.api.Test;
11 11
12 12
import com.sap.sailing.domain.common.PathType;
13
-import com.sap.sailing.domain.common.Position;
14
-import com.sap.sailing.domain.common.impl.DegreePosition;
15 13
import com.sap.sailing.simulator.Path;
16 14
import com.sap.sailing.simulator.PolarDiagram;
17 15
import com.sap.sailing.simulator.SimulationParameters;
... ...
@@ -26,7 +24,9 @@ import com.sap.sailing.simulator.windfield.WindFieldGenerator;
26 24
import com.sap.sailing.simulator.windfield.impl.WindFieldGeneratorBlastImpl;
27 25
import com.sap.sse.common.Bearing;
28 26
import com.sap.sse.common.Duration;
27
+import com.sap.sse.common.Position;
29 28
import com.sap.sse.common.TimePoint;
29
+import com.sap.sse.common.impl.DegreePosition;
30 30
import com.sap.sse.common.impl.MillisecondsDurationImpl;
31 31
import com.sap.sse.common.impl.MillisecondsTimePoint;
32 32
java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/TreeGrowTest.java
... ...
@@ -7,10 +7,6 @@ import java.util.List;
7 7
import org.junit.jupiter.api.Assertions;
8 8
import org.junit.jupiter.api.Test;
9 9
10
-import com.sap.sailing.domain.common.Position;
11
-import com.sap.sailing.domain.common.SpeedWithBearing;
12
-import com.sap.sailing.domain.common.impl.DegreePosition;
13
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
14 10
import com.sap.sailing.simulator.Path;
15 11
import com.sap.sailing.simulator.PolarDiagram;
16 12
import com.sap.sailing.simulator.SimulationParameters;
... ...
@@ -23,8 +19,12 @@ import com.sap.sailing.simulator.windfield.WindControlParameters;
23 19
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
24 20
import com.sap.sailing.simulator.windfield.impl.WindFieldGeneratorOscillationImpl;
25 21
import com.sap.sse.common.Duration;
22
+import com.sap.sse.common.Position;
23
+import com.sap.sse.common.SpeedWithBearing;
26 24
import com.sap.sse.common.TimePoint;
27 25
import com.sap.sse.common.impl.DegreeBearingImpl;
26
+import com.sap.sse.common.impl.DegreePosition;
27
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
28 28
import com.sap.sse.common.impl.MillisecondsDurationImpl;
29 29
import com.sap.sse.common.impl.MillisecondsTimePoint;
30 30
java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/WindFieldGeneratorTest.java
... ...
@@ -14,10 +14,7 @@ import java.util.logging.Logger;
14 14
import org.junit.jupiter.api.Test;
15 15
16 16
import com.sap.sailing.domain.base.impl.KilometersPerHourSpeedWithBearingImpl;
17
-import com.sap.sailing.domain.common.Position;
18
-import com.sap.sailing.domain.common.SpeedWithBearing;
19 17
import com.sap.sailing.domain.common.Wind;
20
-import com.sap.sailing.domain.common.impl.DegreePosition;
21 18
import com.sap.sailing.simulator.impl.RectangularGrid;
22 19
import com.sap.sailing.simulator.impl.TimedPositionWithSpeedImpl;
23 20
import com.sap.sailing.simulator.windfield.WindControlParameters;
... ...
@@ -26,9 +23,12 @@ import com.sap.sailing.simulator.windfield.impl.WindFieldGeneratorCombined;
26 23
import com.sap.sailing.simulator.windfield.impl.WindFieldGeneratorImpl;
27 24
import com.sap.sailing.simulator.windfield.impl.WindFieldGeneratorOscillationImpl;
28 25
import com.sap.sse.common.Duration;
26
+import com.sap.sse.common.Position;
27
+import com.sap.sse.common.SpeedWithBearing;
29 28
import com.sap.sse.common.TimePoint;
30 29
import com.sap.sse.common.Util;
31 30
import com.sap.sse.common.impl.DegreeBearingImpl;
31
+import com.sap.sse.common.impl.DegreePosition;
32 32
import com.sap.sse.common.impl.MillisecondsDurationImpl;
33 33
import com.sap.sse.common.impl.MillisecondsTimePoint;
34 34
java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/util/PathGenerator1TurnerEval.java
... ...
@@ -10,8 +10,6 @@ import java.io.ObjectInputStream;
10 10
11 11
import org.junit.jupiter.api.Assertions;
12 12
13
-import com.sap.sailing.domain.common.Position;
14
-import com.sap.sailing.domain.common.impl.DegreePosition;
15 13
import com.sap.sailing.simulator.PolarDiagram;
16 14
import com.sap.sailing.simulator.SimulationParameters;
17 15
import com.sap.sailing.simulator.TimedPositionWithSpeed;
... ...
@@ -20,7 +18,9 @@ import com.sap.sailing.simulator.impl.PolarDiagramCSV;
20 18
import com.sap.sailing.simulator.impl.SimulationParametersImpl;
21 19
import com.sap.sailing.simulator.util.SailingSimulatorConstants;
22 20
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
21
+import com.sap.sse.common.Position;
23 22
import com.sap.sse.common.TimePoint;
23
+import com.sap.sse.common.impl.DegreePosition;
24 24
import com.sap.sse.common.impl.MillisecondsTimePoint;
25 25
26 26
public class PathGenerator1TurnerEval {
java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/util/PolarDiagramCurrentDataPolar.java
... ...
@@ -5,12 +5,12 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
5 5
import java.io.FileWriter;
6 6
import java.io.IOException;
7 7
8
-import com.sap.sailing.domain.common.SpeedWithBearing;
9
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
10 8
import com.sap.sailing.simulator.impl.PolarDiagram49STG;
11 9
import com.sap.sailing.simulator.impl.PolarDiagramBase;
12 10
import com.sap.sse.common.Bearing;
11
+import com.sap.sse.common.SpeedWithBearing;
13 12
import com.sap.sse.common.impl.DegreeBearingImpl;
13
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
14 14
15 15
public class PolarDiagramCurrentDataPolar {
16 16
java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/util/PolarDiagramInterpolate.java
... ...
@@ -3,10 +3,10 @@ package com.sap.sailing.simulator.test.util;
3 3
import java.io.IOException;
4 4
import java.util.NavigableMap;
5 5
6
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
7 6
import com.sap.sailing.simulator.impl.PolarDiagram49STG;
8 7
import com.sap.sailing.simulator.impl.PolarDiagramBase;
9 8
import com.sap.sse.common.impl.DegreeBearingImpl;
9
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
10 10
11 11
public class PolarDiagramInterpolate {
12 12
java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/util/PolarDiagramPlotDataPolar.java
... ...
@@ -8,11 +8,11 @@ import java.util.NavigableMap;
8 8
import java.util.Set;
9 9
import java.util.TreeSet;
10 10
11
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
12 11
import com.sap.sailing.simulator.PolarDiagram;
13 12
import com.sap.sailing.simulator.impl.PolarDiagram49STG;
14 13
import com.sap.sse.common.Bearing;
15 14
import com.sap.sse.common.Speed;
15
+import com.sap.sse.common.impl.KnotSpeedImpl;
16 16
17 17
public class PolarDiagramPlotDataPolar {
18 18
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/Grid.java
... ...
@@ -3,9 +3,9 @@ package com.sap.sailing.simulator;
3 3
import java.io.Serializable;
4 4
import java.util.Map;
5 5
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sse.common.Bearing;
8 7
import com.sap.sse.common.Distance;
8
+import com.sap.sse.common.Position;
9 9
import com.sap.sse.common.Util;
10 10
import com.sap.sse.common.impl.DegreeBearingImpl;
11 11
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/PolarDiagram.java
... ...
@@ -4,9 +4,9 @@ import java.io.Serializable;
4 4
import java.util.NavigableMap;
5 5
import java.util.Set;
6 6
7
-import com.sap.sailing.domain.common.SpeedWithBearing;
8 7
import com.sap.sse.common.Bearing;
9 8
import com.sap.sse.common.Speed;
9
+import com.sap.sse.common.SpeedWithBearing;
10 10
import com.sap.sse.common.Util.Pair;
11 11
12 12
public interface PolarDiagram extends Serializable {
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/SimulationParameters.java
... ...
@@ -3,9 +3,9 @@ package com.sap.sailing.simulator;
3 3
import java.util.List;
4 4
5 5
import com.sap.sailing.domain.common.LegType;
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
8 7
import com.sap.sse.common.Duration;
8
+import com.sap.sse.common.Position;
9 9
10 10
public interface SimulationParameters {
11 11
char getMode();
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/SimulationResults.java
... ...
@@ -3,8 +3,8 @@ package com.sap.sailing.simulator;
3 3
import java.util.Map;
4 4
5 5
import com.sap.sailing.domain.common.PathType;
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sse.common.Duration;
7
+import com.sap.sse.common.Position;
8 8
import com.sap.sse.common.TimePoint;
9 9
10 10
public class SimulationResults {
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/TimedPosition.java
... ...
@@ -1,6 +1,6 @@
1 1
package com.sap.sailing.simulator;
2 2
3
-import com.sap.sailing.domain.common.Positioned;
3
+import com.sap.sse.common.Positioned;
4 4
import com.sap.sse.common.Timed;
5 5
6 6
public interface TimedPosition extends Timed, Positioned {
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/TimedPositionWithSpeed.java
... ...
@@ -1,6 +1,6 @@
1 1
package com.sap.sailing.simulator;
2 2
3
-import com.sap.sailing.domain.common.SpeedWithBearing;
3
+import com.sap.sse.common.SpeedWithBearing;
4 4
5 5
public interface TimedPositionWithSpeed extends TimedPosition {
6 6
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/ConfigurationManager.java
... ...
@@ -10,9 +10,9 @@ import java.nio.charset.Charset;
10 10
import java.util.ArrayList;
11 11
import java.util.List;
12 12
13
-import com.sap.sailing.domain.common.impl.MeterDistance;
14 13
import com.sap.sailing.simulator.BoatClassProperties;
15 14
import com.sap.sailing.simulator.RaceProperties;
15
+import com.sap.sse.common.impl.MeterDistance;
16 16
17 17
public enum ConfigurationManager {
18 18
INSTANCE;
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/CurvedGrid.java
... ...
@@ -3,10 +3,10 @@ package com.sap.sailing.simulator.impl;
3 3
import java.util.HashMap;
4 4
import java.util.Map;
5 5
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sailing.simulator.Grid;
8 7
import com.sap.sse.common.Bearing;
9 8
import com.sap.sse.common.Distance;
9
+import com.sap.sse.common.Position;
10 10
import com.sap.sse.common.Util;
11 11
12 12
/**
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathCandidate.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.simulator.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sailing.domain.common.Wind;
5 4
import com.sap.sailing.simulator.TimedPosition;
5
+import com.sap.sse.common.Position;
6 6
7 7
public class PathCandidate implements Comparable<PathCandidate> {
8 8
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGenerator1Turner.java
... ...
@@ -4,10 +4,7 @@ import java.util.ArrayList;
4 4
import java.util.LinkedList;
5 5
import java.util.List;
6 6
7
-import com.sap.sailing.domain.common.Position;
8
-import com.sap.sailing.domain.common.SpeedWithBearing;
9 7
import com.sap.sailing.domain.common.Wind;
10
-import com.sap.sailing.domain.common.impl.DegreePosition;
11 8
import com.sap.sailing.simulator.Path;
12 9
import com.sap.sailing.simulator.PolarDiagram;
13 10
import com.sap.sailing.simulator.SimulationParameters;
... ...
@@ -15,7 +12,10 @@ import com.sap.sailing.simulator.TimedPositionWithSpeed;
15 12
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
16 13
import com.sap.sse.common.Bearing;
17 14
import com.sap.sse.common.Distance;
15
+import com.sap.sse.common.Position;
16
+import com.sap.sse.common.SpeedWithBearing;
18 17
import com.sap.sse.common.TimePoint;
18
+import com.sap.sse.common.impl.DegreePosition;
19 19
import com.sap.sse.common.impl.MillisecondsTimePoint;
20 20
21 21
public class PathGenerator1Turner extends PathGeneratorBase {
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGenerator1Turner360.java
... ...
@@ -2,8 +2,6 @@ package com.sap.sailing.simulator.impl;
2 2
3 3
import java.util.LinkedList;
4 4
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.SpeedWithBearing;
7 5
import com.sap.sailing.domain.common.Wind;
8 6
import com.sap.sailing.simulator.BoatDirection;
9 7
import com.sap.sailing.simulator.Path;
... ...
@@ -14,6 +12,8 @@ import com.sap.sailing.simulator.TimedPositionWithSpeed;
14 12
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
15 13
import com.sap.sse.common.Bearing;
16 14
import com.sap.sse.common.Distance;
15
+import com.sap.sse.common.Position;
16
+import com.sap.sse.common.SpeedWithBearing;
17 17
import com.sap.sse.common.TimePoint;
18 18
import com.sap.sse.common.Util;
19 19
import com.sap.sse.common.Util.Pair;
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGenerator1TurnerLeftDirect.java
... ...
@@ -2,8 +2,6 @@ package com.sap.sailing.simulator.impl;
2 2
3 3
import java.util.LinkedList;
4 4
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.SpeedWithBearing;
7 5
import com.sap.sailing.simulator.Grid;
8 6
import com.sap.sailing.simulator.Path;
9 7
import com.sap.sailing.simulator.PolarDiagram;
... ...
@@ -12,7 +10,9 @@ import com.sap.sailing.simulator.TimedPositionWithSpeed;
12 10
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
13 11
import com.sap.sse.common.Bearing;
14 12
import com.sap.sse.common.Distance;
13
+import com.sap.sse.common.Position;
15 14
import com.sap.sse.common.Speed;
15
+import com.sap.sse.common.SpeedWithBearing;
16 16
import com.sap.sse.common.TimePoint;
17 17
import com.sap.sse.common.impl.MillisecondsTimePoint;
18 18
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGenerator1TurnerRightDirect.java
... ...
@@ -2,8 +2,6 @@ package com.sap.sailing.simulator.impl;
2 2
3 3
import java.util.LinkedList;
4 4
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.SpeedWithBearing;
7 5
import com.sap.sailing.simulator.Grid;
8 6
import com.sap.sailing.simulator.Path;
9 7
import com.sap.sailing.simulator.PolarDiagram;
... ...
@@ -12,7 +10,9 @@ import com.sap.sailing.simulator.TimedPositionWithSpeed;
12 10
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
13 11
import com.sap.sse.common.Bearing;
14 12
import com.sap.sse.common.Distance;
13
+import com.sap.sse.common.Position;
15 14
import com.sap.sse.common.Speed;
15
+import com.sap.sse.common.SpeedWithBearing;
16 16
import com.sap.sse.common.TimePoint;
17 17
import com.sap.sse.common.impl.MillisecondsTimePoint;
18 18
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorDijkstra.java
... ...
@@ -7,8 +7,6 @@ import java.util.LinkedList;
7 7
import java.util.List;
8 8
import java.util.Map;
9 9
10
-import com.sap.sailing.domain.common.Position;
11
-import com.sap.sailing.domain.common.SpeedWithBearing;
12 10
import com.sap.sailing.simulator.Grid;
13 11
import com.sap.sailing.simulator.Path;
14 12
import com.sap.sailing.simulator.PolarDiagram;
... ...
@@ -18,7 +16,9 @@ import com.sap.sailing.simulator.TimedPositionWithSpeed;
18 16
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
19 17
import com.sap.sse.common.Bearing;
20 18
import com.sap.sse.common.Distance;
19
+import com.sap.sse.common.Position;
21 20
import com.sap.sse.common.Speed;
21
+import com.sap.sse.common.SpeedWithBearing;
22 22
import com.sap.sse.common.TimePoint;
23 23
import com.sap.sse.common.Util;
24 24
import com.sap.sse.common.impl.MillisecondsTimePoint;
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorDynProgForward.java
... ...
@@ -4,8 +4,6 @@ import java.util.ArrayList;
4 4
import java.util.LinkedList;
5 5
import java.util.Vector;
6 6
7
-import com.sap.sailing.domain.common.Position;
8
-import com.sap.sailing.domain.common.SpeedWithBearing;
9 7
import com.sap.sailing.simulator.Grid;
10 8
import com.sap.sailing.simulator.Path;
11 9
import com.sap.sailing.simulator.PolarDiagram;
... ...
@@ -16,7 +14,9 @@ import com.sap.sailing.simulator.windfield.WindField;
16 14
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
17 15
import com.sap.sse.common.Bearing;
18 16
import com.sap.sse.common.Distance;
17
+import com.sap.sse.common.Position;
19 18
import com.sap.sse.common.Speed;
19
+import com.sap.sse.common.SpeedWithBearing;
20 20
import com.sap.sse.common.TimePoint;
21 21
import com.sap.sse.common.impl.MillisecondsTimePoint;
22 22
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorOpportunistEuclidian.java
... ...
@@ -5,8 +5,6 @@ import java.util.List;
5 5
import java.util.logging.Logger;
6 6
7 7
import com.sap.sailing.domain.common.LegType;
8
-import com.sap.sailing.domain.common.Position;
9
-import com.sap.sailing.domain.common.SpeedWithBearing;
10 8
import com.sap.sailing.domain.common.Wind;
11 9
import com.sap.sailing.simulator.Path;
12 10
import com.sap.sailing.simulator.PolarDiagram;
... ...
@@ -15,6 +13,8 @@ import com.sap.sailing.simulator.TimedPositionWithSpeed;
15 13
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
16 14
import com.sap.sse.common.Bearing;
17 15
import com.sap.sse.common.Distance;
16
+import com.sap.sse.common.Position;
17
+import com.sap.sse.common.SpeedWithBearing;
18 18
import com.sap.sse.common.TimePoint;
19 19
import com.sap.sse.common.impl.MillisecondsTimePoint;
20 20
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorOpportunistEuclidian360.java
... ...
@@ -8,8 +8,6 @@ import java.util.TimeZone;
8 8
import java.util.logging.Logger;
9 9
10 10
import com.sap.sailing.domain.common.LegType;
11
-import com.sap.sailing.domain.common.Position;
12
-import com.sap.sailing.domain.common.SpeedWithBearing;
13 11
import com.sap.sailing.domain.common.Wind;
14 12
import com.sap.sailing.simulator.BoatDirection;
15 13
import com.sap.sailing.simulator.Path;
... ...
@@ -21,6 +19,8 @@ import com.sap.sailing.simulator.TimedPositionWithSpeed;
21 19
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
22 20
import com.sap.sse.common.Bearing;
23 21
import com.sap.sse.common.Distance;
22
+import com.sap.sse.common.Position;
23
+import com.sap.sse.common.SpeedWithBearing;
24 24
import com.sap.sse.common.TimePoint;
25 25
import com.sap.sse.common.Util.Pair;
26 26
import com.sap.sse.common.impl.MillisecondsTimePoint;
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorOpportunistVMG.java
... ...
@@ -4,8 +4,6 @@ import java.util.ArrayList;
4 4
import java.util.List;
5 5
import java.util.logging.Logger;
6 6
7
-import com.sap.sailing.domain.common.Position;
8
-import com.sap.sailing.domain.common.SpeedWithBearing;
9 7
import com.sap.sailing.domain.common.Wind;
10 8
import com.sap.sailing.simulator.Path;
11 9
import com.sap.sailing.simulator.PolarDiagram;
... ...
@@ -13,6 +11,8 @@ import com.sap.sailing.simulator.SimulationParameters;
13 11
import com.sap.sailing.simulator.TimedPositionWithSpeed;
14 12
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
15 13
import com.sap.sse.common.Bearing;
14
+import com.sap.sse.common.Position;
15
+import com.sap.sse.common.SpeedWithBearing;
16 16
import com.sap.sse.common.TimePoint;
17 17
import com.sap.sse.common.impl.MillisecondsTimePoint;
18 18
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTracTrac.java
... ...
@@ -16,10 +16,7 @@ import com.sap.sailing.domain.base.Competitor;
16 16
import com.sap.sailing.domain.base.Leg;
17 17
import com.sap.sailing.domain.base.RaceDefinition;
18 18
import com.sap.sailing.domain.base.Regatta;
19
-import com.sap.sailing.domain.common.Position;
20
-import com.sap.sailing.domain.common.SpeedWithBearing;
21 19
import com.sap.sailing.domain.common.Wind;
22
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
23 20
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
24 21
import com.sap.sailing.domain.tracking.GPSFixTrack;
25 22
import com.sap.sailing.domain.tracking.RaceHandle;
... ...
@@ -29,8 +26,11 @@ import com.sap.sailing.domain.tractracadapter.impl.TracTracAdapterFactoryImpl;
29 26
import com.sap.sailing.simulator.Path;
30 27
import com.sap.sailing.simulator.SimulationParameters;
31 28
import com.sap.sailing.simulator.TimedPositionWithSpeed;
29
+import com.sap.sse.common.Position;
30
+import com.sap.sse.common.SpeedWithBearing;
32 31
import com.sap.sse.common.TimePoint;
33 32
import com.sap.sse.common.impl.DegreeBearingImpl;
33
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
34 34
import com.sap.sse.common.impl.MillisecondsTimePoint;
35 35
36 36
@SuppressWarnings("restriction")
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTreeGrow.java
... ...
@@ -10,8 +10,6 @@ import java.util.List;
10 10
import java.util.logging.Logger;
11 11
12 12
import com.sap.sailing.domain.common.LegType;
13
-import com.sap.sailing.domain.common.Position;
14
-import com.sap.sailing.domain.common.SpeedWithBearing;
15 13
import com.sap.sailing.domain.common.Wind;
16 14
import com.sap.sailing.simulator.Path;
17 15
import com.sap.sailing.simulator.PolarDiagram;
... ...
@@ -21,6 +19,8 @@ import com.sap.sailing.simulator.TimedPositionWithSpeed;
21 19
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
22 20
import com.sap.sse.common.Bearing;
23 21
import com.sap.sse.common.Distance;
22
+import com.sap.sse.common.Position;
23
+import com.sap.sse.common.SpeedWithBearing;
24 24
import com.sap.sse.common.TimePoint;
25 25
import com.sap.sse.common.Util;
26 26
import com.sap.sse.common.impl.DegreeBearingImpl;
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTreeGrow360.java
... ...
@@ -13,8 +13,6 @@ import java.util.TimeZone;
13 13
import java.util.logging.Logger;
14 14
15 15
import com.sap.sailing.domain.common.LegType;
16
-import com.sap.sailing.domain.common.Position;
17
-import com.sap.sailing.domain.common.SpeedWithBearing;
18 16
import com.sap.sailing.domain.common.Wind;
19 17
import com.sap.sailing.simulator.Path;
20 18
import com.sap.sailing.simulator.PointOfSail;
... ...
@@ -25,6 +23,8 @@ import com.sap.sailing.simulator.TimedPositionWithSpeed;
25 23
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
26 24
import com.sap.sse.common.Bearing;
27 25
import com.sap.sse.common.Distance;
26
+import com.sap.sse.common.Position;
27
+import com.sap.sse.common.SpeedWithBearing;
28 28
import com.sap.sse.common.TimePoint;
29 29
import com.sap.sse.common.Util;
30 30
import com.sap.sse.common.impl.MillisecondsTimePoint;
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTreeGrowBitSet.java
... ...
@@ -10,8 +10,6 @@ import java.util.Comparator;
10 10
import java.util.List;
11 11
import java.util.logging.Logger;
12 12
13
-import com.sap.sailing.domain.common.Position;
14
-import com.sap.sailing.domain.common.SpeedWithBearing;
15 13
import com.sap.sailing.domain.common.Wind;
16 14
import com.sap.sailing.domain.common.impl.WindImpl;
17 15
import com.sap.sailing.simulator.Path;
... ...
@@ -22,6 +20,8 @@ import com.sap.sailing.simulator.TimedPositionWithSpeed;
22 20
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
23 21
import com.sap.sse.common.Bearing;
24 22
import com.sap.sse.common.Distance;
23
+import com.sap.sse.common.Position;
24
+import com.sap.sse.common.SpeedWithBearing;
25 25
import com.sap.sse.common.TimePoint;
26 26
import com.sap.sse.common.Util;
27 27
import com.sap.sse.common.impl.MillisecondsTimePoint;
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathImpl.java
... ...
@@ -9,17 +9,17 @@ import java.text.SimpleDateFormat;
9 9
import java.util.ArrayList;
10 10
import java.util.List;
11 11
12
-import com.sap.sailing.domain.common.Position;
13
-import com.sap.sailing.domain.common.SpeedWithBearing;
14
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
15 12
import com.sap.sailing.domain.common.impl.WindImpl;
16 13
import com.sap.sailing.simulator.Path;
17 14
import com.sap.sailing.simulator.TimedPositionWithSpeed;
18 15
import com.sap.sailing.simulator.windfield.WindField;
19 16
import com.sap.sse.common.Bearing;
20 17
import com.sap.sse.common.Distance;
18
+import com.sap.sse.common.Position;
19
+import com.sap.sse.common.SpeedWithBearing;
21 20
import com.sap.sse.common.TimePoint;
22 21
import com.sap.sse.common.impl.DegreeBearingImpl;
22
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
23 23
import com.sap.sse.common.impl.MillisecondsTimePoint;
24 24
25 25
public class PathImpl implements Path, Serializable {
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PolarDiagram49.java
... ...
@@ -4,10 +4,10 @@ import java.util.NavigableMap;
4 4
import java.util.TreeMap;
5 5
6 6
import com.sap.sailing.domain.base.DomainFactory;
7
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
8 7
import com.sap.sse.common.Bearing;
9 8
import com.sap.sse.common.Speed;
10 9
import com.sap.sse.common.impl.DegreeBearingImpl;
10
+import com.sap.sse.common.impl.KnotSpeedImpl;
11 11
12 12
public class PolarDiagram49 extends PolarDiagramBase {
13 13
private static final long serialVersionUID = -878812179468801167L;
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PolarDiagram49Bethwaite.java
... ...
@@ -4,10 +4,10 @@ import java.util.NavigableMap;
4 4
import java.util.TreeMap;
5 5
6 6
import com.sap.sailing.domain.base.DomainFactory;
7
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
8 7
import com.sap.sse.common.Bearing;
9 8
import com.sap.sse.common.Speed;
10 9
import com.sap.sse.common.impl.DegreeBearingImpl;
10
+import com.sap.sse.common.impl.KnotSpeedImpl;
11 11
12 12
public class PolarDiagram49Bethwaite extends PolarDiagramBase {
13 13
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PolarDiagram49ORC.java
... ...
@@ -4,10 +4,10 @@ import java.util.NavigableMap;
4 4
import java.util.TreeMap;
5 5
6 6
import com.sap.sailing.domain.base.DomainFactory;
7
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
8 7
import com.sap.sse.common.Bearing;
9 8
import com.sap.sse.common.Speed;
10 9
import com.sap.sse.common.impl.DegreeBearingImpl;
10
+import com.sap.sse.common.impl.KnotSpeedImpl;
11 11
12 12
public class PolarDiagram49ORC extends PolarDiagramBase {
13 13
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PolarDiagram49STG.java
... ...
@@ -4,10 +4,10 @@ import java.util.NavigableMap;
4 4
import java.util.TreeMap;
5 5
6 6
import com.sap.sailing.domain.base.DomainFactory;
7
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
8 7
import com.sap.sse.common.Bearing;
9 8
import com.sap.sse.common.Speed;
10 9
import com.sap.sse.common.impl.DegreeBearingImpl;
10
+import com.sap.sse.common.impl.KnotSpeedImpl;
11 11
12 12
public class PolarDiagram49STG extends PolarDiagramBase {
13 13
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PolarDiagram505STG.java
... ...
@@ -4,10 +4,10 @@ import java.util.NavigableMap;
4 4
import java.util.TreeMap;
5 5
6 6
import com.sap.sailing.domain.base.DomainFactory;
7
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
8 7
import com.sap.sse.common.Bearing;
9 8
import com.sap.sse.common.Speed;
10 9
import com.sap.sse.common.impl.DegreeBearingImpl;
10
+import com.sap.sse.common.impl.KnotSpeedImpl;
11 11
12 12
public class PolarDiagram505STG extends PolarDiagramBase {
13 13
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PolarDiagramBase.java
... ...
@@ -13,16 +13,16 @@ import java.util.TreeSet;
13 13
14 14
import com.sap.sailing.domain.base.BoatClass;
15 15
import com.sap.sailing.domain.common.BoatClassMasterdata;
16
-import com.sap.sailing.domain.common.SpeedWithBearing;
17
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
18
-import com.sap.sailing.domain.common.impl.RadianBearingImpl;
19 16
import com.sap.sailing.simulator.BoatDirection;
20 17
import com.sap.sailing.simulator.PointOfSail;
21 18
import com.sap.sailing.simulator.PolarDiagram;
22 19
import com.sap.sse.common.Bearing;
23 20
import com.sap.sse.common.Speed;
21
+import com.sap.sse.common.SpeedWithBearing;
24 22
import com.sap.sse.common.Util.Pair;
25 23
import com.sap.sse.common.impl.DegreeBearingImpl;
24
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
25
+import com.sap.sse.common.impl.RadianBearingImpl;
26 26
27 27
public class PolarDiagramBase implements PolarDiagram, Serializable {
28 28
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PolarDiagramCSV.java
... ...
@@ -14,10 +14,10 @@ import java.util.NavigableMap;
14 14
import java.util.TreeMap;
15 15
16 16
import com.sap.sailing.domain.base.DomainFactory;
17
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
18 17
import com.sap.sse.common.Bearing;
19 18
import com.sap.sse.common.Speed;
20 19
import com.sap.sse.common.impl.DegreeBearingImpl;
20
+import com.sap.sse.common.impl.KnotSpeedImpl;
21 21
22 22
public class PolarDiagramCSV extends PolarDiagramBase {
23 23
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PolarDiagramGPS.java
... ...
@@ -11,14 +11,14 @@ import java.util.logging.Logger;
11 11
12 12
import com.sap.sailing.domain.base.BoatClass;
13 13
import com.sap.sailing.domain.common.LegType;
14
-import com.sap.sailing.domain.common.SpeedWithBearing;
15 14
import com.sap.sailing.domain.common.Tack;
16
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
17 15
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
18 16
import com.sap.sailing.domain.polars.PolarDataService;
19 17
import com.sap.sse.common.Bearing;
20 18
import com.sap.sse.common.Speed;
19
+import com.sap.sse.common.SpeedWithBearing;
21 20
import com.sap.sse.common.impl.DegreeBearingImpl;
21
+import com.sap.sse.common.impl.KnotSpeedImpl;
22 22
23 23
public class PolarDiagramGPS extends PolarDiagramBase {
24 24
private static final Logger logger = Logger.getLogger(PolarDiagramGPS.class.getName());
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/RectangularGrid.java
... ...
@@ -3,12 +3,12 @@ package com.sap.sailing.simulator.impl;
3 3
import java.util.HashMap;
4 4
import java.util.Map;
5 5
6
-import com.sap.sailing.domain.common.Position;
7
-import com.sap.sailing.domain.common.impl.DegreePosition;
8 6
import com.sap.sailing.simulator.Grid;
9 7
import com.sap.sse.common.Bearing;
10 8
import com.sap.sse.common.Distance;
9
+import com.sap.sse.common.Position;
11 10
import com.sap.sse.common.Util;
11
+import com.sap.sse.common.impl.DegreePosition;
12 12
13 13
/**
14 14
* Implements the {@link Grid} interface by providing a grid of GPS-positions based on the plane approximation of the
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/SimulationParametersImpl.java
... ...
@@ -3,12 +3,12 @@ package com.sap.sailing.simulator.impl;
3 3
import java.util.List;
4 4
5 5
import com.sap.sailing.domain.common.LegType;
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sailing.simulator.Grid;
8 7
import com.sap.sailing.simulator.PolarDiagram;
9 8
import com.sap.sailing.simulator.SimulationParameters;
10 9
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
11 10
import com.sap.sse.common.Duration;
11
+import com.sap.sse.common.Position;
12 12
13 13
public class SimulationParametersImpl implements SimulationParameters {
14 14
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/SimulatorUtils.java
... ...
@@ -19,13 +19,13 @@ import java.util.logging.Logger;
19 19
20 20
import org.osgi.framework.FrameworkUtil;
21 21
22
-import com.sap.sailing.domain.common.Position;
23 22
import com.sap.sailing.simulator.Path;
24 23
import com.sap.sailing.simulator.SimulationParameters;
25 24
import com.sap.sailing.simulator.TimedPositionWithSpeed;
26 25
import com.sap.sailing.simulator.util.SailingSimulatorConstants;
27 26
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
28 27
import com.sap.sailing.simulator.windfield.impl.WindFieldGeneratorMeasured;
28
+import com.sap.sse.common.Position;
29 29
import com.sap.sse.common.Util;
30 30
31 31
public class SimulatorUtils {
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/TimedPositionImpl.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.simulator.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4 3
import com.sap.sailing.simulator.TimedPosition;
4
+import com.sap.sse.common.Position;
5 5
import com.sap.sse.common.TimePoint;
6 6
7 7
public class TimedPositionImpl implements TimedPosition {
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/TimedPositionWithSpeedImpl.java
... ...
@@ -1,8 +1,8 @@
1 1
package com.sap.sailing.simulator.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.SpeedWithBearing;
5 3
import com.sap.sailing.simulator.TimedPositionWithSpeed;
4
+import com.sap.sse.common.Position;
5
+import com.sap.sse.common.SpeedWithBearing;
6 6
import com.sap.sse.common.TimePoint;
7 7
8 8
public class TimedPositionWithSpeedImpl implements TimedPositionWithSpeed {
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/TimedPositionWithSpeedSimple.java
... ...
@@ -1,9 +1,9 @@
1 1
package com.sap.sailing.simulator.impl;
2 2
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.SpeedWithBearing;
5 3
import com.sap.sailing.simulator.TimedPositionWithSpeed;
4
+import com.sap.sse.common.Position;
6 5
import com.sap.sse.common.Speed;
6
+import com.sap.sse.common.SpeedWithBearing;
7 7
import com.sap.sse.common.TimePoint;
8 8
9 9
public class TimedPositionWithSpeedSimple implements TimedPositionWithSpeed {
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/WindFieldGenerator.java
... ...
@@ -4,9 +4,9 @@ package com.sap.sailing.simulator.windfield;
4 4
5 5
import java.io.Serializable;
6 6
7
-import com.sap.sailing.domain.common.Position;
8 7
import com.sap.sailing.simulator.Grid;
9 8
import com.sap.sse.common.Duration;
9
+import com.sap.sse.common.Position;
10 10
import com.sap.sse.common.TimePoint;
11 11
12 12
public interface WindFieldGenerator extends WindField, Serializable {
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorBlastImpl.java
... ...
@@ -2,19 +2,19 @@ package com.sap.sailing.simulator.windfield.impl;
2 2
3 3
import java.util.logging.Logger;
4 4
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.SpeedWithBearing;
7 5
import com.sap.sailing.domain.common.Wind;
8
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
9 6
import com.sap.sailing.domain.common.impl.WindImpl;
10 7
import com.sap.sailing.simulator.Grid;
11 8
import com.sap.sailing.simulator.TimedPosition;
12 9
import com.sap.sailing.simulator.windfield.WindControlParameters;
13 10
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
14 11
import com.sap.sse.common.Duration;
12
+import com.sap.sse.common.Position;
13
+import com.sap.sse.common.SpeedWithBearing;
15 14
import com.sap.sse.common.TimePoint;
16 15
import com.sap.sse.common.Util;
17 16
import com.sap.sse.common.impl.DegreeBearingImpl;
17
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
18 18
19 19
public class WindFieldGeneratorBlastImpl extends WindFieldGeneratorImpl implements WindFieldGenerator {
20 20
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorCombined.java
... ...
@@ -1,16 +1,16 @@
1 1
package com.sap.sailing.simulator.windfield.impl;
2 2
3 3
4
-import com.sap.sailing.domain.common.SpeedWithBearing;
5 4
import com.sap.sailing.domain.common.Wind;
6
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
7 5
import com.sap.sailing.domain.common.impl.WindImpl;
8 6
import com.sap.sailing.simulator.Grid;
9 7
import com.sap.sailing.simulator.TimedPosition;
10 8
import com.sap.sailing.simulator.windfield.WindControlParameters;
11 9
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
12 10
import com.sap.sse.common.Duration;
11
+import com.sap.sse.common.SpeedWithBearing;
13 12
import com.sap.sse.common.TimePoint;
13
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
14 14
15 15
public class WindFieldGeneratorCombined extends WindFieldGeneratorImpl implements WindFieldGenerator {
16 16
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorImpl.java
... ...
@@ -5,10 +5,7 @@ import java.util.Map;
5 5
import java.util.logging.Logger;
6 6
7 7
import com.sap.sailing.domain.base.impl.KilometersPerHourSpeedWithBearingImpl;
8
-import com.sap.sailing.domain.common.Position;
9
-import com.sap.sailing.domain.common.SpeedWithBearing;
10 8
import com.sap.sailing.domain.common.Wind;
11
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
12 9
import com.sap.sailing.domain.common.impl.WindImpl;
13 10
import com.sap.sailing.simulator.Grid;
14 11
import com.sap.sailing.simulator.Path;
... ...
@@ -20,9 +17,12 @@ import com.sap.sailing.simulator.impl.TimedPositionWithSpeedImpl;
20 17
import com.sap.sailing.simulator.windfield.WindControlParameters;
21 18
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
22 19
import com.sap.sse.common.Duration;
20
+import com.sap.sse.common.Position;
21
+import com.sap.sse.common.SpeedWithBearing;
23 22
import com.sap.sse.common.TimePoint;
24 23
import com.sap.sse.common.Util;
25 24
import com.sap.sse.common.impl.DegreeBearingImpl;
25
+import com.sap.sse.common.impl.KnotSpeedImpl;
26 26
27 27
public abstract class WindFieldGeneratorImpl implements WindFieldGenerator {
28 28
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorMeasured.java
... ...
@@ -3,9 +3,7 @@ package com.sap.sailing.simulator.windfield.impl;
3 3
import java.util.List;
4 4
import java.util.logging.Logger;
5 5
6
-import com.sap.sailing.domain.common.SpeedWithBearing;
7 6
import com.sap.sailing.domain.common.Wind;
8
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
9 7
import com.sap.sailing.domain.common.impl.WindImpl;
10 8
import com.sap.sailing.simulator.Grid;
11 9
import com.sap.sailing.simulator.Path;
... ...
@@ -15,8 +13,10 @@ import com.sap.sailing.simulator.windfield.WindControlParameters;
15 13
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
16 14
import com.sap.sse.common.Bearing;
17 15
import com.sap.sse.common.Duration;
16
+import com.sap.sse.common.SpeedWithBearing;
18 17
import com.sap.sse.common.TimePoint;
19 18
import com.sap.sse.common.impl.DegreeBearingImpl;
19
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
20 20
21 21
public class WindFieldGeneratorMeasured extends WindFieldGeneratorImpl implements WindFieldGenerator {
22 22
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorOscillationImpl.java
... ...
@@ -2,11 +2,7 @@ package com.sap.sailing.simulator.windfield.impl;
2 2
3 3
import java.util.logging.Logger;
4 4
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.SpeedWithBearing;
7 5
import com.sap.sailing.domain.common.Wind;
8
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
9
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
10 6
import com.sap.sailing.domain.common.impl.WindImpl;
11 7
import com.sap.sailing.simulator.Grid;
12 8
import com.sap.sailing.simulator.TimedPosition;
... ...
@@ -15,10 +11,14 @@ import com.sap.sailing.simulator.windfield.WindFieldGenerator;
15 11
import com.sap.sse.common.Bearing;
16 12
import com.sap.sse.common.Distance;
17 13
import com.sap.sse.common.Duration;
14
+import com.sap.sse.common.Position;
18 15
import com.sap.sse.common.Speed;
16
+import com.sap.sse.common.SpeedWithBearing;
19 17
import com.sap.sse.common.TimePoint;
20 18
import com.sap.sse.common.Util;
21 19
import com.sap.sse.common.impl.DegreeBearingImpl;
20
+import com.sap.sse.common.impl.KnotSpeedImpl;
21
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
22 22
23 23
public class WindFieldGeneratorOscillationImpl extends WindFieldGeneratorImpl implements WindFieldGenerator {
24 24
java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldTrackedRaceImpl.java
... ...
@@ -3,15 +3,15 @@ package com.sap.sailing.simulator.windfield.impl;
3 3
import java.util.concurrent.ConcurrentHashMap;
4 4
import java.util.concurrent.ConcurrentMap;
5 5
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sailing.domain.common.Wind;
8
-import com.sap.sailing.domain.common.impl.DegreePosition;
9
-import com.sap.sailing.domain.common.impl.MeterDistance;
10 7
import com.sap.sailing.domain.tracking.TrackedRace;
11 8
import com.sap.sailing.simulator.TimedPosition;
12 9
import com.sap.sailing.simulator.impl.TimedPositionImpl;
13 10
import com.sap.sailing.simulator.windfield.WindFieldGenerator;
11
+import com.sap.sse.common.Position;
14 12
import com.sap.sse.common.TimePoint;
13
+import com.sap.sse.common.impl.DegreePosition;
14
+import com.sap.sse.common.impl.MeterDistance;
15 15
import com.sap.sse.common.impl.MillisecondsTimePoint;
16 16
17 17
/**
java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/LabeledManeuverForEstimation.java
... ...
@@ -1,10 +1,10 @@
1 1
package com.sap.sailing.windestimation.data;
2 2
3 3
import com.sap.sailing.domain.base.BoatClass;
4
-import com.sap.sailing.domain.common.Position;
5
-import com.sap.sailing.domain.common.SpeedWithBearing;
6 4
import com.sap.sailing.domain.common.Wind;
7 5
import com.sap.sse.common.Bearing;
6
+import com.sap.sse.common.Position;
7
+import com.sap.sse.common.SpeedWithBearing;
8 8
import com.sap.sse.common.TimePoint;
9 9
10 10
public class LabeledManeuverForEstimation extends ManeuverForEstimation {
java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/WindSourceMetadata.java
... ...
@@ -1,6 +1,6 @@
1 1
package com.sap.sailing.windestimation.data;
2 2
3
-import com.sap.sailing.domain.common.Position;
3
+import com.sap.sse.common.Position;
4 4
import com.sap.sse.common.TimePoint;
5 5
6 6
public class WindSourceMetadata {
java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/serialization/CompetitorTrackWithEstimationDataJsonDeserializer.java
... ...
@@ -9,11 +9,11 @@ import org.json.simple.parser.JSONParser;
9 9
import org.json.simple.parser.ParseException;
10 10
11 11
import com.sap.sailing.domain.base.BoatClass;
12
-import com.sap.sailing.domain.common.impl.MeterDistance;
13 12
import com.sap.sailing.server.gateway.deserialization.impl.BoatClassJsonDeserializer;
14 13
import com.sap.sailing.server.gateway.serialization.impl.CompetitorTrackWithEstimationDataJsonSerializer;
15 14
import com.sap.sailing.windestimation.data.CompetitorTrackWithEstimationData;
16 15
import com.sap.sse.common.Distance;
16
+import com.sap.sse.common.impl.MeterDistance;
17 17
import com.sap.sse.common.impl.MillisecondsTimePoint;
18 18
import com.sap.sse.shared.json.JsonDeserializationException;
19 19
import com.sap.sse.shared.json.JsonDeserializer;
java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/serialization/LabeledManeuverForEstimationJsonDeserializer.java
... ...
@@ -4,14 +4,14 @@ import org.json.simple.JSONObject;
4 4
5 5
import com.sap.sailing.domain.base.BoatClass;
6 6
import com.sap.sailing.domain.base.DomainFactory;
7
-import com.sap.sailing.domain.common.impl.DegreePosition;
8
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
9 7
import com.sap.sailing.domain.common.impl.WindImpl;
10 8
import com.sap.sailing.server.gateway.deserialization.impl.BoatClassJsonDeserializer;
11 9
import com.sap.sailing.windestimation.data.LabeledManeuverForEstimation;
12 10
import com.sap.sailing.windestimation.data.ManeuverCategory;
13 11
import com.sap.sailing.windestimation.data.ManeuverTypeForClassification;
14 12
import com.sap.sse.common.impl.DegreeBearingImpl;
13
+import com.sap.sse.common.impl.DegreePosition;
14
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
15 15
import com.sap.sse.common.impl.MillisecondsTimePoint;
16 16
import com.sap.sse.shared.json.JsonDeserializationException;
17 17
import com.sap.sse.shared.json.JsonDeserializer;
java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/serialization/TwdTransitionJsonDeserializer.java
... ...
@@ -2,10 +2,10 @@ package com.sap.sailing.windestimation.data.serialization;
2 2
3 3
import org.json.simple.JSONObject;
4 4
5
-import com.sap.sailing.domain.common.impl.MeterDistance;
6 5
import com.sap.sailing.windestimation.data.LabeledTwdTransition;
7 6
import com.sap.sailing.windestimation.data.ManeuverTypeForClassification;
8 7
import com.sap.sse.common.impl.DegreeBearingImpl;
8
+import com.sap.sse.common.impl.MeterDistance;
9 9
import com.sap.sse.common.impl.MillisecondsDurationImpl;
10 10
import com.sap.sse.shared.json.JsonDeserializationException;
11 11
import com.sap.sse.shared.json.JsonDeserializer;
java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/data/serialization/WindSourceMetadataJsonDeserializer.java
... ...
@@ -2,9 +2,9 @@ package com.sap.sailing.windestimation.data.serialization;
2 2
3 3
import org.json.simple.JSONObject;
4 4
5
-import com.sap.sailing.domain.common.Position;
6 5
import com.sap.sailing.server.gateway.serialization.impl.RaceWindJsonSerializer;
7 6
import com.sap.sailing.windestimation.data.WindSourceMetadata;
7
+import com.sap.sse.common.Position;
8 8
import com.sap.sse.common.TimePoint;
9 9
import com.sap.sse.common.impl.MillisecondsTimePoint;
10 10
import com.sap.sse.shared.json.JsonDeserializationException;
java/com.sap.sailing.windestimation.lab/src/com/sap/sailing/windestimation/evaluation/WindEstimationEvaluatorImpl.java
... ...
@@ -9,8 +9,6 @@ import java.util.Spliterators;
9 9
import java.util.stream.Stream;
10 10
import java.util.stream.StreamSupport;
11 11
12
-import com.sap.sailing.domain.common.BearingChangeAnalyzer;
13
-import com.sap.sailing.domain.common.Position;
14 12
import com.sap.sailing.domain.common.Wind;
15 13
import com.sap.sailing.domain.tracking.WindTrack;
16 14
import com.sap.sailing.domain.tracking.WindWithConfidence;
... ...
@@ -25,6 +23,8 @@ import com.sap.sailing.windestimation.preprocessing.DummyRacePreprocessingPipeli
25 23
import com.sap.sailing.windestimation.preprocessing.RaceWithRandomClippingPreprocessingPipelineImpl;
26 24
import com.sap.sailing.windestimation.util.LoggingUtil;
27 25
import com.sap.sse.common.Bearing;
26
+import com.sap.sse.common.BearingChangeAnalyzer;
27
+import com.sap.sse.common.Position;
28 28
import com.sap.sse.common.TimePoint;
29 29
import com.sap.sse.common.Util.Pair;
30 30
java/com.sap.sailing.windestimation.test/resources/polar_data
... ...
Binary files /dev/null and b/java/com.sap.sailing.windestimation.test/resources/polar_data differ
java/com.sap.sailing.windestimation.test/src/com/sap/sailing/windestimation/integration/AbstractTestWithLocal505PolarData.java
... ...
@@ -0,0 +1,30 @@
1
+package com.sap.sailing.windestimation.integration;
2
+
3
+import java.io.File;
4
+import java.io.IOException;
5
+import java.net.MalformedURLException;
6
+import java.net.URISyntaxException;
7
+
8
+import org.json.simple.parser.ParseException;
9
+
10
+import com.sap.sailing.domain.base.DomainFactory;
11
+import com.sap.sailing.domain.polars.PolarDataService;
12
+import com.sap.sailing.domain.test.OnlineTracTracBasedTest;
13
+import com.sap.sailing.polars.impl.PolarDataServiceImpl;
14
+import com.sap.sailing.polars.jaxrs.client.FileBasedPolarDataClient;
15
+
16
+public abstract class AbstractTestWithLocal505PolarData extends OnlineTracTracBasedTest {
17
+ protected AbstractTestWithLocal505PolarData() throws MalformedURLException, URISyntaxException {
18
+ super();
19
+ }
20
+
21
+ protected PolarDataService createPolarDataService() throws ClassNotFoundException, IOException, ParseException, InterruptedException {
22
+ final PolarDataServiceImpl polarDataService = new PolarDataServiceImpl();
23
+ final com.sap.sailing.domain.tractracadapter.DomainFactory domainFactoryImpl = getDomainFactory();
24
+ final DomainFactory baseDomainFactory = domainFactoryImpl.getBaseDomainFactory();
25
+ final FileBasedPolarDataClient client = new FileBasedPolarDataClient(new File("resources/polar_data"), polarDataService, baseDomainFactory);
26
+ client.updatePolarDataRegressions();
27
+ getTrackedRace().setPolarDataService(polarDataService);
28
+ return polarDataService;
29
+ }
30
+}
java/com.sap.sailing.windestimation.test/src/com/sap/sailing/windestimation/integration/IncrementalMstHmmWindEstimationForTrackedRaceTest.java
... ...
@@ -28,15 +28,11 @@ import org.junit.jupiter.api.Test;
28 28
import com.sap.sailing.domain.base.Competitor;
29 29
import com.sap.sailing.domain.base.DomainFactory;
30 30
import com.sap.sailing.domain.common.NoWindException;
31
-import com.sap.sailing.domain.common.Position;
32 31
import com.sap.sailing.domain.common.Wind;
33 32
import com.sap.sailing.domain.common.WindSourceType;
34
-import com.sap.sailing.domain.common.impl.DegreePosition;
35
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
36 33
import com.sap.sailing.domain.common.impl.WindImpl;
37 34
import com.sap.sailing.domain.common.impl.WindSourceImpl;
38 35
import com.sap.sailing.domain.common.impl.WindSourceWithAdditionalID;
39
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
40 36
import com.sap.sailing.domain.maneuverdetection.CompleteManeuverCurveWithEstimationData;
41 37
import com.sap.sailing.domain.maneuverdetection.impl.IncrementalManeuverDetectorImpl;
42 38
import com.sap.sailing.domain.maneuverdetection.impl.ManeuverDetectorWithEstimationDataSupportDecoratorImpl;
... ...
@@ -49,7 +45,7 @@ import com.sap.sailing.domain.tractracadapter.ReceiverType;
49 45
import com.sap.sailing.domain.windestimation.IncrementalWindEstimation;
50 46
import com.sap.sailing.domain.windestimation.TimePointAndPositionWithToleranceComparator;
51 47
import com.sap.sailing.polars.impl.PolarDataServiceImpl;
52
-import com.sap.sailing.polars.jaxrs.client.PolarDataClient;
48
+import com.sap.sailing.polars.jaxrs.client.FileBasedPolarDataClient;
53 49
import com.sap.sailing.windestimation.ManeuverBasedWindEstimationComponentImpl;
54 50
import com.sap.sailing.windestimation.aggregator.ManeuverClassificationsAggregatorFactory;
55 51
import com.sap.sailing.windestimation.data.CompetitorTrackWithEstimationData;
... ...
@@ -65,10 +61,14 @@ import com.sap.sailing.windestimation.windinference.MiddleCourseBasedTwdCalculat
65 61
import com.sap.sailing.windestimation.windinference.WindTrackCalculatorImpl;
66 62
import com.sap.sse.common.Bearing;
67 63
import com.sap.sse.common.Duration;
64
+import com.sap.sse.common.Position;
68 65
import com.sap.sse.common.TimePoint;
69 66
import com.sap.sse.common.Util.Pair;
70 67
import com.sap.sse.common.impl.DegreeBearingImpl;
68
+import com.sap.sse.common.impl.DegreePosition;
69
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
71 70
import com.sap.sse.common.impl.MillisecondsTimePoint;
71
+import com.sap.sse.common.scalablevalue.impl.ScalableBearing;
72 72
import com.sap.sse.shared.util.Wait;
73 73
import com.sap.sse.testutils.Measurement;
74 74
import com.sap.sse.testutils.MeasurementCase;
... ...
@@ -79,7 +79,7 @@ import com.sap.sse.testutils.MeasurementXMLFile;
79 79
* @author Vladislav Chumak (D069712)
80 80
*
81 81
*/
82
-public class IncrementalMstHmmWindEstimationForTrackedRaceTest extends OnlineTracTracBasedTest {
82
+public class IncrementalMstHmmWindEstimationForTrackedRaceTest extends AbstractTestWithLocal505PolarData {
83 83
private static final Logger logger = Logger.getLogger(IncrementalMstHmmWindEstimationForTrackedRaceTest.class.getName());
84 84
85 85
... ...
@@ -131,30 +131,11 @@ public class IncrementalMstHmmWindEstimationForTrackedRaceTest extends OnlineTra
131 131
new URL("file:///" + new File("resources/event_20110609_KielerWoch-505_Race_2.txt").getCanonicalPath()),
132 132
/* liveUri */ null, /* storedUri */ storedUri,
133 133
new ReceiverType[] { ReceiverType.MARKPASSINGS, ReceiverType.RACECOURSE, ReceiverType.RAWPOSITIONS, ReceiverType.MARKPOSITIONS });
134
- String polarDataBearerToken = System.getProperty("polardata.source.bearertoken");
135
- if (polarDataBearerToken == null) {
136
- logger.info("Couldn't find polardata.source.bearertoken system property, trying environment variable POLAR_DATA_BEARER_TOKEN");
137
- polarDataBearerToken = System.getenv("POLAR_DATA_BEARER_TOKEN");
138
- if (polarDataBearerToken == null) {
139
- logger.warning("Couldn't find POLAR_DATA_BEARER_TOKEN environment variable either, polar data service will not be available");
140
- } else {
141
- logger.info("Found POLAR_DATA_BEARER_TOKEN environment variable, length "+polarDataBearerToken.length()
142
- +"; polar data service will be available");
143
- }
144
- } else {
145
- logger.info("Found polardata.source.bearertoken system property, polar data service will be available");
146
- }
147
- final Optional<String> polardataBearerTokenOptional = Optional.ofNullable(polarDataBearerToken);
148
- if (polardataBearerTokenOptional.isPresent()) {
149
- polarDataService = new PolarDataServiceImpl();
150
- final com.sap.sailing.domain.tractracadapter.DomainFactory domainFactoryImpl = getDomainFactory();
151
- final DomainFactory baseDomainFactory = domainFactoryImpl.getBaseDomainFactory();
152
- polarDataService.registerDomainFactory(baseDomainFactory);
153
- new PolarDataClient(Optional.ofNullable(System.getenv("POLAR_DATA_BASE_URL")).orElse("https://sapsailing.com"), polarDataService, polardataBearerTokenOptional)
154
- .updatePolarDataRegressions();
155
- } else {
156
- polarDataService = new PolarDataServiceImpl();
157
- }
134
+ polarDataService = new PolarDataServiceImpl();
135
+ final com.sap.sailing.domain.tractracadapter.DomainFactory domainFactoryImpl = getDomainFactory();
136
+ final DomainFactory baseDomainFactory = domainFactoryImpl.getBaseDomainFactory();
137
+ final FileBasedPolarDataClient client = new FileBasedPolarDataClient(new File("resources/polar_data"), polarDataService, baseDomainFactory);
138
+ client.updatePolarDataRegressions();
158 139
getTrackedRace().setPolarDataService(polarDataService);
159 140
final GregorianCalendar cal = new GregorianCalendar(2011, 05, 23, 13, 40);
160 141
cal.setTimeZone(TimeZone.getTimeZone("UTC"));
java/com.sap.sailing.windestimation.test/src/com/sap/sailing/windestimation/integration/IncrementalMstManeuverGraphGeneratorTest.java
... ...
@@ -13,30 +13,24 @@ import java.text.SimpleDateFormat;
13 13
import java.util.ArrayList;
14 14
import java.util.GregorianCalendar;
15 15
import java.util.List;
16
-import java.util.Optional;
17 16
import java.util.Set;
18 17
import java.util.TimeZone;
19 18
import java.util.TreeSet;
20
-import java.util.logging.Logger;
21 19
22 20
import org.json.simple.parser.ParseException;
23 21
import org.junit.jupiter.api.BeforeEach;
24 22
import org.junit.jupiter.api.Test;
25 23
26 24
import com.sap.sailing.domain.base.Competitor;
27
-import com.sap.sailing.domain.base.DomainFactory;
28
-import com.sap.sailing.domain.common.Position;
29 25
import com.sap.sailing.domain.maneuverdetection.TrackTimeInfo;
30 26
import com.sap.sailing.domain.maneuverdetection.impl.IncrementalManeuverDetectorImpl;
31 27
import com.sap.sailing.domain.maneuverdetection.impl.ManeuverDetectorWithEstimationDataSupportDecoratorImpl;
28
+import com.sap.sailing.domain.polars.PolarDataService;
32 29
import com.sap.sailing.domain.test.OnlineTracTracBasedTest;
33 30
import com.sap.sailing.domain.tracking.CompleteManeuverCurve;
34 31
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
35 32
import com.sap.sailing.domain.tractracadapter.ReceiverType;
36 33
import com.sap.sailing.domain.windestimation.TimePointAndPositionWithToleranceComparator;
37
-import com.sap.sailing.polars.ReplicablePolarService;
38
-import com.sap.sailing.polars.impl.PolarDataServiceImpl;
39
-import com.sap.sailing.polars.jaxrs.client.PolarDataClient;
40 34
import com.sap.sailing.windestimation.aggregator.msthmm.DistanceAndDurationAwareWindTransitionProbabilitiesCalculator;
41 35
import com.sap.sailing.windestimation.aggregator.msthmm.MstGraphLevel;
42 36
import com.sap.sailing.windestimation.aggregator.msthmm.MstManeuverGraphGenerator.MstManeuverGraphComponents;
... ...
@@ -46,6 +40,7 @@ import com.sap.sailing.windestimation.model.classifier.maneuver.ManeuverFeatures
46 40
import com.sap.sailing.windestimation.model.exception.ModelPersistenceException;
47 41
import com.sap.sailing.windestimation.model.regressor.twdtransition.GaussianBasedTwdTransitionDistributionCache;
48 42
import com.sap.sailing.windestimation.model.store.ClassPathReadOnlyModelStoreImpl;
43
+import com.sap.sse.common.Position;
49 44
import com.sap.sse.common.TimePoint;
50 45
import com.sap.sse.common.Util.Pair;
51 46
import com.sap.sse.common.impl.MillisecondsTimePoint;
... ...
@@ -55,9 +50,7 @@ import com.sap.sse.common.impl.MillisecondsTimePoint;
55 50
* @author Vladislav Chumak (D069712)
56 51
*
57 52
*/
58
-public class IncrementalMstManeuverGraphGeneratorTest extends OnlineTracTracBasedTest {
59
- private static final Logger logger = Logger.getLogger(IncrementalMstManeuverGraphGeneratorTest.class.getName());
60
-
53
+public class IncrementalMstManeuverGraphGeneratorTest extends AbstractTestWithLocal505PolarData {
61 54
protected final SimpleDateFormat dateFormat;
62 55
private ClassPathReadOnlyModelStoreImpl modelStore;
63 56
... ...
@@ -94,32 +87,7 @@ public class IncrementalMstManeuverGraphGeneratorTest extends OnlineTracTracBase
94 87
assertTrue(gaussianBasedTwdTransitionDistributionCache.isReady() && maneuverClassifiersCache.isReady(),
95 88
"Wind estimation models are empty");
96 89
final DynamicTrackedRaceImpl trackedRace = getTrackedRace();
97
- final ReplicablePolarService polarDataService;
98
- String polarDataBearerToken = System.getProperty("polardata.source.bearertoken");
99
- if (polarDataBearerToken == null) {
100
- logger.info("Couldn't find polardata.source.bearertoken system property, trying environment variable POLAR_DATA_BEARER_TOKEN");
101
- polarDataBearerToken = System.getenv("POLAR_DATA_BEARER_TOKEN");
102
- if (polarDataBearerToken == null) {
103
- logger.warning("Couldn't find POLAR_DATA_BEARER_TOKEN environment variable either, polar data service will not be available");
104
- } else {
105
- logger.info("Found POLAR_DATA_BEARER_TOKEN environment variable, length "+polarDataBearerToken.length()
106
- +"; polar data service will be available");
107
- }
108
- } else {
109
- logger.info("Found polardata.source.bearertoken system property, polar data service will be available");
110
- }
111
- final Optional<String> polardataBearerTokenOptional = Optional.ofNullable(polarDataBearerToken);
112
- if (polardataBearerTokenOptional.isPresent()) {
113
- polarDataService = new PolarDataServiceImpl();
114
- final com.sap.sailing.domain.tractracadapter.DomainFactory domainFactoryImpl = getDomainFactory();
115
- final DomainFactory baseDomainFactory = domainFactoryImpl.getBaseDomainFactory();
116
- polarDataService.registerDomainFactory(baseDomainFactory);
117
- new PolarDataClient(
118
- Optional.ofNullable(System.getenv("POLAR_DATA_BASE_URL")).orElse("https://sapsailing.com"),
119
- polarDataService, polardataBearerTokenOptional).updatePolarDataRegressions();
120
- } else {
121
- polarDataService = null;
122
- }
90
+ final PolarDataService polarDataService = createPolarDataService();
123 91
final IncrementalMstManeuverGraphGenerator generator = new IncrementalMstManeuverGraphGenerator(
124 92
new CompleteManeuverCurveToManeuverForEstimationConverter(trackedRace, polarDataService),
125 93
transitionProbabilitiesCalculator, maneuverClassifiersCache);
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/ManeuverBasedWindEstimationComponentImpl.java
... ...
@@ -3,7 +3,6 @@ package com.sap.sailing.windestimation;
3 3
import java.util.List;
4 4
import java.util.stream.Collectors;
5 5
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sailing.domain.tracking.WindWithConfidence;
8 7
import com.sap.sailing.windestimation.aggregator.ManeuverClassificationsAggregator;
9 8
import com.sap.sailing.windestimation.data.CompetitorTrackWithEstimationData;
... ...
@@ -14,6 +13,7 @@ import com.sap.sailing.windestimation.model.classifier.maneuver.ManeuverClassifi
14 13
import com.sap.sailing.windestimation.model.classifier.maneuver.ManeuverWithProbabilisticTypeClassification;
15 14
import com.sap.sailing.windestimation.preprocessing.PreprocessingPipeline;
16 15
import com.sap.sailing.windestimation.windinference.WindTrackCalculator;
16
+import com.sap.sse.common.Position;
17 17
import com.sap.sse.common.TimePoint;
18 18
import com.sap.sse.common.Util.Pair;;
19 19
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/PolarsFittingBasedWindEstimationComponentImpl.java
... ...
@@ -4,7 +4,6 @@ import java.util.ArrayList;
4 4
import java.util.List;
5 5
import java.util.stream.Collectors;
6 6
7
-import com.sap.sailing.domain.common.Position;
8 7
import com.sap.sailing.domain.common.Wind;
9 8
import com.sap.sailing.domain.common.impl.WindImpl;
10 9
import com.sap.sailing.domain.polars.PolarDataService;
... ...
@@ -20,6 +19,7 @@ import com.sap.sailing.windestimation.model.classifier.maneuver.ManeuverWithProb
20 19
import com.sap.sailing.windestimation.preprocessing.PreprocessingPipeline;
21 20
import com.sap.sailing.windestimation.windinference.WindTrackCalculator;
22 21
import com.sap.sse.common.Bearing;
22
+import com.sap.sse.common.Position;
23 23
import com.sap.sse.common.TimePoint;
24 24
import com.sap.sse.common.Util.Pair;
25 25
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/WindEstimationComponent.java
... ...
@@ -2,8 +2,8 @@ package com.sap.sailing.windestimation;
2 2
3 3
import java.util.List;
4 4
5
-import com.sap.sailing.domain.common.Position;
6 5
import com.sap.sailing.domain.tracking.WindWithConfidence;
6
+import com.sap.sse.common.Position;
7 7
import com.sap.sse.common.TimePoint;
8 8
import com.sap.sse.common.Util.Pair;
9 9
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/WindEstimationComponentWithInternals.java
... ...
@@ -2,7 +2,6 @@ package com.sap.sailing.windestimation;
2 2
3 3
import java.util.List;
4 4
5
-import com.sap.sailing.domain.common.Position;
6 5
import com.sap.sailing.domain.tracking.WindWithConfidence;
7 6
import com.sap.sailing.windestimation.aggregator.ManeuverClassificationsAggregator;
8 7
import com.sap.sailing.windestimation.data.ManeuverForEstimation;
... ...
@@ -12,6 +11,7 @@ import com.sap.sailing.windestimation.model.classifier.maneuver.ManeuverClassifi
12 11
import com.sap.sailing.windestimation.model.classifier.maneuver.ManeuverWithProbabilisticTypeClassification;
13 12
import com.sap.sailing.windestimation.preprocessing.PreprocessingPipeline;
14 13
import com.sap.sailing.windestimation.windinference.WindTrackCalculator;
14
+import com.sap.sse.common.Position;
15 15
import com.sap.sse.common.TimePoint;
16 16
import com.sap.sse.common.Util.Pair;
17 17
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/aggregator/clustering/ManeuverClusteringBasedWindEstimationTrackImpl.java
... ...
@@ -7,7 +7,6 @@ import java.util.stream.Stream;
7 7
8 8
import com.sap.sailing.domain.base.BoatClass;
9 9
import com.sap.sailing.domain.common.ManeuverType;
10
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
11 10
import com.sap.sailing.domain.polars.PolarDataService;
12 11
import com.sap.sailing.polars.windestimation.AbstractManeuverBasedWindEstimationTrackImpl;
13 12
import com.sap.sailing.polars.windestimation.ManeuverBasedWindEstimationTrackImpl;
... ...
@@ -22,6 +21,7 @@ import com.sap.sse.common.Bearing;
22 21
import com.sap.sse.common.Speed;
23 22
import com.sap.sse.common.Util.Pair;
24 23
import com.sap.sse.common.scalablevalue.ScalableDouble;
24
+import com.sap.sse.common.scalablevalue.impl.ScalableBearing;
25 25
import com.sap.sse.util.kmeans.Cluster;
26 26
27 27
/**
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/aggregator/outlierremoval/MeanBasedOutlierRemovalWindEstimator.java
... ...
@@ -2,11 +2,11 @@ package com.sap.sailing.windestimation.aggregator.outlierremoval;
2 2
3 3
import java.util.List;
4 4
5
-import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
6 5
import com.sap.sailing.windestimation.data.ManeuverWithEstimatedType;
7 6
import com.sap.sailing.windestimation.windinference.TwdFromManeuverCalculator;
8 7
import com.sap.sse.common.Bearing;
9 8
import com.sap.sse.common.Util.Pair;
9
+import com.sap.sse.common.scalablevalue.impl.ScalableBearing;
10 10
11 11
/**
12 12
*
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/aggregator/polarsfitting/PolarsFittingWindEstimation.java
... ...
@@ -11,9 +11,6 @@ import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
11 11
import com.sap.sailing.domain.base.SpeedWithConfidence;
12 12
import com.sap.sailing.domain.base.impl.SpeedWithBearingWithConfidenceImpl;
13 13
import com.sap.sailing.domain.base.impl.SpeedWithConfidenceImpl;
14
-import com.sap.sailing.domain.common.SpeedWithBearing;
15
-import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
16
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
17 14
import com.sap.sailing.domain.common.impl.WindImpl;
18 15
import com.sap.sailing.domain.common.polars.NotEnoughDataHasBeenAddedException;
19 16
import com.sap.sailing.domain.polars.PolarDataService;
... ...
@@ -23,8 +20,11 @@ import com.sap.sailing.windestimation.data.CompetitorTrackWithEstimationData;
23 20
import com.sap.sailing.windestimation.data.ManeuverForEstimation;
24 21
import com.sap.sse.common.Bearing;
25 22
import com.sap.sse.common.Speed;
23
+import com.sap.sse.common.SpeedWithBearing;
26 24
import com.sap.sse.common.Util.Pair;
27 25
import com.sap.sse.common.impl.DegreeBearingImpl;
26
+import com.sap.sse.common.impl.KnotSpeedImpl;
27
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
28 28
29 29
/**
30 30
*
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/data/CompetitorTrackWithEstimationData.java
... ...
@@ -3,10 +3,10 @@ package com.sap.sailing.windestimation.data;
3 3
import java.util.List;
4 4
5 5
import com.sap.sailing.domain.base.BoatClass;
6
-import com.sap.sailing.domain.common.impl.MeterPerSecondSpeedImpl;
7 6
import com.sap.sse.common.Distance;
8 7
import com.sap.sse.common.Duration;
9 8
import com.sap.sse.common.TimePoint;
9
+import com.sap.sse.common.impl.MeterPerSecondSpeedImpl;
10 10
11 11
/**
12 12
* Competitor track with elements (e.g. maneuvers or gps-fixes) which has been fetched during data import.
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/data/ManeuverForEstimation.java
... ...
@@ -1,9 +1,9 @@
1 1
package com.sap.sailing.windestimation.data;
2 2
3 3
import com.sap.sailing.domain.base.BoatClass;
4
-import com.sap.sailing.domain.common.Position;
5
-import com.sap.sailing.domain.common.SpeedWithBearing;
6 4
import com.sap.sse.common.Bearing;
5
+import com.sap.sse.common.Position;
6
+import com.sap.sse.common.SpeedWithBearing;
7 7
import com.sap.sse.common.TimePoint;
8 8
9 9
/**
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/data/transformer/ConvertableManeuverForEstimationAdapterForCompleteManeuverCurveWithEstimationData.java
... ...
@@ -4,13 +4,13 @@ import java.util.ArrayList;
4 4
import java.util.List;
5 5
6 6
import com.sap.sailing.domain.common.ManeuverType;
7
-import com.sap.sailing.domain.common.Position;
8
-import com.sap.sailing.domain.common.SpeedWithBearing;
9 7
import com.sap.sailing.domain.common.Wind;
10 8
import com.sap.sailing.domain.maneuverdetection.CompleteManeuverCurveWithEstimationData;
11 9
import com.sap.sse.common.Bearing;
12 10
import com.sap.sse.common.Duration;
11
+import com.sap.sse.common.Position;
13 12
import com.sap.sse.common.Speed;
13
+import com.sap.sse.common.SpeedWithBearing;
14 14
import com.sap.sse.common.TimePoint;
15 15
16 16
/**
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/data/transformer/ConvertableToManeuverForEstimation.java
... ...
@@ -1,11 +1,11 @@
1 1
package com.sap.sailing.windestimation.data.transformer;
2 2
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.SpeedWithBearing;
5 3
import com.sap.sailing.windestimation.data.ManeuverForEstimation;
6 4
import com.sap.sse.common.Bearing;
7 5
import com.sap.sse.common.Duration;
6
+import com.sap.sse.common.Position;
8 7
import com.sap.sse.common.Speed;
8
+import com.sap.sse.common.SpeedWithBearing;
9 9
import com.sap.sse.common.TimePoint;
10 10
11 11
/**
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/integration/CompleteManeuverCurveToManeuverForEstimationConverter.java
... ...
@@ -4,7 +4,6 @@ import com.sap.sailing.domain.base.BoatClass;
4 4
import com.sap.sailing.domain.base.Competitor;
5 5
import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
6 6
import com.sap.sailing.domain.common.ManeuverType;
7
-import com.sap.sailing.domain.common.Position;
8 7
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
9 8
import com.sap.sailing.domain.maneuverdetection.TrackTimeInfo;
10 9
import com.sap.sailing.domain.polars.PolarDataService;
... ...
@@ -16,6 +15,7 @@ import com.sap.sailing.domain.tracking.TrackedRace;
16 15
import com.sap.sailing.windestimation.data.ManeuverForEstimation;
17 16
import com.sap.sailing.windestimation.data.transformer.ManeuverForEstimationTransformer;
18 17
import com.sap.sse.common.Duration;
18
+import com.sap.sse.common.Position;
19 19
import com.sap.sse.common.Speed;
20 20
import com.sap.sse.common.TimePoint;
21 21
import com.sap.sse.common.impl.MillisecondsDurationImpl;
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/integration/ConvertableManeuverForEstimationAdapterForCompleteManeuverCurve.java
... ...
@@ -1,14 +1,14 @@
1 1
package com.sap.sailing.windestimation.integration;
2 2
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.SpeedWithBearing;
5 3
import com.sap.sailing.domain.tracking.CompleteManeuverCurve;
6 4
import com.sap.sailing.windestimation.data.ManeuverForEstimation;
7 5
import com.sap.sailing.windestimation.data.transformer.ConvertableToManeuverForEstimation;
8 6
import com.sap.sailing.windestimation.data.transformer.ManeuverForEstimationTransformer;
9 7
import com.sap.sse.common.Bearing;
10 8
import com.sap.sse.common.Duration;
9
+import com.sap.sse.common.Position;
11 10
import com.sap.sse.common.Speed;
11
+import com.sap.sse.common.SpeedWithBearing;
12 12
import com.sap.sse.common.TimePoint;
13 13
14 14
/**
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/integration/IncrementalMstHmmWindEstimationForTrackedRace.java
... ...
@@ -15,7 +15,6 @@ import java.util.logging.Level;
15 15
import java.util.logging.Logger;
16 16
17 17
import com.sap.sailing.domain.base.Competitor;
18
-import com.sap.sailing.domain.common.Position;
19 18
import com.sap.sailing.domain.common.Wind;
20 19
import com.sap.sailing.domain.common.WindSource;
21 20
import com.sap.sailing.domain.common.WindSourceType;
... ...
@@ -43,6 +42,7 @@ import com.sap.sailing.windestimation.windinference.MiddleCourseBasedTwdCalculat
43 42
import com.sap.sailing.windestimation.windinference.PolarsBasedTwsCalculatorImpl;
44 43
import com.sap.sailing.windestimation.windinference.WindTrackCalculator;
45 44
import com.sap.sailing.windestimation.windinference.WindTrackCalculatorImpl;
45
+import com.sap.sse.common.Position;
46 46
import com.sap.sse.common.TimePoint;
47 47
import com.sap.sse.common.Util.Pair;
48 48
import com.sap.sse.common.Util.Triple;
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/model/regressor/twdtransition/SingleDimensionBasedTwdTransitionRegressorModelFactory.java
... ...
@@ -1,6 +1,5 @@
1 1
package com.sap.sailing.windestimation.model.regressor.twdtransition;
2 2
3
-import com.sap.sailing.domain.common.impl.MeterDistance;
4 3
import com.sap.sailing.windestimation.data.ManeuverTypeForClassification;
5 4
import com.sap.sailing.windestimation.data.TwdTransition;
6 5
import com.sap.sailing.windestimation.model.ModelFactory;
... ...
@@ -8,6 +7,7 @@ import com.sap.sailing.windestimation.model.regressor.IncrementalSingleDimension
8 7
import com.sap.sailing.windestimation.model.regressor.RegressorModelFactory;
9 8
import com.sap.sse.common.Duration;
10 9
import com.sap.sse.common.impl.DegreeBearingImpl;
10
+import com.sap.sse.common.impl.MeterDistance;
11 11
12 12
/**
13 13
* Base class for {@link DistanceBasedTwdTransitionRegressorModelFactory} and
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/util/WindUtil.java
... ...
@@ -4,14 +4,14 @@ import java.util.ArrayList;
4 4
import java.util.Arrays;
5 5
import java.util.List;
6 6
7
-import com.sap.sailing.domain.common.Position;
8 7
import com.sap.sailing.domain.common.Wind;
9
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
10 8
import com.sap.sailing.domain.common.impl.WindImpl;
11 9
import com.sap.sailing.domain.tracking.WindWithConfidence;
12 10
import com.sap.sailing.domain.tracking.impl.WindWithConfidenceImpl;
11
+import com.sap.sse.common.Position;
13 12
import com.sap.sse.common.TimePoint;
14 13
import com.sap.sse.common.Util.Pair;
14
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
15 15
16 16
import smile.sort.QuickSelect;
17 17
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/windinference/WindTrackCalculator.java
... ...
@@ -2,9 +2,9 @@ package com.sap.sailing.windestimation.windinference;
2 2
3 3
import java.util.List;
4 4
5
-import com.sap.sailing.domain.common.Position;
6 5
import com.sap.sailing.domain.tracking.WindWithConfidence;
7 6
import com.sap.sailing.windestimation.data.ManeuverWithEstimatedType;
7
+import com.sap.sse.common.Position;
8 8
import com.sap.sse.common.TimePoint;
9 9
import com.sap.sse.common.Util.Pair;
10 10
java/com.sap.sailing.windestimation/src/com/sap/sailing/windestimation/windinference/WindTrackCalculatorImpl.java
... ...
@@ -3,9 +3,7 @@ package com.sap.sailing.windestimation.windinference;
3 3
import java.util.ArrayList;
4 4
import java.util.List;
5 5
6
-import com.sap.sailing.domain.common.Position;
7 6
import com.sap.sailing.domain.common.Wind;
8
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
9 7
import com.sap.sailing.domain.common.impl.WindImpl;
10 8
import com.sap.sailing.domain.tracking.WindWithConfidence;
11 9
import com.sap.sailing.domain.tracking.impl.WindWithConfidenceImpl;
... ...
@@ -13,9 +11,11 @@ import com.sap.sailing.windestimation.data.ManeuverForEstimation;
13 11
import com.sap.sailing.windestimation.data.ManeuverWithEstimatedType;
14 12
import com.sap.sailing.windestimation.util.WindUtil;
15 13
import com.sap.sse.common.Bearing;
14
+import com.sap.sse.common.Position;
16 15
import com.sap.sse.common.Speed;
17 16
import com.sap.sse.common.TimePoint;
18 17
import com.sap.sse.common.Util.Pair;
18
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
19 19
20 20
/**
21 21
* Uses provided {@link #twdCalculator} and {@link #twsCalculator} to derive wind fixes. TWS of all wind fixes is set to
java/com.sap.sse.common/.settings/org.eclipse.core.resources.prefs
... ...
@@ -1,4 +1,8 @@
1 1
eclipse.preferences.version=1
2 2
encoding//src/com/sap/sse/common/AbstractBearing.java=UTF-8
3
+encoding//src/com/sap/sse/common/AbstractPosition.java=UTF-8
4
+encoding//src/com/sap/sse/common/Position.java=UTF-8
5
+encoding//src/com/sap/sse/common/confidence/impl/ConfidenceBasedAveragerImpl.java=utf-8
6
+encoding//src/com/sap/sse/common/impl/AbstractSpeedWithAbstractBearingImpl.java=UTF-8
3 7
encoding//src/com/sap/sse/common/impl/CountryCodeFactoryImpl.java=UTF-8
4 8
encoding/<project>=UTF-8
java/com.sap.sse.common/META-INF/MANIFEST.MF
... ...
@@ -6,6 +6,8 @@ Bundle-Version: 1.0.0.qualifier
6 6
Bundle-Vendor: SAP
7 7
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
8 8
Export-Package: com.sap.sse.common,
9
+ com.sap.sse.common.confidence,
10
+ com.sap.sse.common.confidence.impl,
9 11
com.sap.sse.common.fileupload,
10 12
com.sap.sse.common.filter,
11 13
com.sap.sse.common.filter.impl,
... ...
@@ -14,6 +16,7 @@ Export-Package: com.sap.sse.common,
14 16
com.sap.sse.common.mail,
15 17
com.sap.sse.common.media,
16 18
com.sap.sse.common.scalablevalue,
19
+ com.sap.sse.common.scalablevalue.impl,
17 20
com.sap.sse.common.search,
18 21
com.sap.sse.common.settings,
19 22
com.sap.sse.common.settings.generic,
java/com.sap.sse.common/src/com/sap/sse/common/AbstractDistance.java
... ...
@@ -0,0 +1,107 @@
1
+package com.sap.sse.common;
2
+
3
+import com.sap.sse.common.impl.KilometersPerHourSpeedImpl;
4
+import com.sap.sse.common.impl.NauticalMileDistance;
5
+import com.sap.sse.common.impl.SecondsDurationImpl;
6
+
7
+public abstract class AbstractDistance implements Distance {
8
+
9
+ private static final long serialVersionUID = 4393500221539639333L;
10
+
11
+ @Override
12
+ public boolean equals(Object o) {
13
+ return (o instanceof Distance) && this.compareTo((Distance) o) == 0;
14
+ }
15
+
16
+ @Override
17
+ public int hashCode() {
18
+ return 9128347 ^ (int) getMeters();
19
+ }
20
+
21
+ @Override
22
+ public int compareTo(Distance o) {
23
+ final double meters = getMeters();
24
+ final double otherMeters = o.getMeters();
25
+ return meters > otherMeters ? 1 : meters == otherMeters ? 0 : -1;
26
+ }
27
+
28
+ private Speed inSeconds(double seconds) {
29
+ return new KilometersPerHourSpeedImpl(getKilometers() * 3600 / seconds);
30
+ }
31
+
32
+ @Override
33
+ public Speed inTime(long milliseconds) {
34
+ return new KilometersPerHourSpeedImpl(getKilometers() * 1000. * 3600. / milliseconds);
35
+ }
36
+
37
+ @Override
38
+ public Speed inTime(Duration duration) {
39
+ return inSeconds(duration.asSeconds());
40
+ }
41
+
42
+ @Override
43
+ public Duration atSpeed(Speed speed) {
44
+ return new SecondsDurationImpl(getMeters() / speed.getMetersPerSecond());
45
+ }
46
+
47
+ @Override
48
+ public double getNauticalMiles() {
49
+ return getMeters() / Mile.METERS_PER_NAUTICAL_MILE;
50
+ }
51
+
52
+ @Override
53
+ public double getMeters() {
54
+ return getNauticalMiles() * Mile.METERS_PER_NAUTICAL_MILE;
55
+ }
56
+
57
+ @Override
58
+ public double getKilometers() {
59
+ return getMeters() / 1000;
60
+ }
61
+
62
+ @Override
63
+ public double getGeographicalMiles() {
64
+ return getMeters() / Mile.METERS_PER_GEOGRAPHICAL_MILE;
65
+ }
66
+
67
+ @Override
68
+ public double getSeaMiles() {
69
+ return getMeters() / Mile.METERS_PER_SEA_MILE;
70
+ }
71
+
72
+ @Override
73
+ public double getCentralAngleDeg() {
74
+ return getCentralAngleRad() / Math.PI * 180.; // one geographical mile equals one minute
75
+ }
76
+
77
+ @Override
78
+ public double getCentralAngleRad() {
79
+ return getCentralAngleDeg() * Math.PI / 180.;
80
+ }
81
+
82
+ @Override
83
+ public String toString() {
84
+ return getMeters()+"m";
85
+ }
86
+
87
+ @Override
88
+ public Distance add(Distance d) {
89
+ return new NauticalMileDistance(getNauticalMiles()+d.getNauticalMiles());
90
+ }
91
+
92
+ @Override
93
+ public double divide(Distance other) {
94
+ return getMeters() / other.getMeters();
95
+ }
96
+
97
+ @Override
98
+ public Distance abs() {
99
+ final Distance result;
100
+ if (getMeters() >= 0) {
101
+ result = this;
102
+ } else {
103
+ result = scale(-1);
104
+ }
105
+ return result;
106
+ }
107
+}
java/com.sap.sse.common/src/com/sap/sse/common/AbstractPosition.java
... ...
@@ -0,0 +1,279 @@
1
+package com.sap.sse.common;
2
+
3
+import com.sap.sse.common.impl.CentralAngleDistance;
4
+import com.sap.sse.common.impl.DegreeBearingImpl;
5
+import com.sap.sse.common.impl.DegreePosition;
6
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
7
+import com.sap.sse.common.impl.RadianBearingImpl;
8
+import com.sap.sse.common.impl.RadianPosition;
9
+import com.sap.sse.common.util.RoundingUtil;
10
+
11
+public class AbstractPosition implements Position {
12
+ private static final long serialVersionUID = -3057027562787541064L;
13
+
14
+ public int hashCode() {
15
+ return (int) (4711. * getLngRad() * getLatRad());
16
+ }
17
+
18
+ public boolean equals(Object o) {
19
+ if (o == null) {
20
+ return false;
21
+ } if (this == o) {
22
+ return true;
23
+ } else {
24
+ return o instanceof Position && getLatRad() == ((Position) o).getLatRad()
25
+ && getLngRad() == ((Position) o).getLngRad();
26
+ }
27
+ }
28
+
29
+ @Override
30
+ public double getLngRad() {
31
+ return getLngDeg() / 180. * Math.PI;
32
+ }
33
+
34
+ @Override
35
+ public double getLatRad() {
36
+ return getLatDeg() / 180. * Math.PI;
37
+ }
38
+
39
+ @Override
40
+ public double getLatDeg() {
41
+ return getLatRad() / Math.PI * 180.;
42
+ }
43
+
44
+ @Override
45
+ public double getLngDeg() {
46
+ return getLngRad() / Math.PI * 180.;
47
+ }
48
+
49
+ @Override
50
+ public double getCentralAngleRad(Position p) {
51
+ // Sinnott:
52
+ double dLat = p.getLatRad() - getLatRad();
53
+ double dLon = p.getLngRad() - getLngRad();
54
+ double a = Math.sin(dLat / 2.) * Math.sin(dLat / 2.) + Math.cos(getLatRad()) * Math.cos(p.getLatRad())
55
+ * Math.sin(dLon / 2.) * Math.sin(dLon / 2.);
56
+ return 2. * Math.atan2(Math.sqrt(a), Math.sqrt(1. - a));
57
+ // Spherical Law of Cosines; simpler formula, but doesn't work well for very small distances
58
+ // return Math.acos(Math.sin(getLatRad()) * Math.sin(p.getLatRad())
59
+ // + Math.cos(getLatRad()) * Math.cos(p.getLatRad())
60
+ // * Math.cos(p.getLngRad() - getLngRad()));
61
+ }
62
+
63
+ @Override
64
+ public Distance getDistance(Position p) {
65
+ final Distance result;
66
+ if (p == this || this.equals(p)) {
67
+ result = Distance.NULL;
68
+ } else {
69
+ result = new CentralAngleDistance(getCentralAngleRad(p));
70
+ }
71
+ return result;
72
+ }
73
+
74
+ @Override
75
+ public double getQuickApproximateNauticalMileDistance(Position p) {
76
+ double latDeg = getLatDeg();
77
+ double pLatDeg = p.getLatDeg();
78
+ final double latDiffDeg = Math.abs(latDeg - pLatDeg);
79
+ double cosineOfAverageLatitude = Math.cos((latDeg+pLatDeg)/2./180.*Math.PI);
80
+ final double normalizedLngDiffDeg = cosineOfAverageLatitude * Math.abs(getLngDeg() - p.getLngDeg());
81
+ // One degree of latitude or one degree of longitude at the equator each correspond to 60 nautical miles.
82
+ return Math.sqrt(latDiffDeg*latDiffDeg + normalizedLngDiffDeg*normalizedLngDiffDeg) * 60.;
83
+ }
84
+
85
+ @Override
86
+ public Bearing getBearingGreatCircle(Position p) {
87
+ final Bearing bearing;
88
+ if (p != null) {
89
+ double result = Math.atan2(Math.sin(p.getLngRad() - getLngRad()) * Math.cos(p.getLatRad()),
90
+ Math.cos(getLatRad()) * Math.sin(p.getLatRad())
91
+ - Math.sin(getLatRad()) * Math.cos(p.getLatRad()) * Math.cos(p.getLngRad() - getLngRad()));
92
+ if (result < 0) {
93
+ result = result + 2 * Math.PI;
94
+ }
95
+ bearing = new RadianBearingImpl(result);
96
+ } else {
97
+ bearing = null;
98
+ }
99
+ return bearing;
100
+ }
101
+
102
+ @Override
103
+ public Position translateRhumb(Bearing bearing, Distance distance) {
104
+ /*
105
+ * This algorithm is limited to distances such that dlon < pi/2, i.e those that extend around less than one
106
+ * quarter of the circumference of the earth in longitude. A completely general, but more complicated algorithm
107
+ * is necessary if greater distances are allowed.
108
+ */
109
+ double distanceRad = distance.getKilometers() / 6371.0; // r = 6371 means earth's radius in km
110
+ double lat1 = getLatRad();
111
+ double lon1 = getLngRad();
112
+ double bearingRad = bearing.getRadians();
113
+ double lat2 = Math.asin(Math.sin(lat1) * Math.cos(distanceRad) + Math.cos(lat1) * Math.sin(distanceRad)
114
+ * Math.cos(bearingRad));
115
+ double lon2 = lon1
116
+ + Math.atan2(Math.sin(bearingRad) * Math.sin(distanceRad) * Math.cos(lat1), Math.cos(distanceRad)
117
+ - Math.sin(lat1) * Math.sin(lat2));
118
+ lon2 = (lon2 + 3 * Math.PI) % (2 * Math.PI) - Math.PI; // normalize to -180..+180
119
+ return new DegreePosition(lat2 / Math.PI * 180., lon2 / Math.PI * 180.);
120
+ }
121
+
122
+ @Override
123
+ public Position translateGreatCircle(Bearing bearing, Distance distance) {
124
+ double lat = Math.asin(Math.sin(getLatRad()) * Math.cos(distance.getCentralAngleRad()) + Math.cos(getLatRad())
125
+ * Math.sin(distance.getCentralAngleRad()) * Math.cos(bearing.getRadians()));
126
+ double lng = getLngRad()
127
+ + Math.atan2(
128
+ Math.sin(bearing.getRadians()) * Math.sin(distance.getCentralAngleRad())
129
+ * Math.cos(getLatRad()),
130
+ Math.cos(distance.getCentralAngleRad()) - Math.sin(getLatRad()) * Math.sin(lat));
131
+ return new RadianPosition(lat, lng);
132
+ }
133
+
134
+ @Override
135
+ public Distance absoluteCrossTrackError(Position p, Bearing bearing) {
136
+ return new CentralAngleDistance(Math.abs(crossTrackError(p, bearing).getCentralAngleRad()));
137
+ }
138
+
139
+ @Override
140
+ public Distance crossTrackError(Position p, Bearing bearing) {
141
+ return new CentralAngleDistance(Math.asin(Math.sin(p.getCentralAngleRad(this))
142
+ * Math.sin(p.getBearingGreatCircle(this).getRadians() - bearing.getRadians())));
143
+ }
144
+
145
+ @Override
146
+ public Position projectToLineThrough(Position pos, Bearing bearing) {
147
+ return pos.translateGreatCircle(bearing, this.alongTrackDistance(pos, bearing));
148
+ }
149
+
150
+ @Override
151
+ public Distance alongTrackDistance(Position from, Bearing bearing) {
152
+ final Distance result;
153
+ if (from != null && bearing != null) {
154
+ double direction = Math.signum(Math.cos(from.getBearingGreatCircle(this).getRadians() - bearing.getRadians()));
155
+ // Test if denominator gets ridiculously small; if so, the cross-track error is about 90� central angle.
156
+ // This means that the cross-track error is maximized, and that there is no way to determine how far along
157
+ // the great circle described by pos2 and bearing we should travel. This is an exception which will
158
+ // surface as a division-by-zero exception or a NaN result
159
+ result = new CentralAngleDistance(direction
160
+ * Math.acos(Math.cos(from.getCentralAngleRad(this))
161
+ / Math.cos(crossTrackError(from, bearing).getCentralAngleRad())));
162
+ } else {
163
+ result = null;
164
+ }
165
+ return result;
166
+ }
167
+
168
+ @Override
169
+ public Distance getDistanceToLine(Position left, Position right) {
170
+ final Distance result;
171
+ final Distance crossTrackError = this.crossTrackError(left, left.getBearingGreatCircle(right));
172
+ final int factor = crossTrackError.getMeters()>0?1:-1;
173
+ double toLeft = Math.abs(left.getBearingGreatCircle(this).getDifferenceTo(left.getBearingGreatCircle(right))
174
+ .getDegrees());
175
+ double toRight = Math.abs(right.getBearingGreatCircle(this).getDifferenceTo(right.getBearingGreatCircle(left))
176
+ .getDegrees());
177
+ if (toLeft > 90) {
178
+ result = this.getDistance(left).scale(factor);
179
+ } else if (toRight > 90) {
180
+ result = this.getDistance(right).scale(factor);
181
+ } else {
182
+ result = crossTrackError;
183
+ }
184
+ return result;
185
+ }
186
+
187
+ @Override
188
+ public Position getLocalCoordinates(Position localOrigin, Bearing localEquatorBearing) {
189
+ return this.getTargetCoordinates(localOrigin, localEquatorBearing, new DegreePosition(0.0, 0.0), new DegreeBearingImpl(90.0));
190
+ }
191
+
192
+ @Override
193
+ public Position getTargetCoordinates(Position localOrigin, Bearing localEquatorBearing, Position targetOrigin, Bearing targetEquatorBearing) {
194
+ Bearing localBearing = localEquatorBearing.getDifferenceTo(localOrigin.getBearingGreatCircle(this));
195
+ Distance localDistance = this.getDistance(localOrigin);
196
+ return targetOrigin.translateGreatCircle(targetEquatorBearing.add(localBearing), localDistance);
197
+ }
198
+
199
+ @Override
200
+ public String toString() {
201
+ return "(" + getLatDeg() + "," + getLngDeg() + ")";
202
+ }
203
+
204
+ @Override
205
+ public Position getIntersection(Bearing thisBearing, Position to, Bearing toBearing) {
206
+ /*
207
+ * See http://www.movable-type.co.uk/scripts/latlong-vectors.html#intersection for explanation
208
+ */
209
+ double radBearing1 = thisBearing.getRadians();
210
+ double radLatPos1 = getLatRad();
211
+ double radLngPos1 = getLngRad();
212
+ double[] greatCircle1 = createGreatCircleVector(radBearing1, radLatPos1, radLngPos1);
213
+ double radBearing2 = toBearing.getRadians();
214
+ double radLatPos2 = to.getLatRad();
215
+ double radLngPos2 = to.getLngRad();
216
+ double[] greatCircle2 = createGreatCircleVector(radBearing2, radLatPos2, radLngPos2);
217
+ double[] intersection1 = computeCrossProductOf3PartVectors(greatCircle1, greatCircle2);
218
+ double[] intersection2 = computeCrossProductOf3PartVectors(greatCircle2, greatCircle1);
219
+ Position intersectionPosition1 = cartesianVectorToPosition(intersection1);
220
+ Position intersectionPosition2 = cartesianVectorToPosition(intersection2);
221
+ Distance sumOfDistances1 = getDistance(intersectionPosition1).add(intersectionPosition1.getDistance(to));
222
+ Distance sumOfDistances2 = getDistance(intersectionPosition2).add(intersectionPosition2.getDistance(to));
223
+ return sumOfDistances1.compareTo(sumOfDistances2) < 0 ? intersectionPosition1 : intersectionPosition2;
224
+ }
225
+
226
+ @Override
227
+ public SpeedWithBearing getSpeedWithBearingToReachOnGreatCircle(Position to, Duration inTime) {
228
+ final Bearing bearing = getBearingGreatCircle(to);
229
+ final Distance distance = getDistance(to);
230
+ final Speed speed = distance.inTime(inTime);
231
+ return new KnotSpeedWithBearingImpl(speed.getKnots(), bearing);
232
+ }
233
+
234
+ private Position cartesianVectorToPosition(double[] vector) {
235
+ double lat = Math.atan2(vector[2], Math.sqrt(vector[0]*vector[0] + vector[1]*vector[1]));
236
+ double lng = Math.atan2(vector[1], vector[0]);
237
+ return new RadianPosition(lat, lng);
238
+ }
239
+
240
+ private double[] computeCrossProductOf3PartVectors(double[] vec1, double[] vec2) {
241
+ double[] crossProduct= new double[3];
242
+ crossProduct[0] = vec1[1]*vec2[2] - vec1[2]*vec2[1];
243
+ crossProduct[1] = vec1[2]*vec2[0] - vec1[0]*vec2[2];
244
+ crossProduct[2] = vec1[0]*vec2[1] - vec1[1]*vec2[0];
245
+ return crossProduct;
246
+ }
247
+
248
+ private double[] createGreatCircleVector(double radBearing, double radLatPos, double radLngPos) {
249
+ double[] greatCircle = new double[3];
250
+ greatCircle[0] = Math.sin(radLngPos) * Math.cos(radBearing) - Math.sin(radLatPos) * Math.cos(radLngPos) * Math.sin(radBearing);
251
+ greatCircle[1] = -Math.cos(radLngPos) * Math.cos(radBearing) - Math.sin(radLatPos) * Math.sin(radLngPos) * Math.sin(radBearing);
252
+ greatCircle[2] = Math.cos(radLatPos) * Math.sin(radBearing);
253
+ return greatCircle;
254
+ }
255
+
256
+ @Override
257
+ public String getAsDegreesAndDecimalMinutesWithCardinalPoints() {
258
+ final String lat = (getLatDeg()>=0 ? "N" : "S") + getDegreesAndDecimalMinutesOfNonNegativeAngle(Math.abs(getLatDeg()), /* degreePlaces */ 2, /* minuteDecimals */ 3);
259
+ final String lng = (getLngDeg()>=0 ? "E" : "W") + getDegreesAndDecimalMinutesOfNonNegativeAngle(Math.abs(getLngDeg()), /* degreePlaces */ 3, /* minuteDecimals */ 3);
260
+ return lat+" "+lng;
261
+ }
262
+
263
+ private String getDegreesAndDecimalMinutesOfNonNegativeAngle(double nonNegativeAngle, int degreePlaces, int minuteDecimals) {
264
+ final double abs = Math.abs(nonNegativeAngle);
265
+ int integerDegrees = (int) nonNegativeAngle;
266
+ double minutes = RoundingUtil.format((abs-(int) abs)*60.0, 3);
267
+ if (minutes >= 60.0) {
268
+ minutes -= 60.0;
269
+ integerDegrees++;
270
+ }
271
+ return Util.padPositiveValue(integerDegrees, degreePlaces, 0, /* round */ true) + "°"+
272
+ Util.padPositiveValue(minutes, 2, minuteDecimals, /* round */ true)+"'";
273
+ }
274
+
275
+ @Override
276
+ public String getAsSignedDecimalDegrees() {
277
+ return "("+getLatDeg()+", "+getLngDeg()+")";
278
+ }
279
+}
java/com.sap.sse.common/src/com/sap/sse/common/AbstractSpeedImpl.java
... ...
@@ -0,0 +1,85 @@
1
+package com.sap.sse.common;
2
+
3
+import com.sap.sse.common.impl.KnotSpeedImpl;
4
+import com.sap.sse.common.impl.NauticalMileDistance;
5
+import com.sap.sse.common.impl.SecondsDurationImpl;
6
+
7
+public abstract class AbstractSpeedImpl implements Speed {
8
+
9
+ private static final long serialVersionUID = 4910662213901175982L;
10
+
11
+ @Override
12
+ public double getBeaufort() {
13
+ return Math.exp(Math.log(getMetersPerSecond()/0.8360) * 2./3.);
14
+ }
15
+
16
+ @Override
17
+ public Distance travel(TimePoint t1, TimePoint t2) {
18
+ return travel(t1.until(t2));
19
+ }
20
+
21
+ @Override
22
+ public Distance travel(Duration duration) {
23
+ return new NauticalMileDistance(duration.asHours() * getKnots());
24
+ }
25
+
26
+ @Override
27
+ public Duration getDuration(Distance distance) {
28
+ return distance == null ? null : new SecondsDurationImpl(distance.getMeters() / getMetersPerSecond());
29
+ }
30
+
31
+ @Override
32
+ public double getMetersPerSecond() {
33
+ return getKnots() * Mile.METERS_PER_NAUTICAL_MILE / 3600;
34
+ }
35
+
36
+ @Override
37
+ public double getKilometersPerHour() {
38
+ return getKnots() * Mile.METERS_PER_NAUTICAL_MILE / 1000;
39
+ }
40
+
41
+ @Override
42
+ public double getStatuteMilesPerHour() {
43
+ return getMetersPerSecond() * 2.2369;
44
+ }
45
+
46
+ @Override
47
+ public int compareTo(Speed speed) {
48
+ final double metersPerSecond = getMetersPerSecond();
49
+ final double otherMetersPerSecond = speed.getMetersPerSecond();
50
+ return Double.compare(metersPerSecond, otherMetersPerSecond);
51
+ }
52
+
53
+ @Override
54
+ public String toString() {
55
+ return ""+getKnots()+"kn";
56
+ }
57
+
58
+ @Override
59
+ public int hashCode() {
60
+ return 31 * (int) getMetersPerSecond();
61
+ }
62
+
63
+ @Override
64
+ public boolean equals(Object object) {
65
+ if (object == null || !(object instanceof Speed)) {
66
+ return false;
67
+ }
68
+ return getMetersPerSecond() == ((Speed) object).getMetersPerSecond();
69
+ }
70
+
71
+ @Override
72
+ public double getKnots() {
73
+ return getKilometersPerHour() * 1000. / Mile.METERS_PER_NAUTICAL_MILE;
74
+ }
75
+
76
+ @Override
77
+ public double divide(Speed speed) {
78
+ return getKnots() / speed.getKnots();
79
+ }
80
+
81
+ @Override
82
+ public Speed scale(double d) {
83
+ return new KnotSpeedImpl(getKnots()*d);
84
+ }
85
+}
java/com.sap.sse.common/src/com/sap/sse/common/BearingChangeAnalyzer.java
... ...
@@ -0,0 +1,36 @@
1
+package com.sap.sse.common;
2
+
3
+import com.sap.sse.common.impl.BearingChangeAnalyzerImpl;
4
+
5
+/**
6
+ * Helps analyze a change of a course over ground / {@link Bearing} and in particular can judge whether
7
+ * such a course change passed over a certain other course over ground / {@link Bearing}.
8
+ *
9
+ * @author Axel Uhl (d043530)
10
+ *
11
+ */
12
+public interface BearingChangeAnalyzer {
13
+ BearingChangeAnalyzer INSTANCE = new BearingChangeAnalyzerImpl();
14
+
15
+ /**
16
+ * Determines whether during a maneuver a certain course was reached and crossed. When used with the wind direction,
17
+ * this can tell whether a boat tacked or jibed.
18
+ *
19
+ * @param totalCourseChangeInDegrees
20
+ * tells how far and to which direction the course was changed. Positive values mean a change to
21
+ * {@link NauticalSide#STARBOARD}, negative values to {@link NauticalSide#PORT}. This is required to
22
+ * understand over which side the competitor reached the new course from the old course; if could have
23
+ * been either way. Example: if the <code>courseBeforeManeuver</code> was 355deg and the
24
+ * <code>courseAfterManeuver</code> was 005deg then if the <code>totalCourseChangeInDegrees</code> was
25
+ * positive then the competitor passed the 000deg course, whereas had the
26
+ * <code>totalCourseChangeInDegrees</code> been negative and less than 370deg then the competitor would
27
+ * have passed the 180deg course but not the 000deg course.
28
+ * @return the number of times that the course identified by
29
+ * <code>wasThisCourseReachedAndCrossedDuringManeuver</code> was crossed; <code>0</code> means it was not
30
+ * crossed; any positive number tells how many times it was crossed, otherwise. Numbers greater than
31
+ * <code>1</code> require <code>totalCourseChangeInDegrees</code> to be greater than 360 degrees.
32
+ *
33
+ */
34
+ int didPass(Bearing courseBeforeManeuver, double totalCourseChangeInDegrees,
35
+ Bearing courseAfterManeuver, Bearing wasThisCourseReachedAndCrossedDuringManeuver);
36
+}
java/com.sap.sse.common/src/com/sap/sse/common/BearingCluster.java
... ...
@@ -0,0 +1,57 @@
1
+package com.sap.sse.common;
2
+
3
+import com.sap.sse.common.confidence.BearingWithConfidence;
4
+import com.sap.sse.common.confidence.BearingWithConfidenceCluster;
5
+import com.sap.sse.common.confidence.impl.BearingWithConfidenceImpl;
6
+
7
+/**
8
+ * Contains a number of {@link Bearing} objects and maintains the average bearing. For a given {@link Bearing} it
9
+ * can determine the difference to this cluster's average bearing. It can also split the cluster into two, based
10
+ * on the two bearings farthest apart. The cluster can contain multiple occurrences of the same and also
11
+ * multiple occurrences of mutually equal {@link Bearing} objects which is one possible way of computing a
12
+ * weighted average.<p>
13
+ *
14
+ * It is assumed that bearings added to this cluster are no further than 180 degrees apart. Violating this
15
+ * rule will lead to unpredictable results.
16
+ *
17
+ * @author Axel Uhl (d043530)
18
+ *
19
+ */
20
+public class BearingCluster {
21
+ private final BearingWithConfidenceCluster<Void> cluster;
22
+
23
+ public BearingCluster() {
24
+ cluster = new BearingWithConfidenceCluster<Void>(/* weigher */ null);
25
+ }
26
+
27
+ private BearingCluster(BearingWithConfidenceCluster<Void> cluster) {
28
+ this.cluster = cluster;
29
+ }
30
+
31
+ public BearingCluster[] splitInTwo(double minimumDegreeDifferenceBetweenTacks) {
32
+ BearingWithConfidenceCluster<Void>[] array = cluster.splitInTwo(minimumDegreeDifferenceBetweenTacks, /* relativeTo */ null);
33
+ BearingCluster[] result = new BearingCluster[array.length];
34
+ int i=0;
35
+ for (BearingWithConfidenceCluster<Void> element : array) {
36
+ result[i++] = new BearingCluster(element);
37
+ }
38
+ return result;
39
+ }
40
+
41
+ public Bearing getAverage() {
42
+ BearingWithConfidence<Void> average = cluster.getAverage(null);
43
+ return average == null ? null : average.getObject();
44
+ }
45
+
46
+ public boolean isEmpty() {
47
+ return cluster.isEmpty();
48
+ }
49
+
50
+ public int size() {
51
+ return cluster.size();
52
+ }
53
+
54
+ public void add(Bearing bearing) {
55
+ cluster.add(new BearingWithConfidenceImpl<Void>(bearing, /* confidence */ 1.0, /* relativeTo */ null));
56
+ }
57
+}
java/com.sap.sse.common/src/com/sap/sse/common/Bounds.java
... ...
@@ -0,0 +1,42 @@
1
+package com.sap.sse.common;
2
+
3
+public interface Bounds {
4
+ Position getNorthEast();
5
+
6
+ Position getSouthWest();
7
+
8
+ Position getNorthWest();
9
+
10
+ Position getSouthEast();
11
+
12
+ Bounds intersect(Bounds other);
13
+
14
+ /**
15
+ * A short-hand for {@link #union}
16
+ */
17
+ Bounds extend(Bounds other);
18
+
19
+ Bounds extend(Position p);
20
+
21
+ Bounds union(Bounds other);
22
+
23
+ boolean intersects(Bounds other);
24
+
25
+ boolean contains(Position other);
26
+
27
+ boolean contains(Bounds other);
28
+
29
+ boolean isCrossesDateLine();
30
+
31
+ boolean containsLatDeg(double latDeg);
32
+
33
+ boolean containsLngDeg(double lngDeg);
34
+
35
+ boolean isEmpty();
36
+
37
+ /**
38
+ * @return the length of the diagonal from the {@link #getNorthWest() NW} to the {@link #getSouthEast() SE} corner
39
+ * of this bounding box
40
+ */
41
+ Distance getDiameter();
42
+}
java/com.sap.sse.common/src/com/sap/sse/common/CourseChange.java
... ...
@@ -0,0 +1,15 @@
1
+package com.sap.sse.common;
2
+
3
+/**
4
+ * A course change represents a change of the course over ground as well as the speed over ground.
5
+ * {@link SpeedWithBearing#applyCourseChange(CourseChange) Applying} this {@link CourseChange} object to a
6
+ * {@link SpeedWithBearing} results in the {@link SpeedWithBearing} as it was after this course change.
7
+ *
8
+ * @author Axel Uhl (d043530)
9
+ *
10
+ */
11
+public interface CourseChange {
12
+ double getCourseChangeInDegrees();
13
+
14
+ double getSpeedChangeInKnots();
15
+}
java/com.sap.sse.common/src/com/sap/sse/common/DoublePair.java
... ...
@@ -0,0 +1,20 @@
1
+package com.sap.sse.common;
2
+
3
+public class DoublePair {
4
+ private final double a;
5
+ private final double b;
6
+
7
+ public DoublePair(double a, double b) {
8
+ super();
9
+ this.a = a;
10
+ this.b = b;
11
+ }
12
+
13
+ public double getA() {
14
+ return a;
15
+ }
16
+
17
+ public double getB() {
18
+ return b;
19
+ }
20
+}
java/com.sap.sse.common/src/com/sap/sse/common/DoubleTriple.java
... ...
@@ -0,0 +1,26 @@
1
+package com.sap.sse.common;
2
+
3
+public class DoubleTriple {
4
+ private final double a;
5
+ private final double b;
6
+ private final double c;
7
+
8
+ public DoubleTriple(double a, double b, double c) {
9
+ super();
10
+ this.a = a;
11
+ this.b = b;
12
+ this.c = c;
13
+ }
14
+
15
+ public double getA() {
16
+ return a;
17
+ }
18
+
19
+ public double getB() {
20
+ return b;
21
+ }
22
+
23
+ public double getC() {
24
+ return c;
25
+ }
26
+}
java/com.sap.sse.common/src/com/sap/sse/common/Mile.java
... ...
@@ -0,0 +1,9 @@
1
+package com.sap.sse.common;
2
+
3
+public interface Mile {
4
+ static double METERS_PER_SEA_MILE = 1852.3;
5
+ static double METERS_PER_NAUTICAL_MILE = 1852;
6
+ static double METERS_PER_GEOGRAPHICAL_MILE = 400080. / 216. /* = 40008000/360/60 */;
7
+ static double METERS_PER_STATUTE_MILE = 1609.344;
8
+ static double METERS_PER_SECOND_PER_KNOT = METERS_PER_NAUTICAL_MILE / 3600.;
9
+}
java/com.sap.sse.common/src/com/sap/sse/common/Position.java
... ...
@@ -0,0 +1,143 @@
1
+package com.sap.sse.common;
2
+
3
+import java.io.Serializable;
4
+
5
+public interface Position extends Serializable {
6
+ double getLatRad();
7
+
8
+ double getLngRad();
9
+
10
+ double getLatDeg();
11
+
12
+ double getLngDeg();
13
+
14
+ /**
15
+ * Generates a string representation of the form S03°45.235' E003°22.837'
16
+ */
17
+ String getAsDegreesAndDecimalMinutesWithCardinalPoints();
18
+
19
+ /**
20
+ * Generates a string representation of the form (-3.7539166666, 3.3806166666)
21
+ */
22
+ String getAsSignedDecimalDegrees();
23
+
24
+ /**
25
+ * Central angle between this position and the other position, in radians
26
+ */
27
+ double getCentralAngleRad(Position p);
28
+
29
+ Distance getDistance(Position p);
30
+
31
+ /**
32
+ * The bearing from this position towards <code>p</code> on a great circle, using the shortest path.
33
+ *
34
+ * @return {@code null} if {@code p} is {@code null}, otherwise the bearing from {@code this} {@link Position} to
35
+ * {@code p} along a great circle
36
+ */
37
+ Bearing getBearingGreatCircle(Position p);
38
+
39
+ /**
40
+ * Translates along a rhumb line, assuming travel at constant bearing. This
41
+ * is therfore not translating along a great circle but as a straight line, e.g.,
42
+ * on a Marcator projection.
43
+ */
44
+ Position translateRhumb(Bearing bearing, Distance distance);
45
+
46
+ /**
47
+ * Translates along a great circle, assuming travel at varying bearing where
48
+ * <code>bearing</code> tells the bearing at this position. Invariant:
49
+ * <code>translate(getBearingGreatCircle(p), getDistance(p)).equals(p)</code>
50
+ */
51
+ Position translateGreatCircle(Bearing bearing, Distance distance);
52
+
53
+ /**
54
+ * Projects this position onto the great circle through <code>p</code> with bearing <code>bearing</code>. Note that
55
+ * if the angle between this position and the great circle is 90 degrees then there is no solution, and a
56
+ * <code>NaN</code> or exception will result.
57
+ */
58
+ Position projectToLineThrough(Position p, Bearing bearing);
59
+
60
+ /**
61
+ * @return an unsigned distance
62
+ */
63
+ Distance absoluteCrossTrackError(Position p, Bearing bearing);
64
+
65
+ /**
66
+ * @return a signed distance; positive distances mean that this position is to the right (starboard) of the
67
+ * line one gets when traveling from <code>p</code> with <code>bearing</code>
68
+ */
69
+ Distance crossTrackError(Position p, Bearing bearing);
70
+
71
+ /**
72
+ * Computes how far along the great circle starting at <code>from</code> and pointing to <code>bearing</code> one
73
+ * has to travel to reach the projection of this position onto the great circle described by <code>from</code> and
74
+ * <code>bearing</code>. Note that if the angle between this position and the great circle is 90 degrees then there
75
+ * is no solution, and a <code>NaN</code> or exception will result.
76
+ * <p>
77
+ *
78
+ * The distance returned will be negative if one needs to travel towards the reverse of {@code bearing} to reach this
79
+ * position starting at {@code from} on the shortest path.<p>
80
+ *
81
+ * If either <code>from</code> or <code>bearing</code> or both are <code>null</code>, <code>null</code> is returned.
82
+ */
83
+
84
+ Distance alongTrackDistance(Position from, Bearing bearing);
85
+
86
+ /**
87
+ * Computes the distance from this position to the line between <code>left</code> and <code>right</code>. This distance
88
+ * is positive if <code>left</code> is actually the position farther to the left, as seen from this position; negative
89
+ * otherwise.
90
+ */
91
+ Distance getDistanceToLine(Position left, Position right);
92
+
93
+ /**
94
+ * Transform a position into its representation in a local geo-coordinate frame where <code>localOrigin</code> is
95
+ * locally represented as <code>(latitude, longitude) = (0,0)</code> and <code>localEquatorBearing</code> is locally
96
+ * represented as <code>East = 90 degrees</code>.
97
+ * <p>
98
+ *
99
+ * This can be used to move a GPS-track to the origin <code>(0,0)</code> and aligning wind direction with North, or
100
+ * bearing of start line with East.
101
+ */
102
+ Position getLocalCoordinates(Position localOrigin, Bearing localEquatorBearing);
103
+
104
+ /**
105
+ * Transform a position from local geo-coordinate frame <code>(localOrigin, localEquatorBearing)</code>
106
+ * into the corresponding position in target geo-coordinate frame <code>(targetOrigin, targetEquatorBearing)</code>.
107
+ * The transformation is equivalent to a rotation of the earth, which moves <code>localOrigin</code>
108
+ * to <code>targetOrigin</code> while aligning <code>localEquatorBearing</code> to <code>targetEquatorBearing</code>.<p>
109
+ *
110
+ * This can be used to move a GPS-track from one location to another, in order to compare GPS-tracks from different areas
111
+ * by superposing and aligning them based on wind direction or bearing of start line.
112
+ */
113
+ Position getTargetCoordinates(Position localOrigin, Bearing localEquatorBearing, Position targetOrigin, Bearing targetEquatorBearing);
114
+
115
+ /**
116
+ * Computes an approximate distance between this position and <code>p</code> by
117
+ * using the average latitude's cosine to scale the longitudes and then calculate
118
+ * the distance non-spherically in an imaginary Euklidian plane. The error is below
119
+ * 1% even for several hundred nautical miles of randomly chosen distances, and even
120
+ * lower (~.1%) for distances below ten nautical miles.<p>
121
+ *
122
+ * The method executes efficiently and requires only one call to the cosine method.
123
+ */
124
+ double getQuickApproximateNauticalMileDistance(Position p);
125
+
126
+ /**
127
+ * Computes the intersection of two paths. The first path is defined by the underlying position and the parameter
128
+ * <code>thisBearing</code>. The second path is defined by parameters <code>to</code> and <code>toBearing</code>
129
+ *
130
+ * @param thisBearing defines first path with <code>this</code> position
131
+ * @param to defines second path with <code>toBearing</code>
132
+ * @param toBearing defines second path <code>to</code> position
133
+ * @return position of intersection. Since there are usually 2 intersections, we return the smaller intersection.
134
+ */
135
+ Position getIntersection(Bearing thisBearing, Position to, Bearing toBearing);
136
+
137
+ /**
138
+ * Calculates the speed vector needed to reach the {@code to} position from this position in time
139
+ * {@code inTime}. A {@link NullPointerException} will be thrown if either {@code to} or {@code inTime}
140
+ * is {@code null}.
141
+ */
142
+ SpeedWithBearing getSpeedWithBearingToReachOnGreatCircle(Position to, Duration inTime);
143
+}
java/com.sap.sse.common/src/com/sap/sse/common/Positioned.java
... ...
@@ -0,0 +1,7 @@
1
+package com.sap.sse.common;
2
+
3
+import java.io.Serializable;
4
+
5
+public interface Positioned extends Serializable {
6
+ Position getPosition();
7
+}
java/com.sap.sse.common/src/com/sap/sse/common/SpeedWithBearing.java
... ...
@@ -0,0 +1,48 @@
1
+package com.sap.sse.common;
2
+
3
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
4
+import com.sap.sse.datamining.annotations.Statistic;
5
+
6
+
7
+
8
+public interface SpeedWithBearing extends Speed {
9
+ @Statistic(messageKey="bearing", resultDecimals=1)
10
+ Bearing getBearing();
11
+
12
+ /**
13
+ * Traveling at this speed starting at time <code>from</code> in position <code>pos</code> until time
14
+ * </code>to</code>, how far have we traveled? If <code>to</code> is before </code>from</code>, the speed will be
15
+ * applied in reverse.
16
+ */
17
+ Position travelTo(Position pos, TimePoint from, TimePoint to);
18
+
19
+ default Position travelTo(Position from, Duration duration) {
20
+ return from.translateGreatCircle(getBearing(), travel(duration));
21
+ }
22
+
23
+ /**
24
+ * Computes the minimal (in terms of bearing change) course and speed change required to reach the
25
+ * target speed and bearing specified.
26
+ */
27
+ CourseChange getCourseChangeRequiredToReach(SpeedWithBearing targetSpeedWithBearing);
28
+
29
+ SpeedWithBearing applyCourseChange(CourseChange courseChange);
30
+
31
+ /**
32
+ * Projects this speed onto <code>bearing</code>. The speed will keep its sign, regardless of whether the <code>bearing</code> points in
33
+ * the opposite direction or not. The resulting speed can never be greater than this speed. If this speed's bearing is orthogonal to
34
+ * <code>bearing</code>, a zero speed will result.
35
+ *
36
+ * @param position the position at which to perform the projection; the angle between the bearings depends on the position
37
+ */
38
+ Speed projectTo(Position position, Bearing bearing);
39
+
40
+ /**
41
+ * Adds two directed speeds onto each other using vector addition.
42
+ */
43
+ SpeedWithBearing add(SpeedWithBearing other);
44
+
45
+ default SpeedWithBearing scale(double d) {
46
+ return new KnotSpeedWithBearingImpl(getKnots(), getBearing());
47
+ }
48
+}
java/com.sap.sse.common/src/com/sap/sse/common/confidence/BearingWithConfidence.java
... ...
@@ -0,0 +1,9 @@
1
+package com.sap.sse.common.confidence;
2
+
3
+import com.sap.sse.common.Bearing;
4
+import com.sap.sse.common.DoublePair;
5
+import com.sap.sse.common.scalablevalue.HasConfidenceAndIsScalable;
6
+
7
+
8
+public interface BearingWithConfidence<RelativeTo> extends HasConfidenceAndIsScalable<DoublePair, Bearing, RelativeTo> {
9
+}
java/com.sap.sse.common/src/com/sap/sse/common/confidence/BearingWithConfidenceCluster.java
... ...
@@ -0,0 +1,179 @@
1
+package com.sap.sse.common.confidence;
2
+
3
+import java.util.ArrayList;
4
+import java.util.Collections;
5
+import java.util.List;
6
+
7
+import com.sap.sse.common.Bearing;
8
+import com.sap.sse.common.DoublePair;
9
+import com.sap.sse.common.Util;
10
+import com.sap.sse.common.confidence.impl.BearingWithConfidenceImpl;
11
+
12
+/**
13
+ * Contains a number of {@link Bearing} objects and maintains the average bearing. For a given {@link Bearing} it
14
+ * can determine the difference to this cluster's average bearing. It can also split the cluster into two, based
15
+ * on the two bearings farthest apart. The cluster can contain multiple occurrences of the same and also
16
+ * multiple occurrences of mutually equal {@link Bearing} objects which is one possible way of computing a
17
+ * weighted average.<p>
18
+ *
19
+ * It is assumed that bearings added to this cluster are no further than 180 degrees apart. Violating this
20
+ * rule will lead to unpredictable results.
21
+ *
22
+ * @author Axel Uhl (d043530)
23
+ *
24
+ */
25
+public class BearingWithConfidenceCluster<RelativeTo> {
26
+ private final List<BearingWithConfidence<RelativeTo>> bearings;
27
+ private final Weigher<RelativeTo> weigher;
28
+ private final ConfidenceBasedAverager<DoublePair, Bearing, RelativeTo> averager;
29
+
30
+ /**
31
+ * @param weigher
32
+ * if <code>null</code>, the <code>relativeTo</code> parameter of {@link #getAverage(Object)} will be ignored,
33
+ * and only the confidences provided by the {@link BearingWithConfidence} objects will be taken into
34
+ * account. Otherwise, the <code>weigher</code> will be used to determine the confidence relative to
35
+ * the <code>relativeTo</code> argument of {@link #getAverage(Object)}.
36
+ */
37
+ public BearingWithConfidenceCluster(Weigher<RelativeTo> weigher) {
38
+ bearings = new ArrayList<BearingWithConfidence<RelativeTo>>();
39
+ this.weigher = weigher;
40
+ averager = ConfidenceFactory.INSTANCE.createAverager(weigher);
41
+ }
42
+
43
+ /**
44
+ * Finds the two bearings in the cluster that are farthest apart (at least <code>minimumDegreeDifferenceBetweenTacks</code>).
45
+ * Then, the remaining bearings in this cluster are associated with the one of the two extreme bearings to which they are
46
+ * closer. The two resulting clusters are returned.
47
+ *
48
+ * @param minimumDegreeDifferenceBetweenTacks
49
+ * tells the minimum degree difference that must exist between the two extreme bearings before they are
50
+ * considered to represent boats on different tacks. If more than one bearing exists in this cluster
51
+ * but no two bearings are at least <code>minimumDegreeDifferenceBetweenTacks</code> degrees apart from
52
+ * each other, only fir first of the two clusters returned will contain bearings while the second one
53
+ * remains empty.
54
+ * @return two bearing clusters; both empty if this cluster is empty; only the second one empty if this cluster
55
+ * contains only one bearing. Otherwise, the two bearings farthest apart (greatest absolute
56
+ * {@link Bearing#getDifferenceTo(Bearing) difference}) are guaranteed to be in different clusters, and
57
+ * all other bearings contained in this cluster will be contained in the cluster that contains the extreme
58
+ * bearing to which it's closer.
59
+ */
60
+ public BearingWithConfidenceCluster<RelativeTo>[] splitInTwo(double minimumDegreeDifferenceBetweenTacks, RelativeTo relativeTo) {
61
+ BearingWithConfidenceCluster<RelativeTo>[] result = createBearingClusterArraySizeTwo();
62
+ result[0] = createEmptyCluster();
63
+ result[1] = createEmptyCluster();
64
+ if (bearings.size() >= 2) {
65
+ Util.Pair<BearingWithConfidence<RelativeTo>, BearingWithConfidence<RelativeTo>> extremeBearings = getExtremeBearings(minimumDegreeDifferenceBetweenTacks);
66
+ if (extremeBearings != null) {
67
+ result[0].add(extremeBearings.getA());
68
+ result[1].add(extremeBearings.getB());
69
+ }
70
+ for (BearingWithConfidence<RelativeTo> bearing : bearings) {
71
+ if (extremeBearings == null || (bearing != extremeBearings.getA() && bearing != extremeBearings.getB())) {
72
+ if (extremeBearings == null
73
+ || result[0].getDifferenceFromAverage(bearing.getObject(), relativeTo) <= result[1]
74
+ .getDifferenceFromAverage(bearing.getObject(), relativeTo)) {
75
+ result[0].add(bearing);
76
+ } else {
77
+ result[1].add(bearing);
78
+ }
79
+ }
80
+ }
81
+ } else if (!bearings.isEmpty()) {
82
+ // add the only bearing to the first of the two resulting clusters
83
+ result[0].add(bearings.get(0));
84
+ }
85
+ return result;
86
+ }
87
+
88
+ @SuppressWarnings("unchecked")
89
+ protected BearingWithConfidenceCluster<RelativeTo>[] createBearingClusterArraySizeTwo() {
90
+ return (BearingWithConfidenceCluster<RelativeTo>[]) new BearingWithConfidenceCluster<?>[2];
91
+ }
92
+
93
+ /**
94
+ * To avoid that a bearing with low confidence decides about the clustering, the difference between two bearings
95
+ * is scaled by their confidences. This scaled distance is then maximized for those bearings at least
96
+ * <code>minimumDegreeDifferenceBetweenTacks</code> degrees apart.
97
+ */
98
+ private Util.Pair<BearingWithConfidence<RelativeTo>, BearingWithConfidence<RelativeTo>> getExtremeBearings(double minimumDegreeDifferenceBetweenTacks) {
99
+ assert bearings.size() >= 2;
100
+ double maxAbsDegDiff = 0;
101
+ Util.Pair<BearingWithConfidence<RelativeTo>, BearingWithConfidence<RelativeTo>> result = null;
102
+ for (int i=0; i<bearings.size(); i++) {
103
+ for (int j=i+1; j<bearings.size(); j++) {
104
+ final double confidenceScaledDifference = getConfidenceScaledDifference(bearings.get(i), bearings.get(j));
105
+ if (Math.abs(bearings.get(i).getObject().getDifferenceTo(bearings.get(j).getObject()).getDegrees()) >= minimumDegreeDifferenceBetweenTacks
106
+ && confidenceScaledDifference > maxAbsDegDiff) {
107
+ result = new Util.Pair<BearingWithConfidence<RelativeTo>, BearingWithConfidence<RelativeTo>>(bearings.get(i), bearings.get(j));
108
+ maxAbsDegDiff = confidenceScaledDifference;
109
+ assert Math.abs(bearings.get(i).getObject().getDifferenceTo(bearings.get(j).getObject()).getDegrees()) <= 180.;
110
+ }
111
+ }
112
+ }
113
+ return result;
114
+ }
115
+
116
+ private double getConfidenceScaledDifference(BearingWithConfidence<RelativeTo> bearingWithConfidence1,
117
+ BearingWithConfidence<RelativeTo> bearingWithConfidence2) {
118
+ return Math.abs(bearingWithConfidence1.getObject().getDifferenceTo(bearingWithConfidence2.getObject()).getDegrees()) *
119
+ bearingWithConfidence1.getConfidence() * bearingWithConfidence2.getConfidence();
120
+ }
121
+
122
+ public boolean isEmpty() {
123
+ return bearings.isEmpty();
124
+ }
125
+
126
+ public int size() {
127
+ return bearings.size();
128
+ }
129
+
130
+ /**
131
+ * Adds the <code>bearing</code> if its {@link BearingWithConfidence#getConfidence() confidence} is greater than 0.0
132
+ */
133
+ public void add(BearingWithConfidence<RelativeTo> bearing) {
134
+ if (bearing.getConfidence() > 0) {
135
+ bearings.add(bearing);
136
+ }
137
+ }
138
+
139
+ /**
140
+ * If the cluster contains no bearings, <code>null</code> is returned. Otherwise, the average angle is computed
141
+ * by adding up the sin and cos values of the individual bearings, then computing the atan2 of the ratio. If the
142
+ * combined confidence of the bearings in the cluster is 0.0, the result will contain <code>null</code> as
143
+ * {@link BearingWithConfidence#getObject() object}.
144
+ *
145
+ * TODO bug5576 comment 40: we could analyze the cluster's variance and let greater variances reduce the confidence
146
+ */
147
+ public BearingWithConfidence<RelativeTo> getAverage(RelativeTo relativeTo) {
148
+ HasConfidence<DoublePair, Bearing, RelativeTo> average = averager.getAverage(getBearings(), relativeTo);
149
+ return average == null ? null : new BearingWithConfidenceImpl<RelativeTo>(average.getObject(), average.getConfidence(), average.getRelativeTo());
150
+ }
151
+
152
+ /**
153
+ * Absolute difference to {@link #getAverage() this cluster's average bearing} in degrees. If there is no bearing stored in
154
+ * this cluster yet, or the combined confidence of the values in the cluster is 0.0, 0.0 is returned.
155
+ *
156
+ * @return a value <code>&gt;=0.0</code>
157
+ */
158
+ private double getDifferenceFromAverage(Bearing bearing, RelativeTo relativeTo) {
159
+ Bearing averageBearing = getAverage(relativeTo).getObject();
160
+ return averageBearing == null ? 0.0 : Math.abs(averageBearing.getDifferenceTo(bearing).getDegrees());
161
+ }
162
+
163
+ protected Iterable<BearingWithConfidence<RelativeTo>> getBearings() {
164
+ return Collections.unmodifiableCollection(bearings);
165
+ }
166
+
167
+ @Override
168
+ public String toString() {
169
+ return bearings.toString();
170
+ }
171
+
172
+ private BearingWithConfidenceCluster<RelativeTo> createEmptyCluster() {
173
+ return new BearingWithConfidenceCluster<RelativeTo>(weigher);
174
+ }
175
+
176
+ public void clear() {
177
+ bearings.clear();
178
+ }
179
+}
java/com.sap.sse.common/src/com/sap/sse/common/confidence/ConfidenceBasedAverager.java
... ...
@@ -0,0 +1,25 @@
1
+package com.sap.sse.common.confidence;
2
+
3
+import java.util.Iterator;
4
+
5
+import com.sap.sse.common.scalablevalue.HasConfidenceAndIsScalable;
6
+
7
+public interface ConfidenceBasedAverager<ValueType, BaseType, RelativeTo> {
8
+ /**
9
+ * If a non-<code>null</code> weigher has been set for this averager, <code>at</code> must be a valid reference
10
+ * point to which the weigher will determine the difference and from it the confidence for each of the
11
+ * <code>values</code>. Otherwise, the <code>at</code> argument is ignored.
12
+ *
13
+ * @return <code>null</code> if <code>values==null</code> or <code>values</code> is empty; otherwise, a non-
14
+ * <code>null</code> average with confidence is returned. Note, however, that the
15
+ * {@link HasConfidence#getObject() object} in the {@link HasConfidence} result may be <code>null</code>,
16
+ * e.g., if the combined confidence went to 0.0 and the averager was unable to determine a reasonable
17
+ * average value. The result's confidence is the arithmetic average of the confidences of all values
18
+ * that contributed to the result.
19
+ */
20
+ HasConfidence<ValueType, BaseType, RelativeTo> getAverage(
21
+ Iterable<? extends HasConfidenceAndIsScalable<ValueType, BaseType, RelativeTo>> values, RelativeTo at);
22
+
23
+ HasConfidence<ValueType, BaseType, RelativeTo> getAverage(
24
+ Iterator<? extends HasConfidenceAndIsScalable<ValueType, BaseType, RelativeTo>> values, RelativeTo at);
25
+}
java/com.sap.sse.common/src/com/sap/sse/common/confidence/ConfidenceFactory.java
... ...
@@ -0,0 +1,47 @@
1
+package com.sap.sse.common.confidence;
2
+
3
+import com.sap.sse.common.Distance;
4
+import com.sap.sse.common.Duration;
5
+import com.sap.sse.common.Position;
6
+import com.sap.sse.common.TimePoint;
7
+import com.sap.sse.common.confidence.impl.ConfidenceBasedAveragerFactoryImpl;
8
+
9
+public interface ConfidenceFactory {
10
+ ConfidenceFactory INSTANCE = new ConfidenceBasedAveragerFactoryImpl();
11
+
12
+ /**
13
+ * @param weigher
14
+ * used to determine the confidence of the elements to be averaged, relative to the reference point given
15
+ * as parameter to {@link ConfidenceBasedAverager#getAverage(Iterable, Object)}. If <code>null</code>,
16
+ * 1.0 will be assumed as default confidence for all values provided, regardless the reference point
17
+ * relative to which the average is to be computed
18
+ */
19
+ <ValueType, BaseType, RelativeTo> ConfidenceBasedAverager<ValueType, BaseType, RelativeTo> createAverager(Weigher<RelativeTo> weigher);
20
+
21
+ <RelativeTo> Weigher<RelativeTo> createConstantWeigher(double constantConfidence);
22
+
23
+ /**
24
+ * Creates a weigher for time points. With increasing time difference the weight/confidence decreases exponentially.
25
+ * It is halved every <code>halfConfidenceAfterMilliseconds</code> milliseconds.
26
+ */
27
+ Weigher<TimePoint> createExponentialTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds);
28
+
29
+ /**
30
+ * Like {@link #createExponentialTimeDifferenceWeigher(long)}, only that additionally a minimum confidence value is defined.
31
+ * This can be useful for averagers that have trouble with values scaled down with 0.0.
32
+ */
33
+ Weigher<TimePoint> createExponentialTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds, double minimumConfidence);
34
+
35
+ Weigher<TimePoint> createHyperbolicTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds);
36
+
37
+ Weigher<TimePoint> createStandardDistributionTimeDifferenceWeigher(Duration standardDeviation);
38
+
39
+ Weigher<TimePoint> createHyperbolicSquaredTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds);
40
+
41
+ /**
42
+ * Constructs a weigher that determines a confidence based on a distance. A {@link Distance#NULL zero distance}
43
+ * will yield a confidence of 1; a distance of <code>halfConfidence</code> will return a confidence of .5, and the
44
+ * confidence will decrease hyperbolically with increasing distance.
45
+ */
46
+ Weigher<Position> createHyperbolicDistanceWeigher(Distance halfConfidence);
47
+}
java/com.sap.sse.common/src/com/sap/sse/common/confidence/HasConfidence.java
... ...
@@ -0,0 +1,91 @@
1
+package com.sap.sse.common.confidence;
2
+
3
+import java.io.Serializable;
4
+
5
+import com.sap.sse.common.Distance;
6
+import com.sap.sse.common.TimePoint;
7
+import com.sap.sse.common.scalablevalue.ScalableValue;
8
+
9
+/**
10
+ * Some values, particularly those obtained from real-world measurements, are not always accurate. Some values are
11
+ * derived by interpolating or extrapolating data series obtained through measurement or even estimation. Some values
12
+ * are simply guessed by humans and entered into the system.
13
+ * <p>
14
+ *
15
+ * All those values have a certain level of confidence. In case multiple sources of information about the same entity or
16
+ * phenomenon are available, knowing the confidence of each value helps in weighing and averaging these values more
17
+ * properly than would be possible without a confidence value.
18
+ * <p>
19
+ *
20
+ * In simple cases, the type used to compute a weighed average over the things equipped with a confidence level is the
21
+ * same as the type of the things themselves. In particular, this is the case for scalar types such as {@link Double}
22
+ * and {@link Distance}. For non-scalar values, averaging may be non-trivial. For example, averaging a bearing cannot
23
+ * simply happen by computing the arithmetic average of the bearing's angles. Instead, an intermediate structure
24
+ * providing the sinus and cosinus values of the bearing's angle is used to compute the weighed average tangens.
25
+ * <p>
26
+ *
27
+ * Generally, the relationship between the type implementing this interface, the <code>ValueType</code> and the
28
+ * <code>AveragesTo</code> type is this: an instance of the implementing type can transform itself into a
29
+ * {@link ScalableValue} which is then used for computing a weighed sum. The values' weight is their
30
+ * {@link #getConfidence() confidence}. The sum (which is still a {@link ScalableValue} because
31
+ * {@link ScalableValue#add(ScalableValue)} returns again a {@link ScalableValue}) is then
32
+ * {@link ScalableValue#divide(double) divided} by the sum of the confidences. This "division" is expected to
33
+ * produce an object of type <code>AveragesTo</code>. Usually, <code>AveragesTo</code> would be the same as the class
34
+ * implementing this interface.
35
+ *
36
+ * @author Axel Uhl (d043530)
37
+ *
38
+ * @param <ValueType>
39
+ * the type of the scalable value used for scalar operations during aggregation
40
+ * @param <RelativeTo>
41
+ * the type of the object relative to which the confidence applies; for example, if the
42
+ * base type is a position and the <code>RelativeTo</code> type is {@link TimePoint},
43
+ * the confidence of the position is relative to a certain time point. Together with
44
+ * a correspondingly-typed weigher, such a value with confidence can be aggregated with
45
+ * other values, again relative to (maybe a different) time point.
46
+ */
47
+public interface HasConfidence<ValueType, BaseType, RelativeTo> extends Serializable {
48
+ /**
49
+ * A confidence is a number between 0.0 and 1.0 (inclusive) where 0.0 means that the value is randomly guessed while
50
+ * 1.0 means the value is authoritatively known for a fact. It represents the weight with which a value is to be
51
+ * considered by averaging, interpolation and extrapolation algorithms.
52
+ * <p>
53
+ *
54
+ * An averaging algorithm for a sequence of <code>n</code> tuples <code>(v1, c1), ..., (vn, cn)</code> of a value
55
+ * <code>vi</code> with a confidence <code>ci</code> each can for example look like this:
56
+ * <code>a := (c1*v1 + ... + cn*vn) / (c1 + ... + cn)</code>. For a single value with a confidence this trivially
57
+ * results in <code>c1*v1 / (c1)</code> which is equivalent to <code>v1</code>. As another example, consider two
58
+ * values with equal confidence <code>0.8</code>. Then, <code>a := (0.8*v1 + 0.8*vn) / (0.8 + 0.8)</code> which
59
+ * resolves to <code>0.5*v1 + 0.5*v2</code> which is obviously the arithmetic mean of the two values. If one value
60
+ * has confidence <code>0.8</code> and the other <code>0.4</code>, then
61
+ * <code>a := (0.8*v1 + 0.4*vn) / (0.8 + 0.4)</code> which resolves to <code>2/3*v1 + 1/3*v2</code> which is a
62
+ * weighed average.
63
+ * <p>
64
+ *
65
+ * Note, that this doesn't exactly take facts for facts. In other words, if one value is provided with a confidence
66
+ * of <code>1.0</code>, the average may still be influenced by other values. However, this cleanly resolves otherwise
67
+ * mutually contradictory "facts" such a <code>(v1, 1.0), (v2, 1.0)</code> with <code>v1 != v2</code>. It is
68
+ * considered bad practice to claim a fact as soon as it results from any kind of measurement or estimation. All
69
+ * measurement devices produce some statistical errors, no matter how small (cf. Heisenberg ;-) ).
70
+ */
71
+ double getConfidence();
72
+
73
+ /**
74
+ * The confidence attached to a value is usually relative to some reference point, such as a time point or
75
+ * a position. For example, when a <code>GPSFixTrack</code> is asked to deliver an estimation for the tracked item's
76
+ * {@link Position} at some given {@link TimePoint}, the track computes some average from a number of GPS fixes. The resulting
77
+ * position has a certain confidence, depending on the time differences between the fixes and the time point for which
78
+ * the position estimation was requested. The result therefore carries this reference time point for which the estimation
79
+ * was requested so that when the result is to be used in further estimations it is clear relative to which time point the
80
+ * confidence is to be interpreted.<p>
81
+ *
82
+ * In this context, a single GPS fix is a measurement whose values may also have a confidence attached. This confidence could be
83
+ * regarded as relative to the fix's time point.
84
+ */
85
+ RelativeTo getRelativeTo();
86
+
87
+ /**
88
+ * The object annotated by a confidence
89
+ */
90
+ BaseType getObject();
91
+}
java/com.sap.sse.common/src/com/sap/sse/common/confidence/Weigher.java
... ...
@@ -0,0 +1,19 @@
1
+package com.sap.sse.common.confidence;
2
+
3
+import java.io.Serializable;
4
+
5
+/**
6
+ * A weigher can compute a confidence value for a distance of two <code>RelativeTo</code> objects.
7
+ *
8
+ * @author Axel Uhl (d043530)
9
+ */
10
+public interface Weigher<RelativeTo> extends Serializable {
11
+ /**
12
+ * Computes a confidence, based on some weighed notion of "distance" between the two <code>RelativeTo</code> objects.
13
+ *
14
+ * @param fix the reference point of some object for which to determine the confidence value
15
+ * @param request the reference point provided with some aggregation request; the confidence value returned for the fix is
16
+ * relative to the request's reference point.
17
+ */
18
+ double getConfidence(RelativeTo fix, RelativeTo request);
19
+}
java/com.sap.sse.common/src/com/sap/sse/common/confidence/impl/BearingWithConfidenceImpl.java
... ...
@@ -0,0 +1,22 @@
1
+package com.sap.sse.common.confidence.impl;
2
+
3
+import com.sap.sse.common.Bearing;
4
+import com.sap.sse.common.DoublePair;
5
+import com.sap.sse.common.confidence.BearingWithConfidence;
6
+import com.sap.sse.common.scalablevalue.IsScalable;
7
+import com.sap.sse.common.scalablevalue.ScalableValue;
8
+import com.sap.sse.common.scalablevalue.impl.ScalableBearing;
9
+
10
+public class BearingWithConfidenceImpl<RelativeTo> extends HasConfidenceImpl<DoublePair, Bearing, RelativeTo>
11
+implements BearingWithConfidence<RelativeTo>, IsScalable<DoublePair, Bearing> {
12
+ private static final long serialVersionUID = 1624026377840747818L;
13
+
14
+ public BearingWithConfidenceImpl(Bearing bearing, double confidence, RelativeTo relativeTo) {
15
+ super(bearing, confidence, relativeTo);
16
+ }
17
+
18
+ @Override
19
+ public ScalableValue<DoublePair, Bearing> getScalableValue() {
20
+ return new ScalableBearing(getObject());
21
+ }
22
+}
java/com.sap.sse.common/src/com/sap/sse/common/confidence/impl/ConfidenceBasedAveragerFactoryImpl.java
... ...
@@ -0,0 +1,58 @@
1
+package com.sap.sse.common.confidence.impl;
2
+
3
+import com.sap.sse.common.Distance;
4
+import com.sap.sse.common.Duration;
5
+import com.sap.sse.common.Position;
6
+import com.sap.sse.common.TimePoint;
7
+import com.sap.sse.common.confidence.ConfidenceBasedAverager;
8
+import com.sap.sse.common.confidence.ConfidenceFactory;
9
+import com.sap.sse.common.confidence.Weigher;
10
+
11
+public class ConfidenceBasedAveragerFactoryImpl implements ConfidenceFactory {
12
+ @Override
13
+ public <RelativeTo> Weigher<RelativeTo> createConstantWeigher(final double constantConfidence) {
14
+ return new Weigher<RelativeTo>() {
15
+ private static final long serialVersionUID = 8693131975511149792L;
16
+
17
+ @Override
18
+ public double getConfidence(RelativeTo fix, RelativeTo request) {
19
+ return constantConfidence;
20
+ }
21
+ };
22
+ }
23
+
24
+ @Override
25
+ public <ValueType, BaseType, RelativeTo> ConfidenceBasedAverager<ValueType, BaseType, RelativeTo> createAverager(Weigher<RelativeTo> weigher) {
26
+ return new ConfidenceBasedAveragerImpl<ValueType, BaseType, RelativeTo>(weigher);
27
+ }
28
+
29
+ @Override
30
+ public Weigher<TimePoint> createHyperbolicTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds) {
31
+ return new HyperbolicTimeDifferenceWeigher(halfConfidenceAfterMilliseconds);
32
+ }
33
+
34
+ @Override
35
+ public Weigher<TimePoint> createStandardDistributionTimeDifferenceWeigher(Duration standardDeviation) {
36
+ return new StandardDistributionTimeDifferenceWeigher(standardDeviation);
37
+ }
38
+
39
+ @Override
40
+ public Weigher<Position> createHyperbolicDistanceWeigher(Distance halfConfidence) {
41
+ return new HyperbolicDistanceWeigher(halfConfidence);
42
+ }
43
+
44
+ @Override
45
+ public Weigher<TimePoint> createHyperbolicSquaredTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds) {
46
+ return new HyperbolicSquaredTimeDifferenceWeigher(halfConfidenceAfterMilliseconds);
47
+ }
48
+
49
+ @Override
50
+ public Weigher<TimePoint> createExponentialTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds) {
51
+ return new ExponentialTimeDifferenceWeigher(halfConfidenceAfterMilliseconds);
52
+ }
53
+
54
+ @Override
55
+ public Weigher<TimePoint> createExponentialTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds, double minimumConfidence) {
56
+ return new ExponentialTimeDifferenceWeigher(halfConfidenceAfterMilliseconds, minimumConfidence);
57
+ }
58
+}
java/com.sap.sse.common/src/com/sap/sse/common/confidence/impl/ConfidenceBasedAveragerImpl.java
... ...
@@ -0,0 +1,87 @@
1
+package com.sap.sse.common.confidence.impl;
2
+
3
+import java.util.Iterator;
4
+
5
+import com.sap.sse.common.confidence.ConfidenceBasedAverager;
6
+import com.sap.sse.common.confidence.HasConfidence;
7
+import com.sap.sse.common.confidence.Weigher;
8
+import com.sap.sse.common.scalablevalue.HasConfidenceAndIsScalable;
9
+import com.sap.sse.common.scalablevalue.ScalableValue;
10
+
11
+
12
+/**
13
+ * A set of values that {@link HasConfidence have a confidence attached} can be averaged using the confidence value to
14
+ * weigh values with greater confidence more than those with lesser confidence. It implements the following algorithm
15
+ * for a sequence of <code>n</code> tuples <code>(v1, c1), ..., (vn, cn)</code> of a value <code>vi</code> with a
16
+ * confidence <code>ci</code> each:<p>
17
+ *
18
+ * <code>a := (c1*v1 + ... + cn*vn) / (c1 + ... + cn)</code>. For a single value with a confidence this trivially
19
+ * results in <code>c1*v1 / (c1)</code> which is equivalent to <code>v1</code>. As another example, consider two values
20
+ * with equal confidence <code>0.8</code>. Then, <code>a := (0.8*v1 + 0.8*vn) / (0.8 + 0.8)</code> which resolves to
21
+ * <code>0.5*v1 + 0.5*v2</code> which is obviously the arithmetic mean of the two values. If one value has confidence
22
+ * <code>0.8</code> and the other <code>0.4</code>, then <code>a := (0.8*v1 + 0.4*vn) / (0.8 + 0.4)</code> which
23
+ * resolves to <code>2/3*v1 + 1/3*v2</code> which is a weighed average.
24
+ * <p>
25
+ *
26
+ * Note, that this doesn't exactly take facts for facts. In other words, if one value is provided with a confidence of
27
+ * <code>1.0</code>, the average may still be influenced by other values. However, this cleanly resolves otherwise
28
+ * mutually contradictory "facts" such a <code>(v1, 1.0), (v2, 1.0)</code> with <code>v1 != v2</code>. It is considered
29
+ * bad practice to claim a fact as soon as it results from any kind of measurement or estimation. All measurement
30
+ * devices produce some statistical errors, no matter how small (cf. Heisenberg ;-) ).
31
+ *
32
+ * @author Axel Uhl (d043530)
33
+ */
34
+public class ConfidenceBasedAveragerImpl<ValueType, BaseType, RelativeTo> implements ConfidenceBasedAverager<ValueType, BaseType, RelativeTo> {
35
+ private final Weigher<RelativeTo> weigher;
36
+
37
+ /**
38
+ * @param weigher
39
+ * If <code>null</code>, 1.0 will be assumed as default confidence for all values provided, regardless
40
+ * the reference point relative to which the average is to be computed
41
+ */
42
+ public ConfidenceBasedAveragerImpl(Weigher<RelativeTo> weigher) {
43
+ this.weigher = weigher;
44
+ }
45
+
46
+ @Override
47
+ public HasConfidence<ValueType, BaseType, RelativeTo> getAverage(
48
+ Iterable<? extends HasConfidenceAndIsScalable<ValueType, BaseType, RelativeTo>> values, RelativeTo at) {
49
+ return values == null ? null : getAverage(values.iterator(), at);
50
+ }
51
+
52
+ @Override
53
+ public HasConfidence<ValueType, BaseType, RelativeTo> getAverage(
54
+ Iterator<? extends HasConfidenceAndIsScalable<ValueType, BaseType, RelativeTo>> values, RelativeTo at) {
55
+ if (values == null || !values.hasNext()) {
56
+ return null;
57
+ } else {
58
+ ScalableValue<ValueType, BaseType> numerator = null;
59
+ double confidenceSum = 0;
60
+ int count = 0;
61
+ while (values.hasNext()) {
62
+ HasConfidenceAndIsScalable<ValueType, BaseType, RelativeTo> next = values.next();
63
+ double relativeWeight = getWeight(next, at);
64
+ ScalableValue<ValueType, BaseType> weightedNext = next.getScalableValue().multiply(relativeWeight);
65
+ if (numerator == null) {
66
+ numerator = weightedNext;
67
+ } else {
68
+ numerator = numerator.add(weightedNext);
69
+ }
70
+ confidenceSum += relativeWeight;
71
+ count++;
72
+ }
73
+ // TODO consider greater variance to reduce the confidence
74
+ double newConfidence = confidenceSum / count;
75
+ BaseType result = numerator.divide(confidenceSum);
76
+ return new HasConfidenceImpl<ValueType, BaseType, RelativeTo>(result, newConfidence, at);
77
+ }
78
+ }
79
+
80
+ protected double getWeight(HasConfidenceAndIsScalable<ValueType, BaseType, RelativeTo> next, RelativeTo at) {
81
+ return (getWeigher() == null ? 1.0 : getWeigher().getConfidence(next.getRelativeTo(), at)) * next.getConfidence();
82
+ }
83
+
84
+ private Weigher<RelativeTo> getWeigher() {
85
+ return weigher;
86
+ }
87
+}
java/com.sap.sse.common/src/com/sap/sse/common/confidence/impl/ExponentialTimeDifferenceWeigher.java
... ...
@@ -0,0 +1,37 @@
1
+package com.sap.sse.common.confidence.impl;
2
+
3
+import com.sap.sse.common.TimePoint;
4
+import com.sap.sse.common.confidence.Weigher;
5
+
6
+/**
7
+ * The weigher computes an exponentially-decreasing weight based on the time difference of two {@link TimePoint}s.
8
+ * The weigher can be configured by the time difference after which the confidence is halved. A minimum confidence can
9
+ * optionally be set.
10
+ *
11
+ * @author Axel Uhl (d043530)
12
+ */
13
+public class ExponentialTimeDifferenceWeigher implements Weigher<TimePoint> {
14
+ private static final long serialVersionUID = 1832731495731693670L;
15
+
16
+ private final static double logHalf = Math.log(0.5);
17
+
18
+ private final long halfConfidenceAfterMilliseconds;
19
+
20
+ private final double minimumConfidence;
21
+
22
+ public ExponentialTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds, double minimumConfidence) {
23
+ this.halfConfidenceAfterMilliseconds = halfConfidenceAfterMilliseconds;
24
+ this.minimumConfidence = minimumConfidence;
25
+ }
26
+
27
+ public ExponentialTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds) {
28
+ this(halfConfidenceAfterMilliseconds, /* minimumConfidence */ 0);
29
+ }
30
+
31
+ @Override
32
+ public double getConfidence(TimePoint fix, TimePoint request) {
33
+ return Math.max(minimumConfidence,
34
+ Math.exp(logHalf * ((double) (Math.abs(request.asMillis() - fix.asMillis())) / (double) halfConfidenceAfterMilliseconds)));
35
+ }
36
+
37
+}
java/com.sap.sse.common/src/com/sap/sse/common/confidence/impl/HasConfidenceImpl.java
... ...
@@ -0,0 +1,36 @@
1
+package com.sap.sse.common.confidence.impl;
2
+
3
+import com.sap.sse.common.confidence.HasConfidence;
4
+
5
+public class HasConfidenceImpl<ValueType, BaseType, RelativeTo> implements HasConfidence<ValueType, BaseType, RelativeTo> {
6
+ private static final long serialVersionUID = -1635823148449693024L;
7
+ private final double confidence;
8
+ private final RelativeTo relativeTo;
9
+ private final BaseType object;
10
+
11
+ public HasConfidenceImpl(BaseType object, double confidence, RelativeTo relativeTo) {
12
+ this.confidence = confidence;
13
+ this.relativeTo = relativeTo;
14
+ this.object = object;
15
+ }
16
+
17
+ @Override
18
+ public double getConfidence() {
19
+ return confidence;
20
+ }
21
+
22
+ @Override
23
+ public RelativeTo getRelativeTo() {
24
+ return relativeTo;
25
+ }
26
+
27
+ @Override
28
+ public BaseType getObject() {
29
+ return object;
30
+ }
31
+
32
+ @Override
33
+ public String toString() {
34
+ return ""+getObject()+"@"+getConfidence();
35
+ }
36
+}
java/com.sap.sse.common/src/com/sap/sse/common/confidence/impl/HyperbolicDistanceWeigher.java
... ...
@@ -0,0 +1,53 @@
1
+package com.sap.sse.common.confidence.impl;
2
+
3
+import com.sap.sse.common.Distance;
4
+import com.sap.sse.common.Position;
5
+import com.sap.sse.common.confidence.Weigher;
6
+
7
+/**
8
+ * Uses {@link Position#getQuickApproximateNauticalMileDistance(Position)} to come
9
+ * to a quick and reasonably fair weight for distances where the weight asymptotically
10
+ * decreases hyperbolically with distance.
11
+ *
12
+ * @author Axel Uhl (d043530)
13
+ *
14
+ */
15
+public class HyperbolicDistanceWeigher implements Weigher<Position> {
16
+ private static final long serialVersionUID = 5521299690322077224L;
17
+
18
+ private final Distance halfConfidence;
19
+
20
+ public HyperbolicDistanceWeigher(Distance halfConfidence) {
21
+ this.halfConfidence = halfConfidence;
22
+ }
23
+
24
+ /**
25
+ * Postconditions:
26
+ * <pre>
27
+ * |fix-request|=halfConfidence ==&gt; result==0.5
28
+ * 0 &lt;= result &lt;= 1
29
+ * fix==request ==&gt; result==1
30
+ * </pre>
31
+ *
32
+ * This implies the following formula for result := f(x):
33
+ *
34
+ * <pre>
35
+ * for x := |fix-request| with x&gt;=0:
36
+ * f(x) := c/(x+y)
37
+ * f(0) = 1 = c/y ==&gt; c = y
38
+ * f(halfConfidence) = 0.5 = c/(halfConfidence+y)
39
+ * =&gt; c/y = 2c/(halfConfidence+y)
40
+ * &lt;=&gt; 1/y = 2/(halfConfidence+y)
41
+ * &lt;=&gt; halfConfidence + y = 2y
42
+ * &lt;=&gt; y = halfConfidence
43
+ * =&gt; c = halfConfidence
44
+ * </pre>
45
+ */
46
+ @Override
47
+ public double getConfidence(Position fix, Position request) {
48
+ double x = fix.getQuickApproximateNauticalMileDistance(request);
49
+ double c = halfConfidence.getNauticalMiles();
50
+ double y = c;
51
+ return c/(x+y);
52
+ }
53
+}
java/com.sap.sse.common/src/com/sap/sse/common/confidence/impl/HyperbolicSquaredTimeDifferenceWeigher.java
... ...
@@ -0,0 +1,44 @@
1
+package com.sap.sse.common.confidence.impl;
2
+
3
+import com.sap.sse.common.TimePoint;
4
+import com.sap.sse.common.confidence.Weigher;
5
+
6
+public class HyperbolicSquaredTimeDifferenceWeigher implements Weigher<TimePoint> {
7
+ private static final long serialVersionUID = 4378168079868145134L;
8
+ private final long halfConfidenceAfterMilliseconds;
9
+
10
+ public HyperbolicSquaredTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds) {
11
+ this.halfConfidenceAfterMilliseconds = halfConfidenceAfterMilliseconds;
12
+ }
13
+
14
+ /**
15
+ * Postconditions:
16
+ * <pre>
17
+ * |fix-request|=halfConfidenceAfterMilliseconds ==&gt; result==0.5
18
+ * 0 &lt;= result &lt;= 1
19
+ * fix=request ==&gt; result==1
20
+ * With request approaching infinity, the function grows with the reciprocal of request squared
21
+ * </pre>
22
+ *
23
+ * This implies the following formula for result := f(x):
24
+ *
25
+ * <pre>
26
+ * for x := |fix-request| with x&gt;=0:
27
+ * f(x) := c/(x^2+y)
28
+ * f(0) = 1 = c/y ==&gt; c = y
29
+ * f(halfConfidenceAfterMilliseconds) = 0.5 = c/(halfConfidenceAfterMilliseconds+y)
30
+ * =&gt; c/y = 2c/(halfConfidenceAfterMilliseconds+y)
31
+ * &lt;=&gt; 1/y = 2/(halfConfidenceAfterMilliseconds+y)
32
+ * &lt;=&gt; halfConfidenceAfterMilliseconds + y = 2y
33
+ * &lt;=&gt; y = halfConfidenceAfterMilliseconds
34
+ * =&gt; c = halfConfidenceAfterMilliseconds
35
+ * </pre>
36
+ */
37
+ @Override
38
+ public double getConfidence(TimePoint fix, TimePoint request) {
39
+ double x = Math.abs(fix.asMillis() - request.asMillis());
40
+ double c = halfConfidenceAfterMilliseconds*halfConfidenceAfterMilliseconds;
41
+ double y = c;
42
+ return c/(x*x+y);
43
+ }
44
+}
java/com.sap.sse.common/src/com/sap/sse/common/confidence/impl/HyperbolicTimeDifferenceWeigher.java
... ...
@@ -0,0 +1,43 @@
1
+package com.sap.sse.common.confidence.impl;
2
+
3
+import com.sap.sse.common.TimePoint;
4
+import com.sap.sse.common.confidence.Weigher;
5
+
6
+public class HyperbolicTimeDifferenceWeigher implements Weigher<TimePoint> {
7
+ private static final long serialVersionUID = 4378168079868145134L;
8
+ private final long halfConfidenceAfterMilliseconds;
9
+
10
+ public HyperbolicTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds) {
11
+ this.halfConfidenceAfterMilliseconds = halfConfidenceAfterMilliseconds;
12
+ }
13
+
14
+ /**
15
+ * Postconditions:
16
+ * <pre>
17
+ * |fix-request|=halfConfidenceAfterMilliseconds ==&gt; result==0.5
18
+ * 0 &lt;= result &lt;= 1
19
+ * fix==request ==&gt; result==1
20
+ * </pre>
21
+ *
22
+ * This implies the following formula for result := f(x):
23
+ *
24
+ * <pre>
25
+ * for x := |fix-request| with x&gt;=0:
26
+ * f(x) := c/(x+y)
27
+ * f(0) = 1 = c/y ==&gt; c = y
28
+ * f(halfConfidenceAfterMilliseconds) = 0.5 = c/(halfConfidenceAfterMilliseconds+y)
29
+ * =&gt; c/y = 2c/(halfConfidenceAfterMilliseconds+y)
30
+ * &lt;=&gt; 1/y = 2/(halfConfidenceAfterMilliseconds+y)
31
+ * &lt;=&gt; halfConfidenceAfterMilliseconds + y = 2y
32
+ * &lt;=&gt; y = halfConfidenceAfterMilliseconds
33
+ * =&gt; c = halfConfidenceAfterMilliseconds
34
+ * </pre>
35
+ */
36
+ @Override
37
+ public double getConfidence(TimePoint fix, TimePoint request) {
38
+ double x = Math.abs(fix.asMillis() - request.asMillis());
39
+ double c = halfConfidenceAfterMilliseconds;
40
+ double y = halfConfidenceAfterMilliseconds;
41
+ return c/(x+y);
42
+ }
43
+}
java/com.sap.sse.common/src/com/sap/sse/common/confidence/impl/LazyDividedScaledPosition.java
... ...
@@ -0,0 +1,47 @@
1
+package com.sap.sse.common.confidence.impl;
2
+
3
+import com.sap.sse.common.AbstractPosition;
4
+import com.sap.sse.common.Position;
5
+import com.sap.sse.common.scalablevalue.impl.ScalablePosition;
6
+
7
+/**
8
+ * A wind object's position is currently not very frequently used. However, during averaging, computing the average
9
+ * position of a number of wind fixes costs quite a few CPU cycles. By making this calculation lazy / on-demand we may
10
+ * save some of them.
11
+ *
12
+ * @author Axel Uhl (d043530)
13
+ *
14
+ */
15
+public class LazyDividedScaledPosition extends AbstractPosition {
16
+ private static final long serialVersionUID = -4755705843467806809L;
17
+ private final ScalablePosition scalablePosition;
18
+ private final double divisor;
19
+ private Position position;
20
+
21
+ public LazyDividedScaledPosition(ScalablePosition scalablePosition, double divisor) {
22
+ super();
23
+ this.scalablePosition = scalablePosition;
24
+ this.divisor = divisor;
25
+ this.position = null;
26
+ }
27
+
28
+ @Override
29
+ public synchronized double getLatRad() {
30
+ if (position == null) {
31
+ resolve();
32
+ }
33
+ return position.getLatRad();
34
+ }
35
+
36
+ @Override
37
+ public synchronized double getLngRad() {
38
+ if (position == null) {
39
+ resolve();
40
+ }
41
+ return position.getLngRad();
42
+ }
43
+
44
+ private synchronized void resolve() {
45
+ position = scalablePosition.divide(divisor);
46
+ }
47
+}
... ...
\ No newline at end of file
java/com.sap.sse.common/src/com/sap/sse/common/confidence/impl/PositionAndTimePointWeigher.java
... ...
@@ -0,0 +1,53 @@
1
+package com.sap.sse.common.confidence.impl;
2
+
3
+import com.sap.sse.common.Distance;
4
+import com.sap.sse.common.Duration;
5
+import com.sap.sse.common.Position;
6
+import com.sap.sse.common.TimePoint;
7
+import com.sap.sse.common.Util;
8
+import com.sap.sse.common.confidence.ConfidenceFactory;
9
+import com.sap.sse.common.confidence.Weigher;
10
+
11
+/**
12
+ * A weigher that uses a {@link Position} and a {@link TimePoint} to compute a confidence based on
13
+ * time and space distance. If the <code>fix</code> or the <code>request</code> parameter in a call
14
+ * to {@link #getConfidence(com.sap.sse.common.Util.Pair, com.sap.sse.common.Util.Pair)} have a <code>null</code>
15
+ * {@link Position} then no distance-based confidence is considered, and only the time difference is taken
16
+ * into account. Otherwise, the time-based confidence and the distance-based confidence are multiplied to
17
+ * result in the total confidence.<p>
18
+ *
19
+ * @author Axel Uhl (d043530)
20
+ *
21
+ */
22
+public class PositionAndTimePointWeigher implements Weigher<Util.Pair<Position, TimePoint>> {
23
+ private final static String USE_POSITION_SYSTEM_PROPERTY_NAME = "spatialWind";
24
+ private static final long serialVersionUID = -262428237738496818L;
25
+ private final Weigher<TimePoint> timeWeigher;
26
+ private final Weigher<Position> distanceWeigher;
27
+ private final boolean usePosition;
28
+
29
+ public PositionAndTimePointWeigher(Duration halfConfidenceAfter, Distance halfConfidenceDistance) {
30
+ timeWeigher = ConfidenceFactory.INSTANCE.createHyperbolicTimeDifferenceWeigher(
31
+ /* use as standard deviation */ halfConfidenceAfter.asMillis());
32
+ distanceWeigher = ConfidenceFactory.INSTANCE.createHyperbolicDistanceWeigher(halfConfidenceDistance);
33
+ this.usePosition = Boolean.valueOf(System.getProperty(USE_POSITION_SYSTEM_PROPERTY_NAME, "true"));
34
+ }
35
+
36
+ @Override
37
+ public double getConfidence(Util.Pair<Position, TimePoint> fix, Util.Pair<Position, TimePoint> reference) {
38
+ final double timeConfidence = timeWeigher.getConfidence(fix.getB(), reference.getB());
39
+ final double distanceConfidence;
40
+ // For now, we make the use of the position for spatial wind field calculation optional. It has to be turned
41
+ // on by providing a system property using -DspatialWind=true
42
+ if (usePosition && reference != null) {
43
+ if (fix.getA() != null && reference.getA() != null) {
44
+ distanceConfidence = distanceWeigher.getConfidence(fix.getA(), reference.getA());
45
+ } else {
46
+ distanceConfidence = 0.1;
47
+ }
48
+ } else {
49
+ distanceConfidence = 1;
50
+ }
51
+ return timeConfidence * distanceConfidence;
52
+ }
53
+}
java/com.sap.sse.common/src/com/sap/sse/common/confidence/impl/StandardDistributionTimeDifferenceWeigher.java
... ...
@@ -0,0 +1,23 @@
1
+package com.sap.sse.common.confidence.impl;
2
+
3
+import com.sap.sse.common.Duration;
4
+import com.sap.sse.common.TimePoint;
5
+import com.sap.sse.common.confidence.Weigher;
6
+
7
+public class StandardDistributionTimeDifferenceWeigher implements Weigher<TimePoint> {
8
+ private static final long serialVersionUID = 4378168079868145134L;
9
+ private final double standardDeviationAsMillis;
10
+ private final double oneDividedByStandardDeviationTimesSquareRootOfTwoPi;
11
+
12
+ public StandardDistributionTimeDifferenceWeigher(Duration standardDeviation) {
13
+ this.standardDeviationAsMillis = standardDeviation.asMillis();
14
+ this.oneDividedByStandardDeviationTimesSquareRootOfTwoPi = 1/(this.standardDeviationAsMillis*Math.sqrt(2*Math.PI));
15
+ }
16
+
17
+ @Override
18
+ public double getConfidence(TimePoint fix, TimePoint request) {
19
+ double xMinusMu = Math.abs(fix.asMillis() - request.asMillis());
20
+ double xMinusMuDividedByStandardDeviation = xMinusMu/standardDeviationAsMillis;
21
+ return oneDividedByStandardDeviationTimesSquareRootOfTwoPi * Math.exp(-0.5*xMinusMuDividedByStandardDeviation*xMinusMuDividedByStandardDeviation);
22
+ }
23
+}
java/com.sap.sse.common/src/com/sap/sse/common/impl/AbstractSpeedWithAbstractBearingImpl.java
... ...
@@ -0,0 +1,101 @@
1
+package com.sap.sse.common.impl;
2
+
3
+import com.sap.sse.common.AbstractSpeedImpl;
4
+import com.sap.sse.common.Bearing;
5
+import com.sap.sse.common.CourseChange;
6
+import com.sap.sse.common.Distance;
7
+import com.sap.sse.common.Position;
8
+import com.sap.sse.common.Speed;
9
+import com.sap.sse.common.SpeedWithBearing;
10
+import com.sap.sse.common.TimePoint;
11
+
12
+public abstract class AbstractSpeedWithAbstractBearingImpl extends AbstractSpeedImpl implements SpeedWithBearing {
13
+ private static final long serialVersionUID = 6136100417593538013L;
14
+
15
+ @Override
16
+ public Position travelTo(Position pos, TimePoint from, TimePoint to) {
17
+ return pos.translateGreatCircle(getBearing(), this.travel(from, to));
18
+ }
19
+
20
+ @Override
21
+ public String toString() {
22
+ return super.toString()+" to "+getBearing().getDegrees()+"°";
23
+ }
24
+
25
+ @Override
26
+ public int hashCode() {
27
+ return super.hashCode() ^ getBearing().hashCode();
28
+ }
29
+
30
+ @Override
31
+ public boolean equals(Object object) {
32
+ return super.equals(object) && object instanceof SpeedWithBearing
33
+ && getBearing().equals(((SpeedWithBearing) object).getBearing());
34
+ }
35
+
36
+ @Override
37
+ public SpeedWithBearing add(SpeedWithBearing other) {
38
+ return AbstractSpeedWithAbstractBearingImpl.add(this, other);
39
+ }
40
+
41
+ @Override
42
+ public CourseChange getCourseChangeRequiredToReach(SpeedWithBearing targetSpeedWithBearing) {
43
+ return AbstractSpeedWithBearingImpl.getCourseChangeRequiredToReach(this, targetSpeedWithBearing);
44
+ }
45
+
46
+ public static CourseChange getCourseChangeRequiredToReach(SpeedWithBearing from, SpeedWithBearing to) {
47
+ double courseChangeInDegrees = to.getBearing().getDegrees() - from.getBearing().getDegrees();
48
+ if (courseChangeInDegrees < -180.) {
49
+ courseChangeInDegrees += 360.;
50
+ } else if (courseChangeInDegrees > 180.) {
51
+ courseChangeInDegrees -= 360.;
52
+ }
53
+ double speedChangeInKnots = to.getKnots() - from.getKnots();
54
+ return new CourseChangeImpl(courseChangeInDegrees, speedChangeInKnots);
55
+ }
56
+
57
+ @Override
58
+ public SpeedWithBearing applyCourseChange(CourseChange courseChange) {
59
+ return applyCourseChange(this, courseChange);
60
+ }
61
+
62
+ public static SpeedWithBearing applyCourseChange(SpeedWithBearing from, CourseChange courseChange) {
63
+ double newBearingDeg = from.getBearing().getDegrees() + courseChange.getCourseChangeInDegrees();
64
+ if (newBearingDeg < 0) {
65
+ newBearingDeg += 360;
66
+ } else if (newBearingDeg > 360) {
67
+ newBearingDeg -= 360;
68
+ }
69
+ Bearing newBearing = new DegreeBearingImpl(newBearingDeg);
70
+ double newSpeedInKnots = from.getKnots()+courseChange.getSpeedChangeInKnots();
71
+ return new KnotSpeedWithBearingImpl(newSpeedInKnots, newBearing);
72
+ }
73
+
74
+ private final static TimePoint start = new MillisecondsTimePoint(0);
75
+ private final static TimePoint end = start.plus(60000);
76
+
77
+ public static Speed projectTo(SpeedWithBearing speedWithBearing, Position position, Bearing projectTo) {
78
+ Position traveledOneMinute = speedWithBearing.travelTo(position, start, end);
79
+ Position traveledToProjected = traveledOneMinute.projectToLineThrough(position, projectTo);
80
+ Distance projectedDistance = position.getDistance(traveledToProjected);
81
+ return projectedDistance.inTime(end.asMillis() - start.asMillis());
82
+ }
83
+
84
+ @Override
85
+ public Speed projectTo(Position position, Bearing projectTo) {
86
+ return projectTo(this, position, projectTo);
87
+ }
88
+
89
+ public static SpeedWithBearing add(SpeedWithBearing first, SpeedWithBearing other) {
90
+ double x = first.getMetersPerSecond()*Math.cos(first.getBearing().getRadians()) + other.getMetersPerSecond()*Math.cos(other.getBearing().getRadians());
91
+ double y = first.getMetersPerSecond()*Math.sin(first.getBearing().getRadians()) + other.getMetersPerSecond()*Math.sin(other.getBearing().getRadians());
92
+ double metersPerSecond = Math.sqrt(x*x+y*y);
93
+ double directionRad = (2*Math.PI+Math.atan2(y, x))%(2*Math.PI);
94
+ return new MeterPerSecondSpeedWithDegreeBearingImpl(metersPerSecond, new RadianBearingImpl(directionRad));
95
+ }
96
+
97
+ @Override
98
+ public SpeedWithBearing scale(double d) {
99
+ return SpeedWithBearing.super.scale(d);
100
+ }
101
+}
java/com.sap.sse.common/src/com/sap/sse/common/impl/AbstractSpeedWithBearingImpl.java
... ...
@@ -0,0 +1,18 @@
1
+package com.sap.sse.common.impl;
2
+
3
+import com.sap.sse.common.Bearing;
4
+import com.sap.sse.common.SpeedWithBearing;
5
+
6
+public abstract class AbstractSpeedWithBearingImpl extends AbstractSpeedWithAbstractBearingImpl implements SpeedWithBearing {
7
+ private static final long serialVersionUID = -8594305027333573010L;
8
+ /* #gwtnofinal */ private Bearing bearing;
9
+
10
+ protected AbstractSpeedWithBearingImpl(final Bearing bearing) {
11
+ this.bearing = bearing;
12
+ }
13
+
14
+ @Override
15
+ public Bearing getBearing() {
16
+ return bearing;
17
+ }
18
+}
java/com.sap.sse.common/src/com/sap/sse/common/impl/BearingChangeAnalyzerImpl.java
... ...
@@ -0,0 +1,32 @@
1
+package com.sap.sse.common.impl;
2
+
3
+import com.sap.sse.common.Bearing;
4
+import com.sap.sse.common.BearingChangeAnalyzer;
5
+
6
+public class BearingChangeAnalyzerImpl implements BearingChangeAnalyzer {
7
+
8
+ @Override
9
+ public int didPass(Bearing courseBeforeManeuver, double totalCourseChangeInDegrees, Bearing courseAfterManeuver,
10
+ Bearing wasThisCourseReachedAndCrossedDuringManeuver) {
11
+ final int result;
12
+ Bearing diffToCourseInQuestion = courseBeforeManeuver.getDifferenceTo(wasThisCourseReachedAndCrossedDuringManeuver);
13
+ if (Math.signum(diffToCourseInQuestion.getDegrees()) == Math.signum(totalCourseChangeInDegrees)) {
14
+ // simple case: the actual course change was greater than what was required in that direction to
15
+ // reach the course in question
16
+ result = (int) ((Math.abs(totalCourseChangeInDegrees) + 360. - Math.abs(diffToCourseInQuestion.getDegrees())) / 360.);
17
+ } else {
18
+ // more complicated: the smallest possible course change required may have been to a different direction than the
19
+ // actual course change. The course in question may still have been reached and crossed in the actual course
20
+ // change that points the other way has been great enough. Example: courseBeforeManeuver=355deg;
21
+ // totalCourseChangeInDegrees=-357; courseAfterManeuver=358deg; wasThisCourseReachedAndCrossedDuringManeuver=000deg.
22
+ // The answer has to be TRUE because the course changed to port and was almost a full circle, passing 000deg.
23
+ // Still, the diffToCourseInQuestion is 005deg and positive.
24
+ // Approach: revert the course change required; revert 005deg to 355deg and check again with this reverted course change.
25
+ Bearing revertedDiffToCourseInQuestion = new DegreeBearingImpl(-360 * Math.signum(diffToCourseInQuestion
26
+ .getDegrees())+diffToCourseInQuestion.getDegrees());
27
+ result = (int) ((Math.abs(totalCourseChangeInDegrees) + 360. - Math.abs(revertedDiffToCourseInQuestion.getDegrees())) / 360.);
28
+ }
29
+ return result;
30
+ }
31
+
32
+}
java/com.sap.sse.common/src/com/sap/sse/common/impl/BoundsImpl.java
... ...
@@ -0,0 +1,186 @@
1
+package com.sap.sse.common.impl;
2
+
3
+import com.sap.sse.common.Bounds;
4
+import com.sap.sse.common.Distance;
5
+import com.sap.sse.common.Position;
6
+
7
+public class BoundsImpl implements Bounds {
8
+ private final Position sw;
9
+ private final Position ne;
10
+ private final boolean crossesDateLine;
11
+
12
+ public BoundsImpl(Position sw, Position ne) {
13
+ super();
14
+ this.sw = sw;
15
+ this.ne = ne;
16
+ crossesDateLine = ne.getLngDeg() < sw.getLngDeg();
17
+ }
18
+
19
+ public BoundsImpl(Position position) {
20
+ this(position, position);
21
+ }
22
+
23
+ @Override
24
+ public Position getNorthWest() {
25
+ return new DegreePosition(getNorthEast().getLatDeg(), getSouthWest().getLngDeg());
26
+ }
27
+
28
+ @Override
29
+ public Position getSouthEast() {
30
+ return new DegreePosition(getSouthWest().getLatDeg(), getNorthEast().getLngDeg());
31
+ }
32
+
33
+ @Override
34
+ public Position getNorthEast() {
35
+ return ne;
36
+ }
37
+
38
+ @Override
39
+ public Position getSouthWest() {
40
+ return sw;
41
+ }
42
+
43
+ /**
44
+ * Considering whether or not this bounds object crosses the date line, calculates the width in degrees longitude
45
+ * going from <code>west</code> to <code>east</code>. The result is always a non-negative number.
46
+ */
47
+ private double getDistanceDeg(final double west, final double east) {
48
+ final double diff = east-west;
49
+ final double result;
50
+ if (isCrossingDateLine(west, east)) {
51
+ result = 360+diff; // diff is negative in this case
52
+ } else {
53
+ result = diff;
54
+ }
55
+ return result;
56
+ }
57
+
58
+ @Override
59
+ public Bounds intersect(Bounds other) {
60
+ final double maxSouthLatDeg = Math.max(getSouthWest().getLatDeg(), other.getSouthWest().getLatDeg());
61
+ final double minNorthLatDeg = Math.min(getNorthEast().getLatDeg(), other.getNorthEast().getLatDeg());
62
+ final double westDeg;
63
+ if (containsLngDeg(other.getSouthWest().getLngDeg())) {
64
+ westDeg = other.getSouthWest().getLngDeg();
65
+ } else if (other.containsLngDeg(getSouthWest().getLngDeg())) {
66
+ westDeg = getSouthWest().getLngDeg();
67
+ } else {
68
+ // no intersection
69
+ westDeg = getSouthWest().getLngDeg();
70
+ }
71
+ final double eastDeg;
72
+ if (containsLngDeg(other.getNorthEast().getLngDeg())) {
73
+ eastDeg = other.getNorthEast().getLngDeg();
74
+ } else if (other.containsLngDeg(getNorthEast().getLngDeg())) {
75
+ eastDeg = getNorthEast().getLngDeg();
76
+ } else {
77
+ // no intersection
78
+ eastDeg = getSouthWest().getLngDeg();
79
+ }
80
+ return new BoundsImpl(new DegreePosition(maxSouthLatDeg, westDeg), new DegreePosition(minNorthLatDeg, eastDeg));
81
+ }
82
+
83
+ @Override
84
+ public Bounds union(Bounds other) {
85
+ final double minLatDeg = Math.min(getSouthWest().getLatDeg(), other.getSouthWest().getLatDeg());
86
+ final double maxLatDeg = Math.max(getNorthEast().getLatDeg(), other.getNorthEast().getLatDeg());
87
+ // For lng, we can go left or right around the earth; which way results in the smaller bounds? We have four options:
88
+ final double[] west = new double[] { getSouthWest().getLngDeg(), other.getSouthWest().getLngDeg() };
89
+ final double[] east = new double[] { getNorthEast().getLngDeg(), other.getNorthEast().getLngDeg() };
90
+ double minLngDegDistance = Double.MAX_VALUE;
91
+ double bestWest = 0;
92
+ double bestEast = 0;
93
+ for (int w=0; w<2; w++) {
94
+ for (int e=0; e<2; e++) {
95
+ double currentLngDegDistance;
96
+ if (spansLngDeg(west[w], east[e], west[1 - w]) && spansLngDeg(west[w], east[e], east[1 - e])
97
+ && (currentLngDegDistance = Math.abs(getDistanceDeg(west[w], east[e]))) < minLngDegDistance) {
98
+ minLngDegDistance = currentLngDegDistance;
99
+ bestWest = west[w];
100
+ bestEast = east[e];
101
+ }
102
+ }
103
+ }
104
+ return new BoundsImpl(new DegreePosition(minLatDeg, bestWest), new DegreePosition(maxLatDeg, bestEast));
105
+ }
106
+
107
+ @Override
108
+ public Bounds extend(Bounds other) {
109
+ return union(other);
110
+ }
111
+
112
+ @Override
113
+ public Bounds extend(Position p) {
114
+ return union(new BoundsImpl(p, p));
115
+ }
116
+
117
+ private boolean spansLngDeg(double westLngDeg, double eastLngDeg, double lngDeg) {
118
+ return isCrossingDateLine(westLngDeg, eastLngDeg)
119
+ ? (lngDeg >= westLngDeg && lngDeg <= 180) || (lngDeg >= -180 && lngDeg <= eastLngDeg)
120
+ : westLngDeg <= lngDeg && lngDeg <= eastLngDeg;
121
+ }
122
+
123
+ private boolean isCrossingDateLine(double westLngDeg, double eastLngDeg) {
124
+ return westLngDeg > eastLngDeg;
125
+ }
126
+
127
+ @Override
128
+ public boolean intersects(Bounds other) {
129
+ return (containsLatDeg(other.getSouthWest().getLatDeg()) || containsLatDeg(other.getNorthEast().getLatDeg()) ||
130
+ other.containsLatDeg(getSouthWest().getLatDeg()) || other.containsLatDeg(getNorthEast().getLatDeg()))
131
+ && (containsLngDeg(other.getSouthWest().getLngDeg()) || containsLngDeg(other.getNorthEast().getLngDeg()) ||
132
+ other.containsLngDeg(getSouthWest().getLngDeg()) || other.containsLngDeg(getNorthEast().getLngDeg()));
133
+ }
134
+
135
+ @Override
136
+ public boolean containsLatDeg(double latDeg) {
137
+ return latDeg >= getSouthWest().getLatDeg() && latDeg <= getNorthEast().getLatDeg();
138
+ }
139
+
140
+ @Override
141
+ public boolean containsLngDeg(double lngDeg) {
142
+ return spansLngDeg(getSouthWest().getLngDeg(), getNorthEast().getLngDeg(), lngDeg);
143
+ }
144
+
145
+ @Override
146
+ public boolean contains(Position other) {
147
+ return
148
+ // lat contained:
149
+ other.getLatDeg() >= getSouthWest().getLatDeg() && other.getLatDeg() <= getNorthEast().getLatDeg() &&
150
+ // lng contained:
151
+ (isCrossesDateLine()
152
+ // between SW and date line...
153
+ ? (other.getLngDeg() <= 180 && other.getLngDeg() >= getSouthWest().getLngDeg()) ||
154
+ // ...or between date line and NE
155
+ (other.getLngDeg() >= -180 && other.getLngDeg() <= getNorthEast().getLngDeg())
156
+ // these bounds are not crossing the date line; simple numeric comparison
157
+ : other.getLngDeg() >= getSouthWest().getLngDeg() && other.getLngDeg() <= getNorthEast().getLngDeg())
158
+ ;
159
+ }
160
+
161
+ @Override
162
+ public boolean contains(Bounds other) {
163
+ return isCrossesDateLine() == other.isCrossesDateLine() && contains(other.getNorthEast()) && contains(other.getSouthWest());
164
+ }
165
+
166
+ @Override
167
+ public boolean isCrossesDateLine() {
168
+ return crossesDateLine;
169
+ }
170
+
171
+ @Override
172
+ public boolean isEmpty() {
173
+ return getSouthWest().getLatDeg() >= getNorthEast().getLatDeg() ||
174
+ getSouthWest().getLngDeg() == getNorthEast().getLngDeg();
175
+ }
176
+
177
+ @Override
178
+ public Distance getDiameter() {
179
+ return getNorthWest().getDistance(getSouthEast());
180
+ }
181
+
182
+ @Override
183
+ public String toString() {
184
+ return "{SW: "+getSouthWest().toString()+", NE: "+getNorthEast().toString()+"}";
185
+ }
186
+}
java/com.sap.sse.common/src/com/sap/sse/common/impl/CentralAngleDistance.java
... ...
@@ -0,0 +1,35 @@
1
+package com.sap.sse.common.impl;
2
+
3
+import com.sap.sse.common.AbstractDistance;
4
+import com.sap.sse.common.Distance;
5
+import com.sap.sse.common.Mile;
6
+
7
+public class CentralAngleDistance extends AbstractDistance {
8
+ private static final long serialVersionUID = -388639688376644968L;
9
+ private final double centralAngleRad;
10
+
11
+ public CentralAngleDistance(double centralAngleRad) {
12
+ super();
13
+ this.centralAngleRad = centralAngleRad;
14
+ }
15
+
16
+ @Override
17
+ public double getMeters() {
18
+ return getGeographicalMiles() * Mile.METERS_PER_GEOGRAPHICAL_MILE;
19
+ }
20
+
21
+ @Override
22
+ public double getCentralAngleRad() {
23
+ return centralAngleRad;
24
+ }
25
+
26
+ @Override
27
+ public double getGeographicalMiles() {
28
+ return getCentralAngleDeg() * 60.;
29
+ }
30
+
31
+ @Override
32
+ public Distance scale(double factor) {
33
+ return new CentralAngleDistance(factor*getCentralAngleRad());
34
+ }
35
+}
java/com.sap.sse.common/src/com/sap/sse/common/impl/CourseChangeImpl.java
... ...
@@ -0,0 +1,28 @@
1
+package com.sap.sse.common.impl;
2
+
3
+import com.sap.sse.common.CourseChange;
4
+
5
+public class CourseChangeImpl implements CourseChange {
6
+ private final double courseChangeInDegrees;
7
+ private final double speedChangeInKnots;
8
+
9
+ public CourseChangeImpl(double courseChangeInDegrees, double speedChangeInKnots) {
10
+ this.courseChangeInDegrees = courseChangeInDegrees;
11
+ this.speedChangeInKnots = speedChangeInKnots;
12
+ }
13
+
14
+ @Override
15
+ public double getCourseChangeInDegrees() {
16
+ return courseChangeInDegrees;
17
+ }
18
+
19
+ @Override
20
+ public double getSpeedChangeInKnots() {
21
+ return speedChangeInKnots;
22
+ }
23
+
24
+ @Override
25
+ public String toString() {
26
+ return "changing course by "+getCourseChangeInDegrees()+"deg, "+getSpeedChangeInKnots()+"kn";
27
+ }
28
+}
java/com.sap.sse.common/src/com/sap/sse/common/impl/DegreePosition.java
... ...
@@ -0,0 +1,24 @@
1
+package com.sap.sse.common.impl;
2
+
3
+import com.sap.sse.common.AbstractPosition;
4
+
5
+public class DegreePosition extends AbstractPosition {
6
+ private static final long serialVersionUID = 2060676561122615530L;
7
+ private final double lat;
8
+ private final double lng;
9
+
10
+ public DegreePosition(double lat, double lng) {
11
+ this.lat = lat;
12
+ this.lng = lng;
13
+ }
14
+
15
+ @Override
16
+ public double getLatDeg() {
17
+ return lat;
18
+ }
19
+
20
+ @Override
21
+ public double getLngDeg() {
22
+ return lng;
23
+ }
24
+}
java/com.sap.sse.common/src/com/sap/sse/common/impl/KilometersPerHourSpeedImpl.java
... ...
@@ -0,0 +1,23 @@
1
+package com.sap.sse.common.impl;
2
+
3
+import com.sap.sse.common.AbstractSpeedImpl;
4
+import com.sap.sse.common.Speed;
5
+
6
+public class KilometersPerHourSpeedImpl extends AbstractSpeedImpl implements Speed {
7
+ private static final long serialVersionUID = -524654796500981303L;
8
+ private final double speedInKilometersPerHour;
9
+
10
+ public KilometersPerHourSpeedImpl(double speedInKilometersPerHour) {
11
+ this.speedInKilometersPerHour = speedInKilometersPerHour;
12
+ }
13
+
14
+ @Override
15
+ public double getMetersPerSecond() {
16
+ return getKilometersPerHour() / 3.6;
17
+ }
18
+
19
+ @Override
20
+ public double getKilometersPerHour() {
21
+ return speedInKilometersPerHour;
22
+ }
23
+}
java/com.sap.sse.common/src/com/sap/sse/common/impl/KnotSpeedImpl.java
... ...
@@ -0,0 +1,30 @@
1
+package com.sap.sse.common.impl;
2
+
3
+import com.sap.sse.common.AbstractSpeedImpl;
4
+import com.sap.sse.common.Speed;
5
+
6
+public class KnotSpeedImpl extends AbstractSpeedImpl implements Speed {
7
+ private static final long serialVersionUID = 5150851454271610069L;
8
+ private final double knots;
9
+
10
+ public KnotSpeedImpl(double knots) {
11
+ this.knots = knots;
12
+ }
13
+
14
+ @Override
15
+ public double getKnots() {
16
+ return knots;
17
+ }
18
+
19
+ /**
20
+ * Saves extra work by only converting the other object's speed to knots; useful in particular
21
+ * if both speeds are knot-based speeds
22
+ */
23
+ @Override
24
+ public boolean equals(Object object) {
25
+ if (object == null || !(object instanceof Speed)) {
26
+ return false;
27
+ }
28
+ return getKnots() == ((Speed) object).getKnots();
29
+ }
30
+}
java/com.sap.sse.common/src/com/sap/sse/common/impl/KnotSpeedWithBearingImpl.java
... ...
@@ -0,0 +1,18 @@
1
+package com.sap.sse.common.impl;
2
+
3
+import com.sap.sse.common.Bearing;
4
+
5
+public class KnotSpeedWithBearingImpl extends AbstractSpeedWithBearingImpl {
6
+ private static final long serialVersionUID = -2300633070560631053L;
7
+ private final double speedInKnots;
8
+
9
+ public KnotSpeedWithBearingImpl(double speedInKnots, Bearing bearing) {
10
+ super(bearing);
11
+ this.speedInKnots = speedInKnots;
12
+ }
13
+
14
+ @Override
15
+ public double getKnots() {
16
+ return speedInKnots;
17
+ }
18
+}
java/com.sap.sse.common/src/com/sap/sse/common/impl/MeterDistance.java
... ...
@@ -0,0 +1,29 @@
1
+package com.sap.sse.common.impl;
2
+
3
+import com.sap.sse.common.AbstractDistance;
4
+import com.sap.sse.common.Distance;
5
+
6
+public class MeterDistance extends AbstractDistance {
7
+ private static final long serialVersionUID = 1205385257141317881L;
8
+ private final double meters;
9
+
10
+ public MeterDistance(double meters) {
11
+ this.meters = meters;
12
+ }
13
+
14
+ @Override
15
+ public double getMeters() {
16
+ return meters;
17
+ }
18
+
19
+ @Override
20
+ public Distance scale(double factor) {
21
+ return new MeterDistance(factor * meters);
22
+ }
23
+
24
+ @Override
25
+ public double getCentralAngleDeg() {
26
+ return getGeographicalMiles() / 60.;
27
+ }
28
+
29
+}
java/com.sap.sse.common/src/com/sap/sse/common/impl/MeterPerSecondSpeedImpl.java
... ...
@@ -0,0 +1,23 @@
1
+package com.sap.sse.common.impl;
2
+
3
+import com.sap.sse.common.AbstractSpeedImpl;
4
+import com.sap.sse.common.Speed;
5
+
6
+public class MeterPerSecondSpeedImpl extends AbstractSpeedImpl implements Speed {
7
+ private static final long serialVersionUID = -524654796500981303L;
8
+ private final double metersPerSecond;
9
+
10
+ public MeterPerSecondSpeedImpl(double metersPerSecond) {
11
+ this.metersPerSecond = metersPerSecond;
12
+ }
13
+
14
+ @Override
15
+ public double getMetersPerSecond() {
16
+ return metersPerSecond;
17
+ }
18
+
19
+ @Override
20
+ public double getKilometersPerHour() {
21
+ return metersPerSecond*3.6;
22
+ }
23
+}
java/com.sap.sse.common/src/com/sap/sse/common/impl/MeterPerSecondSpeedWithDegreeBearingImpl.java
... ...
@@ -0,0 +1,29 @@
1
+package com.sap.sse.common.impl;
2
+
3
+import com.sap.sse.common.Bearing;
4
+
5
+public class MeterPerSecondSpeedWithDegreeBearingImpl extends AbstractSpeedWithAbstractBearingImpl {
6
+ private static final long serialVersionUID = -524654796500981303L;
7
+ private final double metersPerSecond;
8
+ private final Bearing bearing;
9
+
10
+ public MeterPerSecondSpeedWithDegreeBearingImpl(double metersPerSecond, Bearing bearing) {
11
+ this.metersPerSecond = metersPerSecond;
12
+ this.bearing = bearing;
13
+ }
14
+
15
+ @Override
16
+ public double getMetersPerSecond() {
17
+ return metersPerSecond;
18
+ }
19
+
20
+ @Override
21
+ public double getKilometersPerHour() {
22
+ return metersPerSecond*3.6;
23
+ }
24
+
25
+ @Override
26
+ public Bearing getBearing() {
27
+ return bearing;
28
+ }
29
+}
java/com.sap.sse.common/src/com/sap/sse/common/impl/NauticalMileDistance.java
... ...
@@ -0,0 +1,30 @@
1
+package com.sap.sse.common.impl;
2
+
3
+import com.sap.sse.common.AbstractDistance;
4
+import com.sap.sse.common.Distance;
5
+
6
+public class NauticalMileDistance extends AbstractDistance {
7
+ private static final long serialVersionUID = 3771473789235934127L;
8
+ private final double nauticalMiles;
9
+
10
+ public NauticalMileDistance(double nauticalMiles) {
11
+ super();
12
+ this.nauticalMiles = nauticalMiles;
13
+ }
14
+
15
+ @Override
16
+ public double getNauticalMiles() {
17
+ return nauticalMiles;
18
+ }
19
+
20
+ @Override
21
+ public double getCentralAngleDeg() {
22
+ return getGeographicalMiles() / 60.;
23
+ }
24
+
25
+ @Override
26
+ public Distance scale(double factor) {
27
+ return new NauticalMileDistance(factor * nauticalMiles);
28
+ }
29
+
30
+}
java/com.sap.sse.common/src/com/sap/sse/common/impl/RadianBearingImpl.java
... ...
@@ -0,0 +1,25 @@
1
+package com.sap.sse.common.impl;
2
+
3
+import com.sap.sse.common.AbstractBearing;
4
+import com.sap.sse.common.Bearing;
5
+
6
+public class RadianBearingImpl extends AbstractBearing implements Bearing {
7
+ private static final long serialVersionUID = 5044142324540650696L;
8
+ private final double bearingRad;
9
+
10
+ public RadianBearingImpl(double bearingRad) {
11
+ super();
12
+ this.bearingRad = bearingRad - 2*Math.PI * (int) (bearingRad/2./Math.PI);
13
+ }
14
+
15
+ @Override
16
+ public double getDegrees() {
17
+ return getRadians() / Math.PI * 180.;
18
+ }
19
+
20
+ @Override
21
+ public double getRadians() {
22
+ return bearingRad;
23
+ }
24
+
25
+}
java/com.sap.sse.common/src/com/sap/sse/common/impl/RadianPosition.java
... ...
@@ -0,0 +1,26 @@
1
+package com.sap.sse.common.impl;
2
+
3
+import com.sap.sse.common.AbstractPosition;
4
+
5
+public class RadianPosition extends AbstractPosition {
6
+ private static final long serialVersionUID = -8488453506845560385L;
7
+ private final double latRad;
8
+ private final double lngRad;
9
+
10
+ public RadianPosition(double latRad, double lngRad) {
11
+ super();
12
+ this.latRad = latRad;
13
+ this.lngRad = lngRad;
14
+ }
15
+
16
+ @Override
17
+ public double getLatRad() {
18
+ return latRad;
19
+ }
20
+
21
+ @Override
22
+ public double getLngRad() {
23
+ return lngRad;
24
+ }
25
+
26
+}
java/com.sap.sse.common/src/com/sap/sse/common/scalablevalue/HasConfidence.java
... ...
@@ -1,90 +0,0 @@
1
-package com.sap.sse.common.scalablevalue;
2
-
3
-import java.io.Serializable;
4
-
5
-import com.sap.sse.common.Distance;
6
-import com.sap.sse.common.TimePoint;
7
-
8
-/**
9
- * Some values, particularly those obtained from real-world measurements, are not always accurate. Some values are
10
- * derived by interpolating or extrapolating data series obtained through measurement or even estimation. Some values
11
- * are simply guessed by humans and entered into the system.
12
- * <p>
13
- *
14
- * All those values have a certain level of confidence. In case multiple sources of information about the same entity or
15
- * phenomenon are available, knowing the confidence of each value helps in weighing and averaging these values more
16
- * properly than would be possible without a confidence value.
17
- * <p>
18
- *
19
- * In simple cases, the type used to compute a weighed average over the things equipped with a confidence level is the
20
- * same as the type of the things themselves. In particular, this is the case for scalar types such as {@link Double}
21
- * and {@link Distance}. For non-scalar values, averaging may be non-trivial. For example, averaging a bearing cannot
22
- * simply happen by computing the arithmetic average of the bearing's angles. Instead, an intermediate structure
23
- * providing the sinus and cosinus values of the bearing's angle is used to compute the weighed average tangens.
24
- * <p>
25
- *
26
- * Generally, the relationship between the type implementing this interface, the <code>ValueType</code> and the
27
- * <code>AveragesTo</code> type is this: an instance of the implementing type can transform itself into a
28
- * {@link ScalableValue} which is then used for computing a weighed sum. The values' weight is their
29
- * {@link #getConfidence() confidence}. The sum (which is still a {@link ScalableValue} because
30
- * {@link ScalableValue#add(ScalableValue)} returns again a {@link ScalableValue}) is then
31
- * {@link ScalableValue#divide(double) divided} by the sum of the confidences. This "division" is expected to
32
- * produce an object of type <code>AveragesTo</code>. Usually, <code>AveragesTo</code> would be the same as the class
33
- * implementing this interface.
34
- *
35
- * @author Axel Uhl (d043530)
36
- *
37
- * @param <ValueType>
38
- * the type of the scalable value used for scalar operations during aggregation
39
- * @param <RelativeTo>
40
- * the type of the object relative to which the confidence applies; for example, if the
41
- * base type is a position and the <code>RelativeTo</code> type is {@link TimePoint},
42
- * the confidence of the position is relative to a certain time point. Together with
43
- * a correspondingly-typed weigher, such a value with confidence can be aggregated with
44
- * other values, again relative to (maybe a different) time point.
45
- */
46
-public interface HasConfidence<ValueType, BaseType, RelativeTo> extends Serializable {
47
- /**
48
- * A confidence is a number between 0.0 and 1.0 (inclusive) where 0.0 means that the value is randomly guessed while
49
- * 1.0 means the value is authoritatively known for a fact. It represents the weight with which a value is to be
50
- * considered by averaging, interpolation and extrapolation algorithms.
51
- * <p>
52
- *
53
- * An averaging algorithm for a sequence of <code>n</code> tuples <code>(v1, c1), ..., (vn, cn)</code> of a value
54
- * <code>vi</code> with a confidence <code>ci</code> each can for example look like this:
55
- * <code>a := (c1*v1 + ... + cn*vn) / (c1 + ... + cn)</code>. For a single value with a confidence this trivially
56
- * results in <code>c1*v1 / (c1)</code> which is equivalent to <code>v1</code>. As another example, consider two
57
- * values with equal confidence <code>0.8</code>. Then, <code>a := (0.8*v1 + 0.8*vn) / (0.8 + 0.8)</code> which
58
- * resolves to <code>0.5*v1 + 0.5*v2</code> which is obviously the arithmetic mean of the two values. If one value
59
- * has confidence <code>0.8</code> and the other <code>0.4</code>, then
60
- * <code>a := (0.8*v1 + 0.4*vn) / (0.8 + 0.4)</code> which resolves to <code>2/3*v1 + 1/3*v2</code> which is a
61
- * weighed average.
62
- * <p>
63
- *
64
- * Note, that this doesn't exactly take facts for facts. In other words, if one value is provided with a confidence
65
- * of <code>1.0</code>, the average may still be influenced by other values. However, this cleanly resolves otherwise
66
- * mutually contradictory "facts" such a <code>(v1, 1.0), (v2, 1.0)</code> with <code>v1 != v2</code>. It is
67
- * considered bad practice to claim a fact as soon as it results from any kind of measurement or estimation. All
68
- * measurement devices produce some statistical errors, no matter how small (cf. Heisenberg ;-) ).
69
- */
70
- double getConfidence();
71
-
72
- /**
73
- * The confidence attached to a value is usually relative to some reference point, such as a time point or
74
- * a position. For example, when a <code>GPSFixTrack</code> is asked to deliver an estimation for the tracked item's
75
- * {@link Position} at some given {@link TimePoint}, the track computes some average from a number of GPS fixes. The resulting
76
- * position has a certain confidence, depending on the time differences between the fixes and the time point for which
77
- * the position estimation was requested. The result therefore carries this reference time point for which the estimation
78
- * was requested so that when the result is to be used in further estimations it is clear relative to which time point the
79
- * confidence is to be interpreted.<p>
80
- *
81
- * In this context, a single GPS fix is a measurement whose values may also have a confidence attached. This confidence could be
82
- * regarded as relative to the fix's time point.
83
- */
84
- RelativeTo getRelativeTo();
85
-
86
- /**
87
- * The object annotated by a confidence
88
- */
89
- BaseType getObject();
90
-}
java/com.sap.sse.common/src/com/sap/sse/common/scalablevalue/HasConfidenceAndIsScalable.java
... ...
@@ -1,5 +1,7 @@
1 1
package com.sap.sse.common.scalablevalue;
2 2
3
+import com.sap.sse.common.confidence.HasConfidence;
4
+
3 5
public interface HasConfidenceAndIsScalable<ValueType, BaseType, RelativeTo> extends IsScalable<ValueType, BaseType>,
4 6
HasConfidence<ValueType, BaseType, RelativeTo> {
5 7
}
java/com.sap.sse.common/src/com/sap/sse/common/scalablevalue/impl/ScalableBearing.java
... ...
@@ -0,0 +1,87 @@
1
+package com.sap.sse.common.scalablevalue.impl;
2
+
3
+import com.sap.sse.common.Bearing;
4
+import com.sap.sse.common.DoublePair;
5
+import com.sap.sse.common.impl.RadianBearingImpl;
6
+import com.sap.sse.common.scalablevalue.ScalableValue;
7
+import com.sap.sse.common.scalablevalue.ScalableValueWithDistance;
8
+
9
+public class ScalableBearing implements ScalableValueWithDistance<DoublePair, Bearing> {
10
+ private final double sin;
11
+ private final double cos;
12
+
13
+ public ScalableBearing(Bearing bearing) {
14
+ this.sin = Math.sin(bearing.getRadians());
15
+ this.cos = Math.cos(bearing.getRadians());
16
+ }
17
+
18
+ private ScalableBearing(double sin, double cos) {
19
+ this.sin = sin;
20
+ this.cos = cos;
21
+ }
22
+
23
+ @Override
24
+ public ScalableBearing multiply(double factor) {
25
+ DoublePair pair = getValue();
26
+ return new ScalableBearing(factor*pair.getA(), factor*pair.getB());
27
+ }
28
+
29
+ @Override
30
+ public ScalableBearing add(ScalableValue<DoublePair, Bearing> t) {
31
+ DoublePair value = getValue();
32
+ DoublePair tValue = t.getValue();
33
+ return new ScalableBearing(value.getA()+tValue.getA(), value.getB()+tValue.getB());
34
+ }
35
+
36
+ /**
37
+ * If the combined confidence was 0.0, no {@link Bearing} object can reasonably be computed; hence, <code>null</code>
38
+ * is returned in such cases.
39
+ */
40
+ @Override
41
+ public Bearing divide(double divisor) {
42
+ Bearing result;
43
+ if (sin == 0 && cos == 0) {
44
+ result = null;
45
+ } else {
46
+ double angle;
47
+ if (cos == 0) {
48
+ angle = sin >= 0 ? Math.PI / 2 : -Math.PI / 2;
49
+ } else {
50
+ angle = Math.atan2(sin, cos);
51
+ }
52
+ result = new RadianBearingImpl(angle < 0 ? angle + 2 * Math.PI : angle);
53
+ }
54
+ return result;
55
+ }
56
+
57
+ @Override
58
+ public DoublePair getValue() {
59
+ return new DoublePair(sin, cos);
60
+ }
61
+
62
+ @Override
63
+ public double getDistance(Bearing other) {
64
+ return Math.abs(divide(1).getDifferenceTo(other).getDegrees());
65
+ }
66
+
67
+ /**
68
+ * Computing the difference to a {@link bearing}, as implemented by {@link #getDistance(Bearing)} is correct but
69
+ * slow because the {@link Math#atan2(double)} function is used to {@link ScalableBearing#divide(double) bring the
70
+ * scalable bearing down to a bearing}. A less precise, yet much faster to compute and still monotonous distance
71
+ * measure computes the length of the line segment connecting this bearing's projection onto a circle with the
72
+ * projection of the bearing <code>a</code> to the same circle. The distance returned by this method will provide
73
+ * almost equal values for very small differences (below 1deg) but significantly smaller values for big differences.
74
+ *
75
+ * @return an approximate difference in degrees, fairly accurate for small differences, but returning 360.0/PI
76
+ * (approximately 114) instead of 180 for the maximum difference
77
+ */
78
+ public double getApproximateDegreeDistanceTo(Bearing a) {
79
+ double scale = Math.sqrt(sin*sin + cos*cos);
80
+ double x = cos/scale;
81
+ double y = sin/scale;
82
+ double ax = Math.cos(a.getRadians());
83
+ double ay = Math.sin(a.getRadians());
84
+ double normalDistance = Math.sqrt((x-ax)*(x-ax) + (y-ay)*(y-ay));
85
+ return normalDistance / Math.PI * 180.;
86
+ }
87
+}
java/com.sap.sse.common/src/com/sap/sse/common/scalablevalue/impl/ScalableDistance.java
... ...
@@ -0,0 +1,44 @@
1
+package com.sap.sse.common.scalablevalue.impl;
2
+
3
+import com.sap.sse.common.Distance;
4
+import com.sap.sse.common.impl.MeterDistance;
5
+import com.sap.sse.common.scalablevalue.ScalableValue;
6
+import com.sap.sse.common.scalablevalue.ScalableValueWithDistance;
7
+
8
+public class ScalableDistance implements ScalableValueWithDistance<Double, Distance> {
9
+ private final double meters;
10
+
11
+ public ScalableDistance(Distance distance) {
12
+ this.meters = distance.getMeters();
13
+ }
14
+
15
+ private ScalableDistance(double meters) {
16
+ this.meters = meters;
17
+ }
18
+
19
+ @Override
20
+ public ScalableDistance multiply(double factor) {
21
+ return new ScalableDistance(factor*meters);
22
+ }
23
+
24
+ @Override
25
+ public ScalableDistance add(ScalableValue<Double, Distance> t) {
26
+ return new ScalableDistance(meters+t.getValue());
27
+ }
28
+
29
+ @Override
30
+ public Distance divide(double divisor) {
31
+ return new MeterDistance(meters / divisor);
32
+ }
33
+
34
+ @Override
35
+ public Double getValue() {
36
+ return meters;
37
+ }
38
+
39
+ @Override
40
+ public double getDistance(Distance other) {
41
+ return Math.abs(meters-other.getMeters());
42
+ }
43
+
44
+}
java/com.sap.sse.common/src/com/sap/sse/common/scalablevalue/impl/ScalableDuration.java
... ...
@@ -0,0 +1,48 @@
1
+package com.sap.sse.common.scalablevalue.impl;
2
+
3
+import com.sap.sse.common.Duration;
4
+import com.sap.sse.common.impl.SecondsDurationImpl;
5
+import com.sap.sse.common.scalablevalue.ScalableValue;
6
+import com.sap.sse.common.scalablevalue.ScalableValueWithDistance;
7
+
8
+public class ScalableDuration implements ScalableValueWithDistance<Double, Duration> {
9
+ private final double seconds;
10
+
11
+ public ScalableDuration(Duration duration) {
12
+ this.seconds = duration.asSeconds();
13
+ }
14
+
15
+ private ScalableDuration(double seconds) {
16
+ this.seconds = seconds;
17
+ }
18
+
19
+ @Override
20
+ public ScalableDuration multiply(double factor) {
21
+ return new ScalableDuration(factor*seconds);
22
+ }
23
+
24
+ @Override
25
+ public ScalableDuration add(ScalableValue<Double, Duration> t) {
26
+ return new ScalableDuration(seconds+t.getValue());
27
+ }
28
+
29
+ @Override
30
+ public Duration divide(double divisor) {
31
+ return new SecondsDurationImpl(seconds / divisor);
32
+ }
33
+
34
+ @Override
35
+ public Double getValue() {
36
+ return seconds;
37
+ }
38
+
39
+ @Override
40
+ public double getDistance(Duration other) {
41
+ return Math.abs(seconds-other.asSeconds());
42
+ }
43
+
44
+ @Override
45
+ public String toString() {
46
+ return divide(1).toString();
47
+ }
48
+}
java/com.sap.sse.common/src/com/sap/sse/common/scalablevalue/impl/ScalablePosition.java
... ...
@@ -0,0 +1,75 @@
1
+package com.sap.sse.common.scalablevalue.impl;
2
+
3
+import com.sap.sse.common.DoubleTriple;
4
+import com.sap.sse.common.Position;
5
+import com.sap.sse.common.impl.RadianPosition;
6
+import com.sap.sse.common.scalablevalue.ScalableValue;
7
+import com.sap.sse.common.scalablevalue.ScalableValueWithDistance;
8
+
9
+public class ScalablePosition implements ScalableValueWithDistance<ScalablePosition, Position> {
10
+ private final double x, y, z;
11
+
12
+ public ScalablePosition(Position position) {
13
+ this(Math.cos(position.getLatRad()) * Math.cos(position.getLngRad()),
14
+ Math.cos(position.getLatRad()) * Math.sin(position.getLngRad()),
15
+ Math.sin(position.getLatRad()));
16
+ }
17
+
18
+ /**
19
+ * Use the three components obtained from {@link #getValueAsTriple()}
20
+ */
21
+ public ScalablePosition(double x, double y, double z) {
22
+ this.x = x;
23
+ this.y = y;
24
+ this.z = z;
25
+ }
26
+
27
+ @Override
28
+ public ScalablePosition multiply(double factor) {
29
+ return new ScalablePosition(factor*x, factor*y, factor*z);
30
+ }
31
+
32
+ @Override
33
+ public ScalablePosition add(ScalableValue<ScalablePosition, Position> t) {
34
+ ScalablePosition result;
35
+ if (t == null) {
36
+ result = this;
37
+ } else {
38
+ result = new ScalablePosition(x+t.getValue().x, y+t.getValue().y, z+t.getValue().z);
39
+ }
40
+ return result;
41
+ }
42
+
43
+ /**
44
+ * If combined confidence is 0.0 (all coordinate components are 0.0), <code>null</code> is returned because no
45
+ * position can reasonably be constructed out of nowhere.
46
+ */
47
+ @Override
48
+ public Position divide(double divisor) {
49
+ Position result;
50
+ if (x == 0 && y == 0 && z == 0) {
51
+ result = null;
52
+ } else {
53
+ // don't need to scale down; atan2 is agnostic regarding scaling factors
54
+ double hyp = Math.sqrt(x * x + y * y);
55
+ double latRad = Math.atan2(z, hyp);
56
+ double lngRad = Math.atan2(y, x);
57
+ result = new RadianPosition(latRad, lngRad);
58
+ }
59
+ return result;
60
+ }
61
+
62
+ @Override
63
+ public ScalablePosition getValue() {
64
+ return this;
65
+ }
66
+
67
+ @Override
68
+ public double getDistance(Position other) {
69
+ return divide(1).getDistance(other).getCentralAngleDeg();
70
+ }
71
+
72
+ public DoubleTriple getValueAsTriple() {
73
+ return new DoubleTriple(x, y, z);
74
+ }
75
+}
... ...
\ No newline at end of file
java/com.sap.sse.common/src/com/sap/sse/common/scalablevalue/impl/ScalableSpeed.java
... ...
@@ -0,0 +1,44 @@
1
+package com.sap.sse.common.scalablevalue.impl;
2
+
3
+import com.sap.sse.common.Speed;
4
+import com.sap.sse.common.impl.KnotSpeedImpl;
5
+import com.sap.sse.common.scalablevalue.ScalableValue;
6
+import com.sap.sse.common.scalablevalue.ScalableValueWithDistance;
7
+
8
+public class ScalableSpeed implements ScalableValueWithDistance<Double, Speed> {
9
+ private final double knots;
10
+
11
+ public ScalableSpeed(Speed speed) {
12
+ this.knots = speed.getKnots();
13
+ }
14
+
15
+ private ScalableSpeed(double knots) {
16
+ this.knots = knots;
17
+ }
18
+
19
+ @Override
20
+ public ScalableSpeed multiply(double factor) {
21
+ return new ScalableSpeed(factor*knots);
22
+ }
23
+
24
+ @Override
25
+ public ScalableSpeed add(ScalableValue<Double, Speed> t) {
26
+ return new ScalableSpeed(knots+t.getValue());
27
+ }
28
+
29
+ @Override
30
+ public Speed divide(double divisor) {
31
+ return new KnotSpeedImpl(knots / divisor);
32
+ }
33
+
34
+ @Override
35
+ public Double getValue() {
36
+ return knots;
37
+ }
38
+
39
+ @Override
40
+ public double getDistance(Speed other) {
41
+ return Math.abs(knots-other.getKnots());
42
+ }
43
+
44
+}
java/com.sap.sse.common/src/com/sap/sse/common/scalablevalue/impl/ScalableSpeedWithBearing.java
... ...
@@ -0,0 +1,74 @@
1
+package com.sap.sse.common.scalablevalue.impl;
2
+
3
+import com.sap.sse.common.Bearing;
4
+import com.sap.sse.common.DoubleTriple;
5
+import com.sap.sse.common.Speed;
6
+import com.sap.sse.common.SpeedWithBearing;
7
+import com.sap.sse.common.impl.KnotSpeedImpl;
8
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
9
+import com.sap.sse.common.impl.RadianBearingImpl;
10
+import com.sap.sse.common.scalablevalue.ScalableValue;
11
+
12
+/**
13
+ * Separately scales speed and bearing. Instead of considering speed and bearing a single vector that can be scaled, the
14
+ * bearing is scaled separately, and the speed is scaled as a scalar value independently of the bearing. This is
15
+ * particularly useful for {@link Wind} scaling where it makes more sense to average the wind speed independently of the
16
+ * wind direction / bearing than adding up the "wind vectors" and averaging, which would reduce the resulting wind speed
17
+ * for constant wind speeds across all fixes with different directions.<p>
18
+ *
19
+ * The triple used for scaling uses the speed in knots as the first component, the sine as the second and the
20
+ * cosine as the third value.
21
+ *
22
+ * @author Axel Uhl (d043530)
23
+ *
24
+ */
25
+public class ScalableSpeedWithBearing implements ScalableValue<DoubleTriple, SpeedWithBearing> {
26
+ private final double speedInKnots;
27
+ private final double sin;
28
+ private final double cos;
29
+
30
+ public ScalableSpeedWithBearing(SpeedWithBearing speedWithBearing) {
31
+ this(speedWithBearing.getKnots(), Math.sin(speedWithBearing.getBearing()
32
+ .getRadians()), Math.cos(speedWithBearing.getBearing().getRadians()));
33
+ }
34
+
35
+ public ScalableSpeedWithBearing(Speed speed, double sin, double cos) {
36
+ this(speed.getKnots(), sin, cos);
37
+ }
38
+
39
+ public ScalableSpeedWithBearing(double speedInKnots, double sin, double cos) {
40
+ this.speedInKnots = speedInKnots;
41
+ this.sin = sin;
42
+ this.cos = cos;
43
+ }
44
+
45
+ @Override
46
+ public ScalableSpeedWithBearing multiply(double factor) {
47
+ return new ScalableSpeedWithBearing(factor*speedInKnots, factor*sin, factor*cos);
48
+ }
49
+
50
+ @Override
51
+ public ScalableSpeedWithBearing add(ScalableValue<DoubleTriple, SpeedWithBearing> t) {
52
+ final DoubleTriple tValue = t.getValue();
53
+ return new ScalableSpeedWithBearing(speedInKnots + tValue.getA(), sin+tValue.getB(), cos+tValue.getC());
54
+ }
55
+
56
+ @Override
57
+ public SpeedWithBearing divide(double divisor) {
58
+ Speed newSpeed = new KnotSpeedImpl(speedInKnots / divisor);
59
+ double angle;
60
+ if (cos == 0) {
61
+ angle = sin >= 0 ? Math.PI / 2 : -Math.PI / 2;
62
+ } else {
63
+ angle = Math.atan2(sin, cos);
64
+ }
65
+ Bearing bearing = new RadianBearingImpl(angle < 0 ? angle + 2 * Math.PI : angle);
66
+ return new KnotSpeedWithBearingImpl(newSpeed.getKnots(), bearing);
67
+ }
68
+
69
+ @Override
70
+ public DoubleTriple getValue() {
71
+ return new DoubleTriple(speedInKnots, sin, cos);
72
+ }
73
+
74
+}
... ...
\ No newline at end of file
mobile/com.sap.sailing.android.tracking.app/src/com/sap/sailing/android/tracking/app/services/TrackingService.java
... ...
@@ -1,5 +1,7 @@
1 1
package com.sap.sailing.android.tracking.app.services;
2 2
3
+import static android.os.Process.THREAD_PRIORITY_BACKGROUND;
4
+
3 5
import android.app.Service;
4 6
import android.content.Context;
5 7
import android.content.Intent;
... ...
@@ -24,7 +26,7 @@ import com.sap.sailing.android.tracking.app.R;
24 26
import com.sap.sailing.android.tracking.app.utils.AppPreferences;
25 27
import com.sap.sailing.android.tracking.app.utils.DatabaseHelper;
26 28
import com.sap.sailing.android.tracking.app.valueobjects.EventInfo;
27
-import com.sap.sailing.domain.common.impl.MeterPerSecondSpeedImpl;
29
+import com.sap.sse.common.impl.MeterPerSecondSpeedImpl;
28 30
import com.sap.sailing.domain.common.tracking.impl.FlatSmartphoneUuidAndGPSFixMovingJsonSerializer;
29 31
import com.sap.sse.common.Bearing;
30 32
import com.sap.sse.common.Duration;
... ...
@@ -43,8 +45,6 @@ import java.util.Timer;
43 45
import java.util.TimerTask;
44 46
import java.util.UUID;
45 47
46
-import static android.os.Process.THREAD_PRIORITY_BACKGROUND;
47
-
48 48
public class TrackingService extends Service implements LocationListener {
49 49
50 50
private static final String TAG = TrackingService.class.getName();
mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/coursedesign/AbstractCourseDesign.java
... ...
@@ -3,7 +3,7 @@ package com.sap.sailing.racecommittee.app.domain.coursedesign;
3 3
import java.util.HashSet;
4 4
import java.util.Set;
5 5
6
-import com.sap.sailing.domain.common.Position;
6
+import com.sap.sse.common.Position;
7 7
import com.sap.sse.common.Bearing;
8 8
9 9
public abstract class AbstractCourseDesign implements CourseDesign {
mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/coursedesign/AbstractCourseDesignFactory.java
... ...
@@ -3,8 +3,8 @@ package com.sap.sailing.racecommittee.app.domain.coursedesign;
3 3
import java.text.DecimalFormat;
4 4
import java.util.Set;
5 5
6
-import com.sap.sailing.domain.common.Position;
7
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
6
+import com.sap.sse.common.Position;
7
+import com.sap.sse.common.impl.NauticalMileDistance;
8 8
import com.sap.sailing.racecommittee.app.utils.GeoUtils;
9 9
import com.sap.sse.common.Bearing;
10 10
import com.sap.sse.common.Distance;
mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/coursedesign/BoatClassType.java
... ...
@@ -5,7 +5,7 @@ import java.util.HashMap;
5 5
import java.util.Map;
6 6
import java.util.TreeMap;
7 7
8
-import com.sap.sailing.domain.common.impl.MeterDistance;
8
+import com.sap.sse.common.impl.MeterDistance;
9 9
import com.sap.sse.common.Distance;
10 10
11 11
@SuppressWarnings("serial")
mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/coursedesign/CourseDesign.java
... ...
@@ -2,7 +2,7 @@ package com.sap.sailing.racecommittee.app.domain.coursedesign;
2 2
3 3
import java.util.Set;
4 4
5
-import com.sap.sailing.domain.common.Position;
5
+import com.sap.sse.common.Position;
6 6
import com.sap.sse.common.Bearing;
7 7
8 8
public interface CourseDesign {
mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/coursedesign/CourseDesignComputer.java
... ...
@@ -1,6 +1,6 @@
1 1
package com.sap.sailing.racecommittee.app.domain.coursedesign;
2 2
3
-import com.sap.sailing.domain.common.Position;
3
+import com.sap.sse.common.Position;
4 4
import com.sap.sse.common.Bearing;
5 5
6 6
import android.util.Log;
mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/coursedesign/CourseDesignFactory.java
... ...
@@ -1,6 +1,6 @@
1 1
package com.sap.sailing.racecommittee.app.domain.coursedesign;
2 2
3
-import com.sap.sailing.domain.common.Position;
3
+import com.sap.sse.common.Position;
4 4
import com.sap.sse.common.Bearing;
5 5
6 6
public interface CourseDesignFactory {
mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/coursedesign/Located.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.racecommittee.app.domain.coursedesign;
2 2
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.Positioned;
3
+import com.sap.sse.common.Position;
4
+import com.sap.sse.common.Positioned;
5 5
import com.sap.sse.common.Bearing;
6 6
import com.sap.sse.common.Distance;
7 7
mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/coursedesign/PositionedMark.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.racecommittee.app.domain.coursedesign;
2 2
3 3
import com.sap.sailing.domain.base.Mark;
4
-import com.sap.sailing.domain.common.Positioned;
4
+import com.sap.sse.common.Positioned;
5 5
6 6
public interface PositionedMark extends Mark, Positioned, Located {
7 7
mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/coursedesign/PositionedMarkImpl.java
... ...
@@ -2,8 +2,8 @@ package com.sap.sailing.racecommittee.app.domain.coursedesign;
2 2
3 3
import com.sap.sailing.domain.base.impl.MarkImpl;
4 4
import com.sap.sailing.domain.common.MarkType;
5
-import com.sap.sailing.domain.common.Position;
6
-import com.sap.sailing.domain.common.impl.MeterDistance;
5
+import com.sap.sse.common.Position;
6
+import com.sap.sse.common.impl.MeterDistance;
7 7
import com.sap.sse.common.Bearing;
8 8
import com.sap.sse.common.Distance;
9 9
import com.sap.sse.common.impl.DegreeBearingImpl;
mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/coursedesign/TrapezoidCourseDesignFactoryImpl.java
... ...
@@ -6,8 +6,8 @@ import java.util.Map.Entry;
6 6
import java.util.Set;
7 7
8 8
import com.sap.sailing.domain.common.MarkType;
9
-import com.sap.sailing.domain.common.Position;
10
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
9
+import com.sap.sse.common.Position;
10
+import com.sap.sse.common.impl.NauticalMileDistance;
11 11
import com.sap.sailing.racecommittee.app.utils.GeoUtils;
12 12
import com.sap.sse.common.Bearing;
13 13
import com.sap.sse.common.Distance;
mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/coursedesign/WindWardLeeWardCourseDesignFactoryImpl.java
... ...
@@ -5,8 +5,8 @@ import java.util.Map;
5 5
import java.util.Map.Entry;
6 6
import java.util.Set;
7 7
8
-import com.sap.sailing.domain.common.Position;
9
-import com.sap.sailing.domain.common.impl.NauticalMileDistance;
8
+import com.sap.sse.common.Position;
9
+import com.sap.sse.common.impl.NauticalMileDistance;
10 10
import com.sap.sailing.racecommittee.app.utils.GeoUtils;
11 11
import com.sap.sse.common.Bearing;
12 12
import com.sap.sse.common.Distance;
mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/WindFragment.java
... ...
@@ -59,11 +59,11 @@ import com.sap.sailing.domain.base.racegroup.CurrentRaceComparator;
59 59
import com.sap.sailing.domain.base.racegroup.CurrentRaceFilter;
60 60
import com.sap.sailing.domain.base.racegroup.RaceGroupSeriesFleet;
61 61
import com.sap.sailing.domain.base.racegroup.impl.CurrentRaceFilterImpl;
62
-import com.sap.sailing.domain.common.Position;
63
-import com.sap.sailing.domain.common.SpeedWithBearing;
62
+import com.sap.sse.common.Position;
63
+import com.sap.sse.common.SpeedWithBearing;
64 64
import com.sap.sailing.domain.common.Wind;
65
-import com.sap.sailing.domain.common.impl.DegreePosition;
66
-import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
65
+import com.sap.sse.common.impl.DegreePosition;
66
+import com.sap.sse.common.impl.KnotSpeedWithBearingImpl;
67 67
import com.sap.sailing.domain.common.impl.WindImpl;
68 68
import com.sap.sailing.racecommittee.app.AppConstants;
69 69
import com.sap.sailing.racecommittee.app.R;
mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/GeoUtils.java
... ...
@@ -1,7 +1,7 @@
1 1
package com.sap.sailing.racecommittee.app.utils;
2 2
3
-import com.sap.sailing.domain.common.Position;
4
-import com.sap.sailing.domain.common.impl.DegreePosition;
3
+import com.sap.sse.common.Position;
4
+import com.sap.sse.common.impl.DegreePosition;
5 5
import com.sap.sailing.racecommittee.app.R;
6 6
import com.sap.sse.common.Bearing;
7 7
import com.sap.sse.common.Distance;