mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-15 14:56:41 +00:00
Fixed compile errors after lastest master merge (caused my Competitor/Boat separation related issues)
This commit is contained in:
1 parent
68ae4f561c
commit
c5f08e3dfa
5 files changed
+32
-16
No files matched your search
+7
@@ -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);
|
||||
|
||||
+4
-3
@@ -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;
|
||||
|
||||
+10
-8
@@ -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;
|
||||
|
||||
+10
-4
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user