mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-10 21:02:40 +00:00
continued with ORC PCS ranking metric implementation
Change-Id: I50ebc4b26e11ac518468d2fbe9882e65dbf4be72
This commit is contained in:
1 parent
7654059dbf
commit
e2d04668a3
3 files changed
+24
-8
No files matched your search
+5
-3
@@ -1,8 +1,10 @@
|
||||
package com.sap.sailing.domain.abstractlog.orc;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.Revokable;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
|
||||
|
||||
//TODO Implementation and decision whether the scratch boat should be set for a whole regatta or per race
|
||||
public interface ORCScratchBoatEvent extends RaceLogEvent {
|
||||
|
||||
public interface ORCScratchBoatEvent extends RaceLogEvent, Revokable {
|
||||
Serializable getCompetitorId();
|
||||
}
|
||||
+3
-5
@@ -1,9 +1,8 @@
|
||||
package com.sap.sailing.domain.abstractlog.orc.impl;
|
||||
package com.sap.sailing.domain.abstractlog.orc;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.orc.RaceLogORCLegDataEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLog;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.RaceLogAnalyzer;
|
||||
@@ -21,9 +20,9 @@ import com.sap.sse.common.Distance;
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public class ORCLegDataAnalyzer extends RaceLogAnalyzer<Map<Integer, ORCPerformanceCurveLeg>> {
|
||||
public class RaceLogORCLegDataAnalyzer extends RaceLogAnalyzer<Map<Integer, ORCPerformanceCurveLeg>> {
|
||||
|
||||
public ORCLegDataAnalyzer(RaceLog raceLog) {
|
||||
public RaceLogORCLegDataAnalyzer(RaceLog raceLog) {
|
||||
super(raceLog);
|
||||
}
|
||||
|
||||
@@ -46,5 +45,4 @@ public class ORCLegDataAnalyzer extends RaceLogAnalyzer<Map<Integer, ORCPerforma
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+16
@@ -6,8 +6,10 @@ import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.orc.ORCCertificateAssignmentEvent;
|
||||
import com.sap.sailing.domain.abstractlog.orc.RaceLogORCCertificateAssignmentEvent;
|
||||
import com.sap.sailing.domain.abstractlog.orc.RaceLogORCCertificateAssignmentFinder;
|
||||
import com.sap.sailing.domain.abstractlog.orc.RaceLogORCLegDataAnalyzer;
|
||||
import com.sap.sailing.domain.abstractlog.orc.RaceLogORCLegDataEvent;
|
||||
import com.sap.sailing.domain.abstractlog.orc.RegattaLogORCCertificateAssignmentEvent;
|
||||
import com.sap.sailing.domain.abstractlog.orc.RegattaLogORCCertificateAssignmentFinder;
|
||||
@@ -24,6 +26,7 @@ import com.sap.sailing.domain.base.Waypoint;
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
import com.sap.sailing.domain.common.orc.ORCCertificate;
|
||||
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveCourse;
|
||||
import com.sap.sailing.domain.common.orc.ORCPerformanceCurveLeg;
|
||||
import com.sap.sailing.domain.ranking.AbstractRankingMetric;
|
||||
import com.sap.sailing.domain.ranking.RankingMetric;
|
||||
import com.sap.sailing.domain.tracking.TrackedLeg;
|
||||
@@ -113,6 +116,11 @@ public class ORCPerformanceCurveRankingMetric extends AbstractRankingMetric {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* To be called if the set of logs attached to the {@link #getTrackedRace() tracked race} changes or any of those
|
||||
* logs sees a {@link ORCCertificateAssignmentEvent} being added. As a result, the {@link #certificates} map is
|
||||
* replaced by a new one that has the updated mapping of boats to their certificates.
|
||||
*/
|
||||
private void updateCertificatesFromLogs() {
|
||||
final Map<Boat, ORCCertificate> newCertificates = new HashMap<>();
|
||||
for (final RegattaLog regattaLog : getTrackedRace().getAttachedRegattaLogs()) {
|
||||
@@ -123,6 +131,14 @@ public class ORCPerformanceCurveRankingMetric extends AbstractRankingMetric {
|
||||
}
|
||||
certificates = newCertificates;
|
||||
}
|
||||
|
||||
private void updateCourseFromRaceLogs() {
|
||||
final Map<Integer, ORCPerformanceCurveLeg> legsWithDefinitions = new HashMap<>();
|
||||
for (final RaceLog raceLog : getTrackedRace().getAttachedRaceLogs()) {
|
||||
legsWithDefinitions.putAll(new RaceLogORCLegDataAnalyzer(raceLog).analyze());
|
||||
}
|
||||
// TODO continue here, taking only those definitions up to the true number of legs in the race's course and fill the blanks with tracked leg adapters
|
||||
}
|
||||
|
||||
@Override
|
||||
public Comparator<Competitor> getRaceRankingComparator(TimePoint timePoint, WindLegTypeAndLegBearingCache cache) {
|
||||
|
||||
Reference in new issue
Block a user