bug5053: obtain boat from CompetitorWithBoat or race log if possible

Change-Id: Ib2992ac2aaa417556970c0c9378039111963d7d2
This commit is contained in:
Axel Uhl committed 2019-05-25 12:12:28 +02:00
1 parent e4fe92476a
commit 6bdb973ff9
1 file changed
+20 -2
@@ -27,8 +27,10 @@ import java.util.logging.Logger;
import com.sap.sailing.domain.abstractlog.race.InvalidatesLeaderboardCache;
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
import com.sap.sailing.domain.base.Boat;
import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.CompetitorWithBoat;
import com.sap.sailing.domain.base.Course;
import com.sap.sailing.domain.base.DomainFactory;
import com.sap.sailing.domain.base.Fleet;
@@ -585,8 +587,24 @@ public abstract class AbstractLeaderboardWithCache implements Leaderboard {
LeaderboardEntryDTO entryDTO = new LeaderboardEntryDTO();
TrackedRace trackedRace = raceColumn.getTrackedRace(competitor);
entryDTO.race = trackedRace == null ? null : trackedRace.getRaceIdentifier();
// TODO bug2822: Should this rather come from raceColumn.getBoatOfCompetitor() ?
entryDTO.boat = trackedRace == null ? null : baseDomainFactory.convertToBoatDTO(trackedRace.getBoatOfCompetitor(competitor));
Boat boat;
if (trackedRace != null) {
boat = trackedRace.getBoatOfCompetitor(competitor);
} else {
// check if it's a CompetitorWithBoat:
if (competitor.hasBoat()) {
boat = ((CompetitorWithBoat) competitor).getBoat();
} else {
final Fleet fleetOfCompetitor = raceColumn.getFleetOfCompetitor(competitor);
if (fleetOfCompetitor != null) {
final Map<Competitor, Boat> competitorsAndTheirBoats = raceColumn.getCompetitorsRegisteredInRacelog(fleetOfCompetitor);
boat = competitorsAndTheirBoats.get(competitor);
} else {
boat = null;
}
}
}
entryDTO.boat = boat == null ? null : baseDomainFactory.convertToBoatDTO(boat);
entryDTO.totalPoints = entry.getTotalPoints();
if (fillTotalPointsUncorrected) {
entryDTO.totalPointsUncorrected = entry.getTotalPointsUncorrected();