bug5932: merge master

This commit is contained in:
Lisa
2023-12-20 17:34:47 +01:00
9 changed files with 28 additions and 12 deletions
@@ -259,16 +259,14 @@ LengthOfTheLeg=Length of the Leg
LegSailingDomainRetrieverChain=Leg
TackType=Long / short tack
getTackTypeofRace=Long / short tack of the race
<<<<<<< HEAD
tackTypeSegmentsRetrieverChainDefinition=Long/Short tack segments
TackTypeSegments=Long/Short segments
TackTypeSegmentName=Long/Short tack segments name
TackTypeDuration=Long/Short tack duration
TackTypeDistance=Long/Short tack distance
=======
InRace=In race
InTrackingInterval=In tracking interval
NumberOfCompetitors=Number of Competitors
CompetitorInLeaderboard=Competitor in Leaderboard
CompetitorSailingDomainRetrieverChain=Competitors in Leaderboards
>>>>>>> 3a0a58b1e323162540dcdaf1a2425a8fdccad52a
SmoothedSpeed=Smoothed Speed
@@ -266,4 +266,5 @@ InRace=In der Wettfahrt
InTrackingInterval=Im Tracking-Zeitraum der Wettfahrt
NumberOfCompetitors=Anzahl Teilnehmer
CompetitorInLeaderboard=Teilnehmer aus Rangliste
CompetitorSailingDomainRetrieverChain=Teilnehmer in Ranglisten
CompetitorSailingDomainRetrieverChain=Teilnehmer in Ranglisten
SmoothedSpeed=Geglättete Geschwindigkeit
@@ -6,16 +6,17 @@ import com.sap.sailing.domain.common.TackType;
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
import com.sap.sse.common.Bearing;
import com.sap.sse.common.Distance;
import com.sap.sse.common.Speed;
import com.sap.sse.datamining.annotations.Connector;
import com.sap.sse.datamining.annotations.Dimension;
import com.sap.sse.datamining.annotations.Statistic;
public interface HasGPSFixContext {
@Connector(scanForStatistics = false)
public HasTrackedLegOfCompetitorContext getTrackedLegOfCompetitorContext();
HasTrackedLegOfCompetitorContext getTrackedLegOfCompetitorContext();
@Connector(ordinal = 1)
public GPSFixMoving getGPSFix();
GPSFixMoving getGPSFix();
@Dimension(messageKey="TackType", ordinal=6)
TackType getTackType() throws NoWindException;
@@ -34,4 +35,7 @@ public interface HasGPSFixContext {
@Statistic(messageKey = "AbsoluteXTE", resultDecimals = 2)
Distance getAbsoluteXTE();
@Statistic(messageKey = "SmoothedSpeed", resultDecimals = 2)
Speed getSmoothedSpeed();
}
@@ -26,17 +26,17 @@ public class GPSFixRetrievalProcessor extends AbstractRetrievalProcessor<HasTrac
@Override
protected Iterable<HasGPSFixContext> retrieveData(HasTrackedLegOfCompetitorContext element) {
Collection<HasGPSFixContext> gpsFixesWithContext = new ArrayList<>();
final Collection<HasGPSFixContext> gpsFixesWithContext = new ArrayList<>();
final GPSFixTrack<Competitor, GPSFixMoving> competitorTrack = element.getTrackedLegContext().getTrackedRaceContext().getTrackedRace().getTrack(element.getCompetitor());
competitorTrack.lockForRead();
try {
TrackedLegOfCompetitor trackedLegOfCompetitor = element.getTrackedLegOfCompetitor();
final TrackedLegOfCompetitor trackedLegOfCompetitor = element.getTrackedLegOfCompetitor();
if (trackedLegOfCompetitor.getStartTime() != null && trackedLegOfCompetitor.getFinishTime() != null) {
for (GPSFixMoving gpsFix : competitorTrack.getFixes(trackedLegOfCompetitor.getStartTime(), true, trackedLegOfCompetitor.getFinishTime(), true)) {
if (isAborted()) {
break;
}
HasGPSFixContext gpsFixWithContext = new GPSFixWithContext(new TrackedLegOfCompetitorWithSpecificTimePointWithContext(
final HasGPSFixContext gpsFixWithContext = new GPSFixWithContext(new TrackedLegOfCompetitorWithSpecificTimePointWithContext(
element.getTrackedLegContext(), element.getTrackedLegOfCompetitor(), gpsFix.getTimePoint()), gpsFix);
gpsFixesWithContext.add(gpsFixWithContext);
}
@@ -9,6 +9,7 @@ import com.sap.sailing.domain.common.tracking.GPSFixMoving;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sse.common.Bearing;
import com.sap.sse.common.Distance;
import com.sap.sse.common.Speed;
import com.sap.sse.common.TimePoint;
/**
@@ -95,4 +96,15 @@ public class GPSFixWithContext implements HasGPSFixContext {
public TackType getTackType() throws NoWindException {
return getTrackedLegOfCompetitorContext().getTrackedLegOfCompetitor().getTackType(getTimePoint());
}
@Override
public Speed getSmoothedSpeed() {
final SpeedWithBearing result;
if (getGPSFix().isEstimatedSpeedCached()) {
result = getGPSFix().getCachedEstimatedSpeed();
} else {
result = getTrackedLegOfCompetitorContext().getTrackedRace().getTrack(getTrackedLegOfCompetitorContext().getCompetitor()).getEstimatedSpeed(getTimePoint());
}
return result;
}
}