bug4425 added a few more columns

This commit is contained in:
Kai Boernert committed 2018-03-27 11:20:54 +02:00
1 parent 77e87dfb9a
commit 307c4e93cc
12 files changed
+110 -119

No files matched your search

@@ -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;
@@ -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,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();
@@ -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
@@ -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);
@@ -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);
@@ -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;
}
@@ -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);
}
@@ -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 -> {
@@ -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,
@@ -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);