mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-08 21:30:57 +00:00
added code to fill timePointOfLastFix in LeaderboardEntryDTO
This commit is contained in:
1 parent
4c33c67cca
commit
5580c2a99c
1 file changed
+23
+23
@@ -6,6 +6,7 @@ import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
@@ -72,6 +73,7 @@ import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogIdentifier;
|
||||
import com.sap.sailing.domain.tracking.GPSFix;
|
||||
import com.sap.sailing.domain.tracking.GPSFixMoving;
|
||||
import com.sap.sailing.domain.tracking.GPSFixTrack;
|
||||
import com.sap.sailing.domain.tracking.Maneuver;
|
||||
import com.sap.sailing.domain.tracking.MarkPassing;
|
||||
import com.sap.sailing.domain.tracking.MarkPassingManeuver;
|
||||
@@ -1193,6 +1195,7 @@ public abstract class AbstractSimpleLeaderboardImpl implements Leaderboard, Race
|
||||
entryDTO.totalPoints = entry.getTotalPoints();
|
||||
entryDTO.reasonForMaxPoints = entry.getMaxPointsReason();
|
||||
entryDTO.discarded = entry.isDiscarded();
|
||||
entryDTO.timePointOfLastPositionFix = getTimePointOfLastFix(competitor, trackedRace);
|
||||
if (addLegDetails && trackedRace != null) {
|
||||
try {
|
||||
RaceDetails raceDetails = getRaceDetails(trackedRace, competitor, timePoint, waitForLatestAnalyses, legRanksCache);
|
||||
@@ -1245,6 +1248,26 @@ public abstract class AbstractSimpleLeaderboardImpl implements Leaderboard, Race
|
||||
return entryDTO;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines the time point of the last raw fix (with outliers not removed) for <code>competitor</code> in
|
||||
* <code>trackedRace</code>. If the competitor's track is <code>null</code> or empty, <code>null</code> is returned.
|
||||
*/
|
||||
private Date getTimePointOfLastFix(Competitor competitor, TrackedRace trackedRace) {
|
||||
final Date timePointOfLastPositionFix;
|
||||
GPSFixTrack<Competitor, GPSFixMoving> track = trackedRace.getTrack(competitor);
|
||||
if (track == null) {
|
||||
timePointOfLastPositionFix = null;
|
||||
} else {
|
||||
GPSFixMoving lastFix = track.getLastRawFix();
|
||||
if (lastFix == null) {
|
||||
timePointOfLastPositionFix = null;
|
||||
} else {
|
||||
timePointOfLastPositionFix = lastFix.getTimePoint().asDate();
|
||||
}
|
||||
}
|
||||
return timePointOfLastPositionFix;
|
||||
}
|
||||
|
||||
private static class RaceDetails {
|
||||
private final List<LegEntryDTO> legDetails;
|
||||
private final Distance windwardDistanceToOverallLeader;
|
||||
|
||||
Reference in new issue
Block a user