Implemented the competitor/Boat combination stored in TrackedRace domain object as temporary solution

The data is transfered to the UI as part of the RaceMapDataDTO and used in the new CompetitorColorProvider class.
This commit is contained in:
fmittag committed 2015-09-12 15:07:08 +02:00
1 parent e5d94608c0
commit 931e56385d
24 files changed
+231 -34

No files matched your search

@@ -257,7 +257,7 @@ public interface DomainFactory {
*/
RaceDefinition getAndWaitForRaceDefinition(UUID raceId, long timeoutInMilliseconds);
Iterable<Util.Pair<Competitor, Boat>> getBoatsInfoForCompetitors(IRace race, BoatClass defaultBoatClass);
List<Util.Pair<Competitor, Boat>> getBoatsInfoForCompetitors(IRace race, BoatClass defaultBoatClass);
Util.Pair<Iterable<com.sap.sailing.domain.base.Competitor>, BoatClass> getCompetitorsAndDominantBoatClass(IRace race);
@@ -585,7 +585,7 @@ public class DomainFactoryImpl implements DomainFactory {
}
@Override
public Iterable<Util.Pair<Competitor, Boat>> getBoatsInfoForCompetitors(IRace race, BoatClass defaultBoatClass) {
public List<Util.Pair<Competitor, Boat>> getBoatsInfoForCompetitors(IRace race, BoatClass defaultBoatClass) {
final List<Util.Pair<Competitor, Boat>> competitorBoatInfos = new ArrayList<>();
for (IRaceCompetitor rc : race.getRaceCompetitors()) {
Util.Triple<String, String, String> competitorBoatInfo = getMetadataParser().parseCompetitorBoat(rc);
@@ -157,12 +157,17 @@ public class RaceCourseReceiver extends AbstractReceiverWithQueue<IControlRoute,
logger.log(Level.INFO, "Received course for non-existing race "+tractracRace.getName()+". Creating RaceDefinition.");
// create race definition and add to event
com.sap.sse.common.Util.Pair<Iterable<Competitor>, BoatClass> competitorsAndDominantBoatClass = getDomainFactory().getCompetitorsAndDominantBoatClass(tractracRace);
Iterable<Pair<Competitor, Boat>> boatsInfoForCompetitors = getDomainFactory().getBoatsInfoForCompetitors(tractracRace, competitorsAndDominantBoatClass.getB());
trackedRace = getDomainFactory().getOrCreateRaceDefinitionAndTrackedRace(
getTrackedRegatta(), tractracRace.getId(), tractracRace.getName(), competitorsAndDominantBoatClass.getA(),
competitorsAndDominantBoatClass.getB(), course, sidelines, windStore, delayToLiveInMillis,
millisecondsOverWhichToAverageWind, raceDefinitionSetToUpdate, tracTracUpdateURI,
getTracTracEvent().getId(), tracTracUsername, tracTracPassword, useInternalMarkPassingAlgorithm, raceLogResolver);
List<Pair<Competitor, Boat>> boatsInfoForCompetitors = getDomainFactory().getBoatsInfoForCompetitors(tractracRace, competitorsAndDominantBoatClass.getB());
if(boatsInfoForCompetitors != null) {
for(Pair<Competitor, Boat> competitorAndBoat: boatsInfoForCompetitors) {
trackedRace.setBoatForCompetitor(competitorAndBoat.getA(), competitorAndBoat.getB());
}
}
needToUpdateRaceTimes = true;
if (getSimulator() != null) {
getSimulator().setTrackedRace(trackedRace);