Fixed compile errors after lastest master merge (caused my Competitor/Boat separation related issues)

This commit is contained in:
Frank Mittag committed 2017-08-28 16:57:22 +02:00
1 parent 68ae4f561c
commit c5f08e3dfa
5 files changed
+32 -16

No files matched your search

@@ -1,5 +1,6 @@
package com.sap.sailing.polars.mining;
import com.sap.sailing.domain.base.Boat;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.common.tracking.GPSFixMoving;
import com.sap.sailing.domain.tracking.TrackedRace;
@@ -14,11 +15,13 @@ public class GPSFixMovingWithOriginInfo {
private final GPSFixMoving fix;
private final TrackedRace trackedRace;
private final Competitor competitor;
private final Boat boat;
public GPSFixMovingWithOriginInfo(GPSFixMoving fix, TrackedRace trackedRace, Competitor competitor) {
this.fix = fix;
this.trackedRace = trackedRace;
this.competitor = competitor;
this.boat = trackedRace.getBoatOfCompetitor(competitor);
}
public GPSFixMoving getFix() {
@@ -32,4 +35,8 @@ public class GPSFixMovingWithOriginInfo {
public Competitor getCompetitor() {
return competitor;
}
public Boat getBoat() {
return boat;
}
}
@@ -197,7 +197,7 @@ public class PolarDataMiner {
element.getCompetitor(),
backendPolarSheetGenerationSettings.getPctOfLeadingCompetitorsToInclude())) {
result = true;
final BoatClass boatClass = element.getCompetitor().getBoat().getBoatClass();
final BoatClass boatClass = element.getBoat().getBoatClass();
AtomicInteger count = stats.get(boatClass);
if (count == null) {
count = new AtomicInteger(1);
@@ -276,7 +276,8 @@ public class EventsResource extends AbstractSailingServerResource {
RegattaCreationParametersDTO regattaCreationParametersDTO = new RegattaCreationParametersDTO(
createDefaultSeriesCreationParameters(regattaName, numberOfRaces));
UUID regattaId = UUID.randomUUID();
addRegatta(regattaName, controlTrackingFromStartAndFinishTimes, useStartTimeInterference,
boolean canBoatsOfCompetitorsChangePerRace = false;
addRegatta(regattaName, canBoatsOfCompetitorsChangePerRace, controlTrackingFromStartAndFinishTimes, useStartTimeInterference,
buoyZoneRadiusInHullLengths, courseAreaId, boatClassName, /* startDate */ null, /* endDate */ null, scoringScheme,
rankingMetric, regattaId, regattaCreationParametersDTO, leaderboardDiscardThresholds, numberOfRaces);
final RegattaLeaderboard leaderboard = addLeaderboard(regattaName, leaderboardDiscardThresholds);
@@ -454,7 +455,7 @@ public class EventsResource extends AbstractSailingServerResource {
return getService().apply(new AddCourseAreas(eventId, courseAreaNames, courseAreaIds))[0];
}
private Regatta addRegatta(String regattaName, boolean controlTrackingFromStartAndFinishTimes, boolean useStartTimeInterference,
private Regatta addRegatta(String regattaName, boolean canBoatsOfCompetitorsChangePerRace, boolean controlTrackingFromStartAndFinishTimes, boolean useStartTimeInterference,
double buoyZoneRadiusInHullLengths, UUID courseAreaId, String boatClassName,
MillisecondsTimePoint startDate, MillisecondsTimePoint endDate, ScoringScheme scoringScheme,
RankingMetrics rankingMetric, UUID regattaId, RegattaCreationParametersDTO regattaCreationParametersDTO,
@@ -462,7 +463,7 @@ public class EventsResource extends AbstractSailingServerResource {
if (enforceSecurityChecks) {
SecurityUtils.getSubject().checkPermission(Permission.REGATTA.getStringPermissionForObjects(Mode.CREATE, regattaName));
}
Regatta regatta = getService().apply(new AddSpecificRegatta(regattaName, boatClassName, startDate, endDate, regattaId,
Regatta regatta = getService().apply(new AddSpecificRegatta(regattaName, boatClassName, canBoatsOfCompetitorsChangePerRace, startDate, endDate, regattaId,
regattaCreationParametersDTO, /* isPersistent */ true, scoringScheme, courseAreaId, buoyZoneRadiusInHullLengths,
useStartTimeInterference, controlTrackingFromStartAndFinishTimes, rankingMetric));
return regatta;
@@ -37,6 +37,7 @@ import org.json.simple.JSONObject;
import com.sap.sailing.datamining.SailingPredefinedQueries;
import com.sap.sailing.domain.base.Boat;
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.Mark;
import com.sap.sailing.domain.base.RaceColumnInSeries;
@@ -44,9 +45,9 @@ import com.sap.sailing.domain.base.RaceDefinition;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.base.Series;
import com.sap.sailing.domain.base.Waypoint;
import com.sap.sailing.domain.base.impl.BoatImpl;
import com.sap.sailing.domain.base.impl.CompetitorWithBoatImpl;
import com.sap.sailing.domain.base.impl.DynamicBoat;
import com.sap.sailing.domain.base.impl.BoatImpl;
import com.sap.sailing.domain.base.impl.PersonImpl;
import com.sap.sailing.domain.base.impl.TeamImpl;
import com.sap.sailing.domain.common.Distance;
@@ -325,19 +326,20 @@ public class RegattasResource extends AbstractSailingServerResource {
response = getBadBoatClassResponse(boatClassName);
} else {
final User user = getService(SecurityService.class).getCurrentUser();
final Competitor competitor = getService().getCompetitorStore().getOrCreateCompetitor(UUID.randomUUID(),
user.getFullName() == null ? user.getName() : user.getFullName(),
final Boat boat = new BoatImpl(UUID.randomUUID(), user.getName(),
getService().getBaseDomainFactory().getOrCreateBoatClass(boatClassName, /* typicallyStartsUpwind */ true),
sailId);
final CompetitorWithBoat competitor = getService().getCompetitorStore().getOrCreateCompetitorWithBoat(UUID.randomUUID(),
user.getFullName() == null ? user.getName() : user.getFullName(), /* shortName */ null,
/* displayColor */ null, user.getEmail(), /* flagImageURI */ null,
new TeamImpl(user.getName(), Collections.singleton(new PersonImpl(user.getFullName() == null ? user.getName() : user.getFullName(),
getService().getBaseDomainFactory().getOrCreateNationality(nationalityThreeLetterIOCCode),
/* dateOfBirth */ null, /* description */ null)),
/* coach */ null), new BoatImpl(user.getName(),
getService().getBaseDomainFactory().getOrCreateBoatClass(boatClassName, /* typicallyStartsUpwind */ true),
sailId), timeOnTimeFactor,
/* coach */ null), timeOnTimeFactor,
timeOnDistanceAllowancePerNauticalMileAsMillis == null ? null : new MillisecondsDurationImpl(timeOnDistanceAllowancePerNauticalMileAsMillis),
searchTag);
searchTag, (DynamicBoat) boat);
regatta.registerCompetitor(competitor);
response = Response.ok(CompetitorJsonSerializer.create().serialize(competitor).toJSONString()).
response = Response.ok(CompetitorWithBoatJsonSerializer.create().serialize(competitor).toJSONString()).
header("Content-Type", MediaType.APPLICATION_JSON + ";charset=UTF-8").build();
}
return response;
@@ -7,12 +7,15 @@ import static org.mockito.Mockito.mock;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.RaceLogResolver;
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.ControlPoint;
@@ -49,9 +52,10 @@ public class StatisticsTest {
private static final long START_OF_RACE = 200;
private static final long END_OF_TRACKING = 400;
private final BoatClass boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("49er");
private final Competitor comp = DomainFactory.INSTANCE.getOrCreateCompetitor("comp", "comp", null, null, null, null,
new BoatImpl("boat", boatClass, "DE 12345"), /* timeOnTimeFactor */ null,
private final Competitor comp = DomainFactory.INSTANCE.getOrCreateCompetitor("comp", "comp", "c", null, null, null, null,
/* timeOnTimeFactor */ null,
/* timeOnDistanceAllowanceInSecondsPerNauticalMile */ null, null);
private final Boat boat = new BoatImpl("boat", "b", boatClass, "DE 12345");
private final Mark mark1 = DomainFactory.INSTANCE.getOrCreateMark("mark1");
private final Mark mark2 = DomainFactory.INSTANCE.getOrCreateMark("mark2");
private final Mark mark3 = DomainFactory.INSTANCE.getOrCreateMark("mark3");
@@ -65,12 +69,14 @@ public class StatisticsTest {
@Before
public void setUp() {
regatta = new DynamicTrackedRegattaImpl(new RegattaImpl(EmptyRaceLogStore.INSTANCE,
EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass,
EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass, false,
/* startDate */ null, /* endDate */null, null, null, "a", null));
final Course course = new CourseImpl("course",
Arrays.asList(new Waypoint[] { waypoint1, waypoint2, waypoint3 }));
RaceDefinition race = new RaceDefinitionImpl("race", course, boatClass, Arrays.asList(comp));
Map<Competitor, Boat> competitors = new HashMap<>();
competitors.put(comp, boat);
RaceDefinition race = new RaceDefinitionImpl("race", course, boatClass, competitors);
trackedRace = new DynamicTrackedRaceImpl(regatta, race, Collections.<Sideline>emptyList(),
EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new,