moved confidence stuff to com.sap.sailing.domain.common to enable its use in GWT, e.g., for a spatial wind field interpolation on the client side

This commit is contained in:
Axel Uhl
2014-06-13 18:59:12 +02:00
parent 270b0d2b90
commit 2367888dfa
41 changed files with 155 additions and 132 deletions
@@ -7,6 +7,8 @@ Bundle-Vendor: SAP
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Export-Package: com.sap.sailing.domain.common,
com.sap.sailing.domain.common.confidence,
com.sap.sailing.domain.common.confidence.impl,
com.sap.sailing.domain.common.configuration,
com.sap.sailing.domain.common.dto,
com.sap.sailing.domain.common.impl,
@@ -1,4 +1,4 @@
package com.sap.sailing.domain.confidence;
package com.sap.sailing.domain.common.confidence;
public interface ConfidenceBasedAverager<ValueType, BaseType, RelativeTo> {
/**
@@ -0,0 +1,44 @@
package com.sap.sailing.domain.common.confidence;
import com.sap.sailing.domain.common.Distance;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.common.confidence.impl.ConfidenceBasedAveragerFactoryImpl;
public interface ConfidenceFactory {
ConfidenceFactory INSTANCE = new ConfidenceBasedAveragerFactoryImpl();
/**
* @param weigher
* used to determine the confidence of the elements to be averaged, relative to the reference point given
* as parameter to {@link ConfidenceBasedAverager#getAverage(Iterable, Object)}. If <code>null</code>,
* 1.0 will be assumed as default confidence for all values provided, regardless the reference point
* relative to which the average is to be computed
*/
<ValueType, BaseType, RelativeTo> ConfidenceBasedAverager<ValueType, BaseType, RelativeTo> createAverager(Weigher<RelativeTo> weigher);
<RelativeTo> Weigher<RelativeTo> createConstantWeigher(double constantConfidence);
/**
* Creates a weigher for time points. With increasing time difference the weight/confidence decreases exponentially.
* It is halved every <code>halfConfidenceAfterMilliseconds</code> milliseconds.
*/
Weigher<TimePoint> createExponentialTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds);
/**
* Like {@link #createExponentialTimeDifferenceWeigher(long)}, only that additionally a minimum confidence value is defined.
* This can be useful for averagers that have trouble with values scaled down with 0.0.
*/
Weigher<TimePoint> createExponentialTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds, double minimumConfidence);
Weigher<TimePoint> createHyperbolicTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds);
Weigher<TimePoint> createHyperbolicSquaredTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds);
/**
* Constructs a weigher that determines a confidence based on a distance. A {@link Distance#NULL zero distance}
* will yield a confidence of 1; a distance of <code>halfConfidence</code> will return a confidence of .5, and the
* confidence will decrease hyperbolically with increasing distance.
*/
Weigher<Position> createHyperbolicDistanceWeigher(Distance halfConfidence);
}
@@ -1,4 +1,4 @@
package com.sap.sailing.domain.confidence;
package com.sap.sailing.domain.common.confidence;
import java.io.Serializable;
@@ -1,4 +1,4 @@
package com.sap.sailing.domain.confidence;
package com.sap.sailing.domain.common.confidence;
import com.sap.sailing.domain.common.scalablevalue.IsScalable;
@@ -1,4 +1,4 @@
package com.sap.sailing.domain.confidence;
package com.sap.sailing.domain.common.confidence;
import java.io.Serializable;
@@ -1,12 +1,11 @@
package com.sap.sailing.domain.confidence.impl;
package com.sap.sailing.domain.common.confidence.impl;
import com.sap.sailing.domain.common.Distance;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.confidence.ConfidenceBasedAverager;
import com.sap.sailing.domain.confidence.ConfidenceBasedWindAverager;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
import com.sap.sailing.domain.common.confidence.ConfidenceFactory;
import com.sap.sailing.domain.common.confidence.Weigher;
public class ConfidenceBasedAveragerFactoryImpl implements ConfidenceFactory {
@Override
@@ -26,11 +25,6 @@ public class ConfidenceBasedAveragerFactoryImpl implements ConfidenceFactory {
return new ConfidenceBasedAveragerImpl<ValueType, BaseType, RelativeTo>(weigher);
}
@Override
public <RelativeTo> ConfidenceBasedWindAverager<RelativeTo> createWindAverager(Weigher<RelativeTo> weigher) {
return new ConfidenceBasedWindAveragerImpl<RelativeTo>(weigher);
}
@Override
public Weigher<TimePoint> createHyperbolicTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds) {
return new HyperbolicTimeDifferenceWeigher(halfConfidenceAfterMilliseconds);
@@ -1,11 +1,10 @@
package com.sap.sailing.domain.confidence.impl;
package com.sap.sailing.domain.common.confidence.impl;
import com.sap.sailing.domain.base.impl.HasConfidenceImpl;
import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
import com.sap.sailing.domain.common.confidence.HasConfidence;
import com.sap.sailing.domain.common.confidence.HasConfidenceAndIsScalable;
import com.sap.sailing.domain.common.confidence.Weigher;
import com.sap.sailing.domain.common.scalablevalue.ScalableValue;
import com.sap.sailing.domain.confidence.ConfidenceBasedAverager;
import com.sap.sailing.domain.confidence.HasConfidence;
import com.sap.sailing.domain.confidence.HasConfidenceAndIsScalable;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sse.common.Util;
@@ -1,7 +1,7 @@
package com.sap.sailing.domain.confidence.impl;
package com.sap.sailing.domain.common.confidence.impl;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.common.confidence.Weigher;
/**
* The weigher computes an exponentially-decreasing weight based on the time difference of two {@link TimePoint}s.
@@ -1,6 +1,6 @@
package com.sap.sailing.domain.base.impl;
package com.sap.sailing.domain.common.confidence.impl;
import com.sap.sailing.domain.confidence.HasConfidence;
import com.sap.sailing.domain.common.confidence.HasConfidence;
public class HasConfidenceImpl<ValueType, BaseType, RelativeTo> implements HasConfidence<ValueType, BaseType, RelativeTo> {
private static final long serialVersionUID = -1635823148449693024L;
@@ -1,8 +1,8 @@
package com.sap.sailing.domain.confidence.impl;
package com.sap.sailing.domain.common.confidence.impl;
import com.sap.sailing.domain.common.Distance;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.common.confidence.Weigher;
public class HyperbolicDistanceWeigher implements Weigher<Position> {
private static final long serialVersionUID = 5521299690322077224L;
@@ -1,7 +1,7 @@
package com.sap.sailing.domain.confidence.impl;
package com.sap.sailing.domain.common.confidence.impl;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.common.confidence.Weigher;
public class HyperbolicSquaredTimeDifferenceWeigher implements Weigher<TimePoint> {
private static final long serialVersionUID = 4378168079868145134L;
@@ -1,7 +1,7 @@
package com.sap.sailing.domain.confidence.impl;
package com.sap.sailing.domain.common.confidence.impl;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.common.confidence.Weigher;
public class HyperbolicTimeDifferenceWeigher implements Weigher<TimePoint> {
private static final long serialVersionUID = 4378168079868145134L;
@@ -1,10 +1,10 @@
package com.sap.sailing.domain.confidence.impl;
package com.sap.sailing.domain.common.confidence.impl;
import com.sap.sailing.domain.common.Distance;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.common.confidence.ConfidenceFactory;
import com.sap.sailing.domain.common.confidence.Weigher;
import com.sap.sse.common.Util;
/**
@@ -1,4 +1,4 @@
package com.sap.sailing.domain.confidence.impl;
package com.sap.sailing.domain.common.confidence.impl;
import com.sap.sailing.domain.common.scalablevalue.AbstractScalarValue;
import com.sap.sailing.domain.common.scalablevalue.ScalableValue;
@@ -1,6 +1,6 @@
package com.sap.sailing.domain.confidence.impl;
package com.sap.sailing.domain.common.confidence.impl;
import com.sap.sailing.domain.confidence.HasConfidenceAndIsScalable;
import com.sap.sailing.domain.common.confidence.HasConfidenceAndIsScalable;
public class ScalableDoubleWithConfidence<RelativeTo> extends ScalableDouble implements HasConfidenceAndIsScalable<Double, Double, RelativeTo> {
private static final long serialVersionUID = 1042652394404557792L;
@@ -14,13 +14,13 @@ import com.sap.sailing.domain.base.impl.BearingWithConfidenceImpl;
import com.sap.sailing.domain.base.impl.PositionWithConfidenceImpl;
import com.sap.sailing.domain.common.Bearing;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
import com.sap.sailing.domain.common.confidence.ConfidenceFactory;
import com.sap.sailing.domain.common.confidence.HasConfidence;
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
import com.sap.sailing.domain.common.impl.DegreePosition;
import com.sap.sailing.domain.common.impl.RadianBearingImpl;
import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition;
import com.sap.sailing.domain.confidence.ConfidenceBasedAverager;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
import com.sap.sailing.domain.confidence.HasConfidence;
import com.sap.sailing.domain.tracking.impl.BearingCluster;
import com.sap.sailing.domain.tracking.impl.BearingWithConfidenceCluster;
@@ -18,6 +18,12 @@ import com.sap.sailing.domain.base.impl.PositionWithConfidenceImpl;
import com.sap.sailing.domain.common.Bearing;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
import com.sap.sailing.domain.common.confidence.HasConfidence;
import com.sap.sailing.domain.common.confidence.HasConfidenceAndIsScalable;
import com.sap.sailing.domain.common.confidence.Weigher;
import com.sap.sailing.domain.common.confidence.impl.ScalableDoubleWithConfidence;
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
import com.sap.sailing.domain.common.impl.DegreePosition;
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
@@ -27,13 +33,7 @@ import com.sap.sailing.domain.common.impl.NauticalMileDistance;
import com.sap.sailing.domain.common.impl.RadianBearingImpl;
import com.sap.sailing.domain.common.scalablevalue.ScalableValue;
import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition;
import com.sap.sailing.domain.confidence.ConfidenceBasedAverager;
import com.sap.sailing.domain.confidence.ConfidenceBasedWindAverager;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
import com.sap.sailing.domain.confidence.HasConfidence;
import com.sap.sailing.domain.confidence.HasConfidenceAndIsScalable;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.confidence.impl.ScalableDoubleWithConfidence;
import com.sap.sailing.domain.tracking.Wind;
import com.sap.sailing.domain.tracking.WindWithConfidence;
import com.sap.sailing.domain.tracking.impl.BearingWithConfidenceCluster;
@@ -37,15 +37,15 @@ import com.sap.sailing.domain.common.Color;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.ScoringSchemeType;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
import com.sap.sailing.domain.common.confidence.Weigher;
import com.sap.sailing.domain.common.confidence.impl.PositionAndTimePointWeigher;
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
import com.sap.sailing.domain.common.impl.DegreePosition;
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
import com.sap.sailing.domain.common.impl.MeterDistance;
import com.sap.sailing.domain.common.impl.MillisecondsTimePoint;
import com.sap.sailing.domain.confidence.ConfidenceBasedWindAverager;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.confidence.impl.PositionAndTimePointWeigher;
import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore;
import com.sap.sailing.domain.racelog.tracking.EmptyGPSFixStore;
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
@@ -9,7 +9,6 @@ Bundle-ClassPath: .
Export-Package: com.sap.sailing.domain.base,
com.sap.sailing.domain.base.impl,
com.sap.sailing.domain.confidence,
com.sap.sailing.domain.confidence.impl;x-friends:="com.sap.sailing.domain.test",
com.sap.sailing.domain.leaderboard,
com.sap.sailing.domain.leaderboard.caching,
com.sap.sailing.domain.leaderboard.impl,
@@ -2,7 +2,7 @@ package com.sap.sailing.domain.base;
import com.sap.sailing.domain.common.Bearing;
import com.sap.sailing.domain.common.DoublePair;
import com.sap.sailing.domain.confidence.HasConfidenceAndIsScalable;
import com.sap.sailing.domain.common.confidence.HasConfidenceAndIsScalable;
public interface BearingWithConfidence<RelativeTo> extends HasConfidenceAndIsScalable<DoublePair, Bearing, RelativeTo> {
@@ -1,8 +1,8 @@
package com.sap.sailing.domain.base;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.confidence.HasConfidenceAndIsScalable;
import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition;
import com.sap.sailing.domain.confidence.HasConfidenceAndIsScalable;
/**
* A position with a confidence attached. The scalable intermediate type represents the x/y/z coordinate of the
@@ -2,7 +2,7 @@ package com.sap.sailing.domain.base;
import com.sap.sailing.domain.common.Speed;
import com.sap.sailing.domain.common.SpeedWithBearing;
import com.sap.sailing.domain.confidence.HasConfidence;
import com.sap.sailing.domain.common.confidence.HasConfidence;
import com.sap.sse.common.Util;
public interface SpeedWithBearingWithConfidence<RelativeTo> extends
@@ -1,7 +1,7 @@
package com.sap.sailing.domain.base;
import com.sap.sailing.domain.common.Speed;
import com.sap.sailing.domain.confidence.HasConfidenceAndIsScalable;
import com.sap.sailing.domain.common.confidence.HasConfidenceAndIsScalable;
public interface SpeedWithConfidence<RelativeTo> extends HasConfidenceAndIsScalable<Double, Speed, RelativeTo> {
}
@@ -3,6 +3,7 @@ package com.sap.sailing.domain.base.impl;
import com.sap.sailing.domain.base.BearingWithConfidence;
import com.sap.sailing.domain.common.Bearing;
import com.sap.sailing.domain.common.DoublePair;
import com.sap.sailing.domain.common.confidence.impl.HasConfidenceImpl;
import com.sap.sailing.domain.common.scalablevalue.IsScalable;
import com.sap.sailing.domain.common.scalablevalue.ScalableValue;
import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing;
@@ -2,6 +2,7 @@ package com.sap.sailing.domain.base.impl;
import com.sap.sailing.domain.base.PositionWithConfidence;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.confidence.impl.HasConfidenceImpl;
import com.sap.sailing.domain.common.scalablevalue.IsScalable;
import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition;
@@ -3,6 +3,7 @@ package com.sap.sailing.domain.base.impl;
import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence;
import com.sap.sailing.domain.common.Speed;
import com.sap.sailing.domain.common.SpeedWithBearing;
import com.sap.sailing.domain.common.confidence.impl.HasConfidenceImpl;
import com.sap.sailing.domain.common.scalablevalue.IsScalable;
import com.sap.sailing.domain.common.scalablevalue.ScalableValue;
import com.sap.sailing.domain.common.scalablevalue.impl.ScalableSpeedWithBearing;
@@ -2,6 +2,7 @@ package com.sap.sailing.domain.base.impl;
import com.sap.sailing.domain.base.SpeedWithConfidence;
import com.sap.sailing.domain.common.Speed;
import com.sap.sailing.domain.common.confidence.impl.HasConfidenceImpl;
import com.sap.sailing.domain.common.scalablevalue.ScalableValue;
import com.sap.sailing.domain.common.scalablevalue.impl.ScalableSpeed;
@@ -1,5 +1,7 @@
package com.sap.sailing.domain.confidence;
import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
import com.sap.sailing.domain.common.confidence.HasConfidenceAndIsScalable;
import com.sap.sailing.domain.tracking.Wind;
import com.sap.sailing.domain.tracking.WindWithConfidence;
import com.sap.sailing.domain.tracking.impl.ScalableWind;
@@ -1,53 +1,18 @@
package com.sap.sailing.domain.confidence;
import com.sap.sailing.domain.common.Distance;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.confidence.impl.ConfidenceBasedAveragerFactoryImpl;
import com.sap.sailing.domain.tracking.WindWithConfidence;
public interface ConfidenceFactory {
ConfidenceFactory INSTANCE = new ConfidenceBasedAveragerFactoryImpl();
/**
* @param weigher
* used to determine the confidence of the elements to be averaged, relative to the reference point given
* as parameter to {@link ConfidenceBasedAverager#getAverage(Iterable, Object)}. If <code>null</code>,
* 1.0 will be assumed as default confidence for all values provided, regardless the reference point
* relative to which the average is to be computed
*/
<ValueType, BaseType, RelativeTo> ConfidenceBasedAverager<ValueType, BaseType, RelativeTo> createAverager(Weigher<RelativeTo> weigher);
/**
* Produces a specialized averaged which can deal with the special case that {@link WindWithConfidence} objects
* have an internal <code>useSpeed</code> flag which may, when set to <code>false</code> suppress the consideration
* of the wind fix's speed (not the bearing) in computing the average. For this to work, the averager has to maintain
* a separate confidence sum for the speed values considered.
*/
<RelativeTo> ConfidenceBasedWindAverager<RelativeTo> createWindAverager(Weigher<RelativeTo> weigher);
<RelativeTo> Weigher<RelativeTo> createConstantWeigher(double constantConfidence);
/**
* Creates a weigher for time points. With increasing time difference the weight/confidence decreases exponentially.
* It is halved every <code>halfConfidenceAfterMilliseconds</code> milliseconds.
*/
Weigher<TimePoint> createExponentialTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds);
/**
* Like {@link #createExponentialTimeDifferenceWeigher(long)}, only that additionally a minimum confidence value is defined.
* This can be useful for averagers that have trouble with values scaled down with 0.0.
*/
Weigher<TimePoint> createExponentialTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds, double minimumConfidence);
Weigher<TimePoint> createHyperbolicTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds);
Weigher<TimePoint> createHyperbolicSquaredTimeDifferenceWeigher(long halfConfidenceAfterMilliseconds);
/**
* Constructs a weigher that determines a confidence based on a distance. A {@link Distance#NULL zero distance}
* will yield a confidence of 1; a distance of <code>halfConfidence</code> will return a confidence of .5, and the
* confidence will decrease hyperbolically with increasing distance.
*/
Weigher<Position> createHyperbolicDistanceWeigher(Distance halfConfidence);
}
package com.sap.sailing.domain.confidence;
import com.sap.sailing.domain.common.confidence.Weigher;
import com.sap.sailing.domain.confidence.impl.ConfidenceFactoryImpl;
import com.sap.sailing.domain.tracking.WindWithConfidence;
public interface ConfidenceFactory extends com.sap.sailing.domain.common.confidence.ConfidenceFactory {
ConfidenceFactory INSTANCE = new ConfidenceFactoryImpl();
/**
* Produces a specialized averaged which can deal with the special case that {@link WindWithConfidence} objects have
* an internal <code>useSpeed</code> flag which may, when set to <code>false</code> suppress the consideration of
* the wind fix's speed (not the bearing) in computing the average. For this to work, the averager has to maintain a
* separate confidence sum for the speed values considered.
*/
<RelativeTo> ConfidenceBasedWindAverager<RelativeTo> createWindAverager(Weigher<RelativeTo> weigher);
}
@@ -3,10 +3,11 @@ package com.sap.sailing.domain.confidence.impl;
import com.sap.sailing.domain.common.Speed;
import com.sap.sailing.domain.common.WindSource;
import com.sap.sailing.domain.common.WindSourceType;
import com.sap.sailing.domain.common.confidence.HasConfidenceAndIsScalable;
import com.sap.sailing.domain.common.confidence.Weigher;
import com.sap.sailing.domain.common.confidence.impl.ConfidenceBasedAveragerImpl;
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
import com.sap.sailing.domain.confidence.ConfidenceBasedWindAverager;
import com.sap.sailing.domain.confidence.HasConfidenceAndIsScalable;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.tracking.Wind;
import com.sap.sailing.domain.tracking.WindWithConfidence;
import com.sap.sailing.domain.tracking.impl.ScalableWind;
@@ -0,0 +1,13 @@
package com.sap.sailing.domain.confidence.impl;
import com.sap.sailing.domain.common.confidence.Weigher;
import com.sap.sailing.domain.confidence.ConfidenceBasedWindAverager;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
public class ConfidenceFactoryImpl extends
com.sap.sailing.domain.common.confidence.impl.ConfidenceBasedAveragerFactoryImpl implements ConfidenceFactory {
@Override
public <RelativeTo> ConfidenceBasedWindAverager<RelativeTo> createWindAverager(Weigher<RelativeTo> weigher) {
return new ConfidenceBasedWindAveragerImpl<RelativeTo>(weigher);
}
}
@@ -9,7 +9,7 @@ import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.Speed;
import com.sap.sailing.domain.common.SpeedWithBearing;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.common.confidence.Weigher;
import com.sap.sse.common.Util;
/**
@@ -2,7 +2,7 @@ package com.sap.sailing.domain.tracking;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.confidence.HasConfidenceAndIsScalable;
import com.sap.sailing.domain.common.confidence.HasConfidenceAndIsScalable;
import com.sap.sailing.domain.tracking.impl.ScalableWind;
/**
@@ -8,10 +8,10 @@ import com.sap.sailing.domain.base.BearingWithConfidence;
import com.sap.sailing.domain.base.impl.BearingWithConfidenceImpl;
import com.sap.sailing.domain.common.Bearing;
import com.sap.sailing.domain.common.DoublePair;
import com.sap.sailing.domain.confidence.ConfidenceBasedAverager;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
import com.sap.sailing.domain.confidence.HasConfidence;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
import com.sap.sailing.domain.common.confidence.ConfidenceFactory;
import com.sap.sailing.domain.common.confidence.HasConfidence;
import com.sap.sailing.domain.common.confidence.Weigher;
import com.sap.sse.common.Util;
/**
@@ -14,11 +14,11 @@ import com.sap.sailing.domain.common.Bearing;
import com.sap.sailing.domain.common.Speed;
import com.sap.sailing.domain.common.SpeedWithBearing;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
import com.sap.sailing.domain.common.confidence.ConfidenceFactory;
import com.sap.sailing.domain.common.confidence.HasConfidence;
import com.sap.sailing.domain.common.confidence.Weigher;
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
import com.sap.sailing.domain.confidence.ConfidenceBasedAverager;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
import com.sap.sailing.domain.confidence.HasConfidence;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.tracking.DynamicGPSFixTrack;
import com.sap.sailing.domain.tracking.GPSFixMoving;
@@ -30,14 +30,14 @@ import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.Speed;
import com.sap.sailing.domain.common.SpeedWithBearing;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.common.confidence.ConfidenceBasedAverager;
import com.sap.sailing.domain.common.confidence.ConfidenceFactory;
import com.sap.sailing.domain.common.confidence.HasConfidence;
import com.sap.sailing.domain.common.confidence.Weigher;
import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
import com.sap.sailing.domain.common.impl.MillisecondsTimePoint;
import com.sap.sailing.domain.common.impl.NauticalMileDistance;
import com.sap.sailing.domain.confidence.ConfidenceBasedAverager;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
import com.sap.sailing.domain.confidence.HasConfidence;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.tracking.GPSFix;
import com.sap.sailing.domain.tracking.GPSFixMoving;
import com.sap.sailing.domain.tracking.GPSFixTrack;
@@ -22,13 +22,13 @@ import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
import com.sap.sailing.domain.common.WindSource;
import com.sap.sailing.domain.common.WindSourceType;
import com.sap.sailing.domain.common.confidence.ConfidenceFactory;
import com.sap.sailing.domain.common.confidence.Weigher;
import com.sap.sailing.domain.common.impl.AbstractTimePoint;
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
import com.sap.sailing.domain.common.impl.MillisecondsTimePoint;
import com.sap.sailing.domain.common.impl.SerializableComparator;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.tracking.GPSFix;
import com.sap.sailing.domain.tracking.GPSFixMoving;
import com.sap.sailing.domain.tracking.MarkPassing;
@@ -66,6 +66,11 @@ import com.sap.sailing.domain.common.TimingConstants;
import com.sap.sailing.domain.common.TrackedRaceStatusEnum;
import com.sap.sailing.domain.common.WindSource;
import com.sap.sailing.domain.common.WindSourceType;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
import com.sap.sailing.domain.common.confidence.HasConfidence;
import com.sap.sailing.domain.common.confidence.Weigher;
import com.sap.sailing.domain.common.confidence.impl.HyperbolicTimeDifferenceWeigher;
import com.sap.sailing.domain.common.confidence.impl.PositionAndTimePointWeigher;
import com.sap.sailing.domain.common.impl.CentralAngleDistance;
import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
@@ -76,11 +81,6 @@ import com.sap.sailing.domain.common.impl.WindSourceImpl;
import com.sap.sailing.domain.common.racelog.tracking.NoCorrespondingServiceRegisteredException;
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
import com.sap.sailing.domain.confidence.ConfidenceBasedWindAverager;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
import com.sap.sailing.domain.confidence.HasConfidence;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.confidence.impl.HyperbolicTimeDifferenceWeigher;
import com.sap.sailing.domain.confidence.impl.PositionAndTimePointWeigher;
import com.sap.sailing.domain.racelog.RaceLog;
import com.sap.sailing.domain.racelog.analyzing.impl.StartTimeFinder;
import com.sap.sailing.domain.racelog.tracking.GPSFixStore;
@@ -19,10 +19,10 @@ import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.Speed;
import com.sap.sailing.domain.common.SpeedWithBearing;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
import com.sap.sailing.domain.common.confidence.impl.PositionAndTimePointWeigher;
import com.sap.sailing.domain.common.impl.MeterDistance;
import com.sap.sailing.domain.confidence.ConfidenceBasedWindAverager;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
import com.sap.sailing.domain.confidence.impl.PositionAndTimePointWeigher;
import com.sap.sailing.domain.tracking.Wind;
import com.sap.sailing.domain.tracking.WindListener;
import com.sap.sailing.domain.tracking.WindTrack;
@@ -1,6 +1,6 @@
package com.sap.sailing.domain.tracking.impl;
import com.sap.sailing.domain.base.impl.HasConfidenceImpl;
import com.sap.sailing.domain.common.confidence.impl.HasConfidenceImpl;
import com.sap.sailing.domain.tracking.Wind;
import com.sap.sailing.domain.tracking.WindWithConfidence;