diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/ScoringSchemeType.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/ScoringSchemeType.java index 0102c273dda..763ee9280e2 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/ScoringSchemeType.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/ScoringSchemeType.java @@ -2,5 +2,6 @@ package com.sap.sailing.domain.common; public enum ScoringSchemeType { LOW_POINT, HIGH_POINT, HIGH_POINT_ESS_OVERALL, HIGH_POINT_LAST_BREAKS_TIE, HIGH_POINT_FIRST_GETS_TEN, - HIGH_POINT_FIRST_GETS_ONE, LOW_POINT_WINNER_GETS_ZERO, HIGH_POINT_WINNER_GETS_SIX, HIGH_POINT_WINNER_GETS_FIVE + HIGH_POINT_FIRST_GETS_ONE, LOW_POINT_WINNER_GETS_ZERO, HIGH_POINT_WINNER_GETS_SIX, HIGH_POINT_WINNER_GETS_FIVE, + HIGH_POINT_WINNER_GETS_FIVE_IGNORING_RACE_COUNT } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DomainFactoryImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DomainFactoryImpl.java index d8e827a02ea..c49b68642a3 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DomainFactoryImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DomainFactoryImpl.java @@ -35,6 +35,7 @@ import com.sap.sailing.domain.leaderboard.impl.HighPointFirstGets10LastBreaksTie import com.sap.sailing.domain.leaderboard.impl.HighPointFirstGets1LastBreaksTie; import com.sap.sailing.domain.leaderboard.impl.HighPointLastBreaksTie; import com.sap.sailing.domain.leaderboard.impl.HighPointWinnerGetsFive; +import com.sap.sailing.domain.leaderboard.impl.HighPointWinnerGetsFiveIgnoringRaceCount; import com.sap.sailing.domain.leaderboard.impl.HighPointWinnerGetsSix; import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.leaderboard.impl.LowPointWinnerGetsZero; @@ -90,6 +91,8 @@ public class DomainFactoryImpl extends SharedDomainFactoryImpl implements Domain return new LowPointWinnerGetsZero(); case HIGH_POINT_WINNER_GETS_FIVE: return new HighPointWinnerGetsFive(); + case HIGH_POINT_WINNER_GETS_FIVE_IGNORING_RACE_COUNT: + return new HighPointWinnerGetsFiveIgnoringRaceCount(); case HIGH_POINT_WINNER_GETS_SIX: return new HighPointWinnerGetsSix(); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractScoringSchemeImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractScoringSchemeImpl.java index ea9eb79de19..b08d2977d34 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractScoringSchemeImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractScoringSchemeImpl.java @@ -128,7 +128,6 @@ public abstract class AbstractScoringSchemeImpl implements ScoringScheme { */ @Override public int compareByBetterScore(List> o1Scores, List> o2Scores, boolean nullScoresAreBetter) { - assert o1Scores.size() == o2Scores.size(); final Comparator pureScoreComparator = getScoreComparator(nullScoresAreBetter); // needs to compare net points; therefore, divide the total points by the column factor for comparison: List o1NetScores = new ArrayList<>(); @@ -148,6 +147,11 @@ public abstract class AbstractScoringSchemeImpl implements ScoringScheme { while (result == 0 && o1Iter.hasNext() && o2Iter.hasNext()) { result = pureScoreComparator.compare(o1Iter.next(), o2Iter.next()); } + if (o1Iter.hasNext() != o2Iter.hasNext()) { + // if, as may be allowed by some scoring scheme variants, competitors with different numbers of scored races are compared + // and are equal for all races of the competitor who scored fewer races, the competitor who scored more races is preferred + result = o1Iter.hasNext() ? -1 : 1; + } return result; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index f5ab6b223d8..dc2526965bd 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -380,7 +380,8 @@ public interface StringMessages extends Messages { String scoringSchemeLowPointSystem(); String scoringSchemeHighPointSystem(); String scoringSchemeLowPointWinnerGetsZero(); - String scoringSchemeWinnerGetsFive(); + String scoringSchemeWinnerGetsFive(); + String scoringSchemeWinnerGetsFiveIgnoringRaceCount(); String scoringSchemeWinnerGetsSix(); String scoringSystem(); String createFlexibleLeaderboard(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index 93a6a0dbc8f..c782331654d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -408,6 +408,7 @@ scoringSchemeHighPointEssOverall=High Point System ESS Overall scoringSchemeHighPointLastBreaksTie=High Point System, Last Race Breaks Tie scoringSchemeLowPointWinnerGetsZero=Low Point System, Winner Gets Zero scoringSchemeWinnerGetsFive=High Point System, Winner Gets 5 Points +scoringSchemeWinnerGetsFiveIgnoringRaceCount=High Point System, Winner Gets 5 Points, Ignoring Race Count scoringSchemeWinnerGetsSix=High Point System, Winner Gets 6 Points scoringSystem=Scoring system createFlexibleLeaderboard=Create flexible leaderboard diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index c67dea86662..4bc982605ef 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -409,6 +409,7 @@ scoringSchemeHighPointEssOverall=High Point System ESS Gesamtwertung scoringSchemeHighPointLastBreaksTie=High Point System, letztes Rennen entscheidet bei Gleichstand scoringSchemeLowPointWinnerGetsZero=Low Point System, Gewinner erhält 0 Punkte scoringSchemeWinnerGetsFive=High Point System, Gewinner erhält 5 Punkte +scoringSchemeWinnerGetsFiveIgnoringRaceCount=High Point System, Gewinner erhält 5 Punkte, Anzahl Wettfahrten egal scoringSchemeWinnerGetsSix=High Point System, Gewinner erhält 6 Punkte scoringSystem=Bepunktungssystem createFlexibleLeaderboard=Flexible Rangliste anlegen diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties index 944d3e320db..bcab85f9bf1 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties @@ -399,6 +399,7 @@ scoringSchemeHighPointEssOverall=Высокобальная система по scoringSchemeHighPointLastBreaksTie=Высокобальная система подсчета, тай-брейк на последней гонке scoringSchemeLowPointWinnerGetsZero=Низкобальная система подсчета очков, победитель получает ноль очков scoringSchemeWinnerGetsFive=Высокобальная система подсчета, победитель получает 5 очков +scoringSchemeWinnerGetsFiveIgnoringRaceCount=Высокобальная система подсчета, победитель получает 5 очков, Ignoring Race Count scoringSchemeWinnerGetsSix=Высокобальная система подсчета, победитель получает 6 очков scoringSystem=Система подсчета очков createFlexibleLeaderboard=Создание адаптивной таблицы лидеров diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/ScoringSchemeTypeFormatter.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/ScoringSchemeTypeFormatter.java index 113e14d586e..e94239f3c86 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/ScoringSchemeTypeFormatter.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/ScoringSchemeTypeFormatter.java @@ -22,6 +22,8 @@ public class ScoringSchemeTypeFormatter { return stringMessages.scoringSchemeLowPointWinnerGetsZero(); case HIGH_POINT_WINNER_GETS_FIVE: return stringMessages.scoringSchemeWinnerGetsFive(); + case HIGH_POINT_WINNER_GETS_FIVE_IGNORING_RACE_COUNT: + return stringMessages.scoringSchemeWinnerGetsFiveIgnoringRaceCount(); case HIGH_POINT_WINNER_GETS_SIX: return stringMessages.scoringSchemeWinnerGetsSix(); }