From e2d04668a3be2c8d624d9df0807eedb9eb6e5b0e Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Wed, 11 Sep 2019 18:30:25 +0200 Subject: [PATCH] continued with ORC PCS ranking metric implementation Change-Id: I50ebc4b26e11ac518468d2fbe9882e65dbf4be72 --- .../abstractlog/orc/ORCScratchBoatEvent.java | 8 +++++--- ...lyzer.java => RaceLogORCLegDataAnalyzer.java} | 8 +++----- .../impl/ORCPerformanceCurveRankingMetric.java | 16 ++++++++++++++++ 3 files changed, 24 insertions(+), 8 deletions(-) rename java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/orc/{impl/ORCLegDataAnalyzer.java => RaceLogORCLegDataAnalyzer.java} (87%) diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/orc/ORCScratchBoatEvent.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/orc/ORCScratchBoatEvent.java index f69c437291b..fb34347ea20 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/orc/ORCScratchBoatEvent.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/orc/ORCScratchBoatEvent.java @@ -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(); } diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/orc/impl/ORCLegDataAnalyzer.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/orc/RaceLogORCLegDataAnalyzer.java similarity index 87% rename from java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/orc/impl/ORCLegDataAnalyzer.java rename to java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/orc/RaceLogORCLegDataAnalyzer.java index df14a22b9f7..a5c2fef21ea 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/orc/impl/ORCLegDataAnalyzer.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/abstractlog/orc/RaceLogORCLegDataAnalyzer.java @@ -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> { +public class RaceLogORCLegDataAnalyzer extends RaceLogAnalyzer> { - public ORCLegDataAnalyzer(RaceLog raceLog) { + public RaceLogORCLegDataAnalyzer(RaceLog raceLog) { super(raceLog); } @@ -46,5 +45,4 @@ public class ORCLegDataAnalyzer extends RaceLogAnalyzer 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 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 getRaceRankingComparator(TimePoint timePoint, WindLegTypeAndLegBearingCache cache) {