mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-25 05:23:51 +00:00
added leg ranking comparator to the RankingMetric design
This commit is contained in:
1 parent
21ac8177c2
commit
40767d0d2a
2 files changed
+19
-8
No files matched your search
+11
-4
@@ -4,32 +4,39 @@ import java.util.Comparator;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.common.Distance;
|
||||
import com.sap.sailing.domain.tracking.TrackedLeg;
|
||||
import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.domain.tracking.WindLegTypeAndLegBearingCache;
|
||||
import com.sap.sailing.domain.tracking.WindPositionMode;
|
||||
import com.sap.sailing.domain.tracking.impl.RaceRankComparator;
|
||||
import com.sap.sailing.domain.tracking.impl.WindwardToGoComparator;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
|
||||
public class OneDesignRankingMetric implements RankingMetric<Distance> {
|
||||
@Override
|
||||
public Comparator<Competitor> getRankingComparator(TrackedRace trackedRace, Competitor competitor, TimePoint timePoint, WindLegTypeAndLegBearingCache cache) {
|
||||
public Comparator<Competitor> getRaceRankingComparator(TrackedRace trackedRace, TimePoint timePoint, WindLegTypeAndLegBearingCache cache) {
|
||||
return new RaceRankComparator(trackedRace, timePoint, cache);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Comparator<TrackedLegOfCompetitor> getLegRankingComparator(TrackedLeg trackedLeg,
|
||||
TimePoint timePoint, WindLegTypeAndLegBearingCache cache) {
|
||||
return new WindwardToGoComparator(trackedLeg, timePoint, cache);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Duration getTimeToImprove(TrackedRace trackedRace, Competitor trailing, Competitor leading,
|
||||
TimePoint timePoint, WindLegTypeAndLegBearingCache cache) {
|
||||
// TODO find the last leg both competitors have already started and compute the gap in that leg;
|
||||
int i=0;
|
||||
final Duration result;
|
||||
// TODO find the last leg both competitors have already started and compute the gap in that leg;
|
||||
final TrackedLegOfCompetitor tlocTrailing = null;
|
||||
if (tlocTrailing != null) {
|
||||
result = tlocTrailing.getGapToLeader(timePoint, leading, WindPositionMode.LEG_MIDDLE, cache);
|
||||
} else {
|
||||
result = null;
|
||||
}
|
||||
return null;
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,8 @@ package com.sap.sailing.domain.ranking;
|
||||
import java.util.Comparator;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.tracking.TrackedLeg;
|
||||
import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.domain.tracking.WindLegTypeAndLegBearingCache;
|
||||
import com.sap.sailing.domain.tracking.impl.NoCachingWindLegTypeAndLegBearingCache;
|
||||
@@ -31,12 +33,14 @@ import com.sap.sse.common.TimePoint;
|
||||
* @param <T>
|
||||
*/
|
||||
public interface RankingMetric<T extends Comparable<T>> {
|
||||
default Comparator<Competitor> getRankingComparator(TrackedRace trackedRace, Competitor competitor, TimePoint timePoint) {
|
||||
return getRankingComparator(trackedRace, competitor, timePoint, new NoCachingWindLegTypeAndLegBearingCache());
|
||||
default Comparator<Competitor> getRankingComparator(TrackedRace trackedRace, TimePoint timePoint) {
|
||||
return getRaceRankingComparator(trackedRace, null, new NoCachingWindLegTypeAndLegBearingCache());
|
||||
}
|
||||
|
||||
Comparator<Competitor> getRankingComparator(TrackedRace trackedRace, Competitor competitor, TimePoint timePoint, WindLegTypeAndLegBearingCache cache);
|
||||
|
||||
Comparator<Competitor> getRaceRankingComparator(TrackedRace trackedRace, TimePoint timePoint, WindLegTypeAndLegBearingCache cache);
|
||||
|
||||
Comparator<TrackedLegOfCompetitor> getLegRankingComparator(TrackedLeg trackedLeg, TimePoint timePoint, WindLegTypeAndLegBearingCache cache);
|
||||
|
||||
/**
|
||||
* Calculates the time that the <code>trailing</code> competitor needs to "catch up" to reach the <code>leading</code> competitor,
|
||||
* measured in the <code>trailing</code> competitor's "time system." For one-design ranking this will be the gap based on the
|
||||
|
||||
Reference in new issue
Block a user