mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-13 22:15:26 +00:00
bug4425 added a few more columns
This commit is contained in:
1 parent
77e87dfb9a
commit
307c4e93cc
12 files changed
+110
-119
No files matched your search
+6
-6
@@ -541,14 +541,14 @@ public class LeaderboardEntryDTO implements Serializable {
|
||||
}
|
||||
}
|
||||
|
||||
public void setExpeditionTimeToGun(Duration expeditionTmToGun) {
|
||||
public void setExpeditionTimeToGun(Double expeditionTmToGun) {
|
||||
if (expeditionTmToGun != null) {
|
||||
ensureExpeditionHolder();
|
||||
expeditionDataHolder.expeditionTimeToGun = expeditionTmToGun;
|
||||
}
|
||||
}
|
||||
|
||||
public void setExpeditionTimeToBurnToLine(Duration expeditionTmToBurn) {
|
||||
public void setExpeditionTimeToBurnToLine(Double expeditionTmToBurn) {
|
||||
if (expeditionTmToBurn != null) {
|
||||
ensureExpeditionHolder();
|
||||
expeditionDataHolder.expeditionTimeToBurnToLine = expeditionTmToBurn;
|
||||
@@ -672,7 +672,7 @@ public class LeaderboardEntryDTO implements Serializable {
|
||||
return expeditionDataHolder == null ? null : expeditionDataHolder.expeditionTimeToPin;
|
||||
}
|
||||
|
||||
public Duration getExpeditionTimeToGun() {
|
||||
public Double getExpeditionTimeToGun() {
|
||||
return expeditionDataHolder == null ? null : expeditionDataHolder.expeditionTimeToGun;
|
||||
}
|
||||
|
||||
@@ -692,7 +692,7 @@ public class LeaderboardEntryDTO implements Serializable {
|
||||
return expeditionDataHolder == null ? null : expeditionDataHolder.expeditionTimeToBurnToCommitteeBoat;
|
||||
}
|
||||
|
||||
public Duration getExpeditionTimeToBurnToLine() {
|
||||
public Double getExpeditionTimeToBurnToLine() {
|
||||
return expeditionDataHolder == null ? null : expeditionDataHolder.expeditionTimeToBurnToLine;
|
||||
}
|
||||
|
||||
@@ -799,12 +799,12 @@ public class LeaderboardEntryDTO implements Serializable {
|
||||
private Double expeditionTimeToStbLayline;
|
||||
private Double expeditionTimeToPortLayline;
|
||||
private Double expeditionTimeToPin;
|
||||
private Duration expeditionTimeToGun;
|
||||
private Double expeditionTimeToGun;
|
||||
private Double expeditionTimeToCommitteeBoat;
|
||||
private Double expeditionTimeToBurnToPin;
|
||||
private Double expeditionTargTWA;
|
||||
private Double expeditionTimeToBurnToCommitteeBoat;
|
||||
private Duration expeditionTimeToBurnToLine;
|
||||
private Double expeditionTimeToBurnToLine;
|
||||
private Double expeditionTargetHeel;
|
||||
private Double expeditionTargBoatSpeed;
|
||||
private Double expeditionSOG;
|
||||
|
||||
+6
-6
@@ -416,7 +416,7 @@ public class LegEntryDTO implements Serializable {
|
||||
}
|
||||
}
|
||||
|
||||
public void setExpeditionTimeToGUN(Duration expeditionTimeToGUN) {
|
||||
public void setExpeditionTimeToGUN(Double expeditionTimeToGUN) {
|
||||
if (expeditionTimeToGUN != null) {
|
||||
ensureExpeditionHolder();
|
||||
expeditionHolder.expeditionTimeToGUN = expeditionTimeToGUN;
|
||||
@@ -437,7 +437,7 @@ public class LegEntryDTO implements Serializable {
|
||||
}
|
||||
}
|
||||
|
||||
public void setExpeditionTimeToBurnToLine(Duration expeditionTimeToBurnToLine) {
|
||||
public void setExpeditionTimeToBurnToLine(Double expeditionTimeToBurnToLine) {
|
||||
if (expeditionTimeToBurnToLine != null) {
|
||||
ensureExpeditionHolder();
|
||||
expeditionHolder.expeditionTimeToBurnToLine = expeditionTimeToBurnToLine;
|
||||
@@ -588,7 +588,7 @@ public class LegEntryDTO implements Serializable {
|
||||
return expeditionHolder == null ? null : expeditionHolder.expeditionTimeToPin;
|
||||
}
|
||||
|
||||
public Duration getExpeditionTimeToGUN() {
|
||||
public Double getExpeditionTimeToGUN() {
|
||||
return expeditionHolder == null ? null : expeditionHolder.expeditionTimeToGUN;
|
||||
}
|
||||
|
||||
@@ -608,7 +608,7 @@ public class LegEntryDTO implements Serializable {
|
||||
return expeditionHolder == null ? null : expeditionHolder.expeditionTimeToBurnToCommitteeBoat;
|
||||
}
|
||||
|
||||
public Duration getExpeditionTimeToBurnToLine() {
|
||||
public Double getExpeditionTimeToBurnToLine() {
|
||||
return expeditionHolder == null ? null : expeditionHolder.expeditionTimeToBurnToLine;
|
||||
}
|
||||
|
||||
@@ -712,12 +712,12 @@ public class LegEntryDTO implements Serializable {
|
||||
private Double expeditionTimeToStbLayline;
|
||||
private Double expeditionTimeToPortLayline;
|
||||
private Double expeditionTimeToPin;
|
||||
private Duration expeditionTimeToGUN;
|
||||
private Double expeditionTimeToGUN;
|
||||
private Double expeditionTimeToCommitteeBoat;
|
||||
private Double expeditionTimeToBurnToPin;
|
||||
private Double expeditionTargTWA;
|
||||
private Double expeditionTimeToBurnToCommitteeBoat;
|
||||
private Duration expeditionTimeToBurnToLine;
|
||||
private Double expeditionTimeToBurnToLine;
|
||||
private Double expeditionTargetHeel;
|
||||
private Double expeditionTargBoatSpeed;
|
||||
private Double expeditionSOG;
|
||||
|
||||
+2
-3
@@ -2,7 +2,6 @@ package com.sap.sailing.domain.common.tracking;
|
||||
|
||||
import com.sap.sailing.domain.common.Bearing;
|
||||
import com.sap.sailing.domain.common.Distance;
|
||||
import com.sap.sse.common.Duration;
|
||||
|
||||
/**
|
||||
* Extended version of {@link BravoFix} that provides access to more measures found in the extended data format.
|
||||
@@ -40,8 +39,8 @@ public interface BravoExtendedFix extends BravoFix {
|
||||
Double getExpeditionHDG();
|
||||
Double getExpeditionHeel();
|
||||
Double getExpeditionTG_Heell();
|
||||
Duration getExpeditionTmToGun();
|
||||
Duration getExpeditionTmToBurn();
|
||||
Double getExpeditionTmToGun();
|
||||
Double getExpeditionTmToBurn();
|
||||
Double getExpeditionBelowLn();
|
||||
Double getExpeditionCourse();
|
||||
Double getExpeditionJibCarStbd();
|
||||
|
||||
+4
-8
@@ -9,8 +9,6 @@ import com.sap.sailing.domain.common.sensordata.ColumnMetadata;
|
||||
import com.sap.sailing.domain.common.tracking.BravoExtendedFix;
|
||||
import com.sap.sailing.domain.common.tracking.BravoFix;
|
||||
import com.sap.sailing.domain.common.tracking.DoubleVectorFix;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.impl.MillisecondsDurationImpl;
|
||||
|
||||
/**
|
||||
* Implementation of {@link BravoExtendedFix}. {@link BravoExtendedFix} adds more measures compared to {@link BravoFix}.
|
||||
@@ -225,15 +223,13 @@ public class BravoExtendedFixImpl extends BravoFixImpl implements BravoExtendedF
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration getExpeditionTmToGun() {
|
||||
Double duration = fix.get(BravoExtendedSensorDataMetadata.EXPEDITION_TMTOGUN.getColumnIndex());
|
||||
return duration == null ? null : new MillisecondsDurationImpl(Math.round(duration * 1000));
|
||||
public Double getExpeditionTmToGun() {
|
||||
return fix.get(BravoExtendedSensorDataMetadata.EXPEDITION_TMTOGUN.getColumnIndex());
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration getExpeditionTmToBurn() {
|
||||
Double duration = fix.get(BravoExtendedSensorDataMetadata.EXPEDITION_TMTOBURN.getColumnIndex());
|
||||
return duration == null ? null : new MillisecondsDurationImpl(Math.round(duration * 1000));
|
||||
public Double getExpeditionTmToBurn() {
|
||||
return fix.get(BravoExtendedSensorDataMetadata.EXPEDITION_TMTOBURN.getColumnIndex());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-5
@@ -1016,9 +1016,6 @@ public abstract class AbstractLeaderboardWithCache implements Leaderboard {
|
||||
BiFunction<BiFunction<TrackedLegOfCompetitor, TimePoint, Double>, BiFunction<TrackedLegOfCompetitor, TimePoint, Double>, Double> extractDoubleValue = (
|
||||
currentValueExtractor, averageValueExtractor) -> (hasFinishedLeg
|
||||
? averageValueExtractor.apply(trackedLeg, timePoint) : currentValueExtractor.apply(trackedLeg, timePoint));
|
||||
BiFunction<BiFunction<TrackedLegOfCompetitor, TimePoint, Duration>, BiFunction<TrackedLegOfCompetitor, TimePoint, Duration>, Duration> extractDurationValue = (
|
||||
currentValueExtractor, averageValueExtractor) -> (hasFinishedLeg
|
||||
? averageValueExtractor.apply(trackedLeg, timePoint) : currentValueExtractor.apply(trackedLeg, timePoint));
|
||||
result.setExpeditionAWA(extractDoubleValue.apply(TrackedLegOfCompetitor::getExpeditionAWA, TrackedLegOfCompetitor::getAverageExpeditionAWA));
|
||||
result.setExpeditionAWS(extractDoubleValue.apply(TrackedLegOfCompetitor::getExpeditionAWS, TrackedLegOfCompetitor::getAverageExpeditionAWS));
|
||||
result.setExpeditionTWA(extractDoubleValue.apply(TrackedLegOfCompetitor::getExpeditionTWA, TrackedLegOfCompetitor::getAverageExpeditionTWA));
|
||||
@@ -1043,10 +1040,10 @@ public abstract class AbstractLeaderboardWithCache implements Leaderboard {
|
||||
result.setExpeditionTimeToStbLayline(extractDoubleValue.apply(TrackedLegOfCompetitor::getExpeditionTimeToStbLayline, TrackedLegOfCompetitor::getAverageExpeditionTimeToStbLayline));
|
||||
result.setExpeditionDistToPortLayline(extractDoubleValue.apply(TrackedLegOfCompetitor::getExpeditionDistToPortLayline, TrackedLegOfCompetitor::getAverageExpeditionDistToPortLayline));
|
||||
result.setExpeditionDistToStbLayline(extractDoubleValue.apply(TrackedLegOfCompetitor::getExpeditionDistToStbLayline, TrackedLegOfCompetitor::getAverageExpeditionDistToStbLayline));
|
||||
result.setExpeditionTimeToGUN(extractDurationValue.apply(TrackedLegOfCompetitor::getExpeditionTimeToGUN, TrackedLegOfCompetitor::getAverageExpeditionTimeToGUN));
|
||||
result.setExpeditionTimeToGUN(extractDoubleValue.apply(TrackedLegOfCompetitor::getExpeditionTimeToGUN, TrackedLegOfCompetitor::getAverageExpeditionTimeToGUN));
|
||||
result.setExpeditionTimeToCommitteeBoat(extractDoubleValue.apply(TrackedLegOfCompetitor::getExpeditionTimeToCommitteeBoat, TrackedLegOfCompetitor::getAverageExpeditionTimeToCommitteeBoat));
|
||||
result.setExpeditionTimeToPin(extractDoubleValue.apply(TrackedLegOfCompetitor::getExpeditionTimeToPin, TrackedLegOfCompetitor::getAverageExpeditionTimeToPin));
|
||||
result.setExpeditionTimeToBurnToLine(extractDurationValue.apply(TrackedLegOfCompetitor::getExpeditionTimeToBurnToLine, TrackedLegOfCompetitor::getAverageExpeditionTimeToBurnToLine));
|
||||
result.setExpeditionTimeToBurnToLine(extractDoubleValue.apply(TrackedLegOfCompetitor::getExpeditionTimeToBurnToLine, TrackedLegOfCompetitor::getAverageExpeditionTimeToBurnToLine));
|
||||
result.setExpeditionTimeToBurnToCommitteeBoat(extractDoubleValue.apply(TrackedLegOfCompetitor::getExpeditionTimeToBurnToCommitteeBoat, TrackedLegOfCompetitor::getAverageExpeditionTimeToBurnToCommitteeBoat));
|
||||
result.setExpeditionTimeToBurnToPin(extractDoubleValue.apply(TrackedLegOfCompetitor::getExpeditionTimeToBurnToPin, TrackedLegOfCompetitor::getAverageExpeditionTimeToBurnToPin));
|
||||
result.setExpeditionDistanceToCommitteeBoat(extractDoubleValue.apply(TrackedLegOfCompetitor::getExpeditionDistanceToCommitteeBoat, TrackedLegOfCompetitor::getAverageExpeditionDistanceToCommitteeBoat));
|
||||
|
||||
@@ -116,17 +116,16 @@ public interface BravoFixTrack<ItemType extends WithID & Serializable> extends S
|
||||
Double getExpeditionVMGIfAvailable(TimePoint at);
|
||||
Double getExpeditionVMGTargVMGDeltaIfAvailable(TimePoint at);
|
||||
Double getExpeditionRateOfTurnIfAvailable(TimePoint at);
|
||||
Double getExpeditionRudderAngleIfAvailable(TimePoint at);
|
||||
Double getExpeditionHeelIfAvailable(TimePoint at);
|
||||
Double getExpeditionTargetHeelIfAvailable(TimePoint at);
|
||||
Double getExpeditionTimeToPortLaylineIfAvailable(TimePoint at);
|
||||
Double getExpeditionTimeToStbLaylineIfAvailable(TimePoint at);
|
||||
Double getExpeditionDistToPortLaylineIfAvailable(TimePoint at);
|
||||
Double getExpeditionDistToStbLaylineIfAvailable(TimePoint at);
|
||||
Duration getExpeditionTimeToGUNIfAvailable(TimePoint at);
|
||||
Double getExpeditionTimeToGUNIfAvailable(TimePoint at);
|
||||
Double getExpeditionTimeToCommitteeBoatIfAvailable(TimePoint at);
|
||||
Double getExpeditionTimeToPinIfAvailable(TimePoint at);
|
||||
Duration getExpeditionTimeToBurnToLineIfAvailable(TimePoint at);
|
||||
Double getExpeditionTimeToBurnToLineIfAvailable(TimePoint at);
|
||||
Double getExpeditionTimeToBurnToCommitteeBoatIfAvailable(TimePoint at);
|
||||
Double getExpeditionTimeToBurnToPinIfAvailable(TimePoint at);
|
||||
Double getExpeditionDistanceToCommitteeBoatIfAvailable(TimePoint at);
|
||||
@@ -163,10 +162,10 @@ public interface BravoFixTrack<ItemType extends WithID & Serializable> extends S
|
||||
Double getAverageExpeditionTimeToStbLaylineIfAvailable(TimePoint start, TimePoint endTimePoint);
|
||||
Double getAverageExpeditionDistToPortLaylineIfAvailable(TimePoint start, TimePoint endTimePoint);
|
||||
Double getAverageExpeditionDistToStbLaylineIfAvailable(TimePoint start, TimePoint endTimePoint);
|
||||
Duration getAverageExpeditionTimeToGUNIfAvailable(TimePoint start, TimePoint endTimePoint);
|
||||
Double getAverageExpeditionTimeToGUNIfAvailable(TimePoint start, TimePoint endTimePoint);
|
||||
Double getAverageExpeditionTimeToCommitteeBoatIfAvailable(TimePoint start, TimePoint endTimePoint);
|
||||
Double getAverageExpeditionTimeToPinIfAvailable(TimePoint start, TimePoint endTimePoint);
|
||||
Duration getAverageExpeditionTimeToBurnToLineIfAvailable(TimePoint start, TimePoint endTimePoint);
|
||||
Double getAverageExpeditionTimeToBurnToLineIfAvailable(TimePoint start, TimePoint endTimePoint);
|
||||
Double getAverageExpeditionTimeToBurnToCommitteeBoatIfAvailable(TimePoint start, TimePoint endTimePoint);
|
||||
Double getAverageExpeditionTimeToBurnToPinIfAvailable(TimePoint start, TimePoint endTimePoint);
|
||||
Double getAverageExpeditionDistanceToCommitteeBoatIfAvailable(TimePoint start, TimePoint endTimePoint);
|
||||
|
||||
+4
-4
@@ -326,10 +326,10 @@ public interface TrackedLegOfCompetitor extends Serializable {
|
||||
Double getExpeditionTimeToStbLayline(TimePoint at);
|
||||
Double getExpeditionDistToPortLayline(TimePoint at);
|
||||
Double getExpeditionDistToStbLayline(TimePoint at);
|
||||
Duration getExpeditionTimeToGUN(TimePoint at);
|
||||
Double getExpeditionTimeToGUN(TimePoint at);
|
||||
Double getExpeditionTimeToCommitteeBoat(TimePoint at);
|
||||
Double getExpeditionTimeToPin(TimePoint at);
|
||||
Duration getExpeditionTimeToBurnToLine(TimePoint at);
|
||||
Double getExpeditionTimeToBurnToLine(TimePoint at);
|
||||
Double getExpeditionTimeToBurnToCommitteeBoat(TimePoint at);
|
||||
Double getExpeditionTimeToBurnToPin(TimePoint at);
|
||||
Double getExpeditionDistanceToCommitteeBoat(TimePoint at);
|
||||
@@ -366,10 +366,10 @@ public interface TrackedLegOfCompetitor extends Serializable {
|
||||
Double getAverageExpeditionTimeToStbLayline(TimePoint at);
|
||||
Double getAverageExpeditionDistToPortLayline(TimePoint at);
|
||||
Double getAverageExpeditionDistToStbLayline(TimePoint at);
|
||||
Duration getAverageExpeditionTimeToGUN(TimePoint at);
|
||||
Double getAverageExpeditionTimeToGUN(TimePoint at);
|
||||
Double getAverageExpeditionTimeToCommitteeBoat(TimePoint at);
|
||||
Double getAverageExpeditionTimeToPin(TimePoint at);
|
||||
Duration getAverageExpeditionTimeToBurnToLine(TimePoint at);
|
||||
Double getAverageExpeditionTimeToBurnToLine(TimePoint at);
|
||||
Double getAverageExpeditionTimeToBurnToCommitteeBoat(TimePoint at);
|
||||
Double getAverageExpeditionTimeToBurnToPin(TimePoint at);
|
||||
Double getAverageExpeditionDistanceToCommitteeBoat(TimePoint at);
|
||||
|
||||
+65
-56
@@ -64,12 +64,16 @@ public class BravoFixTrackImpl<ItemType extends WithID & Serializable> extends S
|
||||
private transient TimeRangeCache<Pair<Double, Long>> expeditionJibCarPortCache;
|
||||
private transient TimeRangeCache<Pair<Double, Long>> expeditionJibCarStbdCache;
|
||||
private transient TimeRangeCache<Pair<Double, Long>> expeditionMastButtCache;
|
||||
private transient TimeRangeCache<Pair<Double, Long>> expeditionHeadingCache;
|
||||
private transient TimeRangeCache<Pair<Double, Long>> expeditionTimeToGunCache;
|
||||
private transient TimeRangeCache<Pair<Double, Long>> expeditionRudderCache;
|
||||
|
||||
/**
|
||||
* If a GPS track was provided at construction time, remember it non-transiently. It is needed when restoring
|
||||
* the object after de-serialization, so the cache invalidation listener can be re-established.
|
||||
*/
|
||||
private transient GPSFixTrack<ItemType, GPSFixMoving> gpsTrack;
|
||||
|
||||
|
||||
private class CacheInvalidationGpsTrackListener implements GPSTrackListener<ItemType, GPSFixMoving> {
|
||||
private static final long serialVersionUID = 6395529765232404414L;
|
||||
@@ -136,6 +140,9 @@ public class BravoFixTrackImpl<ItemType extends WithID & Serializable> extends S
|
||||
this.expeditionJibCarPortCache= createTimeRangeCache(trackedItem, "expeditionJibCarPortCache");
|
||||
this.expeditionJibCarStbdCache= createTimeRangeCache(trackedItem, "expeditionJibCarStbdCache");
|
||||
this.expeditionMastButtCache= createTimeRangeCache(trackedItem, "expeditionMastButtCache");
|
||||
this.expeditionHeadingCache = createTimeRangeCache(trackedItem, "expeditionHeadingCache");
|
||||
this.expeditionTimeToGunCache = createTimeRangeCache(trackedItem, "expeditionTimeToGunCache");
|
||||
this.expeditionRudderCache = createTimeRangeCache(trackedItem, "expeditionRudderCache");
|
||||
}
|
||||
|
||||
public GPSFixTrack<ItemType, GPSFixMoving> getGpsTrack() {
|
||||
@@ -205,7 +212,8 @@ public class BravoFixTrackImpl<ItemType extends WithID & Serializable> extends S
|
||||
expeditionTWDCache, expeditionBoatSpeedCache, expeditionTargBoatSpeedCache, expeditionSOGCache,
|
||||
expeditionCOGCache, expeditionForestayLoadCache, expeditionRakeCache, expeditionCourseDetailCache,
|
||||
expeditionBaroCache, expeditionJibCarPortCache, expeditionJibCarStbdCache, expeditionLoadPCache,
|
||||
expeditionLoadSCache, expeditionMastButtCache);
|
||||
expeditionLoadSCache, expeditionMastButtCache, expeditionHeadingCache, expeditionTimeToGunCache,
|
||||
expeditionRudderCache);
|
||||
}
|
||||
return added;
|
||||
}
|
||||
@@ -540,49 +548,59 @@ public class BravoFixTrackImpl<ItemType extends WithID & Serializable> extends S
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionHeadingIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
return getAverageOfBravoExtenededFixValueWithCachingForDouble(start, endTimePoint, BravoExtendedFix::getExpeditionHDG, expeditionHeadingCache);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionVMGIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionVMGTargVMGDeltaIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionRateOfTurnIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionRudderAngleIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
public Double getAverageExpeditionRudderAngleIfAvailable(TimePoint start, TimePoint endTimePoint) {
|
||||
return getAverageOfBravoExtenededFixValueWithCachingForDouble(start, endTimePoint,
|
||||
new Function<BravoExtendedFix, Double>() {
|
||||
|
||||
@Override
|
||||
public Double apply(BravoExtendedFix t) {
|
||||
final Bearing rudder = t.getRudder();
|
||||
Double result = null;
|
||||
if (rudder != null) {
|
||||
result = rudder.getDegrees();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}, expeditionRudderCache);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionHeelIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionTargetHeelIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionTimeToPortLaylineIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -600,67 +618,66 @@ public class BravoFixTrackImpl<ItemType extends WithID & Serializable> extends S
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionDistToStbLaylineIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration getAverageExpeditionTimeToGUNIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
public Double getAverageExpeditionTimeToGUNIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
return getAverageOfBravoExtenededFixValueWithCachingForDouble(start, endTimePoint, BravoExtendedFix::getExpeditionTmToGun, expeditionTimeToGunCache);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionTimeToCommitteeBoatIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionTimeToPinIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration getAverageExpeditionTimeToBurnToLineIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
public Double getAverageExpeditionTimeToBurnToLineIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionTimeToBurnToCommitteeBoatIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionTimeToBurnToPinIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionDistanceToCommitteeBoatIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionDistanceToPinDetailIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionDistanceBelowLineIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getAverageExpeditionLineSquareForWindIfAvailable(TimePoint start, TimePoint endTimePoint){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -768,127 +785,119 @@ public class BravoFixTrackImpl<ItemType extends WithID & Serializable> extends S
|
||||
|
||||
@Override
|
||||
public Double getExpeditionHeadingIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
return getExpeditionValueForDouble(at, BravoExtendedFix::getExpeditionHDG);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionVMGIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionVMGTargVMGDeltaIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionRateOfTurnIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionRudderAngleIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionHeelIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionTargetHeelIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionTimeToPortLaylineIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionTimeToStbLaylineIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionDistToPortLaylineIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionDistToStbLaylineIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration getExpeditionTimeToGUNIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
public Double getExpeditionTimeToGUNIfAvailable(TimePoint at){
|
||||
return getExpeditionValueForDouble(at, BravoExtendedFix::getExpeditionTmToGun);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionTimeToCommitteeBoatIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionTimeToPinIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration getExpeditionTimeToBurnToLineIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
public Double getExpeditionTimeToBurnToLineIfAvailable(TimePoint at){
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionTimeToBurnToCommitteeBoatIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionTimeToBurnToPinIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionDistanceToCommitteeBoatIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionDistanceToPinDetailIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionDistanceBelowLineIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Double getExpeditionLineSquareForWindIfAvailable(TimePoint at){
|
||||
// TODO Auto-generated method stub
|
||||
//column currently unkown
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
+10
-5
@@ -825,7 +825,12 @@ public class TrackedLegOfCompetitorImpl implements TrackedLegOfCompetitor {
|
||||
|
||||
@Override
|
||||
public Double getExpeditionRudderAngle(TimePoint at) {
|
||||
return getExpeditionValueFromBravoFixTrackIfLegIsStarted(at, BravoFixTrack::getExpeditionRudderAngleIfAvailable);
|
||||
Double result = null;
|
||||
final Bearing valueOrNull = getExpeditionValueFromBravoFixTrackIfLegIsStarted(at, BravoFixTrack::getRudderIfAvailable);
|
||||
if(valueOrNull != null) {
|
||||
result = valueOrNull.getDegrees();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -859,7 +864,7 @@ public class TrackedLegOfCompetitorImpl implements TrackedLegOfCompetitor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration getExpeditionTimeToGUN(TimePoint at) {
|
||||
public Double getExpeditionTimeToGUN(TimePoint at) {
|
||||
return getExpeditionValueFromBravoFixTrackIfLegIsStarted(at, BravoFixTrack::getExpeditionTimeToGUNIfAvailable);
|
||||
}
|
||||
|
||||
@@ -874,7 +879,7 @@ public class TrackedLegOfCompetitorImpl implements TrackedLegOfCompetitor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration getExpeditionTimeToBurnToLine(TimePoint at) {
|
||||
public Double getExpeditionTimeToBurnToLine(TimePoint at) {
|
||||
return getExpeditionValueFromBravoFixTrackIfLegIsStarted(at, BravoFixTrack::getExpeditionTimeToBurnToLineIfAvailable);
|
||||
}
|
||||
|
||||
@@ -1059,7 +1064,7 @@ public class TrackedLegOfCompetitorImpl implements TrackedLegOfCompetitor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration getAverageExpeditionTimeToGUN(TimePoint at) {
|
||||
public Double getAverageExpeditionTimeToGUN(TimePoint at) {
|
||||
return getAverageExpeditionValueWithTimeRangeFromBravoFixTrackIfLegIsStarted(at, BravoFixTrack::getAverageExpeditionTimeToGUNIfAvailable);
|
||||
}
|
||||
|
||||
@@ -1074,7 +1079,7 @@ public class TrackedLegOfCompetitorImpl implements TrackedLegOfCompetitor {
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration getAverageExpeditionTimeToBurnToLine(TimePoint at) {
|
||||
public Double getAverageExpeditionTimeToBurnToLine(TimePoint at) {
|
||||
return getAverageExpeditionValueWithTimeRangeFromBravoFixTrackIfLegIsStarted(at, BravoFixTrack::getAverageExpeditionTimeToBurnToLineIfAvailable);
|
||||
}
|
||||
|
||||
|
||||
+2
-11
@@ -1337,7 +1337,7 @@ public abstract class LeaderboardPanel<LS extends LeaderboardSettings> extends A
|
||||
LEG_COLUMN_HEADER_STYLE, LEG_COLUMN_STYLE, LeaderboardPanel.this));
|
||||
result.put(DetailType.EXPEDITION_RACE_TIME_TO_GUN,
|
||||
new FormattedDoubleDetailTypeColumn(DetailType.EXPEDITION_RACE_TIME_TO_GUN,
|
||||
new DurationAsSecondsDetailTypeExtractor(LeaderboardEntryDTO::getExpeditionTimeToGun),
|
||||
new DoubleTextRaceDetailTypeExtractor(LeaderboardEntryDTO::getExpeditionTimeToGun),
|
||||
LEG_COLUMN_HEADER_STYLE, LEG_COLUMN_STYLE, LeaderboardPanel.this));
|
||||
result.put(DetailType.EXPEDITION_RACE_TIME_TO_COMMITTEE_BOAT,
|
||||
new FormattedDoubleDetailTypeColumn(DetailType.EXPEDITION_RACE_TIME_TO_COMMITTEE_BOAT,
|
||||
@@ -1350,7 +1350,7 @@ public abstract class LeaderboardPanel<LS extends LeaderboardSettings> extends A
|
||||
LEG_COLUMN_HEADER_STYLE, LEG_COLUMN_STYLE, LeaderboardPanel.this));
|
||||
result.put(DetailType.EXPEDITION_RACE_TIME_TO_BURN_TO_LINE,
|
||||
new FormattedDoubleDetailTypeColumn(DetailType.EXPEDITION_RACE_TIME_TO_BURN_TO_LINE,
|
||||
new DurationAsSecondsDetailTypeExtractor(
|
||||
new DoubleTextRaceDetailTypeExtractor(
|
||||
LeaderboardEntryDTO::getExpeditionTimeToBurnToLine),
|
||||
LEG_COLUMN_HEADER_STYLE, LEG_COLUMN_STYLE, LeaderboardPanel.this));
|
||||
result.put(DetailType.EXPEDITION_RACE_TIME_TO_BURN_TO_COMMITTEE_BOAT,
|
||||
@@ -1416,15 +1416,6 @@ public abstract class LeaderboardPanel<LS extends LeaderboardSettings> extends A
|
||||
return result;
|
||||
}
|
||||
|
||||
private class DurationAsSecondsDetailTypeExtractor extends DoubleTextRaceDetailTypeExtractor {
|
||||
public DurationAsSecondsDetailTypeExtractor(Function<LeaderboardEntryDTO, Duration> valueExtractor) {
|
||||
super(entry -> {
|
||||
Duration duration = valueExtractor.apply(entry);
|
||||
return duration == null ? null : duration.asSeconds();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
private class BearingAsDegreeDetailTypeExtractor extends DoubleTextRaceDetailTypeExtractor {
|
||||
public BearingAsDegreeDetailTypeExtractor(Function<LeaderboardEntryDTO, Bearing> valueExtractor) {
|
||||
super(entry -> {
|
||||
|
||||
+2
-2
@@ -372,7 +372,7 @@ public class LegColumn extends ExpandableSortableColumn<String> {
|
||||
detailColumnStyle, leaderboardPanel));
|
||||
result.put(DetailType.EXPEDITION_LEG_TIME_TO_GUN,
|
||||
new FormattedDoubleDetailTypeColumn(DetailType.EXPEDITION_LEG_TIME_TO_GUN,
|
||||
new DurationAsSecondsDetailTypeExtractor(LegEntryDTO::getExpeditionTimeToGUN),
|
||||
new DoubleDetailTypeExtractor(LegEntryDTO::getExpeditionTimeToGUN),
|
||||
detailHeaderStyle, detailColumnStyle, leaderboardPanel));
|
||||
result.put(DetailType.EXPEDITION_LEG_TIME_TO_COMMITTEE_BOAT,
|
||||
new FormattedDoubleDetailTypeColumn(DetailType.EXPEDITION_LEG_TIME_TO_COMMITTEE_BOAT,
|
||||
@@ -384,7 +384,7 @@ public class LegColumn extends ExpandableSortableColumn<String> {
|
||||
detailColumnStyle, leaderboardPanel));
|
||||
result.put(DetailType.EXPEDITION_LEG_TIME_TO_BURN_TO_LINE,
|
||||
new FormattedDoubleDetailTypeColumn(DetailType.EXPEDITION_LEG_TIME_TO_BURN_TO_LINE,
|
||||
new DurationAsSecondsDetailTypeExtractor(LegEntryDTO::getExpeditionTimeToBurnToLine),
|
||||
new DoubleDetailTypeExtractor(LegEntryDTO::getExpeditionTimeToBurnToLine),
|
||||
detailHeaderStyle, detailColumnStyle, leaderboardPanel));
|
||||
result.put(DetailType.EXPEDITION_LEG_TIME_TO_BURN_TO_COMMITTEE_BOAT,
|
||||
new FormattedDoubleDetailTypeColumn(DetailType.EXPEDITION_LEG_TIME_TO_BURN_TO_COMMITTEE_BOAT,
|
||||
|
||||
+3
-8
@@ -3194,7 +3194,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
break;
|
||||
}
|
||||
case EXPEDITION_RACE_RUDDER_ANGLE: {
|
||||
result = getBravoDoubleValue(BravoFixTrack::getExpeditionRudderAngleIfAvailable, trackedRace, competitor, timePoint);
|
||||
result = getBravoBearingInDegrees(BravoFixTrack::getRudderIfAvailable, trackedRace, competitor, timePoint);
|
||||
break;
|
||||
}
|
||||
case EXPEDITION_RACE_SOG: {
|
||||
@@ -3218,7 +3218,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
break;
|
||||
}
|
||||
case EXPEDITION_RACE_TIME_TO_BURN_TO_LINE: {
|
||||
result = getBravoDurationValue(BravoFixTrack::getExpeditionTimeToBurnToLineIfAvailable, trackedRace, competitor, timePoint);
|
||||
result = getBravoDoubleValue(BravoFixTrack::getExpeditionTimeToBurnToLineIfAvailable, trackedRace, competitor, timePoint);
|
||||
break;
|
||||
}
|
||||
case EXPEDITION_RACE_TIME_TO_BURN_TO_PIN: {
|
||||
@@ -3230,7 +3230,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
break;
|
||||
}
|
||||
case EXPEDITION_RACE_TIME_TO_GUN: {
|
||||
result = getBravoDurationValue(BravoFixTrack::getExpeditionTimeToGUNIfAvailable, trackedRace, competitor, timePoint);
|
||||
result = getBravoDoubleValue(BravoFixTrack::getExpeditionTimeToGUNIfAvailable, trackedRace, competitor, timePoint);
|
||||
break;
|
||||
}
|
||||
case EXPEDITION_RACE_TIME_TO_PIN: {
|
||||
@@ -3275,11 +3275,6 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
}
|
||||
}
|
||||
|
||||
private Double getBravoDurationValue(BiFunction<BravoFixTrack<Competitor>, TimePoint, Duration> valueGetter,
|
||||
TrackedRace trackedRace, Competitor competitor, TimePoint timePoint) {
|
||||
return getBravoValue(valueGetter, Duration::asSeconds, trackedRace, competitor, timePoint);
|
||||
}
|
||||
|
||||
private Double getBravoDoubleValue(BiFunction<BravoFixTrack<Competitor>, TimePoint, Double> valueGetter,
|
||||
TrackedRace trackedRace, Competitor competitor, TimePoint timePoint) {
|
||||
return getBravoValue(valueGetter, Function.identity(), trackedRace, competitor, timePoint);
|
||||
|
||||
Reference in new issue
Block a user