moved Scalable* to domain.common to be able to use it also in GWT bundles

This commit is contained in:
Axel Uhl
2014-05-01 12:02:41 +02:00
parent 1cad500ecc
commit af0adbf4a3
25 changed files with 69 additions and 58 deletions
@@ -15,4 +15,6 @@ Export-Package: com.sap.sailing.domain.common,
com.sap.sailing.domain.common.quadtree.impl;x-friends:="com.sap.sailing.domain.test",
com.sap.sailing.domain.common.racelog,
com.sap.sailing.domain.common.racelog.utils,
com.sap.sailing.domain.common.trackfiles
com.sap.sailing.domain.common.trackfiles,
com.sap.sailing.domain.scalablevalue,
com.sap.sailing.domain.scalablevalue.impl
@@ -0,0 +1,20 @@
package com.sap.sailing.domain.common;
public class DoublePair {
private final double a;
private final double b;
public DoublePair(double a, double b) {
super();
this.a = a;
this.b = b;
}
public double getA() {
return a;
}
public double getB() {
return b;
}
}
@@ -1,4 +1,5 @@
package com.sap.sailing.domain.confidence;
package com.sap.sailing.domain.scalablevalue;
/**
* A {@link ScalableValue} where the <code>ValueType</code> and the <code>AveragesTo</code> type are both the same because
@@ -1,4 +1,4 @@
package com.sap.sailing.domain.confidence;
package com.sap.sailing.domain.scalablevalue;
import java.io.Serializable;
@@ -1,4 +1,4 @@
package com.sap.sailing.domain.confidence;
package com.sap.sailing.domain.scalablevalue;
public interface ScalableValue<ValueType, AveragesTo> {
ScalableValue<ValueType, AveragesTo> multiply(double factor);
@@ -1,9 +1,9 @@
package com.sap.sailing.domain.base.impl;
package com.sap.sailing.domain.scalablevalue.impl;
import com.sap.sailing.domain.base.BearingWithConfidence.DoublePair;
import com.sap.sailing.domain.common.Bearing;
import com.sap.sailing.domain.common.DoublePair;
import com.sap.sailing.domain.common.impl.RadianBearingImpl;
import com.sap.sailing.domain.confidence.ScalableValue;
import com.sap.sailing.domain.scalablevalue.ScalableValue;
public class ScalableBearing implements ScalableValue<DoublePair, Bearing> {
private final double sin;
@@ -1,8 +1,8 @@
package com.sap.sailing.domain.base.impl;
package com.sap.sailing.domain.scalablevalue.impl;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.impl.RadianPosition;
import com.sap.sailing.domain.confidence.ScalableValue;
import com.sap.sailing.domain.scalablevalue.ScalableValue;
public class ScalablePosition implements ScalableValue<ScalablePosition, Position> {
private final double x, y, z;
@@ -1,8 +1,8 @@
package com.sap.sailing.domain.base.impl;
package com.sap.sailing.domain.scalablevalue.impl;
import com.sap.sailing.domain.common.Speed;
import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
import com.sap.sailing.domain.confidence.ScalableValue;
import com.sap.sailing.domain.scalablevalue.ScalableValue;
public class ScalableSpeed implements ScalableValue<Double, Speed> {
private final double knots;
@@ -1,4 +1,4 @@
package com.sap.sailing.domain.base.impl;
package com.sap.sailing.domain.scalablevalue.impl;
import com.sap.sailing.domain.common.Bearing;
import com.sap.sailing.domain.common.Speed;
@@ -7,7 +7,7 @@ import com.sap.sailing.domain.common.impl.KnotSpeedImpl;
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
import com.sap.sailing.domain.common.impl.RadianBearingImpl;
import com.sap.sailing.domain.common.impl.Util.Triple;
import com.sap.sailing.domain.confidence.ScalableValue;
import com.sap.sailing.domain.scalablevalue.ScalableValue;
/**
* Separately scales speed and bearing. Instead of considering speed and bearing a single vector that can be scaled, the
@@ -13,9 +13,6 @@ import java.util.logging.Logger;
import com.sap.sailing.declination.Declination;
import com.sap.sailing.declination.DeclinationService;
import com.sap.sailing.domain.base.Timed;
import com.sap.sailing.domain.base.impl.ScalableBearing;
import com.sap.sailing.domain.base.impl.ScalablePosition;
import com.sap.sailing.domain.base.impl.ScalableSpeed;
import com.sap.sailing.domain.common.Bearing;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.Speed;
@@ -24,7 +21,6 @@ import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
import com.sap.sailing.domain.common.impl.Util;
import com.sap.sailing.domain.common.impl.Util.Pair;
import com.sap.sailing.domain.confidence.ScalableValue;
import com.sap.sailing.domain.igtimiadapter.BulkFixReceiver;
import com.sap.sailing.domain.igtimiadapter.IgtimiConnection;
import com.sap.sailing.domain.igtimiadapter.IgtimiFixReceiverAdapter;
@@ -39,6 +35,10 @@ import com.sap.sailing.domain.igtimiadapter.datatypes.HDGM;
import com.sap.sailing.domain.igtimiadapter.datatypes.SOG;
import com.sap.sailing.domain.igtimiadapter.datatypes.Type;
import com.sap.sailing.domain.igtimiadapter.websocket.WebSocketConnectionManager;
import com.sap.sailing.domain.scalablevalue.ScalableValue;
import com.sap.sailing.domain.scalablevalue.impl.ScalableBearing;
import com.sap.sailing.domain.scalablevalue.impl.ScalablePosition;
import com.sap.sailing.domain.scalablevalue.impl.ScalableSpeed;
import com.sap.sailing.domain.tracking.DynamicTrack;
import com.sap.sailing.domain.tracking.Track;
import com.sap.sailing.domain.tracking.Wind;
@@ -12,7 +12,6 @@ import org.junit.Test;
import com.sap.sailing.domain.base.BearingWithConfidence;
import com.sap.sailing.domain.base.impl.BearingWithConfidenceImpl;
import com.sap.sailing.domain.base.impl.PositionWithConfidenceImpl;
import com.sap.sailing.domain.base.impl.ScalablePosition;
import com.sap.sailing.domain.common.Bearing;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.impl.DegreeBearingImpl;
@@ -21,6 +20,7 @@ import com.sap.sailing.domain.common.impl.RadianBearingImpl;
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.scalablevalue.impl.ScalablePosition;
import com.sap.sailing.domain.tracking.impl.BearingCluster;
import com.sap.sailing.domain.tracking.impl.BearingWithConfidenceCluster;
@@ -15,7 +15,6 @@ import com.sap.sailing.domain.base.BearingWithConfidence;
import com.sap.sailing.domain.base.PositionWithConfidence;
import com.sap.sailing.domain.base.impl.BearingWithConfidenceImpl;
import com.sap.sailing.domain.base.impl.PositionWithConfidenceImpl;
import com.sap.sailing.domain.base.impl.ScalablePosition;
import com.sap.sailing.domain.common.Bearing;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.TimePoint;
@@ -29,9 +28,10 @@ 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.ScalableValue;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.confidence.impl.ScalableDoubleWithConfidence;
import com.sap.sailing.domain.scalablevalue.ScalableValue;
import com.sap.sailing.domain.scalablevalue.impl.ScalablePosition;
import com.sap.sailing.domain.tracking.Wind;
import com.sap.sailing.domain.tracking.WindWithConfidence;
import com.sap.sailing.domain.tracking.impl.BearingWithConfidenceCluster;
@@ -1,27 +1,9 @@
package com.sap.sailing.domain.base;
import com.sap.sailing.domain.base.BearingWithConfidence.DoublePair;
import com.sap.sailing.domain.common.Bearing;
import com.sap.sailing.domain.common.DoublePair;
import com.sap.sailing.domain.confidence.HasConfidenceAndIsScalable;
public interface BearingWithConfidence<RelativeTo> extends HasConfidenceAndIsScalable<DoublePair, Bearing, RelativeTo> {
public static class DoublePair {
private final double a;
private final double b;
public DoublePair(double a, double b) {
super();
this.a = a;
this.b = b;
}
public double getA() {
return a;
}
public double getB() {
return b;
}
}
}
@@ -1,8 +1,8 @@
package com.sap.sailing.domain.base;
import com.sap.sailing.domain.base.impl.ScalablePosition;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.confidence.HasConfidenceAndIsScalable;
import com.sap.sailing.domain.scalablevalue.impl.ScalablePosition;
/**
* A position with a confidence attached. The scalable intermediate type represents the x/y/z coordinate of the
@@ -1,7 +1,7 @@
package com.sap.sailing.domain.base;
import com.sap.sailing.domain.confidence.AbstractScalarValue;
import com.sap.sailing.domain.confidence.ScalableValue;
import com.sap.sailing.domain.scalablevalue.AbstractScalarValue;
import com.sap.sailing.domain.scalablevalue.ScalableValue;
public class ScalableInteger implements AbstractScalarValue<Integer> {
@@ -1,10 +1,11 @@
package com.sap.sailing.domain.base.impl;
import com.sap.sailing.domain.base.BearingWithConfidence;
import com.sap.sailing.domain.base.BearingWithConfidence.DoublePair;
import com.sap.sailing.domain.common.Bearing;
import com.sap.sailing.domain.confidence.IsScalable;
import com.sap.sailing.domain.confidence.ScalableValue;
import com.sap.sailing.domain.common.DoublePair;
import com.sap.sailing.domain.scalablevalue.IsScalable;
import com.sap.sailing.domain.scalablevalue.ScalableValue;
import com.sap.sailing.domain.scalablevalue.impl.ScalableBearing;
public class BearingWithConfidenceImpl<RelativeTo> extends HasConfidenceImpl<DoublePair, Bearing, RelativeTo>
implements BearingWithConfidence<RelativeTo>, IsScalable<DoublePair, Bearing> {
@@ -2,7 +2,8 @@ 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.confidence.IsScalable;
import com.sap.sailing.domain.scalablevalue.IsScalable;
import com.sap.sailing.domain.scalablevalue.impl.ScalablePosition;
public class PositionWithConfidenceImpl<RelativeTo> extends HasConfidenceImpl<ScalablePosition, Position, RelativeTo> implements
PositionWithConfidence<RelativeTo>, IsScalable<ScalablePosition, Position> {
@@ -4,8 +4,9 @@ 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.impl.Util.Triple;
import com.sap.sailing.domain.confidence.IsScalable;
import com.sap.sailing.domain.confidence.ScalableValue;
import com.sap.sailing.domain.scalablevalue.IsScalable;
import com.sap.sailing.domain.scalablevalue.ScalableValue;
import com.sap.sailing.domain.scalablevalue.impl.ScalableSpeedWithBearing;
public class SpeedWithBearingWithConfidenceImpl<RelativeTo> extends
HasConfidenceImpl<Triple<Speed, Double, Double>, SpeedWithBearing, RelativeTo> implements
@@ -2,7 +2,8 @@ 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.confidence.ScalableValue;
import com.sap.sailing.domain.scalablevalue.ScalableValue;
import com.sap.sailing.domain.scalablevalue.impl.ScalableSpeed;
public class SpeedWithConfidenceImpl<RelativeTo> extends HasConfidenceImpl<Double, Speed, RelativeTo> implements SpeedWithConfidence<RelativeTo> {
private static final long serialVersionUID = -3122580369653833748L;
@@ -4,7 +4,7 @@ import java.io.Serializable;
import com.sap.sailing.domain.common.Distance;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.tracking.GPSFixTrack;
import com.sap.sailing.domain.scalablevalue.ScalableValue;
/**
* Some values, particularly those obtained from real-world measurements, are not always accurate. Some values are
@@ -72,7 +72,7 @@ public interface HasConfidence<ValueType, BaseType, RelativeTo> extends Serializ
/**
* The confidence attached to a value is usually relative to some reference point, such as a time point or
* a position. For example, when a {@link GPSFixTrack} is asked to deliver an estimation for the tracked item's
* a position. For example, when a <code>GPSFixTrack</code> is asked to deliver an estimation for the tracked item's
* {@link Position} at some given {@link TimePoint}, the track computes some average from a number of GPS fixes. The resulting
* position has a certain confidence, depending on the time differences between the fixes and the time point for which
* the position estimation was requested. The result therefore carries this reference time point for which the estimation
@@ -1,5 +1,7 @@
package com.sap.sailing.domain.confidence;
import com.sap.sailing.domain.scalablevalue.IsScalable;
public interface HasConfidenceAndIsScalable<ValueType, BaseType, RelativeTo> extends IsScalable<ValueType, BaseType>,
HasConfidence<ValueType, BaseType, RelativeTo> {
}
@@ -5,8 +5,8 @@ import com.sap.sailing.domain.common.impl.Util;
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.ScalableValue;
import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.scalablevalue.ScalableValue;
/**
@@ -1,7 +1,7 @@
package com.sap.sailing.domain.confidence.impl;
import com.sap.sailing.domain.confidence.AbstractScalarValue;
import com.sap.sailing.domain.confidence.ScalableValue;
import com.sap.sailing.domain.scalablevalue.AbstractScalarValue;
import com.sap.sailing.domain.scalablevalue.ScalableValue;
public class ScalableDouble implements AbstractScalarValue<Double> {
private final double value;
@@ -5,9 +5,9 @@ import java.util.Collections;
import java.util.List;
import com.sap.sailing.domain.base.BearingWithConfidence;
import com.sap.sailing.domain.base.BearingWithConfidence.DoublePair;
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.common.impl.Util.Pair;
import com.sap.sailing.domain.confidence.ConfidenceBasedAverager;
import com.sap.sailing.domain.confidence.ConfidenceFactory;
@@ -1,11 +1,11 @@
package com.sap.sailing.domain.tracking.impl;
import com.sap.sailing.domain.base.impl.ScalablePosition;
import com.sap.sailing.domain.base.impl.ScalableSpeedWithBearing;
import com.sap.sailing.domain.common.AbstractPosition;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.impl.MillisecondsTimePoint;
import com.sap.sailing.domain.confidence.ScalableValue;
import com.sap.sailing.domain.scalablevalue.ScalableValue;
import com.sap.sailing.domain.scalablevalue.impl.ScalablePosition;
import com.sap.sailing.domain.scalablevalue.impl.ScalableSpeedWithBearing;
import com.sap.sailing.domain.tracking.Wind;
/**