mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-15 06:49:56 +00:00
rename regatta attribute canCompetitorRegisterToOpenRegatta to competitorRegistrationType and swicht over to enum datatype
This commit is contained in:
1 parent
d992a3e9a0
commit
22d06882c3
78 files changed
+351
-195
No files matched your search
+56
@@ -0,0 +1,56 @@
|
||||
package com.sap.sailing.domain.common;
|
||||
|
||||
/**
|
||||
* Types of registration of competitors to a regatta.
|
||||
* Regattas can be <b>closed</b>, so only invited competitors are allowed or <b>open</b>, which means competitors can register
|
||||
* @author Thomas
|
||||
*
|
||||
*/
|
||||
public enum CompetitorRegistrationType {
|
||||
|
||||
/** Competitors are registered and invited by regatta owner. */
|
||||
CLOSED(false, false, "Closed"),
|
||||
|
||||
/** Competitors are registering themselve, but the regatta owner has to confirm the registration. */
|
||||
OPEN_MODERATED(true, true, "OpenModerated"),
|
||||
|
||||
/** Competitors are registering themselves without the need of confirmation. */
|
||||
OPEN_UNMODERATED(true, false, "OpenUnmoderated");
|
||||
|
||||
private boolean open;
|
||||
private boolean moderated;
|
||||
private String labelPrefix;
|
||||
|
||||
private CompetitorRegistrationType(boolean open, boolean moderated, String labelPrefix) {
|
||||
this.open = open;
|
||||
this.moderated = moderated;
|
||||
this.labelPrefix = labelPrefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is registration open to self register of competitors?
|
||||
*
|
||||
* @return true for self registration
|
||||
*/
|
||||
public boolean isOpen() {
|
||||
return this.open;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is registration moderated?
|
||||
* @return true if moderated
|
||||
*/
|
||||
public boolean isModerated() {
|
||||
return this.moderated;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get i18n label.
|
||||
*
|
||||
* @return message string
|
||||
*/
|
||||
public String getLabel() {
|
||||
// return "competitorRegistrationType" + this.labelPrefix;
|
||||
return this.labelPrefix;
|
||||
}
|
||||
}
|
||||
+19
-6
@@ -169,6 +169,7 @@ import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.base.impl.VenueImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.BoatClassMasterdata;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.CourseDesignerMode;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.MarkType;
|
||||
@@ -1280,15 +1281,27 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
|
||||
canBoatsOfCompetitorsChangePerRace = false;
|
||||
createMigratableRegatta = true;
|
||||
}
|
||||
Boolean canCompetitorsRegisterToOpenRegatta = (Boolean) dbRegatta
|
||||
.get(FieldNames.REGATTA_CAN_COMPETITORS_REGISTER_TO_OPEN_REGATTA.name());
|
||||
if (canCompetitorsRegisterToOpenRegatta == null) {
|
||||
canCompetitorsRegisterToOpenRegatta = Boolean.FALSE;
|
||||
|
||||
CompetitorRegistrationType competitorRegistrationType;
|
||||
if (dbRegatta.containsField(FieldNames.REGATTA_COMPETITOR_REGISTRATION_TYPE.name())) {
|
||||
String competitorRegistrationTypeName = (String) dbRegatta
|
||||
.get(FieldNames.REGATTA_COMPETITOR_REGISTRATION_TYPE.name());
|
||||
try {
|
||||
competitorRegistrationType = competitorRegistrationTypeName == null
|
||||
? CompetitorRegistrationType.CLOSED
|
||||
: CompetitorRegistrationType.valueOf(competitorRegistrationTypeName);
|
||||
} catch (IllegalArgumentException iae) {
|
||||
logger.log(Level.WARNING, "Unknown CompetitorRegistrationType {0} for regatta.", competitorRegistrationTypeName);
|
||||
competitorRegistrationType = CompetitorRegistrationType.CLOSED;
|
||||
}
|
||||
} else {
|
||||
competitorRegistrationType = CompetitorRegistrationType.CLOSED;
|
||||
}
|
||||
|
||||
final RankingMetricConstructor rankingMetricConstructor = loadRankingMetricConstructor(dbRegatta);
|
||||
if (createMigratableRegatta) {
|
||||
result = new MigratableRegattaImpl(getRaceLogStore(), getRegattaLogStore(), name, boatClass,
|
||||
canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, startDate, endDate, series, /* persistent */true,
|
||||
canBoatsOfCompetitorsChangePerRace, competitorRegistrationType, startDate, endDate, series, /* persistent */true,
|
||||
loadScoringScheme(dbRegatta), id, courseArea,
|
||||
buoyZoneRadiusInHullLengths == null ? Regatta.DEFAULT_BUOY_ZONE_RADIUS_IN_HULL_LENGTHS
|
||||
: buoyZoneRadiusInHullLengths,
|
||||
@@ -1297,7 +1310,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
|
||||
rankingMetricConstructor, new MongoObjectFactoryImpl(database));
|
||||
} else {
|
||||
result = new RegattaImpl(getRaceLogStore(), getRegattaLogStore(), name, boatClass,
|
||||
canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, startDate, endDate, series, /* persistent */true,
|
||||
canBoatsOfCompetitorsChangePerRace, competitorRegistrationType, startDate, endDate, series, /* persistent */true,
|
||||
loadScoringScheme(dbRegatta), id, courseArea,
|
||||
buoyZoneRadiusInHullLengths == null ? Regatta.DEFAULT_BUOY_ZONE_RADIUS_IN_HULL_LENGTHS
|
||||
: buoyZoneRadiusInHullLengths,
|
||||
|
||||
+1
-1
@@ -39,7 +39,7 @@ public enum FieldNames {
|
||||
REGATTA_USE_START_TIME_INFERENCE,
|
||||
REGATTA_CONTROL_TRACKING_FROM_START_AND_FINISH_TIMES,
|
||||
REGATTA_CAN_BOATS_OF_COMPETITORS_CHANGE_PER_RACE,
|
||||
REGATTA_CAN_COMPETITORS_REGISTER_TO_OPEN_REGATTA,
|
||||
REGATTA_COMPETITOR_REGISTRATION_TYPE,
|
||||
SERIES_NAME,
|
||||
SERIES_IS_MEDAL,
|
||||
SERIES_IS_FLEETS_CAN_RUN_IN_PARALLEL,
|
||||
|
||||
+3
-3
@@ -9,6 +9,7 @@ import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.base.MigratableRegatta;
|
||||
import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.leaderboard.ScoringScheme;
|
||||
import com.sap.sailing.domain.persistence.MongoObjectFactory;
|
||||
import com.sap.sailing.domain.racelog.RaceLogStore;
|
||||
@@ -27,12 +28,12 @@ public class MigratableRegattaImpl extends RegattaImpl implements MigratableRega
|
||||
private transient final MongoObjectFactory mongoObjectFactory;
|
||||
|
||||
public <S extends Series> MigratableRegattaImpl(RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, String name,
|
||||
BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta,
|
||||
BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, CompetitorRegistrationType competitorRegistrationType,
|
||||
TimePoint startDate, TimePoint endDate,
|
||||
Iterable<S> series, boolean persistent, ScoringScheme scoringScheme, Serializable id, CourseArea courseArea,
|
||||
Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference,
|
||||
boolean controlTrackingFromStartAndFinishTimes, RankingMetricConstructor rankingMetricConstructor, MongoObjectFactory mongoObjectFactory) {
|
||||
super(raceLogStore, regattaLogStore, name, boatClass, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, startDate, endDate, series,
|
||||
super(raceLogStore, regattaLogStore, name, boatClass, canBoatsOfCompetitorsChangePerRace, competitorRegistrationType, startDate, endDate, series,
|
||||
persistent, scoringScheme, id, courseArea, buoyZoneRadiusInHullLengths, useStartTimeInference,
|
||||
controlTrackingFromStartAndFinishTimes, rankingMetricConstructor);
|
||||
this.mongoObjectFactory = mongoObjectFactory;
|
||||
@@ -43,7 +44,6 @@ public class MigratableRegattaImpl extends RegattaImpl implements MigratableRega
|
||||
// It should not be possible to call this after races have been already added to this regatta.
|
||||
assert !canBoatsOfCompetitorsChangePerRace() && Util.size(getAllRaces()) == 0;
|
||||
super.setCanBoatsOfCompetitorsChangePerRace(true);
|
||||
super.setCanCompetitorsRegisterToOpenRegatta(false);
|
||||
if (mongoObjectFactory != null) {
|
||||
logger.log(Level.INFO, "Bug2822 DB-Migration: Store migrated regatta '" + getName() + "' having now canBoatsOfCompetitorsChangePerRace=true.");
|
||||
mongoObjectFactory.storeRegatta(this);
|
||||
|
||||
+1
-1
@@ -716,7 +716,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory {
|
||||
dbRegatta.put(FieldNames.REGATTA_USE_START_TIME_INFERENCE.name(), regatta.useStartTimeInference());
|
||||
dbRegatta.put(FieldNames.REGATTA_CONTROL_TRACKING_FROM_START_AND_FINISH_TIMES.name(), regatta.isControlTrackingFromStartAndFinishTimes());
|
||||
dbRegatta.put(FieldNames.REGATTA_CAN_BOATS_OF_COMPETITORS_CHANGE_PER_RACE.name(), regatta.canBoatsOfCompetitorsChangePerRace());
|
||||
dbRegatta.put(FieldNames.REGATTA_CAN_COMPETITORS_REGISTER_TO_OPEN_REGATTA.name(), regatta.canCompetitorsRegisterToOpenRegatta());
|
||||
dbRegatta.put(FieldNames.REGATTA_COMPETITOR_REGISTRATION_TYPE.name(), regatta.getCompetitorRegistrationType().name());
|
||||
dbRegatta.put(FieldNames.REGATTA_RANKING_METRIC.name(), storeRankingMetric(regatta));
|
||||
boolean success = false;
|
||||
final int MAX_TRIES = 3;
|
||||
|
||||
+2
-1
@@ -25,6 +25,7 @@ import com.sap.sailing.domain.base.Mark;
|
||||
import com.sap.sailing.domain.base.RaceDefinition;
|
||||
import com.sap.sailing.domain.base.Sideline;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.impl.DegreePosition;
|
||||
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
|
||||
@@ -124,7 +125,7 @@ public class AbstractGPSFixStoreTest extends RaceLogTrackingTestHelper {
|
||||
protected DynamicTrackedRaceImpl createDynamicTrackedRace(BoatClass boatClass, RaceDefinition raceDefinition) {
|
||||
DynamicTrackedRegatta regatta = new DynamicTrackedRegattaImpl(new RegattaImpl(EmptyRaceLogStore.INSTANCE,
|
||||
EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, /* startDate */ null, /* endDate */null, null, null, "a", null));
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */ null, /* endDate */null, null, null, "a", null));
|
||||
return new DynamicTrackedRaceImpl(regatta, raceDefinition, Collections.<Sideline> emptyList(),
|
||||
EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new,
|
||||
mock(RaceLogResolver.class));
|
||||
|
||||
+2
-1
@@ -44,6 +44,7 @@ import com.sap.sailing.domain.base.impl.DynamicBoat;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.impl.DegreePosition;
|
||||
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
|
||||
@@ -97,7 +98,7 @@ public class CreateAndTrackWithRaceLogTest extends RaceLogTrackingTestHelper {
|
||||
Series series = new SeriesImpl("series", /* isMedal */ false, /* isFleetsCanRunInParallel */ true, Collections.singletonList(fleet), Collections.emptySet(),
|
||||
service);
|
||||
regatta = service.createRegatta(RegattaImpl.getDefaultName("regatta", "Laser"), "Laser",
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, /* startDate */null, /* endDate */null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null,
|
||||
UUID.randomUUID(), Collections.<Series> singletonList(series), /* persistent */ true,
|
||||
new HighPoint(), UUID.randomUUID(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
series.addRaceColumn(columnName, /* trackedRegattaRegistry */null);
|
||||
|
||||
+2
-1
@@ -34,6 +34,7 @@ import com.sap.sailing.domain.base.impl.CourseImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.impl.DegreePosition;
|
||||
import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl;
|
||||
@@ -101,7 +102,7 @@ public class RaceLogFixTrackerManagerTest {
|
||||
RaceDefinition race = new RaceDefinitionImpl("race", course, boatClass, competitorsAndBoats);
|
||||
DynamicTrackedRegatta regatta = new DynamicTrackedRegattaImpl(new RegattaImpl(EmptyRaceLogStore.INSTANCE,
|
||||
EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/* startDate */ null, /* endDate */null, null, null, "a", null));
|
||||
trackedRace = new DynamicTrackedRaceImpl(regatta, race, Collections.<Sideline> emptyList(),
|
||||
EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new,
|
||||
|
||||
+2
-1
@@ -57,6 +57,7 @@ import com.sap.sailing.domain.base.impl.CourseImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
import com.sap.sailing.domain.common.SpeedWithBearing;
|
||||
@@ -167,7 +168,7 @@ public class SensorFixStoreAndLoadTest {
|
||||
RaceDefinition race = new RaceDefinitionImpl("race", course, boatClass, competitorsAndBoats);
|
||||
DynamicTrackedRegatta regatta = new DynamicTrackedRegattaImpl(new RegattaImpl(EmptyRaceLogStore.INSTANCE,
|
||||
EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/* startDate */ null, /* endDate */null, null, null, "a", null));
|
||||
trackedRace = new DynamicTrackedRaceImpl(regatta, race, Collections.<Sideline> emptyList(),
|
||||
EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new,
|
||||
|
||||
+6
-5
@@ -33,6 +33,7 @@ import com.sap.sailing.domain.base.impl.CourseImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore;
|
||||
@@ -77,7 +78,7 @@ public class TrackedRaceStartTimeInferenceTest extends AbstractGPSFixStoreTest {
|
||||
|
||||
TrackedRegatta regatta = new DynamicTrackedRegattaImpl(new RegattaImpl(EmptyRaceLogStore.INSTANCE,
|
||||
EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/* startDate */ null, /* endDate */null, null, null, "a", null));
|
||||
final DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(regatta, race,
|
||||
Collections.<Sideline> emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0,
|
||||
@@ -154,7 +155,7 @@ public class TrackedRaceStartTimeInferenceTest extends AbstractGPSFixStoreTest {
|
||||
RaceDefinition race = new RaceDefinitionImpl("race", course, boatClass, competitorsAndBoats);
|
||||
TrackedRegatta regatta = new DynamicTrackedRegattaImpl(new RegattaImpl(EmptyRaceLogStore.INSTANCE,
|
||||
EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/* startDate */ null, /* endDate */null, null, null, "a", null));
|
||||
final DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(regatta, race,
|
||||
Collections.<Sideline> emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0,
|
||||
@@ -197,7 +198,7 @@ public class TrackedRaceStartTimeInferenceTest extends AbstractGPSFixStoreTest {
|
||||
RaceDefinition race = new RaceDefinitionImpl("race", course, boatClass, competitorsAndBoats);
|
||||
TrackedRegatta regatta = new DynamicTrackedRegattaImpl(new RegattaImpl(EmptyRaceLogStore.INSTANCE,
|
||||
EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/* startDate */ null, /* endDate */null, null, null, "a", null));
|
||||
final DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(regatta, race,
|
||||
Collections.<Sideline> emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0,
|
||||
@@ -243,7 +244,7 @@ public class TrackedRaceStartTimeInferenceTest extends AbstractGPSFixStoreTest {
|
||||
RaceDefinition race = new RaceDefinitionImpl("race", course, boatClass, competitorsAndBoats);
|
||||
TrackedRegatta regatta = new DynamicTrackedRegattaImpl(new RegattaImpl(EmptyRaceLogStore.INSTANCE,
|
||||
EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/* startDate */ null, /* endDate */null, null, null, "a", null));
|
||||
assertTrue(regatta.getRegatta().useStartTimeInference());
|
||||
final DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(regatta, race,
|
||||
@@ -358,7 +359,7 @@ public class TrackedRaceStartTimeInferenceTest extends AbstractGPSFixStoreTest {
|
||||
RaceDefinition race = new RaceDefinitionImpl("race", course, boatClass, competitorsAndBoats);
|
||||
TrackedRegatta regatta = new DynamicTrackedRegattaImpl(new RegattaImpl(EmptyRaceLogStore.INSTANCE,
|
||||
EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/* startDate */null, /* endDate */null, null, null, "a", null));
|
||||
final DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(regatta, race,
|
||||
Collections.<Sideline> emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0,
|
||||
|
||||
+3
-2
@@ -15,6 +15,7 @@ import com.sap.sailing.domain.base.RaceDefinition;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.Waypoint;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore;
|
||||
import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore;
|
||||
@@ -109,7 +110,7 @@ public class SimpleDomainFactoryTest {
|
||||
public void testCourseConfigForMark() throws PatchFailedException {
|
||||
DomainFactory domainFactory = DomainFactory.INSTANCE;
|
||||
Regatta regatta = new RegattaImpl(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE, "TestEvent",
|
||||
/* boatClass */ null, /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* boatClass */ null, /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/*startDate*/ null, /*endDate*/ null, new RacingEventServiceImpl(),
|
||||
com.sap.sailing.domain.base.DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), "123", null);
|
||||
Race race = new RaceImpl("1234", "R1", "Race 1234");
|
||||
@@ -136,7 +137,7 @@ public class SimpleDomainFactoryTest {
|
||||
public void testCourseConfigForGate() throws PatchFailedException {
|
||||
DomainFactory domainFactory = DomainFactory.INSTANCE;
|
||||
Regatta regatta = new RegattaImpl(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE,
|
||||
"TestEvent", /* boatClass */ null, /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
"TestEvent", /* boatClass */ null, /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/*startDate*/ null, /*endDate*/ null, new RacingEventServiceImpl(),
|
||||
com.sap.sailing.domain.base.DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), "123", null);
|
||||
Race race = new RaceImpl("1234", "R1", "Race 1234");
|
||||
|
||||
+2
-1
@@ -34,6 +34,7 @@ import com.sap.sailing.domain.base.impl.PersonImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.TeamImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.MarkType;
|
||||
import com.sap.sailing.domain.common.PassingInstruction;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
@@ -118,7 +119,7 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
Calendar calendar = Calendar.getInstance();
|
||||
result = new RegattaImpl(raceLogStore, regattaLogStore, RegattaImpl.getDefaultName(
|
||||
"ST Regatta " + calendar.get(Calendar.YEAR) + " for race " + raceID, regattaBoatClass.getName()),
|
||||
regattaBoatClass, /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
regattaBoatClass, /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/*startDate*/ null, /*endDate*/ null,
|
||||
trackedRegattaRegistry, getBaseDomainFactory().createScoringScheme(
|
||||
ScoringSchemeType.LOW_POINT), raceID, null);
|
||||
|
||||
+2
-1
@@ -33,6 +33,7 @@ import com.sap.sailing.domain.base.impl.MarkImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.RankingMetrics;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
import com.sap.sailing.domain.common.WindSourceType;
|
||||
@@ -97,7 +98,7 @@ public class TestFarthestAheadWithSkippedMarkPassing {
|
||||
BoatClassImpl boatClass = new BoatClassImpl("Some Handicap Boat Class", /* typicallyStartsUpwind */ true);
|
||||
Regatta regatta = new RegattaImpl(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE,
|
||||
RegattaImpl.getDefaultName("Test Regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null,
|
||||
DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), "123", /* courseArea */ null, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
TrackedRegatta trackedRegatta = new DynamicTrackedRegattaImpl(regatta);
|
||||
|
||||
+2
-1
@@ -33,6 +33,7 @@ import com.sap.sailing.domain.base.impl.MarkImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.RankingMetrics;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
import com.sap.sailing.domain.common.WindSourceType;
|
||||
@@ -79,7 +80,7 @@ public class TestSimpleTimeOnTimeRankingWithOneUpwindLeg {
|
||||
BoatClassImpl boatClass = new BoatClassImpl("Some Handicap Boat Class", /* typicallyStartsUpwind */ true);
|
||||
Regatta regatta = new RegattaImpl(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE,
|
||||
RegattaImpl.getDefaultName("Test Regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, /*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null,
|
||||
DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), "123", /* courseArea */ null, /* controlTrackingFromStartAndFinishTimes */ false, TimeOnTimeAndDistanceRankingMetric::new);
|
||||
TrackedRegatta trackedRegatta = new DynamicTrackedRegattaImpl(regatta);
|
||||
List<Waypoint> waypoints = new ArrayList<Waypoint>();
|
||||
|
||||
+2
-1
@@ -35,6 +35,7 @@ import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.common.BoatClassMasterdata;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
||||
import com.sap.sailing.domain.common.abstractlog.NotRevokableException;
|
||||
import com.sap.sailing.domain.leaderboard.impl.CompetitorProviderFromRaceColumnsAndRegattaLike;
|
||||
@@ -78,7 +79,7 @@ public class CompetitorProviderCacheInvalidationTest extends AbstractLeaderboard
|
||||
competitorProviderFlexibleLeaderboard = new CompetitorProviderFromRaceColumnsAndRegattaLike(flexibleLeaderboard);
|
||||
regatta = new RegattaImpl(EmptyRaceLogStore.INSTANCE,
|
||||
EmptyRegattaLogStore.INSTANCE, "Test Regatta", new BoatClassImpl("49er", BoatClassMasterdata._49ER),
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, /* startDate */ null, /* endDate */null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */ null, /* endDate */null,
|
||||
/* trackedRegattaRegistry */null, new LowPoint(), UUID.randomUUID(),
|
||||
courseArea);
|
||||
regattaLeaderboard = new RegattaLeaderboardImpl(regatta, new ThresholdBasedResultDiscardingRuleImpl(new int[0]));
|
||||
|
||||
@@ -36,6 +36,7 @@ import com.sap.sailing.domain.base.impl.MarkImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.PassingInstruction;
|
||||
import com.sap.sailing.domain.ranking.OneDesignRankingMetric;
|
||||
import com.sap.sailing.domain.tracking.DynamicTrackedRace;
|
||||
@@ -308,7 +309,7 @@ public class CourseTest {
|
||||
final Map<Competitor,Boat> competitorsAndBoats = new HashMap<>();
|
||||
competitorsAndBoats.put(hasso, hasso.getBoat());
|
||||
DynamicTrackedRace trackedRace = new DynamicTrackedRaceImpl(/* trackedRegatta */new DynamicTrackedRegattaImpl(
|
||||
new RegattaImpl("test", null, true, false, null, null, new HashSet<Series>(), false, null, "test", null, OneDesignRankingMetric::new)),
|
||||
new RegattaImpl("test", null, true, CompetitorRegistrationType.CLOSED, null, null, new HashSet<Series>(), false, null, "test", null, OneDesignRankingMetric::new)),
|
||||
new RaceDefinitionImpl("Test Race", course, boatClass, competitorsAndBoats),
|
||||
Collections.<Sideline> emptyList(), EmptyWindStore.INSTANCE, /* delayToLiveInMillis */3000,
|
||||
/* millisecondsOverWhichToAverageWind */30000,
|
||||
@@ -342,7 +343,7 @@ public class CourseTest {
|
||||
final Map<Competitor,Boat> competitorsAndBoats = new HashMap<>();
|
||||
competitorsAndBoats.put(hasso, hasso.getBoat());
|
||||
DynamicTrackedRace trackedRace = new DynamicTrackedRaceImpl(/* trackedRegatta */ new DynamicTrackedRegattaImpl(
|
||||
new RegattaImpl("test", null, true, false, null, null, new HashSet<Series>(), false, null, "test", null, OneDesignRankingMetric::new)),
|
||||
new RegattaImpl("test", null, true, CompetitorRegistrationType.CLOSED, null, null, new HashSet<Series>(), false, null, "test", null, OneDesignRankingMetric::new)),
|
||||
new RaceDefinitionImpl("Test Race", course, boatClass, competitorsAndBoats), Collections.<Sideline> emptyList(),
|
||||
EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 3000,
|
||||
/* millisecondsOverWhichToAverageWind */ 30000,
|
||||
|
||||
+2
-1
@@ -36,6 +36,7 @@ import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.BoatClassMasterdata;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
|
||||
import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore;
|
||||
import com.sap.sailing.domain.ranking.OneDesignRankingMetric;
|
||||
@@ -77,7 +78,7 @@ public class CourseUpdateDuringNonAtomicSerializationTest implements Serializabl
|
||||
course = new CourseImpl("Test Course", waypoints);
|
||||
Regatta regatta = new RegattaImpl(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE, "Test Regatta",
|
||||
new BoatClassImpl("505", BoatClassMasterdata._5O5),
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null,
|
||||
new LowPoint(), UUID.randomUUID(), new CourseAreaImpl("Alpha", UUID.randomUUID()));
|
||||
TrackedRegatta trackedRegatta = new TrackedRegattaImpl(regatta);
|
||||
|
||||
+2
-1
@@ -43,6 +43,7 @@ import com.sap.sailing.domain.base.impl.MarkImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.NoWindException;
|
||||
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
@@ -91,7 +92,7 @@ public class LeaderboardCourseChangeTest {
|
||||
RaceColumn raceColumn = series.addRaceColumn(raceColumnName, trackedRegattaRegistry);
|
||||
ScoringScheme scoringScheme = new LowPoint();
|
||||
Regatta mockedRegatta = new RegattaImpl(RegattaImpl.getDefaultName("TestRegatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, seriesSet, false, scoringScheme,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, seriesSet, false, scoringScheme,
|
||||
UUID.randomUUID(), mock(CourseArea.class), OneDesignRankingMetric::new);
|
||||
ControlPoint start = new MarkImpl("Start");
|
||||
ControlPoint m1 = new MarkImpl("M1");
|
||||
|
||||
+6
-5
@@ -48,6 +48,7 @@ import com.sap.sailing.domain.base.impl.MarkImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
import com.sap.sailing.domain.common.NoWindException;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
@@ -1714,7 +1715,7 @@ public class LeaderboardScoringAndRankingTest extends LeaderboardScoringAndRanki
|
||||
TrackedRegattaRegistry trackedRegattaRegistry = mock(TrackedRegattaRegistry.class);
|
||||
Regatta dummyRegatta = new RegattaImpl(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE, "Dummy",
|
||||
new BoatClassImpl("Extreme40", false),
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/*startDate*/ null, /*endDate*/ null, trackedRegattaRegistry,
|
||||
new HighPointFirstGets10Or8AndLastBreaksTie(), "578876345345",
|
||||
new CourseAreaImpl("Humba", UUID.randomUUID()));
|
||||
@@ -2327,7 +2328,7 @@ public class LeaderboardScoringAndRankingTest extends LeaderboardScoringAndRanki
|
||||
}
|
||||
final BoatClass boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("Extreme40", /* typicallyStartsUpwind */ false);
|
||||
Regatta regatta = new RegattaImpl(RegattaImpl.getDefaultName("Test Regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null,
|
||||
series, /* persistent */false, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.HIGH_POINT_FIRST_GETS_TEN), "123", /* course area */null, OneDesignRankingMetric::new);
|
||||
List<Competitor> competitors = createCompetitors(12);
|
||||
final int firstYellowCompetitorIndex = 3;
|
||||
@@ -2446,7 +2447,7 @@ public class LeaderboardScoringAndRankingTest extends LeaderboardScoringAndRanki
|
||||
}
|
||||
final BoatClass boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("470", /* typicallyStartsUpwind */ true);
|
||||
Regatta regatta = new RegattaImpl(RegattaImpl.getDefaultName("Test Regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null,
|
||||
series, /* persistent */false, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), "123", /* course area */null, OneDesignRankingMetric::new);
|
||||
List<Competitor> competitors = createCompetitors(12);
|
||||
final int firstYellowCompetitorIndex = 3;
|
||||
@@ -2559,7 +2560,7 @@ public class LeaderboardScoringAndRankingTest extends LeaderboardScoringAndRanki
|
||||
}
|
||||
final BoatClass boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("470", /* typicallyStartsUpwind */ true);
|
||||
Regatta regatta = new RegattaImpl(RegattaImpl.getDefaultName("Test Regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null,
|
||||
series, /* persistent */false, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), "123", /* course area */null, OneDesignRankingMetric::new);
|
||||
List<Competitor> competitors = createCompetitors(12);
|
||||
final int firstYellowCompetitorIndex = 3;
|
||||
@@ -2648,7 +2649,7 @@ public class LeaderboardScoringAndRankingTest extends LeaderboardScoringAndRanki
|
||||
}
|
||||
final BoatClass boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("470", /* typicallyStartsUpwind */ true);
|
||||
Regatta regatta = new RegattaImpl(RegattaImpl.getDefaultName("Test Regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null,
|
||||
series, /* persistent */false, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), "123", /* course area */null, OneDesignRankingMetric::new);
|
||||
final int TOTAL_NUMBER_OF_COMPETITORS = 100;
|
||||
List<Competitor> competitors = createCompetitors(TOTAL_NUMBER_OF_COMPETITORS);
|
||||
|
||||
+4
-3
@@ -23,6 +23,7 @@ import com.sap.sailing.domain.base.impl.MarkImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.NoWindException;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
|
||||
@@ -126,7 +127,7 @@ public class LeaderboardScoringAndRankingTestBase extends AbstractLeaderboardTes
|
||||
series.add(defaultSeries);
|
||||
|
||||
Regatta regatta = new RegattaImpl(RegattaImpl.getDefaultName(regattaName, boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null, series,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null, series,
|
||||
/* persistent */false, scoringScheme, "123", null, OneDesignRankingMetric::new);
|
||||
return regatta;
|
||||
}
|
||||
@@ -182,7 +183,7 @@ public class LeaderboardScoringAndRankingTestBase extends AbstractLeaderboardTes
|
||||
}
|
||||
|
||||
Regatta regatta = new RegattaImpl(RegattaImpl.getDefaultName(regattaBaseName, boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, series,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, series,
|
||||
/* persistent */ false, scoringScheme, "123", null, OneDesignRankingMetric::new);
|
||||
return regatta;
|
||||
}
|
||||
@@ -228,7 +229,7 @@ public class LeaderboardScoringAndRankingTestBase extends AbstractLeaderboardTes
|
||||
}
|
||||
}
|
||||
Regatta regatta = new RegattaImpl(RegattaImpl.getDefaultName(regattaBaseName, boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, series,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, series,
|
||||
/* persistent */ false, scoringScheme, /* ID */ "123", /* course area */ null, OneDesignRankingMetric::new);
|
||||
return regatta;
|
||||
}
|
||||
|
||||
+2
-1
@@ -17,6 +17,7 @@ import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.NoWindException;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
@@ -65,7 +66,7 @@ public class LeaderboardScoringAndRankingTestForLowPoints extends LeaderboardSco
|
||||
private Regatta setupRegatta(boolean useFirstTwoWins) {
|
||||
final BoatClass boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("470", /* typicallyStartsUpwind */ true);
|
||||
Regatta regatta = new RegattaImpl(RegattaImpl.getDefaultName("Test Regatta", boatClass.getName()), boatClass,
|
||||
false, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */ null, /* endDate */ null, series, /* persistent */false,
|
||||
false, CompetitorRegistrationType.CLOSED, /* startDate */ null, /* endDate */ null, series, /* persistent */false,
|
||||
DomainFactory.INSTANCE
|
||||
.createScoringScheme(useFirstTwoWins ? ScoringSchemeType.LOW_POINT_FIRST_TO_WIN_TWO_RACES
|
||||
: ScoringSchemeType.LOW_POINT),
|
||||
|
||||
+2
-1
@@ -26,6 +26,7 @@ import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.base.impl.TrackedRaces;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.TimingConstants;
|
||||
import com.sap.sailing.domain.common.Wind;
|
||||
import com.sap.sailing.domain.common.impl.DegreePosition;
|
||||
@@ -229,7 +230,7 @@ public class RaceExecutionOrderProvdiderAttachDetachTest extends TrackBasedTest
|
||||
raceColumnInSeries = series.addRaceColumn(RACECOLUMN_SERIES, null);
|
||||
ScoringScheme scoringScheme = new LowPoint();
|
||||
regatta = new RegattaImpl(RegattaImpl.getDefaultName(REGATTA, boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null,
|
||||
seriesSet, false, scoringScheme, UUID.randomUUID(), null, OneDesignRankingMetric::new);
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -34,6 +34,7 @@ import com.sap.sailing.domain.base.impl.MarkImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.LegType;
|
||||
import com.sap.sailing.domain.common.NoWindException;
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
@@ -94,7 +95,7 @@ public class ReachingLegTest extends TrackBasedTest {
|
||||
BoatClassImpl boatClass = new BoatClassImpl(boatClassName, /* typicallyStartsUpwind */ true);
|
||||
Regatta regatta = new RegattaImpl(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE,
|
||||
RegattaImpl.getDefaultName(regattaName, boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null,
|
||||
DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), "123", null);
|
||||
TrackedRegatta trackedRegatta = new DynamicTrackedRegattaImpl(regatta);
|
||||
|
||||
+4
-3
@@ -26,6 +26,7 @@ import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceColumnListenerWithDefaultAction;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.NoWindException;
|
||||
import com.sap.sailing.domain.common.dto.LeaderboardDTO;
|
||||
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
|
||||
@@ -115,7 +116,7 @@ public class RegattaLogEventNotificationForwardingTest extends AbstractSerializa
|
||||
|
||||
@Test
|
||||
public void testRegattaLeaderboardRegattaLogEventForwarding() {
|
||||
Regatta regatta = new RegattaImpl("test", null, true, false, null, null, new HashSet<Series>(), false, null, "test", null, OneDesignRankingMetric::new);
|
||||
Regatta regatta = new RegattaImpl("test", null, true, CompetitorRegistrationType.CLOSED, null, null, new HashSet<Series>(), false, null, "test", null, OneDesignRankingMetric::new);
|
||||
final RegattaLogEvent[] receivedRegattaLogEvent = new RegattaLogEvent[1];
|
||||
regatta.addRaceColumnListener(new RaceColumnListenerWithDefaultAction() {
|
||||
private static final long serialVersionUID = -3835439531940986851L;
|
||||
@@ -136,7 +137,7 @@ public class RegattaLogEventNotificationForwardingTest extends AbstractSerializa
|
||||
|
||||
@Test
|
||||
public void testRegattaLeaderboardRegattaLogEventForwardingAfterRegattaDeserialization() throws ClassNotFoundException, IOException {
|
||||
Regatta regatta = new RegattaImpl("test", null, true, false, null, null, new HashSet<Series>(), false, null, "test", null, OneDesignRankingMetric::new);
|
||||
Regatta regatta = new RegattaImpl("test", null, true, CompetitorRegistrationType.CLOSED, null, null, new HashSet<Series>(), false, null, "test", null, OneDesignRankingMetric::new);
|
||||
Regatta deserializedRegatta = cloneBySerialization(regatta, DomainFactory.INSTANCE);
|
||||
final RegattaLogEvent[] receivedRegattaLogEvent = new RegattaLogEvent[1];
|
||||
deserializedRegatta.addRaceColumnListener(new RaceColumnListenerWithDefaultAction() {
|
||||
@@ -181,7 +182,7 @@ public class RegattaLogEventNotificationForwardingTest extends AbstractSerializa
|
||||
Series series = new SeriesImpl("Test Series", /* isMedal */ false, /* isFleetsCanRunInParallel */ true,
|
||||
/* fleets */ Collections.singleton(new FleetImpl("Default")),
|
||||
Collections.singleton("R1"), /* trackedRegattaRegistry */ null);
|
||||
Regatta regatta = new RegattaImpl("test", null, true, false, null, null, Collections.singleton(series), false,
|
||||
Regatta regatta = new RegattaImpl("test", null, true, CompetitorRegistrationType.CLOSED, null, null, Collections.singleton(series), false,
|
||||
new LowPoint(), "test", null, OneDesignRankingMetric::new);
|
||||
return regatta;
|
||||
}
|
||||
|
||||
+2
-1
@@ -18,6 +18,7 @@ import com.sap.sailing.domain.base.Waypoint;
|
||||
import com.sap.sailing.domain.base.impl.CourseImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
|
||||
import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore;
|
||||
import com.sap.sailing.domain.ranking.RankingMetric;
|
||||
@@ -34,7 +35,7 @@ public class SerializeRankingMetricTest extends AbstractSerializationTest {
|
||||
final BoatClass _49er = DomainFactory.INSTANCE.getOrCreateBoatClass("49er");
|
||||
final TrackedRace trackedRace = new DynamicTrackedRaceImpl(new DynamicTrackedRegattaImpl(
|
||||
new RegattaImpl(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE, "Regatta", /* boatClass */ _49er,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/* startDate */ null, /* endDate */ null,
|
||||
/* trackedRegattaRegistry */ null, new LowPoint(), UUID.randomUUID(), /* courseArea */ null)),
|
||||
new RaceDefinitionImpl("Race", new CourseImpl("Course", Collections.<Waypoint>emptyList()) ,
|
||||
|
||||
+2
-1
@@ -21,6 +21,7 @@ import com.sap.sailing.domain.base.RaceDefinition;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.impl.BoatClassImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
|
||||
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
|
||||
@@ -50,7 +51,7 @@ public class TestDeadlockInRegattaListener {
|
||||
final String regattaName = "Test Regatta";
|
||||
final RegattaImpl regatta = new RegattaImpl(
|
||||
/* raceLogStore */ null, EmptyRegattaLogStore.INSTANCE, regattaName,
|
||||
new BoatClassImpl("49er", true), /* can boats change */ false, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
new BoatClassImpl("49er", true), /* can boats change */ false, CompetitorRegistrationType.CLOSED,
|
||||
/* startDate */ null, /* endDate */ null,
|
||||
/* trackedRegattaRegistry */ null, new LowPoint(), UUID.randomUUID(),
|
||||
/* courseArea */ null, /* controlTrackingFromStartAndFinishTimes */ true,
|
||||
|
||||
+3
-2
@@ -47,6 +47,7 @@ import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.base.impl.TeamImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.BoatClassMasterdata;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
import com.sap.sailing.domain.common.WindSourceType;
|
||||
@@ -161,7 +162,7 @@ public abstract class TrackBasedTest {
|
||||
BoatClassImpl boatClass = new BoatClassImpl(boatClassName, /* typicallyStartsUpwind */ true);
|
||||
Regatta regatta = new RegattaImpl(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE,
|
||||
RegattaImpl.getDefaultName(regattaName, boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null,
|
||||
DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), "123", null);
|
||||
TrackedRegatta trackedRegatta = new DynamicTrackedRegattaImpl(regatta);
|
||||
@@ -212,7 +213,7 @@ public abstract class TrackBasedTest {
|
||||
TrackedRegattaRegistry trackedRegattaRegistry = mock(TrackedRegattaRegistry.class);
|
||||
Series series = new SeriesImpl("series name", isMedal, /* isFleetsCanRunInParallel */ true, regattaFleets, raceColumnNames, trackedRegattaRegistry);
|
||||
Iterable<? extends Series> regattaSeries = Collections.singleton(series);
|
||||
return new RegattaImpl(regattaName, boatClass, /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false,
|
||||
return new RegattaImpl(regattaName, boatClass, /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
startDate, endDate, regattaSeries, persistent, scoringScheme, regatteId , courseArea, OneDesignRankingMetric::new);
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -22,6 +22,7 @@ import com.sap.sailing.domain.base.impl.CourseImpl;
|
||||
import com.sap.sailing.domain.base.impl.MarkImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.ranking.OneDesignRankingMetric;
|
||||
import com.sap.sailing.domain.tracking.MarkPassing;
|
||||
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
|
||||
@@ -44,7 +45,7 @@ public class UpdateMarkPassingTest {
|
||||
when(race.getBoatClass()).thenReturn(new BoatClassImpl("49er", /* typicallyStartsUpwind */ true));
|
||||
when(race.getCompetitors()).thenReturn(Collections.singleton(competitor));
|
||||
DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(
|
||||
/* trackedRegatta */new DynamicTrackedRegattaImpl(new RegattaImpl("test", null, true, false, null, null, new HashSet<Series>(), false, null,
|
||||
/* trackedRegatta */new DynamicTrackedRegattaImpl(new RegattaImpl("test", null, true, CompetitorRegistrationType.CLOSED, null, null, new HashSet<Series>(), false, null,
|
||||
"test", null, OneDesignRankingMetric::new)),
|
||||
race, Collections.<Sideline> emptyList(), EmptyWindStore.INSTANCE,
|
||||
/* delayToLiveInMillis */1000, /* millisecondsOverWhichToAverageWind */30000,
|
||||
|
||||
@@ -36,6 +36,7 @@ import com.sap.sailing.domain.base.impl.PersonImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.TeamImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
import com.sap.sailing.domain.common.SpeedWithBearing;
|
||||
@@ -304,7 +305,7 @@ public class WindTest {
|
||||
DynamicTrackedRace trackedRace = new DynamicTrackedRaceImpl(new DynamicTrackedRegattaImpl(
|
||||
new RegattaImpl(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE,
|
||||
RegattaImpl.getDefaultName("Test Regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/*startDate*/ null, /*endDate*/ null,
|
||||
/* trackedRegattaRegistry */ null, domainFactory.createScoringScheme(ScoringSchemeType.LOW_POINT), "123", null)),
|
||||
new RaceDefinitionImpl("Test Race",
|
||||
|
||||
+2
-1
@@ -31,6 +31,7 @@ import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.PassingInstruction;
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
import com.sap.sailing.domain.common.impl.DegreePosition;
|
||||
@@ -73,7 +74,7 @@ public class AbstractMockedRaceMarkPassingTest {
|
||||
Waypoint w5 = new WaypointImpl(cp, PassingInstruction.Line);
|
||||
waypoints = Arrays.asList(w1, w2, w3, w4, w5);
|
||||
Regatta r = new RegattaImpl(RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/*startDate*/ null, /*endDate*/ null, Arrays.asList(new SeriesImpl("Series", true, /* isFleetsCanRunInParallel */ true, Arrays.asList(new FleetImpl("fleet")),
|
||||
new ArrayList<String>(), null)), true, new HighPoint(), "ID", new CourseAreaImpl("area", new UUID(5, 5)), OneDesignRankingMetric::new);
|
||||
Course course = new CourseImpl("course", waypoints);
|
||||
|
||||
+3
-2
@@ -30,6 +30,7 @@ import com.sap.sailing.domain.base.Sideline;
|
||||
import com.sap.sailing.domain.base.SpeedWithConfidence;
|
||||
import com.sap.sailing.domain.base.Waypoint;
|
||||
import com.sap.sailing.domain.base.configuration.RegattaConfiguration;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.NoWindException;
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
@@ -345,8 +346,8 @@ public class MockedTrackedRace implements DynamicTrackedRace {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canCompetitorsRegisterToOpenRegatta() {
|
||||
return false;
|
||||
public CompetitorRegistrationType getCompetitorRegistrationType() {
|
||||
return CompetitorRegistrationType.CLOSED;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-1
@@ -26,6 +26,7 @@ import com.sap.sailing.domain.base.impl.CourseImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore;
|
||||
import com.sap.sailing.domain.ranking.OneDesignRankingMetric;
|
||||
import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore;
|
||||
@@ -48,7 +49,7 @@ public class TrackedRegattaTest {
|
||||
public void setUp() {
|
||||
regatta = new DynamicTrackedRegattaImpl(new RegattaImpl(EmptyRaceLogStore.INSTANCE,
|
||||
EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ false, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ false, CompetitorRegistrationType.CLOSED,
|
||||
/* startDate */ null, /* endDate */null, null, null, "a", null));
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -51,6 +51,7 @@ import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SidelineImpl;
|
||||
import com.sap.sailing.domain.base.impl.TeamImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.PassingInstruction;
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
@@ -456,7 +457,7 @@ public class DomainFactoryImpl implements DomainFactory {
|
||||
if (result == null) {
|
||||
result = new RegattaImpl(raceLogStore, regattaLogStore, RegattaImpl.getDefaultName(
|
||||
defaultRegattaNameAndBoatClass.getA(), boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ false, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ false, CompetitorRegistrationType.CLOSED,
|
||||
/*startDate*/ null, /*endDate*/ null,
|
||||
trackedRegattaRegistry,
|
||||
// use the low-point system as the default scoring scheme
|
||||
|
||||
@@ -45,6 +45,7 @@ import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.RegattaListener;
|
||||
import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.configuration.RegattaConfiguration;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaIdentifier;
|
||||
@@ -152,7 +153,7 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene
|
||||
|
||||
private boolean canBoatsOfCompetitorsChangePerRace;
|
||||
|
||||
private boolean canCompetitorsRegisterToOpenRegatta;
|
||||
private CompetitorRegistrationType competitorRegistrationType;
|
||||
|
||||
/**
|
||||
* Defaults to <code>true</code>. See {@link Regatta#useStartTimeInference()}.
|
||||
@@ -168,11 +169,11 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene
|
||||
* Constructs a regatta with an empty {@link RaceLogStore} and with
|
||||
* {@link Regatta#isControlTrackingFromStartAndFinishTimes()} set to {@code false}.
|
||||
*/
|
||||
public RegattaImpl(String name, BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta,
|
||||
public RegattaImpl(String name, BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, CompetitorRegistrationType competitorRegistrationType,
|
||||
TimePoint startDate, TimePoint endDate,
|
||||
Iterable<? extends Series> series, boolean persistent, ScoringScheme scoringScheme, Serializable id,
|
||||
CourseArea courseArea, RankingMetricConstructor rankingMetricConstructor) {
|
||||
this(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE, name, boatClass, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta,
|
||||
this(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE, name, boatClass, canBoatsOfCompetitorsChangePerRace, competitorRegistrationType,
|
||||
startDate, endDate, series,
|
||||
persistent, scoringScheme, id, courseArea, 0.0, /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false,
|
||||
rankingMetricConstructor);
|
||||
@@ -191,10 +192,10 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene
|
||||
* carried out.
|
||||
*/
|
||||
public RegattaImpl(RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, String name, BoatClass boatClass,
|
||||
boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta,
|
||||
boolean canBoatsOfCompetitorsChangePerRace, CompetitorRegistrationType competitorRegistrationType,
|
||||
TimePoint startDate, TimePoint endDate, TrackedRegattaRegistry trackedRegattaRegistry,
|
||||
ScoringScheme scoringScheme, Serializable id, CourseArea courseArea) {
|
||||
this(raceLogStore, regattaLogStore, name, boatClass, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta,
|
||||
this(raceLogStore, regattaLogStore, name, boatClass, canBoatsOfCompetitorsChangePerRace, competitorRegistrationType,
|
||||
startDate, endDate, trackedRegattaRegistry, scoringScheme,
|
||||
id, courseArea, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
}
|
||||
@@ -210,11 +211,11 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene
|
||||
* carried out.
|
||||
*/
|
||||
public RegattaImpl(RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, String name, BoatClass boatClass,
|
||||
boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta,
|
||||
boolean canBoatsOfCompetitorsChangePerRace, CompetitorRegistrationType competitorRegistrationType,
|
||||
TimePoint startDate, TimePoint endDate, TrackedRegattaRegistry trackedRegattaRegistry,
|
||||
ScoringScheme scoringScheme, Serializable id, CourseArea courseArea,
|
||||
boolean controlTrackingFromStartAndFinishTimes, RankingMetricConstructor rankingMetricConstructor) {
|
||||
this(raceLogStore, regattaLogStore, name, boatClass, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta,
|
||||
this(raceLogStore, regattaLogStore, name, boatClass, canBoatsOfCompetitorsChangePerRace, competitorRegistrationType,
|
||||
startDate, endDate, Collections.singletonList(new SeriesImpl(LeaderboardNameConstants.DEFAULT_SERIES_NAME,
|
||||
/* isMedal */false, /* isFleetsCanRunInParallel */ true, Collections
|
||||
.singletonList(new FleetImpl(LeaderboardNameConstants.DEFAULT_FLEET_NAME)),
|
||||
@@ -229,7 +230,7 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene
|
||||
* this new regatta.
|
||||
*/
|
||||
public <S extends Series> RegattaImpl(RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, String name,
|
||||
BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta,
|
||||
BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, CompetitorRegistrationType competitorRegistrationType,
|
||||
TimePoint startDate, TimePoint endDate, Iterable<S> series, boolean persistent,
|
||||
ScoringScheme scoringScheme, Serializable id, CourseArea courseArea, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference,
|
||||
boolean controlTrackingFromStartAndFinishTimes, RankingMetricConstructor rankingMetricConstructor) {
|
||||
@@ -244,7 +245,6 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene
|
||||
raceColumnListeners = new RaceColumnListeners();
|
||||
this.boatClass = boatClass;
|
||||
this.canBoatsOfCompetitorsChangePerRace = canBoatsOfCompetitorsChangePerRace;
|
||||
this.canCompetitorsRegisterToOpenRegatta = canCompetitorsRegisterToOpenRegatta;
|
||||
this.startDate = startDate;
|
||||
this.endDate = endDate;
|
||||
final List<S> seriesList = new ArrayList<S>();
|
||||
@@ -282,6 +282,7 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene
|
||||
};
|
||||
this.regattaLikeHelper.addListener(new RegattaLogEventAdditionForwarder(raceColumnListeners));
|
||||
this.raceExecutionOrderCache = new RaceExecutionOrderCache();
|
||||
this.competitorRegistrationType = competitorRegistrationType;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -768,12 +769,8 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canCompetitorsRegisterToOpenRegatta() {
|
||||
return this.canCompetitorsRegisterToOpenRegatta;
|
||||
}
|
||||
|
||||
public void setCanCompetitorsRegisterToOpenRegatta(boolean canCompetitorsRegisterToOpenRegatta) {
|
||||
this.canCompetitorsRegisterToOpenRegatta = canCompetitorsRegisterToOpenRegatta;
|
||||
public CompetitorRegistrationType getCompetitorRegistrationType() {
|
||||
return this.competitorRegistrationType == null ? CompetitorRegistrationType.CLOSED : this.competitorRegistrationType;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-2
@@ -23,6 +23,7 @@ import com.sap.sailing.domain.base.RaceColumnListener;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.impl.AbstractRaceExecutionOrderProvider;
|
||||
import com.sap.sailing.domain.base.impl.RegattaLogEventAdditionForwarder;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.LeaderboardType;
|
||||
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.FlexibleRaceColumn;
|
||||
@@ -377,9 +378,10 @@ public class FlexibleLeaderboardImpl extends AbstractLeaderboardImpl implements
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean canCompetitorsRegisterToOpenRegatta() {
|
||||
return false;
|
||||
public CompetitorRegistrationType getCompetitorRegistrationType() {
|
||||
return CompetitorRegistrationType.CLOSED;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
+3
-2
@@ -11,6 +11,7 @@ import com.sap.sailing.domain.abstractlog.regatta.impl.CompetitorTimeOnDistanceA
|
||||
import com.sap.sailing.domain.abstractlog.regatta.impl.CompetitorTimeOnTimeFactorFinder;
|
||||
import com.sap.sailing.domain.abstractlog.regatta.impl.RegattaLogEventListener;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.regattalog.RegattaLogStore;
|
||||
import com.sap.sse.common.Duration;
|
||||
|
||||
@@ -67,8 +68,8 @@ public abstract class BaseRegattaLikeImpl implements IsRegattaLike {
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canCompetitorsRegisterToOpenRegatta() {
|
||||
return false;
|
||||
public CompetitorRegistrationType getCompetitorRegistrationType() {
|
||||
return CompetitorRegistrationType.CLOSED;
|
||||
}
|
||||
|
||||
private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException {
|
||||
|
||||
+4
-3
@@ -6,6 +6,7 @@ import com.sap.sailing.domain.abstractlog.regatta.RegattaLog;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
|
||||
import com.sap.sse.common.Duration;
|
||||
@@ -33,10 +34,10 @@ public interface IsRegattaLike extends Serializable {
|
||||
boolean canBoatsOfCompetitorsChangePerRace();
|
||||
|
||||
/**
|
||||
* Can a user register himself to this regatta.
|
||||
* @return true if user can register to regatta
|
||||
* Get type of comeptitor registration.
|
||||
* @return type of competitor registration
|
||||
*/
|
||||
boolean canCompetitorsRegisterToOpenRegatta();
|
||||
CompetitorRegistrationType getCompetitorRegistrationType();
|
||||
|
||||
RaceColumn getRaceColumnByName(String raceColumnName);
|
||||
|
||||
|
||||
+2
-1
@@ -12,6 +12,7 @@ import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
import com.sap.sailing.domain.common.RankingMetrics;
|
||||
import com.sap.sailing.domain.common.impl.DegreePosition;
|
||||
@@ -40,7 +41,7 @@ public class PingMarkViaRegattaLogTest {
|
||||
Series series = new SeriesImpl("series", false, /* isFleetsCanRunInParallel */ true, Collections.singletonList(fleet),
|
||||
Collections.singletonList(columnName), service);
|
||||
Regatta regatta = service.createRegatta(RegattaImpl.getDefaultName("regatta", "Laser"), "Laser",
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null,
|
||||
UUID.randomUUID(), Collections.<Series>singletonList(series),
|
||||
false, new HighPoint(), UUID.randomUUID(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true,
|
||||
/* controlTrackingFromStartAndFinishTimes */ false, RankingMetricsFactory.getRankingMetricConstructor(RankingMetrics.ONE_DESIGN));
|
||||
|
||||
@@ -18,6 +18,7 @@ import org.mockito.Mockito;
|
||||
|
||||
import com.sap.sailing.domain.common.BoatClassMasterdata;
|
||||
import com.sap.sailing.domain.common.CompetitorDescriptor;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
||||
import com.sap.sailing.domain.common.RankingMetrics;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
@@ -95,7 +96,7 @@ public class SlicingTest {
|
||||
new SeriesCreationParametersDTO(fleets, false, false, true, false, new int[0], false, 0));
|
||||
final RegattaCreationParametersDTO regattaCreationParameters = new RegattaCreationParametersDTO(
|
||||
seriesCreationParameters);
|
||||
final RegattaDTO regatta = sailingService.createRegatta(regattaName, boatClassName, false, false, null, null,
|
||||
final RegattaDTO regatta = sailingService.createRegatta(regattaName, boatClassName, false, CompetitorRegistrationType.CLOSED, null, null,
|
||||
regattaCreationParameters, false, ScoringSchemeType.HIGH_POINT, null, 3.0, false, false,
|
||||
RankingMetrics.ONE_DESIGN);
|
||||
final List<Pair<String, Integer>> columnNames = new ArrayList<>();
|
||||
|
||||
+1
-1
@@ -64,7 +64,7 @@ public class CreateRegattaCallback implements DialogCallback<RegattaDTO>{
|
||||
seriesStructure.put(seriesDTO.getName(), seriesPair);
|
||||
}
|
||||
sailingService.createRegatta(newRegatta.getName(), newRegatta.boatClass==null?null:newRegatta.boatClass.getName(),
|
||||
newRegatta.canBoatsOfCompetitorsChangePerRace, newRegatta.canCompetitorsRegisterToOpenRegatta, newRegatta.startDate, newRegatta.endDate,
|
||||
newRegatta.canBoatsOfCompetitorsChangePerRace, newRegatta.competitorRegistrationType, newRegatta.startDate, newRegatta.endDate,
|
||||
new RegattaCreationParametersDTO(seriesStructure), true,
|
||||
newRegatta.scoringScheme, newRegatta.defaultCourseAreaUuid, newRegatta.buoyZoneRadiusInHullLengths, newRegatta.useStartTimeInference,
|
||||
newRegatta.controlTrackingFromStartAndFinishTimes,
|
||||
|
||||
+3
-3
@@ -61,7 +61,7 @@ public class RegattaDetailsComposite extends Composite {
|
||||
private final Label useStartTimeInference;
|
||||
private final Label controlTrackingFromStartAndFinishTimes;
|
||||
private final Label canBoatsOfCompetitorsChangePerRace;
|
||||
private final Label canCompetitorsRegisterToOpenRegatta;
|
||||
private final Label competitorRegistrationType;
|
||||
private final Label configuration;
|
||||
private final Label buoyZoneRadiusInHullLengths;
|
||||
|
||||
@@ -96,7 +96,7 @@ public class RegattaDetailsComposite extends Composite {
|
||||
useStartTimeInference = createLabelAndValueWidget(grid, currentRow++, stringMessages.useStartTimeInference(), "UseStartTimeInferenceLabel");
|
||||
controlTrackingFromStartAndFinishTimes = createLabelAndValueWidget(grid, currentRow++, stringMessages.controlTrackingFromStartAndFinishTimes(), "UseStartTimeInferenceLabel");
|
||||
canBoatsOfCompetitorsChangePerRace = createLabelAndValueWidget(grid, currentRow++, stringMessages.canBoatsOfCompetitorsChangePerRace(), "CanBoatsOfCompetitorsChangePerRaceLabel");
|
||||
canCompetitorsRegisterToOpenRegatta = createLabelAndValueWidget(grid, currentRow++, stringMessages.canCompetitorsRegisterToOpenRegatta(), "CanCompetitorsRegisterToOpenRegatta");
|
||||
competitorRegistrationType = createLabelAndValueWidget(grid, currentRow++, stringMessages.competitorRegistrationType(), "GetcompetitorRegistrationType");
|
||||
buoyZoneRadiusInHullLengths = createLabelAndValueWidget(grid, currentRow++, stringMessages.buoyZoneRadiusInHullLengths(), "BuoyZoneRadiusInHullLengthsLabel");
|
||||
configuration = createLabelAndValueWidget(grid, currentRow++, stringMessages.racingProcedureConfiguration(), "RacingProcedureLabel");
|
||||
scoringSystem = createLabelAndValueWidget(grid, currentRow++, stringMessages.scoringSystem(), "ScoringSystemLabel");
|
||||
@@ -405,7 +405,7 @@ public class RegattaDetailsComposite extends Composite {
|
||||
useStartTimeInference.setText(regatta.useStartTimeInference ? stringMessages.yes() : stringMessages.no());
|
||||
controlTrackingFromStartAndFinishTimes.setText(regatta.controlTrackingFromStartAndFinishTimes ? stringMessages.yes() : stringMessages.no());
|
||||
canBoatsOfCompetitorsChangePerRace.setText(regatta.canBoatsOfCompetitorsChangePerRace ? stringMessages.yes() : stringMessages.no());
|
||||
canCompetitorsRegisterToOpenRegatta.setText(regatta.canCompetitorsRegisterToOpenRegatta ? stringMessages.yes() : stringMessages.no());
|
||||
competitorRegistrationType.setText(regatta.competitorRegistrationType.getLabel());
|
||||
buoyZoneRadiusInHullLengths.setText(String.valueOf(regatta.buoyZoneRadiusInHullLengths));
|
||||
|
||||
if (regatta.configuration != null) {
|
||||
|
||||
+5
-6
@@ -173,15 +173,14 @@ public class RegattaListComposite extends Composite implements RegattasDisplayer
|
||||
columnSortHandler.setComparator(regattaCanBoatsOfCompetitorsChangePerRaceColumn,
|
||||
(r1, r2)->Boolean.valueOf(r1.canBoatsOfCompetitorsChangePerRace).compareTo(Boolean.valueOf(r2.canBoatsOfCompetitorsChangePerRace)));
|
||||
|
||||
TextColumn<RegattaDTO> regattaCanCompetitorsRegisterToOpenRegatta = new TextColumn<RegattaDTO>() {
|
||||
TextColumn<RegattaDTO> competitorRegistrationTypeColumn = new TextColumn<RegattaDTO>() {
|
||||
@Override
|
||||
public String getValue(RegattaDTO regatta) {
|
||||
return regatta.canCompetitorsRegisterToOpenRegatta ? stringMessages.yes() : stringMessages.no();
|
||||
return regatta.competitorRegistrationType.getLabel();
|
||||
}
|
||||
};
|
||||
regattaCanCompetitorsRegisterToOpenRegatta.setSortable(true);
|
||||
columnSortHandler.setComparator(regattaCanCompetitorsRegisterToOpenRegatta,
|
||||
(r1, r2)->Boolean.valueOf(r1.canCompetitorsRegisterToOpenRegatta).compareTo(Boolean.valueOf(r2.canCompetitorsRegisterToOpenRegatta)));
|
||||
competitorRegistrationTypeColumn.setSortable(true);
|
||||
columnSortHandler.setComparator(competitorRegistrationTypeColumn, (r1, r2)->r1.competitorRegistrationType.ordinal() - r2.competitorRegistrationType.ordinal());
|
||||
|
||||
TextColumn<RegattaDTO> startEndDateColumn = new TextColumn<RegattaDTO>() {
|
||||
@Override
|
||||
@@ -254,7 +253,7 @@ public class RegattaListComposite extends Composite implements RegattasDisplayer
|
||||
table.addColumn(regattaSelectionCheckboxColumn, regattaSelectionCheckboxColumn.getHeader());
|
||||
table.addColumn(regattaNameColumn, stringMessages.regattaName());
|
||||
table.addColumn(regattaCanBoatsOfCompetitorsChangePerRaceColumn, stringMessages.canBoatsChange());
|
||||
table.addColumn(regattaCanCompetitorsRegisterToOpenRegatta, stringMessages.canRegisterIfOpen());
|
||||
table.addColumn(competitorRegistrationTypeColumn, stringMessages.competitorRegistrationTypeShort());
|
||||
table.addColumn(startEndDateColumn, stringMessages.from() + "/" + stringMessages.to());
|
||||
table.addColumn(regattaBoatClassColumn, stringMessages.boatClass());
|
||||
table.addColumn(rankingMetricColumn, stringMessages.rankingMetric());
|
||||
|
||||
+9
-7
@@ -1,13 +1,16 @@
|
||||
package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
|
||||
import com.google.gwt.user.client.ui.CheckBox;
|
||||
import com.google.gwt.user.client.ui.Grid;
|
||||
import com.google.gwt.user.client.ui.Label;
|
||||
import com.google.gwt.user.client.ui.ListBox;
|
||||
import com.google.gwt.user.client.ui.SuggestBox;
|
||||
import com.google.gwt.user.client.ui.TextBox;
|
||||
import com.google.gwt.user.client.ui.VerticalPanel;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.dto.BoatClassDTO;
|
||||
import com.sap.sailing.gwt.common.client.suggestion.BoatClassMasterdataSuggestOracle;
|
||||
import com.sap.sailing.gwt.ui.client.StringMessages;
|
||||
@@ -22,7 +25,7 @@ public abstract class RegattaWithSeriesAndFleetsDialog extends AbstractRegattaWi
|
||||
protected TextBox nameEntryField;
|
||||
protected SuggestBox boatClassEntryField;
|
||||
protected CheckBox canBoatsOfCompetitorsChangePerRaceCheckBox;
|
||||
protected CheckBox canCompetitorsRegisterToOpenRegattaCheckBox;
|
||||
protected ListBox competitorRegistrationTypeListBox = createListBox(false);
|
||||
|
||||
public RegattaWithSeriesAndFleetsDialog(RegattaDTO regatta, Iterable<SeriesDTO> series, List<EventDTO> existingEvents, EventDTO defaultEvent,
|
||||
String title, String okButton, StringMessages stringMessages,
|
||||
@@ -42,9 +45,8 @@ public abstract class RegattaWithSeriesAndFleetsDialog extends AbstractRegattaWi
|
||||
canBoatsOfCompetitorsChangePerRaceCheckBox.ensureDebugId("CanBoatsOfCompetitorsChangePerRaceCheckBox");
|
||||
canBoatsOfCompetitorsChangePerRaceCheckBox.setValue(regatta.canBoatsOfCompetitorsChangePerRace);
|
||||
|
||||
canCompetitorsRegisterToOpenRegattaCheckBox = createCheckbox("");
|
||||
canCompetitorsRegisterToOpenRegattaCheckBox.ensureDebugId("CanCompetitorsRegisterToOpenRegattaCheckBox");
|
||||
canCompetitorsRegisterToOpenRegattaCheckBox.setValue(regatta.canCompetitorsRegisterToOpenRegatta);
|
||||
EnumSet.allOf(CompetitorRegistrationType.class).forEach(t->competitorRegistrationTypeListBox.addItem(t.getLabel(), t.name()));
|
||||
competitorRegistrationTypeListBox.setSelectedIndex(regatta.competitorRegistrationType.ordinal());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -60,7 +62,7 @@ public abstract class RegattaWithSeriesAndFleetsDialog extends AbstractRegattaWi
|
||||
result.setName(nameEntryField.getText().trim()); // trim to particularly avoid trailing blanks
|
||||
result.boatClass = new BoatClassDTO(boatClassEntryField.getText(), Distance.NULL, Distance.NULL);
|
||||
result.canBoatsOfCompetitorsChangePerRace = canBoatsOfCompetitorsChangePerRaceCheckBox.getValue();
|
||||
result.canCompetitorsRegisterToOpenRegatta = canCompetitorsRegisterToOpenRegattaCheckBox.getValue();
|
||||
result.competitorRegistrationType = CompetitorRegistrationType.valueOf(competitorRegistrationTypeListBox.getSelectedValue());
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -75,7 +77,7 @@ public abstract class RegattaWithSeriesAndFleetsDialog extends AbstractRegattaWi
|
||||
formGrid.setWidget(1, 1, boatClassEntryField);
|
||||
formGrid.setWidget(2, 0, new Label(stringMessages.canBoatsOfCompetitorsChangePerRace() + ":"));
|
||||
formGrid.setWidget(2, 1, canBoatsOfCompetitorsChangePerRaceCheckBox);
|
||||
formGrid.setWidget(3, 0, new Label(stringMessages.canCompetitorsRegisterToOpenRegatta() + ":"));
|
||||
formGrid.setWidget(3, 1, canCompetitorsRegisterToOpenRegattaCheckBox);
|
||||
formGrid.setWidget(3, 0, new Label(stringMessages.competitorRegistrationType() + ":"));
|
||||
formGrid.setWidget(3, 1, competitorRegistrationTypeListBox);
|
||||
}
|
||||
}
|
||||
-1
@@ -2,7 +2,6 @@ package com.sap.sailing.gwt.ui.adminconsole;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.google.gwt.event.dom.client.ClickEvent;
|
||||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
|
||||
+2
-1
@@ -13,6 +13,7 @@ import com.sap.sailing.domain.abstractlog.Revokable;
|
||||
import com.sap.sailing.domain.abstractlog.race.tracking.RaceLogDenoteForTrackingEvent;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.common.CompetitorDescriptor;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.DataImportProgress;
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.domain.common.LeaderboardType;
|
||||
@@ -233,7 +234,7 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS
|
||||
void moveLeaderboardColumnDown(String leaderboardName, String columnName);
|
||||
|
||||
RegattaDTO createRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace,
|
||||
boolean canCompetitorsRegisterToOpenRegatta, Date startDate, Date endDate,
|
||||
CompetitorRegistrationType competitorRegistrationType, Date startDate, Date endDate,
|
||||
RegattaCreationParametersDTO seriesNamesWithFleetNamesAndFleetOrderingAndMedal, boolean persistent,
|
||||
ScoringSchemeType scoringSchemeType, UUID defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference,
|
||||
boolean controlTrackingFromStartAndFinishTimes, RankingMetrics rankingMetricType);
|
||||
|
||||
+2
-1
@@ -13,6 +13,7 @@ import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.common.CompetitorDescriptor;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.DataImportProgress;
|
||||
import com.sap.sailing.domain.common.DetailType;
|
||||
import com.sap.sailing.domain.common.LeaderboardType;
|
||||
@@ -456,7 +457,7 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan
|
||||
AsyncCallback<Void> callback);
|
||||
|
||||
void createRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace,
|
||||
boolean canCompetitorsRegisterToOpenRegatta, Date startDate, Date endDate,
|
||||
CompetitorRegistrationType competitorRegistrationType, Date startDate, Date endDate,
|
||||
RegattaCreationParametersDTO seriesNamesWithFleetNamesAndFleetOrderingAndMedal, boolean persistent,
|
||||
ScoringSchemeType scoringSchemeType, UUID defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference,
|
||||
boolean controlTrackingFromStartAndFinishTimes, RankingMetrics rankingMetricType,
|
||||
|
||||
+5
-2
@@ -1191,10 +1191,13 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages,
|
||||
String useStartTimeInference();
|
||||
String controlTrackingFromStartAndFinishTimes();
|
||||
String canBoatsOfCompetitorsChangePerRace();
|
||||
String canCompetitorsRegisterToOpenRegatta();
|
||||
String canBoatsChange();
|
||||
String canRegisterIfOpen();
|
||||
String canNotRegisterBoats();
|
||||
String competitorRegistrationType();
|
||||
String competitorRegistrationTypeShort();
|
||||
String competitorRegistrationTypeClosed();
|
||||
String competitorRegistrationTypeOpenModerated();
|
||||
String competitorRegistrationTypeOpenUnmoderated();
|
||||
String numberOfQueueMessagesSent();
|
||||
String totalSize();
|
||||
String averageMessageSize();
|
||||
|
||||
+5
-2
@@ -1178,10 +1178,13 @@ setTimeToNow=Set time to ''now''
|
||||
useStartTimeInference=Use start time inference from start mark passings
|
||||
controlTrackingFromStartAndFinishTimes=Control tracking from start and finish times
|
||||
canBoatsOfCompetitorsChangePerRace=Can boats of competitors change per race
|
||||
canCompetitorsRegisterToOpenRegatta=Can competitors register to an already opened regatta
|
||||
canBoatsChange=Can boats change
|
||||
canRegisterIfOpen=Can register if open
|
||||
canNotRegisterBoats=Boats can only be registered here when they can change per race, otherwise they are registered together with the competitor.
|
||||
competitorRegistrationType=Competitor Registration Type
|
||||
competitorRegistrationTypeShort=Registration
|
||||
competitorRegistrationTypeClosed=closed
|
||||
competitorRegistrationTypeOpenModerated=open moderated
|
||||
competitorRegistrationTypeOpenUnmoderated=open unmoderated
|
||||
numberOfQueueMessagesSent=Number of queue messages sent
|
||||
totalSize=Total Size
|
||||
averageMessageSize=Average size per message in bytes
|
||||
|
||||
+5
-2
@@ -1165,10 +1165,13 @@ setTimeToNow=Setze den Zeitpunkt auf ''Jetzt''
|
||||
useStartTimeInference=Startzeit aus Startlinienüberquerungen automatisch ableiten
|
||||
controlTrackingFromStartAndFinishTimes=Tracking durch Start- und Ende-Zeiten automatisch steuern
|
||||
canBoatsOfCompetitorsChangePerRace=Das Boot des Teilnehmers kann sich pro Wettfahrt ändern
|
||||
canCompetitorsRegisterToOpenRegatta=Teilnehmer können sich an einer bereits geöffneten Ragatta registrieren
|
||||
canBoatsChange=Boot kann sich ändern
|
||||
canRegisterIfOpen=Registrierung wenn offen
|
||||
canNotRegisterBoats=Boote können hier nur registriert werden, wenn sie sich pro Wettfahrt ändern, ansonsten werden sie zusammen mit dem Teilnehmer registriert.
|
||||
competitorRegistrationType=Teilnehmerregistrierung
|
||||
competitorRegistrationTypeShort=Registrierung
|
||||
competitorRegistrationType.CLOSED=geschlossen
|
||||
competitorRegistrationType.OPEN_MODERATED=Öffentlich moderiert
|
||||
competitorRegistrationType.OPEN_UNMODERATED=Öffentlich unmoderiert
|
||||
numberOfQueueMessagesSent=Anzahl verschickter Queue Nachrichten
|
||||
totalSize=Gesamtgröße
|
||||
averageMessageSize=Durchschnittsgrösse einer Nachricht
|
||||
|
||||
+5
-4
@@ -201,6 +201,7 @@ import com.sap.sailing.domain.base.impl.PersonImpl;
|
||||
import com.sap.sailing.domain.base.impl.SailingServerConfigurationImpl;
|
||||
import com.sap.sailing.domain.base.impl.TeamImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorDescriptor;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.CourseDesignerMode;
|
||||
import com.sap.sailing.domain.common.DataImportProgress;
|
||||
import com.sap.sailing.domain.common.DataImportSubProgress;
|
||||
@@ -998,7 +999,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
regattaDTO.useStartTimeInference = regatta.useStartTimeInference();
|
||||
regattaDTO.controlTrackingFromStartAndFinishTimes = regatta.isControlTrackingFromStartAndFinishTimes();
|
||||
regattaDTO.canBoatsOfCompetitorsChangePerRace = regatta.canBoatsOfCompetitorsChangePerRace();
|
||||
regattaDTO.canCompetitorsRegisterToOpenRegatta = regatta.canCompetitorsRegisterToOpenRegatta();
|
||||
regattaDTO.competitorRegistrationType = regatta.getCompetitorRegistrationType();
|
||||
regattaDTO.configuration = convertToRegattaConfigurationDTO(regatta.getRegattaConfiguration());
|
||||
regattaDTO.rankingMetricType = regatta.getRankingMetricType();
|
||||
return regattaDTO;
|
||||
@@ -4426,7 +4427,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
|
||||
@Override
|
||||
public RegattaDTO createRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace,
|
||||
boolean canCompetitorsRegisterToOpenRegatta, Date startDate, Date endDate,
|
||||
CompetitorRegistrationType competitorRegistrationType, Date startDate, Date endDate,
|
||||
RegattaCreationParametersDTO seriesNamesWithFleetNamesAndFleetOrderingAndMedal,
|
||||
boolean persistent, ScoringSchemeType scoringSchemeType, UUID defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference,
|
||||
boolean controlTrackingFromStartAndFinishTimes, RankingMetrics rankingMetricType) {
|
||||
@@ -4435,7 +4436,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
TimePoint endTimePoint = endDate != null ? new MillisecondsTimePoint(endDate) : null;
|
||||
Regatta regatta = getService().apply(
|
||||
new AddSpecificRegatta(
|
||||
regattaName, boatClassName, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, startTimePoint, endTimePoint, UUID.randomUUID(),
|
||||
regattaName, boatClassName, canBoatsOfCompetitorsChangePerRace, competitorRegistrationType, startTimePoint, endTimePoint, UUID.randomUUID(),
|
||||
seriesNamesWithFleetNamesAndFleetOrderingAndMedal,
|
||||
persistent, baseDomainFactory.createScoringScheme(scoringSchemeType), defaultCourseAreaId, buoyZoneRadiusInHullLengths, useStartTimeInference,
|
||||
controlTrackingFromStartAndFinishTimes, rankingMetricType));
|
||||
@@ -4688,7 +4689,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S
|
||||
logger.info("Create Regatta from DTO " + regatta);
|
||||
SecurityUtils.getSubject().checkPermission(Permission.REGATTA.getStringPermissionForObjects(Mode.CREATE, regatta.getName()));
|
||||
this.createRegatta(regatta.getName(), regatta.boatClass.getName(), regatta.canBoatsOfCompetitorsChangePerRace,
|
||||
regatta.canCompetitorsRegisterToOpenRegatta, regatta.startDate, regatta.endDate,
|
||||
regatta.competitorRegistrationType, regatta.startDate, regatta.endDate,
|
||||
new RegattaCreationParametersDTO(getSeriesCreationParameters(regatta)),
|
||||
true, regatta.scoringScheme, regatta.defaultCourseAreaUuid, regatta.buoyZoneRadiusInHullLengths, regatta.useStartTimeInference,
|
||||
regatta.controlTrackingFromStartAndFinishTimes, regatta.rankingMetricType);
|
||||
|
||||
+3
-2
@@ -6,6 +6,7 @@ import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.RankingMetrics;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaIdentifier;
|
||||
@@ -37,7 +38,7 @@ public class RegattaDTO extends NamedDTO {
|
||||
public boolean useStartTimeInference = true;
|
||||
public boolean controlTrackingFromStartAndFinishTimes = false;
|
||||
public boolean canBoatsOfCompetitorsChangePerRace = false;
|
||||
public boolean canCompetitorsRegisterToOpenRegatta = false;
|
||||
public CompetitorRegistrationType competitorRegistrationType = CompetitorRegistrationType.CLOSED;
|
||||
public RankingMetrics rankingMetricType;
|
||||
public Double buoyZoneRadiusInHullLengths;
|
||||
|
||||
@@ -71,7 +72,7 @@ public class RegattaDTO extends NamedDTO {
|
||||
this.useStartTimeInference = other.useStartTimeInference;
|
||||
this.controlTrackingFromStartAndFinishTimes = other.controlTrackingFromStartAndFinishTimes;
|
||||
this.canBoatsOfCompetitorsChangePerRace = other.canBoatsOfCompetitorsChangePerRace;
|
||||
this.canCompetitorsRegisterToOpenRegatta = other.canCompetitorsRegisterToOpenRegatta;
|
||||
this.competitorRegistrationType = other.competitorRegistrationType;
|
||||
this.buoyZoneRadiusInHullLengths = other.buoyZoneRadiusInHullLengths;
|
||||
}
|
||||
|
||||
|
||||
+2
-1
@@ -18,6 +18,7 @@ import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
import com.sap.sailing.domain.leaderboard.ScoringScheme;
|
||||
import com.sap.sailing.domain.persistence.DomainObjectFactory;
|
||||
@@ -62,7 +63,7 @@ public abstract class AbstractTestStoringAndRetrievingRaceLogInRegatta extends R
|
||||
List<Series> series = createSeriesForTestRegatta();
|
||||
Regatta regatta = new RegattaImpl(getRaceLogStore(), getRegattaLogStore(), RegattaImpl.getDefaultName(regattaBaseName,
|
||||
boatClass == null ? null : boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/*startDate*/ null, /*endDate*/ null, series, persistent, scoringScheme, "123",
|
||||
courseArea, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
return regatta;
|
||||
|
||||
+2
-1
@@ -23,6 +23,7 @@ import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.impl.CourseAreaImpl;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.NotDenotableForRaceLogTrackingException;
|
||||
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.impl.LowPoint;
|
||||
@@ -49,7 +50,7 @@ public class RaceLogConnectivityParamsLoadAndStoreTest extends AbstractConnectiv
|
||||
final SeriesImpl theSeries = new SeriesImpl("Default", /* isMedal */ false, /* isFleetsCanRunInParallel */ true,
|
||||
Arrays.<Fleet>asList(fleet), Collections.emptyList(), racingEventService);
|
||||
final Iterable<? extends Series> series = Arrays.<Series>asList(theSeries);
|
||||
final Regatta regatta = racingEventService.createRegatta("My Regatta", "12mR", true, false, MillisecondsTimePoint.now(), MillisecondsTimePoint.now().plus(Duration.ONE_DAY),
|
||||
final Regatta regatta = racingEventService.createRegatta("My Regatta", "12mR", true, CompetitorRegistrationType.CLOSED, MillisecondsTimePoint.now(), MillisecondsTimePoint.now().plus(Duration.ONE_DAY),
|
||||
UUID.randomUUID(), series, /* persistent */ true, new LowPoint(), new CourseAreaImpl("Default", UUID.randomUUID()),
|
||||
/* buoyZoneRadiusInHullLengths */ 2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false,
|
||||
OneDesignRankingMetric::new);
|
||||
|
||||
+21
-14
@@ -58,6 +58,7 @@ import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.base.impl.VenueImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.MaxPointsReason;
|
||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
import com.sap.sailing.domain.common.RankingMetrics;
|
||||
@@ -226,7 +227,8 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest
|
||||
final String regattaBaseName = "Kieler Woche";
|
||||
BoatClass boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("29erXX", /* typicallyStartsUpwind */ true);
|
||||
Regatta regatta = createRegatta(RegattaImpl.getDefaultName(regattaBaseName, boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, regattaStartDate, regattaEndDate, /* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), courseArea, OneDesignRankingMetric::new);
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.OPEN_MODERATED, regattaStartDate, regattaEndDate, /* persistent */ true,
|
||||
DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), courseArea, OneDesignRankingMetric::new);
|
||||
mof.storeRegatta(regatta);
|
||||
|
||||
DomainObjectFactory dof = PersistenceFactory.INSTANCE.getDomainObjectFactory(getMongoService(), DomainFactory.INSTANCE);
|
||||
@@ -239,6 +241,7 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest
|
||||
assertEquals(loadedRegatta.getDefaultCourseArea().getName(), courseArea.getName());
|
||||
assertEquals(loadedRegatta.getStartDate(), regattaStartDate);
|
||||
assertEquals(loadedRegatta.getEndDate(), regattaEndDate);
|
||||
assertTrue(loadedRegatta.getCompetitorRegistrationType() == CompetitorRegistrationType.OPEN_MODERATED);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -418,10 +421,11 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest
|
||||
final String regattaBaseName = "Kieler Woche";
|
||||
BoatClass boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("29erXX", /* typicallyStartsUpwind */ true);
|
||||
Regatta regattaProxy = createRegatta(RegattaImpl.getDefaultName(regattaBaseName, boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ false, regattaStartDate, regattaEndDate, /* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, OneDesignRankingMetric::new);
|
||||
/* canBoatsOfCompetitorsChangePerRace */ false, CompetitorRegistrationType.CLOSED, regattaStartDate, regattaEndDate,
|
||||
/* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, OneDesignRankingMetric::new);
|
||||
final String regattaName = regattaProxy.getName();
|
||||
Regatta regatta = res.createRegatta(regattaName, regattaProxy.getBoatClass().getName(),
|
||||
/* canBoatsOfCompetitorsChangePerRace */ false, /* canCompetitorsRegisterToOpenRegatta */ false, regattaStartDate, regattaEndDate,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ false, CompetitorRegistrationType.CLOSED, regattaStartDate, regattaEndDate,
|
||||
"123", regattaProxy.getSeries(), regattaProxy.isPersistent(), DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT),
|
||||
/* defaultCourseAreaId */ null, /*buoyZoneRadiusInHullLengths*/ 2.0, /* useStartTimeInference */ true,
|
||||
/* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
@@ -494,9 +498,11 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest
|
||||
final String regattaBaseName = "Kieler Woche";
|
||||
|
||||
Regatta regattaProxy = createRegatta(RegattaImpl.getDefaultName(regattaBaseName, boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, regattaStartDate, regattaEndDate, /* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, OneDesignRankingMetric::new);
|
||||
Regatta regatta = res.createRegatta(regattaProxy.getName(), regattaProxy.getBoatClass().getName(),
|
||||
regattaProxy.canBoatsOfCompetitorsChangePerRace(), regattaProxy.canCompetitorsRegisterToOpenRegatta(), regattaProxy.getStartDate(), regattaProxy.getEndDate(),
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.OPEN_UNMODERATED, regattaStartDate, regattaEndDate,
|
||||
/* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, OneDesignRankingMetric::new);
|
||||
Regatta regatta = res.createRegatta(regattaProxy.getName(), regattaProxy.getBoatClass().getName(),
|
||||
regattaProxy.canBoatsOfCompetitorsChangePerRace(), regattaProxy.getCompetitorRegistrationType(),
|
||||
regattaProxy.getStartDate(), regattaProxy.getEndDate(),
|
||||
"123", regattaProxy.getSeries(), regattaProxy.isPersistent(), DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
trackedRegatta[0] = new DynamicTrackedRegattaImpl(regatta);
|
||||
addRaceColumns(numberOfQualifyingRaces, numberOfFinalRaces, regatta);
|
||||
@@ -537,6 +543,7 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest
|
||||
.getName(), q2YellowTrackedRace.getRaceIdentifier()));
|
||||
MaxPointsReason hassosLoadedMaxPointsReason = loadedLeaderboard.getScoreCorrection().getMaxPointsReason(hasso, loadedQ2, MillisecondsTimePoint.now());
|
||||
assertEquals(MaxPointsReason.DNF, hassosLoadedMaxPointsReason);
|
||||
assertTrue(regatta.getCompetitorRegistrationType() == loadedRegatta.getCompetitorRegistrationType());
|
||||
}
|
||||
|
||||
private void logColumnsInRegattaLeaderboard(RegattaLeaderboard regattaLeaderboard) {
|
||||
@@ -718,7 +725,7 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest
|
||||
final String regattaBaseName = "Kieler Woche";
|
||||
BoatClass boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("29erXX", /* typicallyStartsUpwind */true);
|
||||
final String regattaName = RegattaImpl.getDefaultName(regattaBaseName, boatClass.getName());
|
||||
Regatta regatta = createRegatta(regattaName, boatClass, canBoatsOfCompetitorsChangePerRace,
|
||||
Regatta regatta = createRegatta(regattaName, boatClass, canBoatsOfCompetitorsChangePerRace, CompetitorRegistrationType.CLOSED,
|
||||
null, null, /* persistent */false,
|
||||
DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, OneDesignRankingMetric::new);
|
||||
MongoObjectFactory mof = PersistenceFactory.INSTANCE.getMongoObjectFactory(getMongoService());
|
||||
@@ -736,7 +743,7 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest
|
||||
final String regattaBaseName = "Kieler Woche";
|
||||
BoatClass boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("29erXX", /* typicallyStartsUpwind */true);
|
||||
final String regattaName = RegattaImpl.getDefaultName(regattaBaseName, boatClass.getName());
|
||||
Regatta regatta = createRegatta(regattaName, boatClass, canBoatsOfCompetitorsChangePerRace,
|
||||
Regatta regatta = createRegatta(regattaName, boatClass, canBoatsOfCompetitorsChangePerRace, CompetitorRegistrationType.CLOSED,
|
||||
null, null, /* persistent */false,
|
||||
DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, OneDesignRankingMetric::new);
|
||||
MongoObjectFactory mof = PersistenceFactory.INSTANCE.getMongoObjectFactory(getMongoService());
|
||||
@@ -811,7 +818,7 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest
|
||||
BoatClass boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("29erXX", /* typicallyStartsUpwind */ true);
|
||||
final String regattaName = RegattaImpl.getDefaultName(regattaBaseName, boatClass.getName());
|
||||
Regatta regatta = createRegatta(regattaName, boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, regattaStartDate, regattaEndDate,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, regattaStartDate, regattaEndDate,
|
||||
/* persistent */ false, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, OneDesignRankingMetric::new);
|
||||
MongoObjectFactory mof = PersistenceFactory.INSTANCE.getMongoObjectFactory(getMongoService());
|
||||
mof.storeRegatta(regatta);
|
||||
@@ -867,8 +874,8 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest
|
||||
private Regatta createRegattaAndAddRaceColumns(final int numberOfQualifyingRaces, final int numberOfFinalRaces,
|
||||
final String regattaName, BoatClass boatClass, TimePoint startDate, TimePoint endDate, boolean persistent,
|
||||
ScoringScheme scoringScheme, RankingMetricConstructor rankingMetricConstructor) {
|
||||
Regatta regatta = createRegatta(regattaName, boatClass, /* canBoatsOfCompetitorsChangePerRace */ true,
|
||||
startDate, endDate, persistent, scoringScheme, null, rankingMetricConstructor);
|
||||
Regatta regatta = createRegatta(regattaName, boatClass, /* canBoatsOfCompetitorsChangePerRace */ true,
|
||||
CompetitorRegistrationType.CLOSED, startDate, endDate, persistent, scoringScheme, null, rankingMetricConstructor);
|
||||
addRaceColumns(numberOfQualifyingRaces, numberOfFinalRaces, regatta);
|
||||
return regatta;
|
||||
}
|
||||
@@ -889,7 +896,7 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest
|
||||
addRaceColumnsToSeries(medalRaceColumnNames, regatta.getSeriesByName("Medal"));
|
||||
}
|
||||
|
||||
private Regatta createRegatta(final String regattaName, BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, TimePoint startDate,
|
||||
private Regatta createRegatta(final String regattaName, BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, CompetitorRegistrationType competitorRegistrationType, TimePoint startDate,
|
||||
TimePoint endDate, boolean persistent, ScoringScheme scoringScheme, CourseArea courseArea,
|
||||
RankingMetricConstructor rankingMetricConstructor) {
|
||||
List<String> emptyRaceColumnNames = Collections.emptyList();
|
||||
@@ -915,7 +922,7 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest
|
||||
medalFleets.add(new FleetImpl("Medal"));
|
||||
Series medalSeries = new SeriesImpl("Medal", /* isMedal */ true, /* isFleetsCanRunInParallel */ true, medalFleets, emptyRaceColumnNames, /* trackedRegattaRegistry */ null);
|
||||
series.add(medalSeries);
|
||||
Regatta regatta = new RegattaImpl(regattaName, boatClass, canBoatsOfCompetitorsChangePerRace, /* canCompetitorsRegisterToOpenRegatta */ false, startDate, endDate,
|
||||
Regatta regatta = new RegattaImpl(regattaName, boatClass, canBoatsOfCompetitorsChangePerRace, competitorRegistrationType, startDate, endDate,
|
||||
series, persistent, scoringScheme, "123", courseArea, rankingMetricConstructor);
|
||||
return regatta;
|
||||
}
|
||||
@@ -930,7 +937,7 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest
|
||||
public void testRegattaRaceAssociationStore() throws Exception {
|
||||
BoatClass boatClass = DomainFactory.INSTANCE.getOrCreateBoatClass("112er", /* typicallyStartsUpwind */ true);
|
||||
Regatta regatta = createRegatta(RegattaImpl.getDefaultName("Cologne Masters", boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, regattaStartDate, regattaEndDate, /* persistent */ true,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, regattaStartDate, regattaEndDate, /* persistent */ true,
|
||||
DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, OneDesignRankingMetric::new);
|
||||
|
||||
Map<Competitor, Boat> competitorsAndBoats = new LinkedHashMap<>();
|
||||
|
||||
+3
-2
@@ -7,6 +7,7 @@ import com.sap.sailing.domain.base.Boat;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class RegattaJsonSerializer implements JsonSerializer<Regatta> {
|
||||
@@ -21,7 +22,7 @@ public class RegattaJsonSerializer implements JsonSerializer<Regatta> {
|
||||
public static final String FIELD_TRACKED_RACES = "trackedRaces";
|
||||
public static final String FIELD_COURSE_AREA_ID = "courseAreaId";
|
||||
public static final String FIELD_CAN_BOATS_OF_COMPETITORS_CHANGE_PER_RACE = "canBoatsOfCompetitorsChangePerRace";
|
||||
public static final String FIELD_CAN_COMPETITORS_REGISTER_TO_OPEN_REGATTA = "canCompetitorsRegisterToOpenRegatta";
|
||||
public static final String FIELD_COMPETITOR_REGISTRATION_TYPE = "competitorRegistrationType";
|
||||
|
||||
private final JsonSerializer<Series> seriesSerializer;
|
||||
private final JsonSerializer<Competitor> competitorSerializer;
|
||||
@@ -48,7 +49,7 @@ public class RegattaJsonSerializer implements JsonSerializer<Regatta> {
|
||||
result.put(FIELD_COURSE_AREA_ID,
|
||||
regatta.getDefaultCourseArea() != null ? regatta.getDefaultCourseArea().getId().toString() : null);
|
||||
result.put(FIELD_CAN_BOATS_OF_COMPETITORS_CHANGE_PER_RACE, regatta.canBoatsOfCompetitorsChangePerRace());
|
||||
result.put(FIELD_CAN_COMPETITORS_REGISTER_TO_OPEN_REGATTA, regatta.canCompetitorsRegisterToOpenRegatta());
|
||||
result.put(FIELD_COMPETITOR_REGISTRATION_TYPE, regatta.getCompetitorRegistrationType().name());
|
||||
if (seriesSerializer != null) {
|
||||
JSONArray seriesJson = new JSONArray();
|
||||
for (Series series : regatta.getSeries()) {
|
||||
|
||||
+5
-4
@@ -21,6 +21,7 @@ import org.json.simple.JSONValue;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.NotFoundException;
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
import com.sap.sailing.domain.common.impl.DegreePosition;
|
||||
@@ -125,7 +126,7 @@ public class EventResourceTest extends AbstractJaxRsApiTest {
|
||||
/* venueNameParam */ randomName, /* venueLat */ null, /* venueLng */ null, /* isPublicParam */ null,
|
||||
/* officialWebsiteURLParam */ null, /* baseURLParam */ null, /* leaderboardGroupIdsListParam */ null,
|
||||
/* createLeaderboardGroupParam */ "true", /* createRegattaParam */ "false",
|
||||
/* boatClassNameParam */ null, /* numberOfRacesParam */ null, false, /* canCompetitorsRegisterToOpenRegatta */ false);
|
||||
/* boatClassNameParam */ null, /* numberOfRacesParam */ null, false, CompetitorRegistrationType.CLOSED.name());
|
||||
}
|
||||
|
||||
private Response createEvent() throws ParseException, NotFoundException, NumberFormatException, IOException,
|
||||
@@ -135,7 +136,7 @@ public class EventResourceTest extends AbstractJaxRsApiTest {
|
||||
/* venueNameParam */ randomName, /* venueLat */ null, /* venueLng */ null, /* isPublicParam */ null,
|
||||
/* officialWebsiteURLParam */ null, /* baseURLParam */ null, /* leaderboardGroupIdsListParam */ null,
|
||||
/* createLeaderboardGroupParam */ "false", /* createRegattaParam */ "false",
|
||||
/* boatClassNameParam */ null, /* numberOfRacesParam */ null, false, /* canCompetitorsRegisterToOpenRegatta */ false);
|
||||
/* boatClassNameParam */ null, /* numberOfRacesParam */ null, false, CompetitorRegistrationType.CLOSED.name());
|
||||
}
|
||||
|
||||
private Response createEventAtLocation(Position location) throws ParseException, NotFoundException,
|
||||
@@ -146,7 +147,7 @@ public class EventResourceTest extends AbstractJaxRsApiTest {
|
||||
/* venueLng */ "" + location.getLngDeg(), /* isPublicParam */ null, /* officialWebsiteURLParam */ null,
|
||||
/* baseURLParam */ null, /* leaderboardGroupIdsListParam */ null,
|
||||
/* createLeaderboardGroupParam */ "false", /* createRegattaParam */ "false",
|
||||
/* boatClassNameParam */ null, /* numberOfRacesParam */ null, false, /* canCompetitorsRegisterToOpenRegatta */ false);
|
||||
/* boatClassNameParam */ null, /* numberOfRacesParam */ null, false, CompetitorRegistrationType.CLOSED.name());
|
||||
}
|
||||
|
||||
private Response createEventWithLeaderboardGroupAndRegatta() throws ParseException, NotFoundException,
|
||||
@@ -156,7 +157,7 @@ public class EventResourceTest extends AbstractJaxRsApiTest {
|
||||
/* venueNameParam */ randomName, /* venueLat */ null, /* venueLng */ null, /* isPublicParam */ null,
|
||||
/* officialWebsiteURLParam */ null, /* baseURLParam */ null, /* leaderboardGroupIdsListParam */ null,
|
||||
/* createLeaderboardGroupParam */ "true", /* createRegattaParam */ "true",
|
||||
/* boatClassNameParam */ "A_CAT", /* numberOfRacesParam */ null, false, /* canCompetitorsRegisterToOpenRegatta */ false);
|
||||
/* boatClassNameParam */ "A_CAT", /* numberOfRacesParam */ null, false, CompetitorRegistrationType.CLOSED.name());
|
||||
}
|
||||
|
||||
private Response getLeaderboard(String name) {
|
||||
|
||||
+2
-1
@@ -22,6 +22,7 @@ import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
|
||||
import com.sap.sailing.domain.ranking.OneDesignRankingMetric;
|
||||
@@ -50,7 +51,7 @@ public class LeaderboardGroupResourceTest extends AbstractJaxRsApiTest {
|
||||
raceColumnNames, /* trackedRegattaRegistry */null);
|
||||
series.add(testSeries);
|
||||
regatta = racingEventService.createRegatta(RegattaImpl.getDefaultName(regattaName, boatClassName), boatClassName,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), series, /*persistent*/ true,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), series, /*persistent*/ true,
|
||||
DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, /*buoyZoneRadiusInHullLengths*/2.0,
|
||||
/* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
testSeries.addRaceColumn("R1", /* trackedRegattaRegistry */ null);
|
||||
|
||||
+2
-1
@@ -31,6 +31,7 @@ import com.sap.sailing.domain.base.impl.DynamicTeam;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.DeviceMappingConstants;
|
||||
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.impl.HighPoint;
|
||||
@@ -56,7 +57,7 @@ public class LeaderboardsResourceCheckinAndOutTest extends AbstractJaxRsApiTest
|
||||
competitor = racingEventService.getBaseDomainFactory().getOrCreateCompetitorWithBoat(c.getId(), c.getName(), c.getShortName(),
|
||||
c.getColor(), c.getEmail(), c.getFlagImage(), (DynamicTeam) c.getTeam(),
|
||||
/* timeOnTimeFactor */ null, /* timeOnDistanceAllowancePerNauticalMile */ null, null, (DynamicBoat) boat);
|
||||
Regatta regatta = new RegattaImpl("regatta", boatClass, /* canBoatsOfCompetitorsChangePerRace */ false, /* canCompetitorsRegisterToOpenRegatta */ false,
|
||||
Regatta regatta = new RegattaImpl("regatta", boatClass, /* canBoatsOfCompetitorsChangePerRace */ false, CompetitorRegistrationType.CLOSED,
|
||||
MillisecondsTimePoint.now(), MillisecondsTimePoint.now(), Collections.singleton(new SeriesImpl("series", false, /* isFleetsCanRunInParallel */ true, Collections
|
||||
.singleton(new FleetImpl("fleet")), Arrays.asList("column"), racingEventService)), false,
|
||||
new HighPoint(), 0, null, OneDesignRankingMetric::new);
|
||||
|
||||
+2
-1
@@ -22,6 +22,7 @@ import com.sap.sailing.domain.base.impl.BoatClassImpl;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.tracking.TransformationException;
|
||||
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
|
||||
@@ -60,7 +61,7 @@ public class LeaderboardsResourcePingMarkTest extends AbstractJaxRsApiTest {
|
||||
public void setUp() throws Exception {
|
||||
super.setUp();
|
||||
mark = racingEventService.getBaseDomainFactory().getOrCreateMark("id", "name");
|
||||
Regatta regatta = new RegattaImpl("regatta", new BoatClassImpl("49er", false), /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false,
|
||||
Regatta regatta = new RegattaImpl("regatta", new BoatClassImpl("49er", false), /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
MillisecondsTimePoint.now(), MillisecondsTimePoint.now(), Collections.singleton(new SeriesImpl("series", false, /* isFleetsCanRunInParallel */ true, Collections
|
||||
.singleton(new FleetImpl("fleet")), Arrays.asList("column"), racingEventService)), false,
|
||||
new HighPoint(), 0, null, OneDesignRankingMetric::new);
|
||||
|
||||
+2
-1
@@ -26,6 +26,7 @@ import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
|
||||
import com.sap.sailing.domain.ranking.OneDesignRankingMetric;
|
||||
@@ -58,7 +59,7 @@ public class LeaderboardsResourceTest extends AbstractJaxRsApiTest {
|
||||
raceColumnNames, /* trackedRegattaRegistry */null);
|
||||
series.add(testSeries);
|
||||
regatta = racingEventService.createRegatta(RegattaImpl.getDefaultName(regattaBaseName, boatClassName), boatClassName,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), series, /*persistent*/ true,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), series, /*persistent*/ true,
|
||||
DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null,
|
||||
/*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
testSeries.addRaceColumn("R1", /* trackedRegattaRegistry */ null);
|
||||
|
||||
+2
-1
@@ -22,6 +22,7 @@ import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
import com.sap.sailing.domain.ranking.OneDesignRankingMetric;
|
||||
import com.sap.sailing.server.gateway.jaxrs.api.RegattasResource;
|
||||
@@ -48,7 +49,7 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest {
|
||||
Series testSeries = new SeriesImpl("TestSeries", /* isMedal */false, /* isFleetsCanRunInParallel */ true, fleets, raceColumnNames, /* trackedRegattaRegistry */null);
|
||||
series.add(testSeries);
|
||||
racingEventService.createRegatta(RegattaImpl.getDefaultName(regattaName, boatClassName), boatClassName,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, startDate, endDate, UUID.randomUUID(), series, /*persistent*/ true,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, startDate, endDate, UUID.randomUUID(), series, /*persistent*/ true,
|
||||
DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
testSeries.addRaceColumn("R1", /* trackedRegattaRegistry */ null);
|
||||
testSeries.addRaceColumn("R2", /* trackedRegattaRegistry */ null);
|
||||
|
||||
+20
-9
@@ -38,6 +38,7 @@ import javax.ws.rs.core.Response.Status;
|
||||
import javax.ws.rs.core.UriInfo;
|
||||
|
||||
import org.apache.commons.lang.StringEscapeUtils;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
@@ -49,6 +50,7 @@ import com.sap.sailing.domain.base.Event;
|
||||
import com.sap.sailing.domain.base.EventBase;
|
||||
import com.sap.sailing.domain.base.RaceColumnInSeries;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.NotFoundException;
|
||||
import com.sap.sailing.domain.common.RankingMetrics;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
@@ -136,7 +138,7 @@ public class EventsResource extends AbstractSailingServerResource {
|
||||
@FormParam("boatclassname") String boatClassNameParam,
|
||||
@FormParam("numberofraces") String numberOfRacesParam,
|
||||
@FormParam("canBoatsOfCompetitorsChangePerRace") boolean canBoatsOfCompetitorsChangePerRace,
|
||||
@FormParam("canCompetitorsRegisterToOpenRegatta") boolean canCompetitorsRegisterToOpenRegatta) throws ParseException, NotFoundException,
|
||||
@FormParam("competitorRegistrationType") String competitorRegistrationType) throws ParseException, NotFoundException,
|
||||
NumberFormatException, IOException, org.json.simple.parser.ParseException, InvalidDateException {
|
||||
if (enforceSecurityChecks) {
|
||||
SecurityUtils.getSubject().checkPermission(Permission.EVENT.getStringPermission(Mode.CREATE));
|
||||
@@ -149,7 +151,7 @@ public class EventsResource extends AbstractSailingServerResource {
|
||||
startDateAsMillis, endDateParam, endDateAsMillis, venueNameParam,
|
||||
/* venue latitude */ venueLat, /* venue longitude */ venueLng, isPublicParam, officialWebsiteURLParam,
|
||||
baseURLParam, leaderboardGroupIdsListParam, createLeaderboardGroupParam, createRegattaParam,
|
||||
boatClassNameParam, numberOfRacesParam, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta);
|
||||
boatClassNameParam, numberOfRacesParam, canBoatsOfCompetitorsChangePerRace, competitorRegistrationType);
|
||||
final JSONObject jsonResponse = new JSONObject();
|
||||
jsonResponse.put("eventid", eventAndLeaderboardGroupAndLeaderboard.getA().getId().toString());
|
||||
jsonResponse.put("eventname", eventAndLeaderboardGroupAndLeaderboard.getA().getName());
|
||||
@@ -337,7 +339,7 @@ public class EventsResource extends AbstractSailingServerResource {
|
||||
private RegattaLeaderboard validateAndCreateRegatta(String regattaNameParam, String boatClassNameParam, String scoringSchemeParam,
|
||||
UUID courseAreaId, String buoyZoneRadiusInHullLengthsParam, String useStartTimeInterferenceParam, String controlTrackingFromStartAndFinishTimesParam,
|
||||
String rankingMetricParam, List<Integer> leaderboardDiscardThresholdsParam, String numberOfRacesParam, boolean canBoatsOfCompetitorsChangePerRace,
|
||||
boolean canCompetitorsRegisterToOpenRegatta)
|
||||
CompetitorRegistrationType competitorRegistrationType)
|
||||
throws ParseException, NotFoundException {
|
||||
boolean controlTrackingFromStartAndFinishTimes = controlTrackingFromStartAndFinishTimesParam == null ? false : Boolean.parseBoolean(controlTrackingFromStartAndFinishTimesParam);
|
||||
boolean useStartTimeInterference = useStartTimeInterferenceParam == null ? true : Boolean.parseBoolean(useStartTimeInterferenceParam);
|
||||
@@ -357,7 +359,7 @@ public class EventsResource extends AbstractSailingServerResource {
|
||||
RegattaCreationParametersDTO regattaCreationParametersDTO = new RegattaCreationParametersDTO(
|
||||
createDefaultSeriesCreationParameters(regattaName, numberOfRaces));
|
||||
UUID regattaId = UUID.randomUUID();
|
||||
addRegatta(regattaName, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, controlTrackingFromStartAndFinishTimes, useStartTimeInterference,
|
||||
addRegatta(regattaName, canBoatsOfCompetitorsChangePerRace, competitorRegistrationType, controlTrackingFromStartAndFinishTimes, useStartTimeInterference,
|
||||
buoyZoneRadiusInHullLengths, courseAreaId, boatClassName, /* startDate */ null, /* endDate */ null, scoringScheme,
|
||||
rankingMetric, regattaId, regattaCreationParametersDTO, leaderboardDiscardThresholds, numberOfRaces);
|
||||
final RegattaLeaderboard leaderboard = addLeaderboard(regattaName, leaderboardDiscardThresholds);
|
||||
@@ -379,7 +381,7 @@ public class EventsResource extends AbstractSailingServerResource {
|
||||
String officialWebsiteURLParam, String baseURLParam, List<String> leaderboardGroupIdsListParam,
|
||||
String createLeaderboardGroupParam, String createRegattaParam, String boatClassName,
|
||||
String numberOfRacesParam, boolean canBoatsOfCompetitorsChangePerRace,
|
||||
boolean canCompetitorsRegisterToOpenRegatta) throws ParseException, NotFoundException, NumberFormatException, IOException,
|
||||
String competitorRegistrationTypeString) throws ParseException, NotFoundException, NumberFormatException, IOException,
|
||||
org.json.simple.parser.ParseException, InvalidDateException {
|
||||
boolean isPublic = isPublicParam == null ? false : Boolean.parseBoolean(isPublicParam);
|
||||
boolean createRegatta = createRegattaParam == null ? true : Boolean.parseBoolean(createRegattaParam);
|
||||
@@ -411,13 +413,20 @@ public class EventsResource extends AbstractSailingServerResource {
|
||||
} else {
|
||||
leaderboardGroup = null;
|
||||
}
|
||||
final CompetitorRegistrationType competitorRegistrationType;
|
||||
try {
|
||||
competitorRegistrationType = CompetitorRegistrationType.valueOf(competitorRegistrationTypeString);
|
||||
} catch (IllegalArgumentException | NullPointerException e) {
|
||||
throw new IllegalArgumentException(ExceptionManager.incorrectParameterValue(competitorRegistrationTypeString,
|
||||
StringUtils.join(CompetitorRegistrationType.values(), ", ")));
|
||||
}
|
||||
final RegattaLeaderboard leaderboard;
|
||||
if (createRegatta) {
|
||||
leaderboard = validateAndCreateRegatta(event.getName(), boatClassName,
|
||||
/* scoringSchemeParam */ null, courseArea.getId(), /* buoyZoneRadiusInHullLengthsParam */ null,
|
||||
/* useStartTimeInterferenceParam */ null, /* controlTrackingFromStartAndFinishTimesParam */ null,
|
||||
/* rankingMetricParam */ null, /* leaderboardDiscardThresholdsParam */ null,
|
||||
numberOfRacesParam, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta);
|
||||
numberOfRacesParam, canBoatsOfCompetitorsChangePerRace, competitorRegistrationType);
|
||||
if (leaderboardGroup != null) {
|
||||
getService().apply(new UpdateLeaderboardGroup(leaderboardGroup.getName(), leaderboardGroup.getName(),
|
||||
leaderboardGroup.getDescription(), leaderboardGroup.getDisplayName(),
|
||||
@@ -433,7 +442,9 @@ public class EventsResource extends AbstractSailingServerResource {
|
||||
}
|
||||
return new Util.Triple<>(event, leaderboardGroup, leaderboard);
|
||||
}
|
||||
|
||||
public static void main(String...a) {
|
||||
System.out.println(StringUtils.join(CompetitorRegistrationType.values(), ", "));
|
||||
}
|
||||
private LeaderboardGroup validateAndAddLeaderboardGroup(UUID eventId, String leaderboardGroupName,
|
||||
String leaderboardGroupDescription, String leaderboardGroupDisplayName,
|
||||
boolean displayGroupsInReverseOrder, List<String> leaderboardNamesParam,
|
||||
@@ -542,7 +553,7 @@ public class EventsResource extends AbstractSailingServerResource {
|
||||
}
|
||||
|
||||
private Regatta addRegatta(String regattaName, boolean canBoatsOfCompetitorsChangePerRace,
|
||||
boolean canCompetitorsRegisterToOpenRegatta, boolean controlTrackingFromStartAndFinishTimes, boolean useStartTimeInterference,
|
||||
CompetitorRegistrationType competitorRegistrationType, boolean controlTrackingFromStartAndFinishTimes, boolean useStartTimeInterference,
|
||||
double buoyZoneRadiusInHullLengths, UUID courseAreaId, String boatClassName,
|
||||
MillisecondsTimePoint startDate, MillisecondsTimePoint endDate, ScoringScheme scoringScheme,
|
||||
RankingMetrics rankingMetric, UUID regattaId, RegattaCreationParametersDTO regattaCreationParametersDTO,
|
||||
@@ -551,7 +562,7 @@ public class EventsResource extends AbstractSailingServerResource {
|
||||
SecurityUtils.getSubject().checkPermission(Permission.REGATTA.getStringPermissionForObjects(Mode.CREATE, regattaName));
|
||||
}
|
||||
Regatta regatta = getService().apply(new AddSpecificRegatta(regattaName, boatClassName, canBoatsOfCompetitorsChangePerRace,
|
||||
canCompetitorsRegisterToOpenRegatta, startDate, endDate, regattaId,
|
||||
competitorRegistrationType, startDate, endDate, regattaId,
|
||||
regattaCreationParametersDTO, /* isPersistent */ true, scoringScheme, courseAreaId, buoyZoneRadiusInHullLengths,
|
||||
useStartTimeInterference, controlTrackingFromStartAndFinishTimes, rankingMetric));
|
||||
return regatta;
|
||||
|
||||
+2
-1
@@ -40,6 +40,7 @@ import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
||||
import com.sap.sailing.domain.common.Placemark;
|
||||
import com.sap.sailing.domain.common.Position;
|
||||
@@ -625,7 +626,7 @@ public class ExpeditionAllInOneImporter {
|
||||
/*hasSplitFleetContiguousScoring*/ false, /*maximumNumberOfDiscards*/ null));
|
||||
final RegattaCreationParametersDTO regattaCreationParameters = new RegattaCreationParametersDTO(seriesCreationParameters);
|
||||
regatta = service.apply(new AddSpecificRegatta(regattaNameAndleaderboardName, boatClassName,
|
||||
/* can boats of competitors change */ false, /* canCompetitorsRegisterToOpenRegatta */ false,
|
||||
/* can boats of competitors change */ false, CompetitorRegistrationType.CLOSED,
|
||||
/* start date */ null, /* end date */ null, UUID.randomUUID(),
|
||||
regattaCreationParameters, true, scoringScheme, courseAreaId, buoyZoneRadiusInHullLengths, true,
|
||||
false, rankingMetric));
|
||||
|
||||
+2
-1
@@ -15,6 +15,7 @@ import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogRaceStatusEvent;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.RankingMetrics;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.common.dto.FleetDTO;
|
||||
@@ -103,7 +104,7 @@ public abstract class AbstractLogReplicationTest<LogT extends AbstractLog<EventT
|
||||
// 1. Install some race column on master...
|
||||
RegattaCreationParametersDTO regattaCreationParams = new RegattaCreationParametersDTO(seriesCreationParameters);
|
||||
AddSpecificRegatta addRegattaOperation = new AddSpecificRegatta(regattaName, boatClassName,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, /*startDate*/ null, /*endDate*/ null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null,
|
||||
/* regatta ID */ UUID.randomUUID(), regattaCreationParams, /* persistent */ true,
|
||||
new LowPoint(), /* default course area ID */ UUID.randomUUID(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true,
|
||||
/* controlTrackingFromStartAndFinishTimes */ false, RankingMetrics.ONE_DESIGN);
|
||||
|
||||
+2
-1
@@ -31,6 +31,7 @@ import com.sap.sailing.domain.base.impl.PersonImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.TeamImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
@@ -74,7 +75,7 @@ public class BoatReplicationTest extends AbstractServerReplicationTest {
|
||||
Integer regattaId = 12345;
|
||||
Iterable<Series> series = Collections.emptyList();
|
||||
Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), boatClassName,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, regattaId, series,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, regattaId, series,
|
||||
/* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true,
|
||||
/* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
Iterable<Waypoint> emptyWaypointList = Collections.emptyList();
|
||||
|
||||
+2
-1
@@ -34,6 +34,7 @@ import com.sap.sailing.domain.base.impl.PersonImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.TeamImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
@@ -82,7 +83,7 @@ public class CompetitorReplicationTest extends AbstractServerReplicationTest {
|
||||
URI flagImageURI = new URI("http://www.sapsailing.com");
|
||||
Iterable<Series> series = Collections.emptyList();
|
||||
Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), boatClassName,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, regattaId, series,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, regattaId, series,
|
||||
/* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true,
|
||||
/* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
Iterable<Waypoint> emptyWaypointList = Collections.emptyList();
|
||||
|
||||
+2
-1
@@ -40,6 +40,7 @@ import com.sap.sailing.domain.base.Waypoint;
|
||||
import com.sap.sailing.domain.base.impl.CourseImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.common.RegattaNameAndRaceName;
|
||||
@@ -126,7 +127,7 @@ public class InitialLoadReplicationObjectIdentityTest extends AbstractServerRepl
|
||||
final String boatClassName = "49er";
|
||||
final Iterable<Series> series = Collections.emptyList();
|
||||
Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), boatClassName,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), series,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), series,
|
||||
/* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true,
|
||||
/* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric.CONSTRUCTOR);
|
||||
assertNotNull(master.getRegatta(masterRegatta.getRegattaIdentifier()));
|
||||
|
||||
+10
-9
@@ -25,6 +25,7 @@ import com.sap.sailing.domain.base.configuration.impl.RegattaConfigurationImpl;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.CourseDesignerMode;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
@@ -45,7 +46,7 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest {
|
||||
final Iterable<Series> series = Collections.emptyList();
|
||||
final UUID regattaId = UUID.randomUUID();
|
||||
Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), boatClassName,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, regattaId, series,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, regattaId, series,
|
||||
/* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null,
|
||||
/*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
|
||||
@@ -71,11 +72,11 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest {
|
||||
final UUID regattaId1 = UUID.randomUUID();
|
||||
final UUID regattaId2 = UUID.randomUUID();
|
||||
Regatta masterRegatta1 = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClass1Name), boatClass1Name,
|
||||
canBoatsOfCompetitorsChangePerRaceRegatta1, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, regattaId1, series,
|
||||
canBoatsOfCompetitorsChangePerRaceRegatta1, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, regattaId1, series,
|
||||
/* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null,
|
||||
/*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
Regatta masterRegatta2 = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClass2Name), boatClass2Name,
|
||||
canBoatsOfCompetitorsChangePerRaceRegatta2, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, regattaId2, series,
|
||||
canBoatsOfCompetitorsChangePerRaceRegatta2, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, regattaId2, series,
|
||||
/* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null,
|
||||
/*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
|
||||
@@ -104,7 +105,7 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest {
|
||||
|
||||
UUID currentCourseAreaId = null;
|
||||
Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName("Kiel Week 2012", "49er"), "49er",
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null,
|
||||
UUID.randomUUID(), Collections.<Series>emptyList(),
|
||||
/* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), currentCourseAreaId,
|
||||
/*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
@@ -157,7 +158,7 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest {
|
||||
|
||||
UUID currentCourseAreaId = null;
|
||||
Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName("RR", "49er"), "49er",
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null,
|
||||
UUID.randomUUID(), Collections.<Series>emptyList(),
|
||||
true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), currentCourseAreaId,
|
||||
/*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
@@ -206,7 +207,7 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest {
|
||||
Series medal = new SeriesImpl("Medal", /* isMedal */ true, /* isFleetsCanRunInParallel */ true,
|
||||
Arrays.asList(new Fleet[] { new FleetImpl("Medal") }), emptyRaceColumnNamesList, /* trackedRegattaRegistry */ null);
|
||||
Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), boatClassName,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null,
|
||||
UUID.randomUUID(), Arrays.asList(new Series[] { qualification, finals, medal }), /* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null,
|
||||
/*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
Thread.sleep(1000);
|
||||
@@ -243,7 +244,7 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest {
|
||||
Series qualification = new SeriesImpl("Qualification", /* isMedal */ false, /* isFleetsCanRunInParallel */ true,
|
||||
Arrays.asList(new Fleet[] { new FleetImpl("Yellow"), new FleetImpl("Blue") }), emptyRaceColumnNamesList, /* trackedRegattaRegistry */ null);
|
||||
Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), boatClassName,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null,
|
||||
UUID.randomUUID(), Arrays.asList(new Series[] { qualification }), /* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null,
|
||||
/*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
Thread.sleep(1000);
|
||||
@@ -288,7 +289,7 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest {
|
||||
Series qualification = new SeriesImpl("Qualification", /* isMedal */ false, /* isFleetsCanRunInParallel */ true,
|
||||
Arrays.asList(new Fleet[] { new FleetImpl("Yellow"), new FleetImpl("Blue") }), emptyRaceColumnNamesList, /* trackedRegattaRegistry */ null);
|
||||
Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), boatClassName,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null,
|
||||
UUID.randomUUID(), Arrays.asList(new Series[] { qualification }), /* persistent */ true,
|
||||
DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null,
|
||||
/*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false,
|
||||
@@ -327,7 +328,7 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest {
|
||||
CourseArea masterCourseArea = master.addCourseAreas(masterEvent.getId(), new String[] {courseArea}, new UUID[] {UUID.randomUUID()})[0];
|
||||
|
||||
Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(eventName, boatClassName), boatClassName,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), series,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), series,
|
||||
/* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), masterCourseArea.getId(),
|
||||
/*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
Thread.sleep(1000);
|
||||
|
||||
+2
-1
@@ -19,6 +19,7 @@ import org.junit.Test;
|
||||
import com.sap.sailing.domain.base.Boat;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.common.dto.FleetDTO;
|
||||
@@ -97,7 +98,7 @@ public class TrackRaceBoatCompetitorMetadataReplicationTest extends AbstractServ
|
||||
private void startTrackingOnMaster() throws Exception {
|
||||
final Regatta regatta = master.createRegatta("Test regatta", "J/70",
|
||||
/* canBoatsOfCompetitorsChangePerRace==true because it's a league race we're using for this test */ true,
|
||||
/* canCompetitorsRegisterToOpenRegatta */ false,
|
||||
CompetitorRegistrationType.CLOSED,
|
||||
/* startDate */ null, /* endDate */ null, UUID.randomUUID(),
|
||||
/* start with no series */ Collections.emptySet(),
|
||||
/* persistent */ true, new LowPoint(), /* defaultCourseAreaId */ UUID.randomUUID(),
|
||||
|
||||
+2
-1
@@ -33,6 +33,7 @@ import com.sap.sailing.domain.base.impl.KilometersPerHourSpeedWithBearingImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.WaypointImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.impl.DegreePosition;
|
||||
import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl;
|
||||
import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore;
|
||||
@@ -71,7 +72,7 @@ public class StatisticsTest {
|
||||
public void setUp() {
|
||||
regatta = new DynamicTrackedRegattaImpl(new RegattaImpl(EmptyRaceLogStore.INSTANCE,
|
||||
EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass, false,
|
||||
/* canCompetitorsRegisterToOpenRegatta*/ false, /* startDate */ null, /* endDate */null, null, null, "a", null));
|
||||
CompetitorRegistrationType.CLOSED, /* startDate */ null, /* endDate */null, null, null, "a", null));
|
||||
|
||||
final Course course = new CourseImpl("course",
|
||||
Arrays.asList(new Waypoint[] { waypoint1, waypoint2, waypoint3 }));
|
||||
|
||||
+15
-14
@@ -81,6 +81,7 @@ import com.sap.sailing.domain.base.impl.PersonImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.base.impl.TeamImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.CourseDesignerMode;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
import com.sap.sailing.domain.common.MasterDataImportObjectCreationCount;
|
||||
@@ -231,7 +232,7 @@ public class MasterDataImportTest {
|
||||
UUID regattaUUID = UUID.randomUUID();
|
||||
Regatta regatta = sourceService.createRegatta(
|
||||
RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/* startDate */null, /* endDate */null, regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0,
|
||||
/* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
|
||||
@@ -555,7 +556,7 @@ public class MasterDataImportTest {
|
||||
UUID regattaUUID = UUID.randomUUID();
|
||||
Regatta regatta = sourceService.createRegatta(
|
||||
RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null,
|
||||
regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0,
|
||||
/* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
for (String name : raceColumnNames) {
|
||||
@@ -711,7 +712,7 @@ public class MasterDataImportTest {
|
||||
series.add(new SeriesImpl("testSeries", false, /* isFleetsCanRunInParallel */ true, fleets, emptyRaceColumnNamesList, sourceService));
|
||||
UUID regattaUUID = UUID.randomUUID();
|
||||
Regatta regatta = sourceService.createRegatta(RegattaImpl.getDefaultName("testRegatta", "29er"), "29er",
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null,
|
||||
regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0,
|
||||
/* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
for (String name : raceColumnNames) {
|
||||
@@ -875,7 +876,7 @@ public class MasterDataImportTest {
|
||||
UUID regattaUUID = UUID.randomUUID();
|
||||
Regatta regatta = sourceService.createRegatta(
|
||||
RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null,
|
||||
regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0,
|
||||
/* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
|
||||
@@ -1034,7 +1035,7 @@ public class MasterDataImportTest {
|
||||
UUID regattaUUID = UUID.randomUUID();
|
||||
Regatta regatta = sourceService.createRegatta(
|
||||
RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null,
|
||||
regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0,
|
||||
/* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
for (String name : raceColumnNames) {
|
||||
@@ -1146,7 +1147,7 @@ public class MasterDataImportTest {
|
||||
destService));
|
||||
Regatta regattaNotToOverride = destService.createRegatta(
|
||||
RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */ null, /* endDate */null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */ null, /* endDate */null,
|
||||
regattaUUID, seriesNotToOverride, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0,
|
||||
/* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
|
||||
@@ -1235,7 +1236,7 @@ public class MasterDataImportTest {
|
||||
UUID regattaUUID = UUID.randomUUID();
|
||||
Regatta regatta = sourceService.createRegatta(
|
||||
RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null,
|
||||
regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0,
|
||||
/* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
|
||||
@@ -1344,7 +1345,7 @@ public class MasterDataImportTest {
|
||||
destService));
|
||||
Regatta regattaToOverride = destService.createRegatta(
|
||||
RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */ null, /* endDate */null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */ null, /* endDate */null,
|
||||
regattaUUID, seriesToOverride, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0,
|
||||
/* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
|
||||
@@ -1454,7 +1455,7 @@ public class MasterDataImportTest {
|
||||
|
||||
Regatta regatta = sourceService.createRegatta(
|
||||
RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */
|
||||
null, /* endDate */null, UUID.randomUUID(), new ArrayList<Series>(), true, new LowPoint(),
|
||||
defaultCourseArea.getId(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
// Let's use the setters directly because we are not testing replication
|
||||
@@ -1537,7 +1538,7 @@ public class MasterDataImportTest {
|
||||
|
||||
Regatta regatta = sourceService.createRegatta(
|
||||
RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null,
|
||||
regattaUUID, series, true, new LowPoint(),
|
||||
defaultCourseArea.getId(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */true,
|
||||
/* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
@@ -1671,7 +1672,7 @@ public class MasterDataImportTest {
|
||||
UUID regattaUUID = UUID.randomUUID();
|
||||
Regatta regatta = sourceService.createRegatta(
|
||||
RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null,
|
||||
regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0,
|
||||
/* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
|
||||
@@ -1914,7 +1915,7 @@ public class MasterDataImportTest {
|
||||
UUID regattaUUID = UUID.randomUUID();
|
||||
Regatta regatta = sourceService.createRegatta(
|
||||
RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/* startDate */null, /* endDate */null, regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0,
|
||||
/* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
|
||||
@@ -2144,7 +2145,7 @@ public class MasterDataImportTest {
|
||||
UUID regattaUUID = UUID.randomUUID();
|
||||
Regatta regatta = sourceService.createRegatta(
|
||||
RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */ null, /* endDate */null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */ null, /* endDate */null,
|
||||
regattaUUID, seriesOnSource, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0,
|
||||
/* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
for (String name : raceColumnNames) {
|
||||
@@ -2271,7 +2272,7 @@ public class MasterDataImportTest {
|
||||
|
||||
Regatta regattaOnTarget = destService.createRegatta(
|
||||
RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null,
|
||||
regattaUUID, seriesOnTarget, true, new LowPoint(),
|
||||
courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new);
|
||||
|
||||
|
||||
+2
-1
@@ -35,6 +35,7 @@ import com.sap.sailing.domain.base.impl.BoatClassImpl;
|
||||
import com.sap.sailing.domain.base.impl.CourseImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore;
|
||||
import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore;
|
||||
@@ -73,7 +74,7 @@ public class RaceTrackerStartStopTest {
|
||||
boatClass = new BoatClassImpl(BOATCLASSNAME, /* typicallyStartsUpwind */ true);
|
||||
regatta = new RegattaImpl(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE,
|
||||
RegattaImpl.getDefaultName(EVENTNAME, boatClass.getName()), boatClass,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
/*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */
|
||||
null, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), UUID.randomUUID(), null);
|
||||
racingEventService.getRegattasByName().put(EVENTNAME, regatta);
|
||||
|
||||
+2
-1
@@ -32,6 +32,7 @@ import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard;
|
||||
@@ -89,7 +90,7 @@ public class RemoveLeaderboardTest {
|
||||
|
||||
boatClass = new BoatClassImpl(BOATCLASSNAME, /* typicallyStartsUpwind */ true);
|
||||
regatta = new RegattaImpl(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE,
|
||||
RegattaImpl.getDefaultName(EVENTNAME, boatClass.getName()), boatClass, /* canBoatsOfCompetitorsChangePerRace*/ true, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
RegattaImpl.getDefaultName(EVENTNAME, boatClass.getName()), boatClass, /* canBoatsOfCompetitorsChangePerRace*/ true, CompetitorRegistrationType.CLOSED,
|
||||
/*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */
|
||||
null, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), UUID.randomUUID(), null);
|
||||
TrackedRegatta trackedRegatta1 = server.getOrCreateTrackedRegatta(regatta);
|
||||
|
||||
+4
-3
@@ -33,6 +33,7 @@ import com.sap.sailing.domain.base.impl.CourseAreaImpl;
|
||||
import com.sap.sailing.domain.base.impl.CourseImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.RankingMetrics;
|
||||
import com.sap.sailing.domain.common.RegattaName;
|
||||
import com.sap.sailing.domain.common.dto.FleetDTO;
|
||||
@@ -139,7 +140,7 @@ public class SearchServiceTest {
|
||||
/* medal */false, /* fleetsCanRunInParallel */ true, /* startsWithZero */false, /* firstColumnIsNonDiscardableCarryForward */false,
|
||||
/* discardingThresholds */null, /* hasSplitFleetContiguousScoring */false, /* maximumNumberOfDiscards */ null));
|
||||
pfingstbusch29er = server.apply(new AddSpecificRegatta(RegattaImpl.getDefaultName("Pfingstbusch", "29er"), "29er",
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(),
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(),
|
||||
new RegattaCreationParametersDTO(seriesCreationParams), /* persistent */
|
||||
true, new LowPoint(), kielAlpha.getId(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, RankingMetrics.ONE_DESIGN));
|
||||
server.apply(new AddColumnToSeries(pfingstbusch29er.getRegattaIdentifier(), "Default", "R1"));
|
||||
@@ -148,7 +149,7 @@ public class SearchServiceTest {
|
||||
RegattaLeaderboard pfingstbusch29erLeaderboard = server.apply(new CreateRegattaLeaderboard(pfingstbusch29er.getRegattaIdentifier(),
|
||||
/* leaderboardDisplayName */ null, /* discardThresholds */ new int[0]));
|
||||
pfingstbusch470 = server.apply(new AddSpecificRegatta(RegattaImpl.getDefaultName("Pfingstbusch", "470"), "470",
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null,
|
||||
UUID.randomUUID(), new RegattaCreationParametersDTO(seriesCreationParams), /* persistent */
|
||||
true, new LowPoint(), kielBravo.getId(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, RankingMetrics.ONE_DESIGN));
|
||||
server.apply(new AddColumnToSeries(pfingstbusch470.getRegattaIdentifier(), "Default", "R1"));
|
||||
@@ -171,7 +172,7 @@ public class SearchServiceTest {
|
||||
final CourseAreaImpl flensburgStandard = new CourseAreaImpl("Standard", UUID.randomUUID());
|
||||
flensburg.addCourseArea(flensburgStandard);
|
||||
aalRegatta = server.apply(new AddSpecificRegatta(RegattaImpl.getDefaultName("Aalregatta", "ORC"), "ORC",
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(),
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(),
|
||||
new RegattaCreationParametersDTO(seriesCreationParams), /* persistent */
|
||||
true, new LowPoint(), flensburgStandard.getId(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, RankingMetrics.ONE_DESIGN));
|
||||
server.apply(new AddColumnToSeries(aalRegatta.getRegattaIdentifier(), "Default", "R1"));
|
||||
|
||||
@@ -48,6 +48,7 @@ import com.sap.sailing.domain.base.configuration.DeviceConfigurationMatcher;
|
||||
import com.sap.sailing.domain.base.configuration.RegattaConfiguration;
|
||||
import com.sap.sailing.domain.base.impl.DynamicCompetitorWithBoat;
|
||||
import com.sap.sailing.domain.common.CompetitorDescriptor;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.DataImportProgress;
|
||||
import com.sap.sailing.domain.common.DataImportSubProgress;
|
||||
import com.sap.sailing.domain.common.MasterDataImportObjectCreationCount;
|
||||
@@ -335,7 +336,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch
|
||||
* cannot be {@code true} if {@link useStartTimeInference} is also {@code true}
|
||||
*/
|
||||
Regatta createRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace,
|
||||
boolean canCompetitorsRegisterToOpenRegatta, TimePoint startDate, TimePoint endDate, Serializable id, Iterable<? extends Series> series,
|
||||
CompetitorRegistrationType competitorRegistrationType, TimePoint startDate, TimePoint endDate, Serializable id, Iterable<? extends Series> series,
|
||||
boolean persistent, ScoringScheme scoringScheme, Serializable defaultCourseAreaId, Double buoyZoneRadiusInHullLengths,
|
||||
boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, RankingMetricConstructor rankingMetricConstructor);
|
||||
|
||||
@@ -495,7 +496,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch
|
||||
* the call
|
||||
*/
|
||||
Util.Pair<Regatta, Boolean> getOrCreateRegattaWithoutReplication(String fullRegattaName, String boatClassName,
|
||||
boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta,
|
||||
boolean canBoatsOfCompetitorsChangePerRace, CompetitorRegistrationType competitorRegistrationType,
|
||||
TimePoint startDate, TimePoint endDate, Serializable id,
|
||||
Iterable<? extends Series> series, boolean persistent, ScoringScheme scoringScheme,
|
||||
Serializable defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference,
|
||||
|
||||
+7
-6
@@ -110,6 +110,7 @@ import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.RemoteSailingServerReferenceImpl;
|
||||
import com.sap.sailing.domain.base.impl.TeamImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorDescriptor;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.DataImportProgress;
|
||||
import com.sap.sailing.domain.common.DataImportSubProgress;
|
||||
import com.sap.sailing.domain.common.DeviceIdentifier;
|
||||
@@ -1425,7 +1426,7 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
|
||||
Regatta result = regattasByName.get(name);
|
||||
if (result == null) {
|
||||
result = new RegattaImpl(getRaceLogStore(), getRegattaLogStore(), name, getBaseDomainFactory()
|
||||
.getOrCreateBoatClass(boatClassName), /* canBoatsOfCompetitorsChangePerRace*/ false, /* canCompetitorsRegisterToOpenRegatta*/ false,
|
||||
.getOrCreateBoatClass(boatClassName), /* canBoatsOfCompetitorsChangePerRace*/ false, CompetitorRegistrationType.CLOSED,
|
||||
/* startDate */null, /* endDate */null, this,
|
||||
getBaseDomainFactory().createScoringScheme(ScoringSchemeType.LOW_POINT), id, /* course area */ null);
|
||||
logger.info("Created default regatta " + result.getName() + " (" + hashCode() + ") on " + this);
|
||||
@@ -1446,7 +1447,7 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
|
||||
|
||||
@Override
|
||||
public Regatta createRegatta(String fullRegattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace,
|
||||
boolean canCompetitorsRegisterToOpenRegatta, TimePoint startDate, TimePoint endDate,
|
||||
CompetitorRegistrationType competitorRegistrationType, TimePoint startDate, TimePoint endDate,
|
||||
Serializable id, Iterable<? extends Series> series, boolean persistent, ScoringScheme scoringScheme,
|
||||
Serializable defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes,
|
||||
RankingMetricConstructor rankingMetricConstructor) {
|
||||
@@ -1454,7 +1455,7 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
|
||||
throw new IllegalArgumentException("Cannot set both of useStartTimeInference and controlTrackingFromStartAndFinishTimes to true");
|
||||
}
|
||||
com.sap.sse.common.Util.Pair<Regatta, Boolean> regattaWithCreatedFlag = getOrCreateRegattaWithoutReplication(
|
||||
fullRegattaName, boatClassName, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, startDate, endDate, id, series, persistent, scoringScheme,
|
||||
fullRegattaName, boatClassName, canBoatsOfCompetitorsChangePerRace, competitorRegistrationType, startDate, endDate, id, series, persistent, scoringScheme,
|
||||
defaultCourseAreaId, buoyZoneRadiusInHullLengths, useStartTimeInference, controlTrackingFromStartAndFinishTimes, rankingMetricConstructor);
|
||||
Regatta regatta = regattaWithCreatedFlag.getA();
|
||||
if (regattaWithCreatedFlag.getB()) {
|
||||
@@ -1486,14 +1487,14 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
|
||||
|
||||
@Override
|
||||
public com.sap.sse.common.Util.Pair<Regatta, Boolean> getOrCreateRegattaWithoutReplication(String fullRegattaName,
|
||||
String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta,
|
||||
String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, CompetitorRegistrationType competitorRegistrationType,
|
||||
TimePoint startDate, TimePoint endDate, Serializable id,
|
||||
Iterable<? extends Series> series, boolean persistent, ScoringScheme scoringScheme,
|
||||
Serializable defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes,
|
||||
RankingMetricConstructor rankingMetricConstructor) {
|
||||
CourseArea courseArea = getCourseArea(defaultCourseAreaId);
|
||||
Regatta regatta = new RegattaImpl(getRaceLogStore(), getRegattaLogStore(), fullRegattaName,
|
||||
getBaseDomainFactory().getOrCreateBoatClass(boatClassName), canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, startDate, endDate, series, persistent,
|
||||
getBaseDomainFactory().getOrCreateBoatClass(boatClassName), canBoatsOfCompetitorsChangePerRace, competitorRegistrationType, startDate, endDate, series, persistent,
|
||||
scoringScheme, id, courseArea, buoyZoneRadiusInHullLengths, useStartTimeInference, controlTrackingFromStartAndFinishTimes, rankingMetricConstructor);
|
||||
boolean wasCreated = addAndConnectRegatta(persistent, defaultCourseAreaId, regatta);
|
||||
if (wasCreated) {
|
||||
@@ -1696,7 +1697,7 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes
|
||||
courseAreaId = regatta.getDefaultCourseArea().getId();
|
||||
}
|
||||
replicate(new AddSpecificRegatta(regatta.getName(), regatta.getBoatClass() == null ? null : regatta
|
||||
.getBoatClass().getName(), regatta.canBoatsOfCompetitorsChangePerRace(), regatta.canCompetitorsRegisterToOpenRegatta(),
|
||||
.getBoatClass().getName(), regatta.canBoatsOfCompetitorsChangePerRace(), regatta.getCompetitorRegistrationType(),
|
||||
regatta.getStartDate(), regatta.getEndDate(), regatta.getId(),
|
||||
getSeriesWithoutRaceColumnsConstructionParametersAsMap(regatta), regatta.isPersistent(),
|
||||
regatta.getScoringScheme(), courseAreaId, regatta.getBuoyZoneRadiusInHullLengths(), regatta.useStartTimeInference(), regatta.isControlTrackingFromStartAndFinishTimes(),
|
||||
|
||||
+5
-4
@@ -11,6 +11,7 @@ import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.RankingMetrics;
|
||||
import com.sap.sailing.domain.common.dto.FleetDTO;
|
||||
import com.sap.sailing.domain.common.dto.RegattaCreationParametersDTO;
|
||||
@@ -33,17 +34,17 @@ public class AddSpecificRegatta extends AbstractAddRegattaOperation {
|
||||
private final boolean useStartTimeInference;
|
||||
private final boolean controlTrackingFromStartAndFinishTimes;
|
||||
private final boolean canBoatsOfCompetitorsChangePerRace;
|
||||
private final boolean canCompetitorsRegisterToOpenRegatta;
|
||||
private final CompetitorRegistrationType competitorRegistrationType;
|
||||
private final RankingMetrics rankingMetricType;
|
||||
|
||||
public AddSpecificRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace,
|
||||
boolean canCompetitorsRegisterToOpenRegatta, TimePoint startDate, TimePoint endDate, Serializable id,
|
||||
CompetitorRegistrationType competitorRegistrationType, TimePoint startDate, TimePoint endDate, Serializable id,
|
||||
RegattaCreationParametersDTO seriesNamesWithFleetNamesAndFleetOrderingAndMedalAndDiscardingThresholds,
|
||||
boolean persistent, ScoringScheme scoringScheme, Serializable defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference,
|
||||
boolean controlTrackingFromStartAndFinishTimes, RankingMetrics rankingMetricType) {
|
||||
super(regattaName, boatClassName, startDate, endDate, id);
|
||||
this.canBoatsOfCompetitorsChangePerRace = canBoatsOfCompetitorsChangePerRace;
|
||||
this.canCompetitorsRegisterToOpenRegatta = canCompetitorsRegisterToOpenRegatta;
|
||||
this.competitorRegistrationType = competitorRegistrationType;
|
||||
this.seriesNamesWithFleetNamesAndFleetOrderingAndMedalAndStartsWithZeroScoreAndDiscardingThresholds = seriesNamesWithFleetNamesAndFleetOrderingAndMedalAndDiscardingThresholds;
|
||||
this.persistent = persistent;
|
||||
this.scoringScheme = scoringScheme;
|
||||
@@ -57,7 +58,7 @@ public class AddSpecificRegatta extends AbstractAddRegattaOperation {
|
||||
@Override
|
||||
public Regatta internalApplyTo(RacingEventService toState) throws Exception {
|
||||
Regatta regatta = toState.createRegatta(getRegattaName(), getBoatClassName(), canBoatsOfCompetitorsChangePerRace,
|
||||
canCompetitorsRegisterToOpenRegatta, getStartDate(), getEndDate(), getId(), createSeries(toState),
|
||||
competitorRegistrationType, getStartDate(), getEndDate(), getId(), createSeries(toState),
|
||||
persistent, scoringScheme, defaultCourseAreaId, buoyZoneRadiusInHullLengths, useStartTimeInference, controlTrackingFromStartAndFinishTimes, RankingMetricsFactory.getRankingMetricConstructor(rankingMetricType));
|
||||
return regatta;
|
||||
}
|
||||
|
||||
+2
-1
@@ -30,6 +30,7 @@ import com.sap.sailing.domain.base.impl.PersonImpl;
|
||||
import com.sap.sailing.domain.base.impl.RegattaImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.base.impl.TeamImpl;
|
||||
import com.sap.sailing.domain.common.CompetitorRegistrationType;
|
||||
import com.sap.sailing.domain.common.FleetColors;
|
||||
import com.sap.sailing.domain.common.LeaderboardNameConstants;
|
||||
import com.sap.sailing.domain.common.ScoringSchemeType;
|
||||
@@ -101,7 +102,7 @@ public class StructureImporter {
|
||||
RegattaImpl regatta = new RegattaImpl(RegattaImpl.getDefaultName(event.getTitle(), ((Division) event
|
||||
.getRaceOrDivisionOrRegattaSeriesResult().get(0)).getTitle()),
|
||||
baseDomainFactory.getOrCreateBoatClass(result.getA().getBoatClass()),
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false,
|
||||
/* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED,
|
||||
startDate, endDate, getSeries(buildStructure), false,
|
||||
this.baseDomainFactory.createScoringScheme(ScoringSchemeType.LOW_POINT), event.getEventID(), null, OneDesignRankingMetric::new);
|
||||
addSpecificRegattas.add(regatta);
|
||||
|
||||
Reference in new issue
Block a user