From d992a3e9a0590d8087475c7983841c1ed48f2401 Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Tue, 18 Sep 2018 16:09:41 +0200 Subject: [PATCH 01/28] Add parameter for user regsitration to regatta --- .../impl/DomainObjectFactoryImpl.java | 9 +++-- .../domain/persistence/impl/FieldNames.java | 1 + .../impl/MigratableRegattaImpl.java | 6 ++-- .../impl/MongoObjectFactoryImpl.java | 1 + .../test/AbstractGPSFixStoreTest.java | 2 +- .../impl/CreateAndTrackWithRaceLogTest.java | 2 +- .../impl/RaceLogFixTrackerManagerTest.java | 3 +- .../test/impl/SensorFixStoreAndLoadTest.java | 3 +- .../TrackedRaceStartTimeInferenceTest.java | 15 +++++--- .../test/SimpleDomainFactoryTest.java | 4 +-- .../impl/DomainFactoryImpl.java | 3 +- ...stFarthestAheadWithSkippedMarkPassing.java | 3 +- ...mpleTimeOnTimeRankingWithOneUpwindLeg.java | 2 +- ...mpetitorProviderCacheInvalidationTest.java | 2 +- .../sap/sailing/domain/test/CourseTest.java | 4 +-- ...pdateDuringNonAtomicSerializationTest.java | 3 +- .../test/LeaderboardCourseChangeTest.java | 2 +- .../LeaderboardScoringAndRankingTest.java | 11 +++--- .../LeaderboardScoringAndRankingTestBase.java | 6 ++-- ...oardScoringAndRankingTestForLowPoints.java | 2 +- ...ecutionOrderProvdiderAttachDetachTest.java | 2 +- .../sailing/domain/test/ReachingLegTest.java | 3 +- ...ttaLogEventNotificationForwardingTest.java | 6 ++-- .../test/SerializeRankingMetricTest.java | 3 +- .../test/TestDeadlockInRegattaListener.java | 3 +- .../sailing/domain/test/TrackBasedTest.java | 5 +-- .../domain/test/UpdateMarkPassingTest.java | 2 +- .../com/sap/sailing/domain/test/WindTest.java | 3 +- .../AbstractMockedRaceMarkPassingTest.java | 3 +- .../domain/test/mock/MockedTrackedRace.java | 5 +++ .../tracking/impl/TrackedRegattaTest.java | 3 +- .../impl/DomainFactoryImpl.java | 3 +- .../sailing/domain/base/impl/RegattaImpl.java | 34 ++++++++++++++----- .../impl/FlexibleLeaderboardImpl.java | 5 +++ .../regattalike/BaseRegattaLikeImpl.java | 5 +++ .../domain/regattalike/IsRegattaLike.java | 8 ++++- .../ui/test/PingMarkViaRegattaLogTest.java | 2 +- .../sap/sailing/gwt/ui/test/SlicingTest.java | 2 +- .../adminconsole/CreateRegattaCallback.java | 2 +- .../adminconsole/RegattaDetailsComposite.java | 5 ++- .../ui/adminconsole/RegattaListComposite.java | 11 ++++++ .../RegattaWithSeriesAndFleetsDialog.java | 8 +++++ .../RegattaWithSeriesAndFleetsEditDialog.java | 1 + .../sailing/gwt/ui/client/SailingService.java | 3 +- .../gwt/ui/client/SailingServiceAsync.java | 3 +- .../sailing/gwt/ui/client/StringMessages.java | 4 ++- .../gwt/ui/client/StringMessages.properties | 2 ++ .../ui/client/StringMessages_de.properties | 2 ++ .../gwt/ui/server/SailingServiceImpl.java | 10 ++++-- .../sap/sailing/gwt/ui/shared/RegattaDTO.java | 2 ++ ...tStoringAndRetrievingRaceLogInRegatta.java | 3 +- ...LogConnectivityParamsLoadAndStoreTest.java | 2 +- ...estStoringAndLoadingEventsAndRegattas.java | 6 ++-- .../impl/RegattaJsonSerializer.java | 2 ++ .../gateway/test/jaxrs/EventResourceTest.java | 8 ++--- .../jaxrs/LeaderboardGroupResourceTest.java | 2 +- ...LeaderboardsResourceCheckinAndOutTest.java | 4 +-- .../LeaderboardsResourcePingMarkTest.java | 4 +-- .../test/jaxrs/LeaderboardsResourceTest.java | 2 +- .../test/jaxrs/RegattasResourceTest.java | 2 +- .../gateway/jaxrs/api/EventsResource.java | 21 +++++++----- .../impl/ExpeditionAllInOneImporter.java | 2 +- .../test/AbstractLogReplicationTest.java | 2 +- .../replication/test/BoatReplicationTest.java | 2 +- .../test/CompetitorReplicationTest.java | 2 +- ...tialLoadReplicationObjectIdentityTest.java | 2 +- .../test/RegattaReplicationTest.java | 18 +++++----- ...BoatCompetitorMetadataReplicationTest.java | 1 + .../server/statistics/StatisticsTest.java | 4 +-- .../server/test/MasterDataImportTest.java | 30 ++++++++-------- .../server/test/RaceTrackerStartStopTest.java | 3 +- .../server/test/RemoveLeaderboardTest.java | 2 +- .../server/test/SearchServiceTest.java | 6 ++-- .../sailing/server/RacingEventService.java | 6 ++-- .../server/impl/RacingEventServiceImpl.java | 14 ++++---- .../AddSpecificRegatta.java | 8 +++-- .../structureimport/StructureImporter.java | 3 +- 77 files changed, 260 insertions(+), 135 deletions(-) diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java index 749cf0d754d..ed5ee56a28b 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java @@ -1280,10 +1280,15 @@ 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; + } final RankingMetricConstructor rankingMetricConstructor = loadRankingMetricConstructor(dbRegatta); if (createMigratableRegatta) { result = new MigratableRegattaImpl(getRaceLogStore(), getRegattaLogStore(), name, boatClass, - canBoatsOfCompetitorsChangePerRace, startDate, endDate, series, /* persistent */true, + canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, startDate, endDate, series, /* persistent */true, loadScoringScheme(dbRegatta), id, courseArea, buoyZoneRadiusInHullLengths == null ? Regatta.DEFAULT_BUOY_ZONE_RADIUS_IN_HULL_LENGTHS : buoyZoneRadiusInHullLengths, @@ -1292,7 +1297,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { rankingMetricConstructor, new MongoObjectFactoryImpl(database)); } else { result = new RegattaImpl(getRaceLogStore(), getRegattaLogStore(), name, boatClass, - canBoatsOfCompetitorsChangePerRace, startDate, endDate, series, /* persistent */true, + canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, startDate, endDate, series, /* persistent */true, loadScoringScheme(dbRegatta), id, courseArea, buoyZoneRadiusInHullLengths == null ? Regatta.DEFAULT_BUOY_ZONE_RADIUS_IN_HULL_LENGTHS : buoyZoneRadiusInHullLengths, diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java index b557b018195..f7edbfefa9f 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java @@ -39,6 +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, SERIES_NAME, SERIES_IS_MEDAL, SERIES_IS_FLEETS_CAN_RUN_IN_PARALLEL, diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MigratableRegattaImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MigratableRegattaImpl.java index 4b15db549b3..3c93d6c61bf 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MigratableRegattaImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MigratableRegattaImpl.java @@ -27,11 +27,12 @@ public class MigratableRegattaImpl extends RegattaImpl implements MigratableRega private transient final MongoObjectFactory mongoObjectFactory; public MigratableRegattaImpl(RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, String name, - BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, TimePoint startDate, TimePoint endDate, + BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta, + TimePoint startDate, TimePoint endDate, Iterable 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, startDate, endDate, series, + super(raceLogStore, regattaLogStore, name, boatClass, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, startDate, endDate, series, persistent, scoringScheme, id, courseArea, buoyZoneRadiusInHullLengths, useStartTimeInference, controlTrackingFromStartAndFinishTimes, rankingMetricConstructor); this.mongoObjectFactory = mongoObjectFactory; @@ -42,6 +43,7 @@ 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); diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java index 408e806b9fc..b1aba99b2d8 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java @@ -716,6 +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_RANKING_METRIC.name(), storeRankingMetric(regatta)); boolean success = false; final int MAX_TRIES = 3; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java index 3c3773a6f68..6f42f80e280 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java @@ -124,7 +124,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, /* startDate */ null, /* endDate */null, null, null, "a", null)); + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, /* startDate */ null, /* endDate */null, null, null, "a", null)); return new DynamicTrackedRaceImpl(regatta, raceDefinition, Collections. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new, mock(RaceLogResolver.class)); diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java index 6571623d72c..eb1da2cb9a9 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java @@ -97,7 +97,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, /* startDate */null, /* endDate */null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, /* startDate */null, /* endDate */null, UUID.randomUUID(), Collections. singletonList(series), /* persistent */ true, new HighPoint(), UUID.randomUUID(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); series.addRaceColumn(columnName, /* trackedRegattaRegistry */null); diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java index a7e8ea9110f..f5e54633dde 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java @@ -101,7 +101,8 @@ 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, /* startDate */ null, /* endDate */null, null, null, "a", null)); + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /* startDate */ null, /* endDate */null, null, null, "a", null)); trackedRace = new DynamicTrackedRaceImpl(regatta, race, Collections. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new, mock(RaceLogResolver.class)); diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java index e1ecf871f84..d2c44c21feb 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java @@ -167,7 +167,8 @@ 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, /* startDate */ null, /* endDate */null, null, null, "a", null)); + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /* startDate */ null, /* endDate */null, null, null, "a", null)); trackedRace = new DynamicTrackedRaceImpl(regatta, race, Collections. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new, mock(RaceLogResolver.class)); diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java index d9d3763e380..642be2738af 100755 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java @@ -77,7 +77,8 @@ public class TrackedRaceStartTimeInferenceTest extends AbstractGPSFixStoreTest { TrackedRegatta regatta = new DynamicTrackedRegattaImpl(new RegattaImpl(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass, - /* canBoatsOfCompetitorsChangePerRace */ true, /* startDate */ null, /* endDate */null, null, null, "a", null)); + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /* startDate */ null, /* endDate */null, null, null, "a", null)); final DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(regatta, race, Collections. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, @@ -153,7 +154,8 @@ 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, /* startDate */ null, /* endDate */null, null, null, "a", null)); + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /* startDate */ null, /* endDate */null, null, null, "a", null)); final DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(regatta, race, Collections. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, @@ -195,7 +197,8 @@ 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, /* startDate */ null, /* endDate */null, null, null, "a", null)); + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /* startDate */ null, /* endDate */null, null, null, "a", null)); final DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(regatta, race, Collections. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, @@ -240,7 +243,8 @@ 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, /* startDate */ null, /* endDate */null, null, null, "a", null)); + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /* startDate */ null, /* endDate */null, null, null, "a", null)); assertTrue(regatta.getRegatta().useStartTimeInference()); final DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(regatta, race, Collections. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0, @@ -354,7 +358,8 @@ 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, /* startDate */null, /* endDate */null, null, null, "a", null)); + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /* startDate */null, /* endDate */null, null, null, "a", null)); final DynamicTrackedRaceImpl trackedRace = new DynamicTrackedRaceImpl(regatta, race, Collections. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java index cf9771ddb6a..cb9e42ef99e 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java @@ -109,7 +109,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, + /* boatClass */ null, /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, /*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 +136,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, + "TestEvent", /* boatClass */ null, /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, /*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"); diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java index 758369f0b5b..3abef3b456c 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java @@ -118,7 +118,8 @@ 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, /*startDate*/ null, /*endDate*/ null, + regattaBoatClass, /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /*startDate*/ null, /*endDate*/ null, trackedRegattaRegistry, getBaseDomainFactory().createScoringScheme( ScoringSchemeType.LOW_POINT), raceID, null); logger.info("Created regatta "+result.getName()+" ("+result.hashCode()+")"); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java index 76f727927d8..954a6c8ccdc 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java @@ -97,7 +97,8 @@ 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, /*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), "123", /* courseArea */ null, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); TrackedRegatta trackedRegatta = new DynamicTrackedRegattaImpl(regatta); List waypoints = new ArrayList(); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java index 7493e0f594c..e6ca35b8c91 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java @@ -79,7 +79,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, /*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, /*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 waypoints = new ArrayList(); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CompetitorProviderCacheInvalidationTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CompetitorProviderCacheInvalidationTest.java index 547c9c81241..cea5d08eb4f 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CompetitorProviderCacheInvalidationTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CompetitorProviderCacheInvalidationTest.java @@ -78,7 +78,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, /* startDate */ null, /* endDate */null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, /* startDate */ null, /* endDate */null, /* trackedRegattaRegistry */null, new LowPoint(), UUID.randomUUID(), courseArea); regattaLeaderboard = new RegattaLeaderboardImpl(regatta, new ThresholdBasedResultDiscardingRuleImpl(new int[0])); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java index 5ca55645c38..dca90a667e3 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java @@ -308,7 +308,7 @@ public class CourseTest { final Map competitorsAndBoats = new HashMap<>(); competitorsAndBoats.put(hasso, hasso.getBoat()); DynamicTrackedRace trackedRace = new DynamicTrackedRaceImpl(/* trackedRegatta */new DynamicTrackedRegattaImpl( - new RegattaImpl("test", null, true, null, null, new HashSet(), false, null, "test", null, OneDesignRankingMetric::new)), + new RegattaImpl("test", null, true, false, null, null, new HashSet(), false, null, "test", null, OneDesignRankingMetric::new)), new RaceDefinitionImpl("Test Race", course, boatClass, competitorsAndBoats), Collections. emptyList(), EmptyWindStore.INSTANCE, /* delayToLiveInMillis */3000, /* millisecondsOverWhichToAverageWind */30000, @@ -342,7 +342,7 @@ public class CourseTest { final Map competitorsAndBoats = new HashMap<>(); competitorsAndBoats.put(hasso, hasso.getBoat()); DynamicTrackedRace trackedRace = new DynamicTrackedRaceImpl(/* trackedRegatta */ new DynamicTrackedRegattaImpl( - new RegattaImpl("test", null, true, null, null, new HashSet(), false, null, "test", null, OneDesignRankingMetric::new)), + new RegattaImpl("test", null, true, false, null, null, new HashSet(), false, null, "test", null, OneDesignRankingMetric::new)), new RaceDefinitionImpl("Test Race", course, boatClass, competitorsAndBoats), Collections. emptyList(), EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 3000, /* millisecondsOverWhichToAverageWind */ 30000, diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java index 107bc2d3be2..e0a1d640677 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java @@ -77,7 +77,8 @@ 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, /*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null, new LowPoint(), UUID.randomUUID(), new CourseAreaImpl("Alpha", UUID.randomUUID())); TrackedRegatta trackedRegatta = new TrackedRegattaImpl(regatta); RaceDefinition race = new RaceDefinitionImpl("Test Race", course, regatta.getBoatClass(), Collections.emptyMap()); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java index e5577eb132b..f33de8feebd 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java @@ -91,7 +91,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, /*startDate*/ null, /*endDate*/ null, seriesSet, false, scoringScheme, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, seriesSet, false, scoringScheme, UUID.randomUUID(), mock(CourseArea.class), OneDesignRankingMetric::new); ControlPoint start = new MarkImpl("Start"); ControlPoint m1 = new MarkImpl("M1"); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java index 282b3dc6838..5eb2b435de5 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java @@ -1714,7 +1714,8 @@ 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, /*startDate*/ null, /*endDate*/ null, trackedRegattaRegistry, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /*startDate*/ null, /*endDate*/ null, trackedRegattaRegistry, new HighPointFirstGets10Or8AndLastBreaksTie(), "578876345345", new CourseAreaImpl("Humba", UUID.randomUUID())); trackedRegattaRegistry.getOrCreateTrackedRegatta(dummyRegatta); @@ -2326,7 +2327,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, /*startDate*/ null, /*endDate*/ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, series, /* persistent */false, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.HIGH_POINT_FIRST_GETS_TEN), "123", /* course area */null, OneDesignRankingMetric::new); List competitors = createCompetitors(12); final int firstYellowCompetitorIndex = 3; @@ -2445,7 +2446,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, /*startDate*/ null, /*endDate*/ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, series, /* persistent */false, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), "123", /* course area */null, OneDesignRankingMetric::new); List competitors = createCompetitors(12); final int firstYellowCompetitorIndex = 3; @@ -2558,7 +2559,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, /*startDate*/ null, /*endDate*/ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, series, /* persistent */false, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), "123", /* course area */null, OneDesignRankingMetric::new); List competitors = createCompetitors(12); final int firstYellowCompetitorIndex = 3; @@ -2647,7 +2648,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, /*startDate*/ null, /*endDate*/ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*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 competitors = createCompetitors(TOTAL_NUMBER_OF_COMPETITORS); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestBase.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestBase.java index 0f9f4b1a667..1c1f24e3a94 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestBase.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestBase.java @@ -126,7 +126,7 @@ public class LeaderboardScoringAndRankingTestBase extends AbstractLeaderboardTes series.add(defaultSeries); Regatta regatta = new RegattaImpl(RegattaImpl.getDefaultName(regattaName, boatClass.getName()), boatClass, - /* canBoatsOfCompetitorsChangePerRace */ true, /* startDate */null, /* endDate */null, series, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null, series, /* persistent */false, scoringScheme, "123", null, OneDesignRankingMetric::new); return regatta; } @@ -182,7 +182,7 @@ public class LeaderboardScoringAndRankingTestBase extends AbstractLeaderboardTes } Regatta regatta = new RegattaImpl(RegattaImpl.getDefaultName(regattaBaseName, boatClass.getName()), boatClass, - /* canBoatsOfCompetitorsChangePerRace */ true, /*startDate*/ null, /*endDate*/ null, series, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, series, /* persistent */ false, scoringScheme, "123", null, OneDesignRankingMetric::new); return regatta; } @@ -228,7 +228,7 @@ public class LeaderboardScoringAndRankingTestBase extends AbstractLeaderboardTes } } Regatta regatta = new RegattaImpl(RegattaImpl.getDefaultName(regattaBaseName, boatClass.getName()), boatClass, - /* canBoatsOfCompetitorsChangePerRace */ true, /*startDate*/ null, /*endDate*/ null, series, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, series, /* persistent */ false, scoringScheme, /* ID */ "123", /* course area */ null, OneDesignRankingMetric::new); return regatta; } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java index 8bbc958e8b1..ec1fe328af0 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java @@ -65,7 +65,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, /* startDate */ null, /* endDate */ null, series, /* persistent */false, + false, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */ null, /* endDate */ null, series, /* persistent */false, DomainFactory.INSTANCE .createScoringScheme(useFirstTwoWins ? ScoringSchemeType.LOW_POINT_FIRST_TO_WIN_TWO_RACES : ScoringSchemeType.LOW_POINT), diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java index e6f511b8fc0..9cff4e264e4 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java @@ -229,7 +229,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, /* startDate */null, /* endDate */null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null, seriesSet, false, scoringScheme, UUID.randomUUID(), null, OneDesignRankingMetric::new); } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java index 576affaee4c..558bf4252ab 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java @@ -94,7 +94,8 @@ 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, /*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), "123", null); TrackedRegatta trackedRegatta = new DynamicTrackedRegattaImpl(regatta); List waypoints = new ArrayList(); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RegattaLogEventNotificationForwardingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RegattaLogEventNotificationForwardingTest.java index 724ca4f9615..da573d03fbd 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RegattaLogEventNotificationForwardingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RegattaLogEventNotificationForwardingTest.java @@ -115,7 +115,7 @@ public class RegattaLogEventNotificationForwardingTest extends AbstractSerializa @Test public void testRegattaLeaderboardRegattaLogEventForwarding() { - Regatta regatta = new RegattaImpl("test", null, true, null, null, new HashSet(), false, null, "test", null, OneDesignRankingMetric::new); + Regatta regatta = new RegattaImpl("test", null, true, false, null, null, new HashSet(), false, null, "test", null, OneDesignRankingMetric::new); final RegattaLogEvent[] receivedRegattaLogEvent = new RegattaLogEvent[1]; regatta.addRaceColumnListener(new RaceColumnListenerWithDefaultAction() { private static final long serialVersionUID = -3835439531940986851L; @@ -136,7 +136,7 @@ public class RegattaLogEventNotificationForwardingTest extends AbstractSerializa @Test public void testRegattaLeaderboardRegattaLogEventForwardingAfterRegattaDeserialization() throws ClassNotFoundException, IOException { - Regatta regatta = new RegattaImpl("test", null, true, null, null, new HashSet(), false, null, "test", null, OneDesignRankingMetric::new); + Regatta regatta = new RegattaImpl("test", null, true, false, null, null, new HashSet(), false, null, "test", null, OneDesignRankingMetric::new); Regatta deserializedRegatta = cloneBySerialization(regatta, DomainFactory.INSTANCE); final RegattaLogEvent[] receivedRegattaLogEvent = new RegattaLogEvent[1]; deserializedRegatta.addRaceColumnListener(new RaceColumnListenerWithDefaultAction() { @@ -181,7 +181,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, null, null, Collections.singleton(series), false, + Regatta regatta = new RegattaImpl("test", null, true, false, null, null, Collections.singleton(series), false, new LowPoint(), "test", null, OneDesignRankingMetric::new); return regatta; } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java index 23e70896311..db97f96b48f 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java @@ -34,7 +34,8 @@ 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, /* startDate */ null, /* endDate */ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /* startDate */ null, /* endDate */ null, /* trackedRegattaRegistry */ null, new LowPoint(), UUID.randomUUID(), /* courseArea */ null)), new RaceDefinitionImpl("Race", new CourseImpl("Course", Collections.emptyList()) , /* boatClass */ _49er, Collections.emptyMap()), diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java index 3256751f6e4..bc684018e61 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java @@ -50,7 +50,8 @@ 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, /* startDate */ null, /* endDate */ null, + new BoatClassImpl("49er", true), /* can boats change */ false, /* canCompetitorsRegisterToOpenRegatta*/ false, + /* startDate */ null, /* endDate */ null, /* trackedRegattaRegistry */ null, new LowPoint(), UUID.randomUUID(), /* courseArea */ null, /* controlTrackingFromStartAndFinishTimes */ true, OneDesignRankingMetric::new); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java index 4f7b0e204a3..c1c8333bc7e 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java @@ -161,7 +161,8 @@ 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, /*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), "123", null); TrackedRegatta trackedRegatta = new DynamicTrackedRegattaImpl(regatta); List waypoints = new ArrayList(); @@ -211,7 +212,7 @@ public abstract class TrackBasedTest { TrackedRegattaRegistry trackedRegattaRegistry = mock(TrackedRegattaRegistry.class); Series series = new SeriesImpl("series name", isMedal, /* isFleetsCanRunInParallel */ true, regattaFleets, raceColumnNames, trackedRegattaRegistry); Iterable regattaSeries = Collections.singleton(series); - return new RegattaImpl(regattaName, boatClass, /* canBoatsOfCompetitorsChangePerRace */ true, + return new RegattaImpl(regattaName, boatClass, /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, startDate, endDate, regattaSeries, persistent, scoringScheme, regatteId , courseArea, OneDesignRankingMetric::new); } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java index a9a968c5b42..a5481c07b4f 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java @@ -44,7 +44,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, null, null, new HashSet(), false, null, + /* trackedRegatta */new DynamicTrackedRegattaImpl(new RegattaImpl("test", null, true, false, null, null, new HashSet(), false, null, "test", null, OneDesignRankingMetric::new)), race, Collections. emptyList(), EmptyWindStore.INSTANCE, /* delayToLiveInMillis */1000, /* millisecondsOverWhichToAverageWind */30000, diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java index c32a54c0218..520afa7188c 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java @@ -304,7 +304,8 @@ public class WindTest { DynamicTrackedRace trackedRace = new DynamicTrackedRaceImpl(new DynamicTrackedRegattaImpl( new RegattaImpl(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("Test Regatta", boatClass.getName()), boatClass, - /* canBoatsOfCompetitorsChangePerRace */ true, /*startDate*/ null, /*endDate*/ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null, domainFactory.createScoringScheme(ScoringSchemeType.LOW_POINT), "123", null)), new RaceDefinitionImpl("Test Race", new CourseImpl("Test Course", Arrays.asList(new Waypoint[] { w1, w2, w3 })), diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java index 3bb5c0ecdd8..def4524be32 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java @@ -72,7 +72,8 @@ public class AbstractMockedRaceMarkPassingTest { Waypoint w4 = new WaypointImpl(m, PassingInstruction.Starboard); 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, + Regatta r = new RegattaImpl(RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, Arrays.asList(new SeriesImpl("Series", true, /* isFleetsCanRunInParallel */ true, Arrays.asList(new FleetImpl("fleet")), new ArrayList(), null)), true, new HighPoint(), "ID", new CourseAreaImpl("area", new UUID(5, 5)), OneDesignRankingMetric::new); Course course = new CourseImpl("course", waypoints); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java index df32d1244a7..a16d753e2b0 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java @@ -344,6 +344,11 @@ public class MockedTrackedRace implements DynamicTrackedRace { return false; } + @Override + public boolean canCompetitorsRegisterToOpenRegatta() { + return false; + } + @Override public void addRace(RaceDefinition race) { } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java index 6295f03a6b4..4b13ac94da9 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java @@ -48,7 +48,8 @@ public class TrackedRegattaTest { public void setUp() { regatta = new DynamicTrackedRegattaImpl(new RegattaImpl(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass, - /* canBoatsOfCompetitorsChangePerRace */ false, /* startDate */ null, /* endDate */null, null, null, "a", null)); + /* canBoatsOfCompetitorsChangePerRace */ false, /* canCompetitorsRegisterToOpenRegatta*/ false, + /* startDate */ null, /* endDate */null, null, null, "a", null)); } @Test(expected = TimeoutException.class) diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java index da49ca9a085..0a7b45fe190 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java @@ -456,7 +456,8 @@ public class DomainFactoryImpl implements DomainFactory { if (result == null) { result = new RegattaImpl(raceLogStore, regattaLogStore, RegattaImpl.getDefaultName( defaultRegattaNameAndBoatClass.getA(), boatClass.getName()), boatClass, - /* canBoatsOfCompetitorsChangePerRace */ false, /*startDate*/ null, /*endDate*/ null, + /* canBoatsOfCompetitorsChangePerRace */ false, /* canCompetitorsRegisterToOpenRegatta*/ false, + /*startDate*/ null, /*endDate*/ null, trackedRegattaRegistry, // use the low-point system as the default scoring scheme getBaseDomainFactory().createScoringScheme(ScoringSchemeType.LOW_POINT), race.getId(), null); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java index 0071b6de40b..9f8ddebf9fc 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java @@ -152,6 +152,8 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene private boolean canBoatsOfCompetitorsChangePerRace; + private boolean canCompetitorsRegisterToOpenRegatta; + /** * Defaults to true. See {@link Regatta#useStartTimeInference()}. */ @@ -166,10 +168,12 @@ 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, TimePoint startDate, TimePoint endDate, + public RegattaImpl(String name, BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta, + TimePoint startDate, TimePoint endDate, Iterable series, boolean persistent, ScoringScheme scoringScheme, Serializable id, CourseArea courseArea, RankingMetricConstructor rankingMetricConstructor) { - this(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE, name, boatClass, canBoatsOfCompetitorsChangePerRace, startDate, endDate, series, + this(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE, name, boatClass, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, + startDate, endDate, series, persistent, scoringScheme, id, courseArea, 0.0, /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, rankingMetricConstructor); } @@ -187,9 +191,11 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene * carried out. */ public RegattaImpl(RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, String name, BoatClass boatClass, - boolean canBoatsOfCompetitorsChangePerRace, TimePoint startDate, TimePoint endDate, TrackedRegattaRegistry trackedRegattaRegistry, + boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta, + TimePoint startDate, TimePoint endDate, TrackedRegattaRegistry trackedRegattaRegistry, ScoringScheme scoringScheme, Serializable id, CourseArea courseArea) { - this(raceLogStore, regattaLogStore, name, boatClass, canBoatsOfCompetitorsChangePerRace, startDate, endDate, trackedRegattaRegistry, scoringScheme, + this(raceLogStore, regattaLogStore, name, boatClass, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, + startDate, endDate, trackedRegattaRegistry, scoringScheme, id, courseArea, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); } @@ -204,11 +210,12 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene * carried out. */ public RegattaImpl(RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, String name, BoatClass boatClass, - boolean canBoatsOfCompetitorsChangePerRace, TimePoint startDate, TimePoint endDate, TrackedRegattaRegistry trackedRegattaRegistry, + boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta, + TimePoint startDate, TimePoint endDate, TrackedRegattaRegistry trackedRegattaRegistry, ScoringScheme scoringScheme, Serializable id, CourseArea courseArea, boolean controlTrackingFromStartAndFinishTimes, RankingMetricConstructor rankingMetricConstructor) { - this(raceLogStore, regattaLogStore, name, boatClass, canBoatsOfCompetitorsChangePerRace, startDate, endDate, Collections - .singletonList(new SeriesImpl(LeaderboardNameConstants.DEFAULT_SERIES_NAME, + this(raceLogStore, regattaLogStore, name, boatClass, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, + startDate, endDate, Collections.singletonList(new SeriesImpl(LeaderboardNameConstants.DEFAULT_SERIES_NAME, /* isMedal */false, /* isFleetsCanRunInParallel */ true, Collections .singletonList(new FleetImpl(LeaderboardNameConstants.DEFAULT_FLEET_NAME)), /* race column names */new ArrayList(), trackedRegattaRegistry)), /* persistent */false, @@ -222,7 +229,8 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene * this new regatta. */ public RegattaImpl(RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, String name, - BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, TimePoint startDate, TimePoint endDate, Iterable series, boolean persistent, + BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta, + TimePoint startDate, TimePoint endDate, Iterable series, boolean persistent, ScoringScheme scoringScheme, Serializable id, CourseArea courseArea, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, RankingMetricConstructor rankingMetricConstructor) { super(name); @@ -236,6 +244,7 @@ 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 seriesList = new ArrayList(); @@ -758,6 +767,15 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene this.canBoatsOfCompetitorsChangePerRace = canBoatsOfCompetitorsChangePerRace; } + @Override + public boolean canCompetitorsRegisterToOpenRegatta() { + return this.canCompetitorsRegisterToOpenRegatta; + } + + public void setCanCompetitorsRegisterToOpenRegatta(boolean canCompetitorsRegisterToOpenRegatta) { + this.canCompetitorsRegisterToOpenRegatta = canCompetitorsRegisterToOpenRegatta; + } + @Override public RegattaLog getRegattaLog() { return regattaLikeHelper.getRegattaLog(); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/FlexibleLeaderboardImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/FlexibleLeaderboardImpl.java index c1ad87952d9..ba9a1c9099f 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/FlexibleLeaderboardImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/FlexibleLeaderboardImpl.java @@ -377,6 +377,11 @@ public class FlexibleLeaderboardImpl extends AbstractLeaderboardImpl implements return false; } + @Override + public boolean canCompetitorsRegisterToOpenRegatta() { + return false; + } + /** * In addition to invoking the superclass implementation, a flexible leaderboard also * detaches all race logs from any tracked race currently linked to any of the race columns diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java index 6af52a166ce..23fbbd5ae14 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java @@ -66,6 +66,11 @@ public abstract class BaseRegattaLikeImpl implements IsRegattaLike { return false; } + @Override + public boolean canCompetitorsRegisterToOpenRegatta() { + return false; + } + private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException { ois.defaultReadObject(); listeners = new HashSet<>(); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/IsRegattaLike.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/IsRegattaLike.java index 31d79128404..20a2c45b615 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/IsRegattaLike.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/IsRegattaLike.java @@ -31,7 +31,13 @@ public interface IsRegattaLike extends Serializable { * @return true when the competitors change their boats, false otherwise */ boolean canBoatsOfCompetitorsChangePerRace(); - + + /** + * Can a user register himself to this regatta. + * @return true if user can register to regatta + */ + boolean canCompetitorsRegisterToOpenRegatta(); + RaceColumn getRaceColumnByName(String raceColumnName); RegattaLikeIdentifier getRegattaLikeIdentifier(); diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java index 5ba15b24bcb..03474bb8a21 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java @@ -40,7 +40,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, /*startDate*/ null, /*endDate*/ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), Collections.singletonList(series), false, new HighPoint(), UUID.randomUUID(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, RankingMetricsFactory.getRankingMetricConstructor(RankingMetrics.ONE_DESIGN)); diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java index 85bd7c5ae26..cf658deb6fb 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java @@ -95,7 +95,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, null, null, + final RegattaDTO regatta = sailingService.createRegatta(regattaName, boatClassName, false, false, null, null, regattaCreationParameters, false, ScoringSchemeType.HIGH_POINT, null, 3.0, false, false, RankingMetrics.ONE_DESIGN); final List> columnNames = new ArrayList<>(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CreateRegattaCallback.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CreateRegattaCallback.java index f4f84e696df..e53d134ab26 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CreateRegattaCallback.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CreateRegattaCallback.java @@ -64,7 +64,7 @@ public class CreateRegattaCallback implements DialogCallback{ seriesStructure.put(seriesDTO.getName(), seriesPair); } sailingService.createRegatta(newRegatta.getName(), newRegatta.boatClass==null?null:newRegatta.boatClass.getName(), - newRegatta.canBoatsOfCompetitorsChangePerRace, newRegatta.startDate, newRegatta.endDate, + newRegatta.canBoatsOfCompetitorsChangePerRace, newRegatta.canCompetitorsRegisterToOpenRegatta, newRegatta.startDate, newRegatta.endDate, new RegattaCreationParametersDTO(seriesStructure), true, newRegatta.scoringScheme, newRegatta.defaultCourseAreaUuid, newRegatta.buoyZoneRadiusInHullLengths, newRegatta.useStartTimeInference, newRegatta.controlTrackingFromStartAndFinishTimes, diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java index 6408bdccfd5..ab6e6d8a13f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java @@ -61,6 +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 configuration; private final Label buoyZoneRadiusInHullLengths; @@ -81,7 +82,7 @@ public class RegattaDetailsComposite extends Composite { VerticalPanel vPanel = new VerticalPanel(); mainPanel.add(vPanel); - int rows = 13; + int rows = 14; Grid grid = new Grid(rows, 2); vPanel.add(grid); @@ -95,6 +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"); buoyZoneRadiusInHullLengths = createLabelAndValueWidget(grid, currentRow++, stringMessages.buoyZoneRadiusInHullLengths(), "BuoyZoneRadiusInHullLengthsLabel"); configuration = createLabelAndValueWidget(grid, currentRow++, stringMessages.racingProcedureConfiguration(), "RacingProcedureLabel"); scoringSystem = createLabelAndValueWidget(grid, currentRow++, stringMessages.scoringSystem(), "ScoringSystemLabel"); @@ -403,6 +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()); buoyZoneRadiusInHullLengths.setText(String.valueOf(regatta.buoyZoneRadiusInHullLengths)); if (regatta.configuration != null) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java index 0fbc3a63043..b6b617946ec 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java @@ -172,6 +172,16 @@ public class RegattaListComposite extends Composite implements RegattasDisplayer regattaCanBoatsOfCompetitorsChangePerRaceColumn.setSortable(true); columnSortHandler.setComparator(regattaCanBoatsOfCompetitorsChangePerRaceColumn, (r1, r2)->Boolean.valueOf(r1.canBoatsOfCompetitorsChangePerRace).compareTo(Boolean.valueOf(r2.canBoatsOfCompetitorsChangePerRace))); + + TextColumn regattaCanCompetitorsRegisterToOpenRegatta = new TextColumn() { + @Override + public String getValue(RegattaDTO regatta) { + return regatta.canCompetitorsRegisterToOpenRegatta ? stringMessages.yes() : stringMessages.no(); + } + }; + regattaCanCompetitorsRegisterToOpenRegatta.setSortable(true); + columnSortHandler.setComparator(regattaCanCompetitorsRegisterToOpenRegatta, + (r1, r2)->Boolean.valueOf(r1.canCompetitorsRegisterToOpenRegatta).compareTo(Boolean.valueOf(r2.canCompetitorsRegisterToOpenRegatta))); TextColumn startEndDateColumn = new TextColumn() { @Override @@ -244,6 +254,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(startEndDateColumn, stringMessages.from() + "/" + stringMessages.to()); table.addColumn(regattaBoatClassColumn, stringMessages.boatClass()); table.addColumn(rankingMetricColumn, stringMessages.rankingMetric()); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java index 4171113f86a..2738fe2530d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java @@ -22,6 +22,7 @@ public abstract class RegattaWithSeriesAndFleetsDialog extends AbstractRegattaWi protected TextBox nameEntryField; protected SuggestBox boatClassEntryField; protected CheckBox canBoatsOfCompetitorsChangePerRaceCheckBox; + protected CheckBox canCompetitorsRegisterToOpenRegattaCheckBox; public RegattaWithSeriesAndFleetsDialog(RegattaDTO regatta, Iterable series, List existingEvents, EventDTO defaultEvent, String title, String okButton, StringMessages stringMessages, @@ -40,6 +41,10 @@ public abstract class RegattaWithSeriesAndFleetsDialog extends AbstractRegattaWi canBoatsOfCompetitorsChangePerRaceCheckBox = createCheckbox(""); canBoatsOfCompetitorsChangePerRaceCheckBox.ensureDebugId("CanBoatsOfCompetitorsChangePerRaceCheckBox"); canBoatsOfCompetitorsChangePerRaceCheckBox.setValue(regatta.canBoatsOfCompetitorsChangePerRace); + + canCompetitorsRegisterToOpenRegattaCheckBox = createCheckbox(""); + canCompetitorsRegisterToOpenRegattaCheckBox.ensureDebugId("CanCompetitorsRegisterToOpenRegattaCheckBox"); + canCompetitorsRegisterToOpenRegattaCheckBox.setValue(regatta.canCompetitorsRegisterToOpenRegatta); } @Override @@ -55,6 +60,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(); return result; } @@ -69,5 +75,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); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java index f48ece808f9..20511dc2fb3 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java @@ -2,6 +2,7 @@ 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; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java index 5fb8ed0f5be..8f49a859426 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java @@ -232,7 +232,8 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS void moveLeaderboardColumnDown(String leaderboardName, String columnName); - RegattaDTO createRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, Date startDate, Date endDate, + RegattaDTO createRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, + boolean canCompetitorsRegisterToOpenRegatta, Date startDate, Date endDate, RegattaCreationParametersDTO seriesNamesWithFleetNamesAndFleetOrderingAndMedal, boolean persistent, ScoringSchemeType scoringSchemeType, UUID defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, RankingMetrics rankingMetricType); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java index eeb24b6ab61..33eda5c9f7d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java @@ -455,7 +455,8 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan void moveRaceColumnInSeriesDown(RegattaIdentifier regattaIdentifier, String seriesName, String columnName, AsyncCallback callback); - void createRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, Date startDate, Date endDate, + void createRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, + boolean canCompetitorsRegisterToOpenRegatta, Date startDate, Date endDate, RegattaCreationParametersDTO seriesNamesWithFleetNamesAndFleetOrderingAndMedal, boolean persistent, ScoringSchemeType scoringSchemeType, UUID defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, RankingMetrics rankingMetricType, diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index 0dd9b930360..92f8d117850 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -1190,8 +1190,10 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, String setTimeToNow(); String useStartTimeInference(); String controlTrackingFromStartAndFinishTimes(); - String canBoatsOfCompetitorsChangePerRace(); + String canBoatsOfCompetitorsChangePerRace(); + String canCompetitorsRegisterToOpenRegatta(); String canBoatsChange(); + String canRegisterIfOpen(); String canNotRegisterBoats(); String numberOfQueueMessagesSent(); String totalSize(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index 0671a9a7b8a..22bb772a440 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -1178,7 +1178,9 @@ 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. numberOfQueueMessagesSent=Number of queue messages sent totalSize=Total Size diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index 20fdc5e3342..6839495d2d2 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -1165,7 +1165,9 @@ 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. numberOfQueueMessagesSent=Anzahl verschickter Queue Nachrichten totalSize=Gesamtgröße diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index de87a5b49c6..ebea8caaed7 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -998,6 +998,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.configuration = convertToRegattaConfigurationDTO(regatta.getRegattaConfiguration()); regattaDTO.rankingMetricType = regatta.getRankingMetricType(); return regattaDTO; @@ -4424,7 +4425,8 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } @Override - public RegattaDTO createRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, Date startDate, Date endDate, + public RegattaDTO createRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, + boolean canCompetitorsRegisterToOpenRegatta, Date startDate, Date endDate, RegattaCreationParametersDTO seriesNamesWithFleetNamesAndFleetOrderingAndMedal, boolean persistent, ScoringSchemeType scoringSchemeType, UUID defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, RankingMetrics rankingMetricType) { @@ -4433,7 +4435,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, startTimePoint, endTimePoint, UUID.randomUUID(), + regattaName, boatClassName, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, startTimePoint, endTimePoint, UUID.randomUUID(), seriesNamesWithFleetNamesAndFleetOrderingAndMedal, persistent, baseDomainFactory.createScoringScheme(scoringSchemeType), defaultCourseAreaId, buoyZoneRadiusInHullLengths, useStartTimeInference, controlTrackingFromStartAndFinishTimes, rankingMetricType)); @@ -4683,8 +4685,10 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } private void createRegattaFromRegattaDTO(RegattaDTO regatta) { + 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.startDate, regatta.endDate, + this.createRegatta(regatta.getName(), regatta.boatClass.getName(), regatta.canBoatsOfCompetitorsChangePerRace, + regatta.canCompetitorsRegisterToOpenRegatta, regatta.startDate, regatta.endDate, new RegattaCreationParametersDTO(getSeriesCreationParameters(regatta)), true, regatta.scoringScheme, regatta.defaultCourseAreaUuid, regatta.buoyZoneRadiusInHullLengths, regatta.useStartTimeInference, regatta.controlTrackingFromStartAndFinishTimes, regatta.rankingMetricType); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java index 4b79c07ff37..9d39d0ccaa9 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java @@ -37,6 +37,7 @@ public class RegattaDTO extends NamedDTO { public boolean useStartTimeInference = true; public boolean controlTrackingFromStartAndFinishTimes = false; public boolean canBoatsOfCompetitorsChangePerRace = false; + public boolean canCompetitorsRegisterToOpenRegatta = false; public RankingMetrics rankingMetricType; public Double buoyZoneRadiusInHullLengths; @@ -70,6 +71,7 @@ public class RegattaDTO extends NamedDTO { this.useStartTimeInference = other.useStartTimeInference; this.controlTrackingFromStartAndFinishTimes = other.controlTrackingFromStartAndFinishTimes; this.canBoatsOfCompetitorsChangePerRace = other.canBoatsOfCompetitorsChangePerRace; + this.canCompetitorsRegisterToOpenRegatta = other.canCompetitorsRegisterToOpenRegatta; this.buoyZoneRadiusInHullLengths = other.buoyZoneRadiusInHullLengths; } diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java index 6f50e726394..46297503553 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java @@ -62,7 +62,8 @@ public abstract class AbstractTestStoringAndRetrievingRaceLogInRegatta extends R List series = createSeriesForTestRegatta(); Regatta regatta = new RegattaImpl(getRaceLogStore(), getRegattaLogStore(), RegattaImpl.getDefaultName(regattaBaseName, boatClass == null ? null : boatClass.getName()), boatClass, - /* canBoatsOfCompetitorsChangePerRace */ true, /*startDate*/ null, /*endDate*/ null, series, persistent, scoringScheme, "123", + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /*startDate*/ null, /*endDate*/ null, series, persistent, scoringScheme, "123", courseArea, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); return regatta; } diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java index 5b844e71982..4ae5d665bbc 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java @@ -49,7 +49,7 @@ public class RaceLogConnectivityParamsLoadAndStoreTest extends AbstractConnectiv final SeriesImpl theSeries = new SeriesImpl("Default", /* isMedal */ false, /* isFleetsCanRunInParallel */ true, Arrays.asList(fleet), Collections.emptyList(), racingEventService); final Iterable series = Arrays.asList(theSeries); - final Regatta regatta = racingEventService.createRegatta("My Regatta", "12mR", true, MillisecondsTimePoint.now(), MillisecondsTimePoint.now().plus(Duration.ONE_DAY), + final Regatta regatta = racingEventService.createRegatta("My Regatta", "12mR", true, false, 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); diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java index 23d486d1898..cb5f4137365 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java @@ -421,7 +421,7 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest /* canBoatsOfCompetitorsChangePerRace */ false, 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, regattaStartDate, regattaEndDate, + /* canBoatsOfCompetitorsChangePerRace */ false, /* canCompetitorsRegisterToOpenRegatta */ false, regattaStartDate, regattaEndDate, "123", regattaProxy.getSeries(), regattaProxy.isPersistent(), DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), /* defaultCourseAreaId */ null, /*buoyZoneRadiusInHullLengths*/ 2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); @@ -496,7 +496,7 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest 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.getStartDate(), regattaProxy.getEndDate(), + regattaProxy.canBoatsOfCompetitorsChangePerRace(), regattaProxy.canCompetitorsRegisterToOpenRegatta(), 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); @@ -915,7 +915,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, startDate, endDate, + Regatta regatta = new RegattaImpl(regattaName, boatClass, canBoatsOfCompetitorsChangePerRace, /* canCompetitorsRegisterToOpenRegatta */ false, startDate, endDate, series, persistent, scoringScheme, "123", courseArea, rankingMetricConstructor); return regatta; } diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java index 8e37fc9c85f..c082540d9d9 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java @@ -21,6 +21,7 @@ public class RegattaJsonSerializer implements JsonSerializer { 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"; private final JsonSerializer seriesSerializer; private final JsonSerializer competitorSerializer; @@ -47,6 +48,7 @@ public class RegattaJsonSerializer implements JsonSerializer { 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()); if (seriesSerializer != null) { JSONArray seriesJson = new JSONArray(); for (Series series : regatta.getSeries()) { diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java index 7212f2fd7e1..a85e88fe395 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java @@ -125,7 +125,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); + /* boatClassNameParam */ null, /* numberOfRacesParam */ null, false, /* canCompetitorsRegisterToOpenRegatta */ false); } private Response createEvent() throws ParseException, NotFoundException, NumberFormatException, IOException, @@ -135,7 +135,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); + /* boatClassNameParam */ null, /* numberOfRacesParam */ null, false, /* canCompetitorsRegisterToOpenRegatta */ false); } private Response createEventAtLocation(Position location) throws ParseException, NotFoundException, @@ -146,7 +146,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); + /* boatClassNameParam */ null, /* numberOfRacesParam */ null, false, /* canCompetitorsRegisterToOpenRegatta */ false); } private Response createEventWithLeaderboardGroupAndRegatta() throws ParseException, NotFoundException, @@ -156,7 +156,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); + /* boatClassNameParam */ "A_CAT", /* numberOfRacesParam */ null, false, /* canCompetitorsRegisterToOpenRegatta */ false); } private Response getLeaderboard(String name) { diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java index 8af652a9185..c2cdf1d832f 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java @@ -50,7 +50,7 @@ public class LeaderboardGroupResourceTest extends AbstractJaxRsApiTest { raceColumnNames, /* trackedRegattaRegistry */null); series.add(testSeries); regatta = racingEventService.createRegatta(RegattaImpl.getDefaultName(regattaName, boatClassName), boatClassName, - /* canBoatsOfCompetitorsChangePerRace */ true, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), series, /*persistent*/ true, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*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); diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java index 6bfccf4152c..f0e140ac1d0 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java @@ -56,8 +56,8 @@ 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, MillisecondsTimePoint.now(), - MillisecondsTimePoint.now(), Collections.singleton(new SeriesImpl("series", false, /* isFleetsCanRunInParallel */ true, Collections + Regatta regatta = new RegattaImpl("regatta", boatClass, /* canBoatsOfCompetitorsChangePerRace */ false, /* canCompetitorsRegisterToOpenRegatta */ false, + 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); racingEventService.addRegattaWithoutReplication(regatta); diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java index 732fdf86af2..0b3f5bf340e 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java @@ -60,8 +60,8 @@ 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, MillisecondsTimePoint.now(), - MillisecondsTimePoint.now(), Collections.singleton(new SeriesImpl("series", false, /* isFleetsCanRunInParallel */ true, Collections + Regatta regatta = new RegattaImpl("regatta", new BoatClassImpl("49er", false), /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, + 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); racingEventService.addRegattaWithoutReplication(regatta); diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java index 193caf04f74..d857e704429 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java @@ -58,7 +58,7 @@ public class LeaderboardsResourceTest extends AbstractJaxRsApiTest { raceColumnNames, /* trackedRegattaRegistry */null); series.add(testSeries); regatta = racingEventService.createRegatta(RegattaImpl.getDefaultName(regattaBaseName, boatClassName), boatClassName, - /* canBoatsOfCompetitorsChangePerRace */ true, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), series, /*persistent*/ true, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*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); diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java index 0b28ae7e9b8..71c3552a6f5 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java @@ -48,7 +48,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, startDate, endDate, UUID.randomUUID(), series, /*persistent*/ true, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, 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); diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java index 2311a530738..264fede2a40 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java @@ -135,7 +135,8 @@ public class EventsResource extends AbstractSailingServerResource { @FormParam("createregatta") String createRegattaParam, @FormParam("boatclassname") String boatClassNameParam, @FormParam("numberofraces") String numberOfRacesParam, - @FormParam("canBoatsOfCompetitorsChangePerRace") boolean canBoatsOfCompetitorsChangePerRace) throws ParseException, NotFoundException, + @FormParam("canBoatsOfCompetitorsChangePerRace") boolean canBoatsOfCompetitorsChangePerRace, + @FormParam("canCompetitorsRegisterToOpenRegatta") boolean canCompetitorsRegisterToOpenRegatta) throws ParseException, NotFoundException, NumberFormatException, IOException, org.json.simple.parser.ParseException, InvalidDateException { if (enforceSecurityChecks) { SecurityUtils.getSubject().checkPermission(Permission.EVENT.getStringPermission(Mode.CREATE)); @@ -148,7 +149,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); + boatClassNameParam, numberOfRacesParam, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta); final JSONObject jsonResponse = new JSONObject(); jsonResponse.put("eventid", eventAndLeaderboardGroupAndLeaderboard.getA().getId().toString()); jsonResponse.put("eventname", eventAndLeaderboardGroupAndLeaderboard.getA().getName()); @@ -335,7 +336,8 @@ 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 leaderboardDiscardThresholdsParam, String numberOfRacesParam, boolean canBoatsOfCompetitorsChangePerRace) + String rankingMetricParam, List leaderboardDiscardThresholdsParam, String numberOfRacesParam, boolean canBoatsOfCompetitorsChangePerRace, + boolean canCompetitorsRegisterToOpenRegatta) throws ParseException, NotFoundException { boolean controlTrackingFromStartAndFinishTimes = controlTrackingFromStartAndFinishTimesParam == null ? false : Boolean.parseBoolean(controlTrackingFromStartAndFinishTimesParam); boolean useStartTimeInterference = useStartTimeInterferenceParam == null ? true : Boolean.parseBoolean(useStartTimeInterferenceParam); @@ -355,7 +357,7 @@ public class EventsResource extends AbstractSailingServerResource { RegattaCreationParametersDTO regattaCreationParametersDTO = new RegattaCreationParametersDTO( createDefaultSeriesCreationParameters(regattaName, numberOfRaces)); UUID regattaId = UUID.randomUUID(); - addRegatta(regattaName, canBoatsOfCompetitorsChangePerRace, controlTrackingFromStartAndFinishTimes, useStartTimeInterference, + addRegatta(regattaName, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, controlTrackingFromStartAndFinishTimes, useStartTimeInterference, buoyZoneRadiusInHullLengths, courseAreaId, boatClassName, /* startDate */ null, /* endDate */ null, scoringScheme, rankingMetric, regattaId, regattaCreationParametersDTO, leaderboardDiscardThresholds, numberOfRaces); final RegattaLeaderboard leaderboard = addLeaderboard(regattaName, leaderboardDiscardThresholds); @@ -376,7 +378,8 @@ public class EventsResource extends AbstractSailingServerResource { String venueNameParam, String venueLat, String venueLng, String isPublicParam, String officialWebsiteURLParam, String baseURLParam, List leaderboardGroupIdsListParam, String createLeaderboardGroupParam, String createRegattaParam, String boatClassName, - String numberOfRacesParam, boolean canBoatsOfCompetitorsChangePerRace) throws ParseException, NotFoundException, NumberFormatException, IOException, + String numberOfRacesParam, boolean canBoatsOfCompetitorsChangePerRace, + boolean canCompetitorsRegisterToOpenRegatta) 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); @@ -414,7 +417,7 @@ public class EventsResource extends AbstractSailingServerResource { /* scoringSchemeParam */ null, courseArea.getId(), /* buoyZoneRadiusInHullLengthsParam */ null, /* useStartTimeInterferenceParam */ null, /* controlTrackingFromStartAndFinishTimesParam */ null, /* rankingMetricParam */ null, /* leaderboardDiscardThresholdsParam */ null, - numberOfRacesParam, canBoatsOfCompetitorsChangePerRace); + numberOfRacesParam, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta); if (leaderboardGroup != null) { getService().apply(new UpdateLeaderboardGroup(leaderboardGroup.getName(), leaderboardGroup.getName(), leaderboardGroup.getDescription(), leaderboardGroup.getDisplayName(), @@ -538,7 +541,8 @@ public class EventsResource extends AbstractSailingServerResource { return getService().apply(new AddCourseAreas(eventId, courseAreaNames, courseAreaIds))[0]; } - private Regatta addRegatta(String regattaName, boolean canBoatsOfCompetitorsChangePerRace, boolean controlTrackingFromStartAndFinishTimes, boolean useStartTimeInterference, + private Regatta addRegatta(String regattaName, boolean canBoatsOfCompetitorsChangePerRace, + boolean canCompetitorsRegisterToOpenRegatta, boolean controlTrackingFromStartAndFinishTimes, boolean useStartTimeInterference, double buoyZoneRadiusInHullLengths, UUID courseAreaId, String boatClassName, MillisecondsTimePoint startDate, MillisecondsTimePoint endDate, ScoringScheme scoringScheme, RankingMetrics rankingMetric, UUID regattaId, RegattaCreationParametersDTO regattaCreationParametersDTO, @@ -546,7 +550,8 @@ public class EventsResource extends AbstractSailingServerResource { if (enforceSecurityChecks) { SecurityUtils.getSubject().checkPermission(Permission.REGATTA.getStringPermissionForObjects(Mode.CREATE, regattaName)); } - Regatta regatta = getService().apply(new AddSpecificRegatta(regattaName, boatClassName, canBoatsOfCompetitorsChangePerRace, startDate, endDate, regattaId, + Regatta regatta = getService().apply(new AddSpecificRegatta(regattaName, boatClassName, canBoatsOfCompetitorsChangePerRace, + canCompetitorsRegisterToOpenRegatta, startDate, endDate, regattaId, regattaCreationParametersDTO, /* isPersistent */ true, scoringScheme, courseAreaId, buoyZoneRadiusInHullLengths, useStartTimeInterference, controlTrackingFromStartAndFinishTimes, rankingMetric)); return regatta; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java index b96ad4ba34d..316ab61c1c2 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java @@ -625,7 +625,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, + /* can boats of competitors change */ false, /* canCompetitorsRegisterToOpenRegatta */ false, /* start date */ null, /* end date */ null, UUID.randomUUID(), regattaCreationParameters, true, scoringScheme, courseAreaId, buoyZoneRadiusInHullLengths, true, false, rankingMetric)); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java index 4a84393f943..f76142be559 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java @@ -103,7 +103,7 @@ public abstract class AbstractLogReplicationTest series = Collections.emptyList(); Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), boatClassName, - /* canBoatsOfCompetitorsChangePerRace */ true, /*startDate*/ null, /*endDate*/ null, regattaId, series, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*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 emptyWaypointList = Collections.emptyList(); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java index 4a23407866c..dfdc1825e10 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java @@ -82,7 +82,7 @@ public class CompetitorReplicationTest extends AbstractServerReplicationTest { URI flagImageURI = new URI("http://www.sapsailing.com"); Iterable series = Collections.emptyList(); Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), boatClassName, - /* canBoatsOfCompetitorsChangePerRace */ true, /*startDate*/ null, /*endDate*/ null, regattaId, series, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*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 emptyWaypointList = Collections.emptyList(); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java index 6344896625f..11aa93bc485 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java @@ -126,7 +126,7 @@ public class InitialLoadReplicationObjectIdentityTest extends AbstractServerRepl final String boatClassName = "49er"; final Iterable series = Collections.emptyList(); Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), boatClassName, - /* canBoatsOfCompetitorsChangePerRace */ true, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), series, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*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())); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java index a66bd5a49d7..4c6baa6819b 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java @@ -45,7 +45,7 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { final Iterable series = Collections.emptyList(); final UUID regattaId = UUID.randomUUID(); Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), boatClassName, - /* canBoatsOfCompetitorsChangePerRace */ true, /*startDate*/ null, /*endDate*/ null, regattaId, series, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*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 +71,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, /*startDate*/ null, /*endDate*/ null, regattaId1, series, + canBoatsOfCompetitorsChangePerRaceRegatta1, /* canCompetitorsRegisterToOpenRegatta */ false, /*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, /*startDate*/ null, /*endDate*/ null, regattaId2, series, + canBoatsOfCompetitorsChangePerRaceRegatta2, /* canCompetitorsRegisterToOpenRegatta */ false, /*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 +104,7 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { UUID currentCourseAreaId = null; Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName("Kiel Week 2012", "49er"), "49er", - /* canBoatsOfCompetitorsChangePerRace */ true, /*startDate*/ null, /*endDate*/ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), Collections.emptyList(), /* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), currentCourseAreaId, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); @@ -157,7 +157,7 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { UUID currentCourseAreaId = null; Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName("RR", "49er"), "49er", - /* canBoatsOfCompetitorsChangePerRace */ true, /*startDate*/ null, /*endDate*/ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), Collections.emptyList(), true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), currentCourseAreaId, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); @@ -206,7 +206,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, /*startDate*/ null, /*endDate*/ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*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 +243,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, /*startDate*/ null, /*endDate*/ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*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 +288,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, /*startDate*/ null, /*endDate*/ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*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 +327,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, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), series, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*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); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java index 8d0e6f8ea80..48c92b9aac8 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java @@ -97,6 +97,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, /* startDate */ null, /* endDate */ null, UUID.randomUUID(), /* start with no series */ Collections.emptySet(), /* persistent */ true, new LowPoint(), /* defaultCourseAreaId */ UUID.randomUUID(), diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java index 05bfee91a2e..d03658200ff 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java @@ -70,8 +70,8 @@ public class StatisticsTest { @Before public void setUp() { regatta = new DynamicTrackedRegattaImpl(new RegattaImpl(EmptyRaceLogStore.INSTANCE, - EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass, false, - /* startDate */ null, /* endDate */null, null, null, "a", null)); + EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName("regatta", boatClass.getName()), boatClass, false, + /* canCompetitorsRegisterToOpenRegatta*/ false, /* startDate */ null, /* endDate */null, null, null, "a", null)); final Course course = new CourseImpl("course", Arrays.asList(new Waypoint[] { waypoint1, waypoint2, waypoint3 })); diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java index 1c79016d831..6a35833d03a 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java @@ -231,7 +231,8 @@ 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, /* startDate */null, /* endDate */null, regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, + /* startDate */null, /* endDate */null, regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); for (String name : raceColumnNames) { @@ -554,7 +555,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, /* startDate */null, /* endDate */null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null, regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); for (String name : raceColumnNames) { @@ -710,7 +711,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, /* startDate */null, /* endDate */null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null, regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); for (String name : raceColumnNames) { @@ -874,7 +875,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, /* startDate */null, /* endDate */null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null, regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); @@ -1033,7 +1034,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, /* startDate */null, /* endDate */null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null, regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); for (String name : raceColumnNames) { @@ -1145,7 +1146,7 @@ public class MasterDataImportTest { destService)); Regatta regattaNotToOverride = destService.createRegatta( RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME, - /* canBoatsOfCompetitorsChangePerRace */ true, /* startDate */ null, /* endDate */null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */ null, /* endDate */null, regattaUUID, seriesNotToOverride, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); @@ -1234,7 +1235,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, /* startDate */null, /* endDate */null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null, regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); @@ -1343,7 +1344,7 @@ public class MasterDataImportTest { destService)); Regatta regattaToOverride = destService.createRegatta( RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME, - /* canBoatsOfCompetitorsChangePerRace */ true, /* startDate */ null, /* endDate */null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */ null, /* endDate */null, regattaUUID, seriesToOverride, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); @@ -1453,7 +1454,7 @@ public class MasterDataImportTest { Regatta regatta = sourceService.createRegatta( RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME, - /* canBoatsOfCompetitorsChangePerRace */ true, /* startDate */ + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */ null, /* endDate */null, UUID.randomUUID(), new ArrayList(), 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 @@ -1536,7 +1537,7 @@ public class MasterDataImportTest { Regatta regatta = sourceService.createRegatta( RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME, - /* canBoatsOfCompetitorsChangePerRace */ true, /* startDate */null, /* endDate */null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null, regattaUUID, series, true, new LowPoint(), defaultCourseArea.getId(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); @@ -1670,7 +1671,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, /* startDate */null, /* endDate */null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null, regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); @@ -1913,7 +1914,8 @@ 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, /* startDate */null, /* endDate */null, regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, + /* startDate */null, /* endDate */null, regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); for (String name : raceColumnNames) { @@ -2142,7 +2144,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, /* startDate */ null, /* endDate */null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */ null, /* endDate */null, regattaUUID, seriesOnSource, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); for (String name : raceColumnNames) { @@ -2269,7 +2271,7 @@ public class MasterDataImportTest { Regatta regattaOnTarget = destService.createRegatta( RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME, - /* canBoatsOfCompetitorsChangePerRace */ true, /* startDate */null, /* endDate */null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /* startDate */null, /* endDate */null, regattaUUID, seriesOnTarget, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index 8d244c15438..d370d3146eb 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -73,7 +73,8 @@ public class RaceTrackerStartStopTest { boatClass = new BoatClassImpl(BOATCLASSNAME, /* typicallyStartsUpwind */ true); regatta = new RegattaImpl(EmptyRaceLogStore.INSTANCE, EmptyRegattaLogStore.INSTANCE, RegattaImpl.getDefaultName(EVENTNAME, boatClass.getName()), boatClass, - /* canBoatsOfCompetitorsChangePerRace */ true, /*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta*/ false, + /*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), UUID.randomUUID(), null); racingEventService.getRegattasByName().put(EVENTNAME, regatta); TrackedRegatta trackedRegatta1 = racingEventService.getOrCreateTrackedRegatta(regatta); diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java index 328f99c8218..40091cb6fd8 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java @@ -89,7 +89,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, + RegattaImpl.getDefaultName(EVENTNAME, boatClass.getName()), boatClass, /* canBoatsOfCompetitorsChangePerRace*/ true, /* canCompetitorsRegisterToOpenRegatta*/ false, /*startDate*/ null, /*endDate*/ null, /* trackedRegattaRegistry */ null, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), UUID.randomUUID(), null); TrackedRegatta trackedRegatta1 = server.getOrCreateTrackedRegatta(regatta); diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java index e0dad0c2846..4b0d4fc4960 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java @@ -139,7 +139,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, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*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 +148,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, /*startDate*/ null, /*endDate*/ null, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*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 +171,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, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, /*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")); diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java index 8d3b7552433..af79540ba1a 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java @@ -334,7 +334,8 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch * @param controlTrackingFromStartAndFinishTimes * cannot be {@code true} if {@link useStartTimeInference} is also {@code true} */ - Regatta createRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, TimePoint startDate, TimePoint endDate, Serializable id, Iterable series, + Regatta createRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, + boolean canCompetitorsRegisterToOpenRegatta, TimePoint startDate, TimePoint endDate, Serializable id, Iterable series, boolean persistent, ScoringScheme scoringScheme, Serializable defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, RankingMetricConstructor rankingMetricConstructor); @@ -494,7 +495,8 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch * the call */ Util.Pair getOrCreateRegattaWithoutReplication(String fullRegattaName, String boatClassName, - boolean canBoatsOfCompetitorsChangePerRace, TimePoint startDate, TimePoint endDate, Serializable id, + boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta, + TimePoint startDate, TimePoint endDate, Serializable id, Iterable series, boolean persistent, ScoringScheme scoringScheme, Serializable defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, RankingMetricConstructor rankingMetricConstructor); diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java index 71f6a1aa157..456a3c178fb 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java @@ -1425,7 +1425,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, + .getOrCreateBoatClass(boatClassName), /* canBoatsOfCompetitorsChangePerRace*/ false, /* canCompetitorsRegisterToOpenRegatta*/ false, /* startDate */null, /* endDate */null, this, getBaseDomainFactory().createScoringScheme(ScoringSchemeType.LOW_POINT), id, /* course area */ null); logger.info("Created default regatta " + result.getName() + " (" + hashCode() + ") on " + this); @@ -1445,7 +1445,8 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes } @Override - public Regatta createRegatta(String fullRegattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, TimePoint startDate, TimePoint endDate, + public Regatta createRegatta(String fullRegattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, + boolean canCompetitorsRegisterToOpenRegatta, TimePoint startDate, TimePoint endDate, Serializable id, Iterable series, boolean persistent, ScoringScheme scoringScheme, Serializable defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, RankingMetricConstructor rankingMetricConstructor) { @@ -1453,7 +1454,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 regattaWithCreatedFlag = getOrCreateRegattaWithoutReplication( - fullRegattaName, boatClassName, canBoatsOfCompetitorsChangePerRace, startDate, endDate, id, series, persistent, scoringScheme, + fullRegattaName, boatClassName, canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, startDate, endDate, id, series, persistent, scoringScheme, defaultCourseAreaId, buoyZoneRadiusInHullLengths, useStartTimeInference, controlTrackingFromStartAndFinishTimes, rankingMetricConstructor); Regatta regatta = regattaWithCreatedFlag.getA(); if (regattaWithCreatedFlag.getB()) { @@ -1485,13 +1486,14 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes @Override public com.sap.sse.common.Util.Pair getOrCreateRegattaWithoutReplication(String fullRegattaName, - String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, TimePoint startDate, TimePoint endDate, Serializable id, + String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta, + TimePoint startDate, TimePoint endDate, Serializable id, Iterable 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, startDate, endDate, series, persistent, + getBaseDomainFactory().getOrCreateBoatClass(boatClassName), canBoatsOfCompetitorsChangePerRace, canCompetitorsRegisterToOpenRegatta, startDate, endDate, series, persistent, scoringScheme, id, courseArea, buoyZoneRadiusInHullLengths, useStartTimeInference, controlTrackingFromStartAndFinishTimes, rankingMetricConstructor); boolean wasCreated = addAndConnectRegatta(persistent, defaultCourseAreaId, regatta); if (wasCreated) { @@ -1694,7 +1696,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(), + .getBoatClass().getName(), regatta.canBoatsOfCompetitorsChangePerRace(), regatta.canCompetitorsRegisterToOpenRegatta(), regatta.getStartDate(), regatta.getEndDate(), regatta.getId(), getSeriesWithoutRaceColumnsConstructionParametersAsMap(regatta), regatta.isPersistent(), regatta.getScoringScheme(), courseAreaId, regatta.getBuoyZoneRadiusInHullLengths(), regatta.useStartTimeInference(), regatta.isControlTrackingFromStartAndFinishTimes(), diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java index ebdbfaeaecb..641aa2d9929 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java @@ -33,14 +33,17 @@ public class AddSpecificRegatta extends AbstractAddRegattaOperation { private final boolean useStartTimeInference; private final boolean controlTrackingFromStartAndFinishTimes; private final boolean canBoatsOfCompetitorsChangePerRace; + private final boolean canCompetitorsRegisterToOpenRegatta; private final RankingMetrics rankingMetricType; - public AddSpecificRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, TimePoint startDate, TimePoint endDate, Serializable id, + public AddSpecificRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, + boolean canCompetitorsRegisterToOpenRegatta, 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.seriesNamesWithFleetNamesAndFleetOrderingAndMedalAndStartsWithZeroScoreAndDiscardingThresholds = seriesNamesWithFleetNamesAndFleetOrderingAndMedalAndDiscardingThresholds; this.persistent = persistent; this.scoringScheme = scoringScheme; @@ -53,7 +56,8 @@ public class AddSpecificRegatta extends AbstractAddRegattaOperation { @Override public Regatta internalApplyTo(RacingEventService toState) throws Exception { - Regatta regatta = toState.createRegatta(getRegattaName(), getBoatClassName(), canBoatsOfCompetitorsChangePerRace, getStartDate(), getEndDate(), getId(), createSeries(toState), + Regatta regatta = toState.createRegatta(getRegattaName(), getBoatClassName(), canBoatsOfCompetitorsChangePerRace, + canCompetitorsRegisterToOpenRegatta, getStartDate(), getEndDate(), getId(), createSeries(toState), persistent, scoringScheme, defaultCourseAreaId, buoyZoneRadiusInHullLengths, useStartTimeInference, controlTrackingFromStartAndFinishTimes, RankingMetricsFactory.getRankingMetricConstructor(rankingMetricType)); return regatta; } diff --git a/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java b/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java index eb36b1d8d13..043621e9add 100755 --- a/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java +++ b/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java @@ -101,7 +101,8 @@ public class StructureImporter { RegattaImpl regatta = new RegattaImpl(RegattaImpl.getDefaultName(event.getTitle(), ((Division) event .getRaceOrDivisionOrRegattaSeriesResult().get(0)).getTitle()), baseDomainFactory.getOrCreateBoatClass(result.getA().getBoatClass()), - /* canBoatsOfCompetitorsChangePerRace */ true, startDate, endDate, getSeries(buildStructure), false, + /* canBoatsOfCompetitorsChangePerRace */ true, /* canCompetitorsRegisterToOpenRegatta */ false, + startDate, endDate, getSeries(buildStructure), false, this.baseDomainFactory.createScoringScheme(ScoringSchemeType.LOW_POINT), event.getEventID(), null, OneDesignRankingMetric::new); addSpecificRegattas.add(regatta); } From 22d06882c3fc6cc3e9dff5ec3aa84104e25313ba Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Fri, 21 Sep 2018 17:41:57 +0200 Subject: [PATCH 02/28] rename regatta attribute canCompetitorRegisterToOpenRegatta to competitorRegistrationType and swicht over to enum datatype --- .../common/CompetitorRegistrationType.java | 56 +++++++++++++++++++ .../impl/DomainObjectFactoryImpl.java | 25 +++++++-- .../domain/persistence/impl/FieldNames.java | 2 +- .../impl/MigratableRegattaImpl.java | 6 +- .../impl/MongoObjectFactoryImpl.java | 2 +- .../test/AbstractGPSFixStoreTest.java | 3 +- .../impl/CreateAndTrackWithRaceLogTest.java | 3 +- .../impl/RaceLogFixTrackerManagerTest.java | 3 +- .../test/impl/SensorFixStoreAndLoadTest.java | 3 +- .../TrackedRaceStartTimeInferenceTest.java | 11 ++-- .../test/SimpleDomainFactoryTest.java | 5 +- .../impl/DomainFactoryImpl.java | 3 +- ...stFarthestAheadWithSkippedMarkPassing.java | 3 +- ...mpleTimeOnTimeRankingWithOneUpwindLeg.java | 3 +- ...mpetitorProviderCacheInvalidationTest.java | 3 +- .../sap/sailing/domain/test/CourseTest.java | 5 +- ...pdateDuringNonAtomicSerializationTest.java | 3 +- .../test/LeaderboardCourseChangeTest.java | 3 +- .../LeaderboardScoringAndRankingTest.java | 11 ++-- .../LeaderboardScoringAndRankingTestBase.java | 7 ++- ...oardScoringAndRankingTestForLowPoints.java | 3 +- ...ecutionOrderProvdiderAttachDetachTest.java | 3 +- .../sailing/domain/test/ReachingLegTest.java | 3 +- ...ttaLogEventNotificationForwardingTest.java | 7 ++- .../test/SerializeRankingMetricTest.java | 3 +- .../test/TestDeadlockInRegattaListener.java | 3 +- .../sailing/domain/test/TrackBasedTest.java | 5 +- .../domain/test/UpdateMarkPassingTest.java | 3 +- .../com/sap/sailing/domain/test/WindTest.java | 3 +- .../AbstractMockedRaceMarkPassingTest.java | 3 +- .../domain/test/mock/MockedTrackedRace.java | 5 +- .../tracking/impl/TrackedRegattaTest.java | 3 +- .../impl/DomainFactoryImpl.java | 3 +- .../sailing/domain/base/impl/RegattaImpl.java | 27 ++++----- .../impl/FlexibleLeaderboardImpl.java | 6 +- .../regattalike/BaseRegattaLikeImpl.java | 5 +- .../domain/regattalike/IsRegattaLike.java | 7 ++- .../ui/test/PingMarkViaRegattaLogTest.java | 3 +- .../sap/sailing/gwt/ui/test/SlicingTest.java | 3 +- .../adminconsole/CreateRegattaCallback.java | 2 +- .../adminconsole/RegattaDetailsComposite.java | 6 +- .../ui/adminconsole/RegattaListComposite.java | 11 ++-- .../RegattaWithSeriesAndFleetsDialog.java | 16 +++--- .../RegattaWithSeriesAndFleetsEditDialog.java | 1 - .../sailing/gwt/ui/client/SailingService.java | 3 +- .../gwt/ui/client/SailingServiceAsync.java | 3 +- .../sailing/gwt/ui/client/StringMessages.java | 7 ++- .../gwt/ui/client/StringMessages.properties | 7 ++- .../ui/client/StringMessages_de.properties | 7 ++- .../gwt/ui/server/SailingServiceImpl.java | 9 +-- .../sap/sailing/gwt/ui/shared/RegattaDTO.java | 5 +- ...tStoringAndRetrievingRaceLogInRegatta.java | 3 +- ...LogConnectivityParamsLoadAndStoreTest.java | 3 +- ...estStoringAndLoadingEventsAndRegattas.java | 35 +++++++----- .../impl/RegattaJsonSerializer.java | 5 +- .../gateway/test/jaxrs/EventResourceTest.java | 9 +-- .../jaxrs/LeaderboardGroupResourceTest.java | 3 +- ...LeaderboardsResourceCheckinAndOutTest.java | 3 +- .../LeaderboardsResourcePingMarkTest.java | 3 +- .../test/jaxrs/LeaderboardsResourceTest.java | 3 +- .../test/jaxrs/RegattasResourceTest.java | 3 +- .../gateway/jaxrs/api/EventsResource.java | 29 +++++++--- .../impl/ExpeditionAllInOneImporter.java | 3 +- .../test/AbstractLogReplicationTest.java | 3 +- .../replication/test/BoatReplicationTest.java | 3 +- .../test/CompetitorReplicationTest.java | 3 +- ...tialLoadReplicationObjectIdentityTest.java | 3 +- .../test/RegattaReplicationTest.java | 19 ++++--- ...BoatCompetitorMetadataReplicationTest.java | 3 +- .../server/statistics/StatisticsTest.java | 3 +- .../server/test/MasterDataImportTest.java | 29 +++++----- .../server/test/RaceTrackerStartStopTest.java | 3 +- .../server/test/RemoveLeaderboardTest.java | 3 +- .../server/test/SearchServiceTest.java | 7 ++- .../sailing/server/RacingEventService.java | 5 +- .../server/impl/RacingEventServiceImpl.java | 13 +++-- .../AddSpecificRegatta.java | 9 +-- .../structureimport/StructureImporter.java | 3 +- 78 files changed, 351 insertions(+), 195 deletions(-) create mode 100644 java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java new file mode 100644 index 00000000000..5750b78f03b --- /dev/null +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java @@ -0,0 +1,56 @@ +package com.sap.sailing.domain.common; + +/** + * Types of registration of competitors to a regatta. + * Regattas can be closed, so only invited competitors are allowed or open, 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; + } +} diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java index ed5ee56a28b..4442f8ba6c5 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java @@ -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, diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java index f7edbfefa9f..c848d76754f 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java @@ -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, diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MigratableRegattaImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MigratableRegattaImpl.java index 3c93d6c61bf..c8802c9f123 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MigratableRegattaImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MigratableRegattaImpl.java @@ -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 MigratableRegattaImpl(RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, String name, - BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta, + BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, CompetitorRegistrationType competitorRegistrationType, TimePoint startDate, TimePoint endDate, Iterable 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); diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java index b1aba99b2d8..c5e1030e60b 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java @@ -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; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java index 6f42f80e280..dde19c0bcce 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java @@ -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. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new, mock(RaceLogResolver.class)); diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java index eb1da2cb9a9..71522b874f0 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java @@ -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. singletonList(series), /* persistent */ true, new HighPoint(), UUID.randomUUID(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); series.addRaceColumn(columnName, /* trackedRegattaRegistry */null); diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java index f5e54633dde..30ff35eb73a 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java @@ -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. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new, diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java index d2c44c21feb..cd819d2d9bc 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java @@ -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. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0, /* useMarkPassingCalculator */ false, OneDesignRankingMetric::new, diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java index 642be2738af..4756226893f 100755 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java @@ -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. 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. 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. 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. emptyList(), EmptyWindStore.INSTANCE, 0, 0, 0, diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java index cb9e42ef99e..f220b5238eb 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java @@ -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"); diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java index 3abef3b456c..2b9258b5b5f 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java @@ -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); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java index 954a6c8ccdc..d0b6594567e 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java @@ -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); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java index e6ca35b8c91..1c31d38d52b 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java @@ -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 waypoints = new ArrayList(); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CompetitorProviderCacheInvalidationTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CompetitorProviderCacheInvalidationTest.java index cea5d08eb4f..f6ca6545842 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CompetitorProviderCacheInvalidationTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CompetitorProviderCacheInvalidationTest.java @@ -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])); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java index dca90a667e3..1de7c14f4b5 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java @@ -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 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(), false, null, "test", null, OneDesignRankingMetric::new)), + new RegattaImpl("test", null, true, CompetitorRegistrationType.CLOSED, null, null, new HashSet(), false, null, "test", null, OneDesignRankingMetric::new)), new RaceDefinitionImpl("Test Race", course, boatClass, competitorsAndBoats), Collections. emptyList(), EmptyWindStore.INSTANCE, /* delayToLiveInMillis */3000, /* millisecondsOverWhichToAverageWind */30000, @@ -342,7 +343,7 @@ public class CourseTest { final Map 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(), false, null, "test", null, OneDesignRankingMetric::new)), + new RegattaImpl("test", null, true, CompetitorRegistrationType.CLOSED, null, null, new HashSet(), false, null, "test", null, OneDesignRankingMetric::new)), new RaceDefinitionImpl("Test Race", course, boatClass, competitorsAndBoats), Collections. emptyList(), EmptyWindStore.INSTANCE, /* delayToLiveInMillis */ 3000, /* millisecondsOverWhichToAverageWind */ 30000, diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java index e0a1d640677..7e6970d687b 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java @@ -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); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java index f33de8feebd..24c57b4469b 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java @@ -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"); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java index 5eb2b435de5..270e9787567 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java @@ -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 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 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 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 competitors = createCompetitors(TOTAL_NUMBER_OF_COMPETITORS); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestBase.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestBase.java index 1c1f24e3a94..e4b0d20c7fa 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestBase.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestBase.java @@ -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; } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java index ec1fe328af0..1e0d2c05984 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java @@ -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), diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java index 9cff4e264e4..81e81e70e5a 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java @@ -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); } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java index 558bf4252ab..f6e950718d0 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java @@ -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); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RegattaLogEventNotificationForwardingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RegattaLogEventNotificationForwardingTest.java index da573d03fbd..9badfa3ea40 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RegattaLogEventNotificationForwardingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RegattaLogEventNotificationForwardingTest.java @@ -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(), false, null, "test", null, OneDesignRankingMetric::new); + Regatta regatta = new RegattaImpl("test", null, true, CompetitorRegistrationType.CLOSED, null, null, new HashSet(), 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(), false, null, "test", null, OneDesignRankingMetric::new); + Regatta regatta = new RegattaImpl("test", null, true, CompetitorRegistrationType.CLOSED, null, null, new HashSet(), 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; } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java index db97f96b48f..60ad6b3e3dc 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java @@ -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.emptyList()) , diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java index bc684018e61..617291407b2 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java @@ -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, diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java index c1c8333bc7e..464eb4f3898 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java @@ -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 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); } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java index a5481c07b4f..6943ee768e4 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java @@ -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(), false, null, + /* trackedRegatta */new DynamicTrackedRegattaImpl(new RegattaImpl("test", null, true, CompetitorRegistrationType.CLOSED, null, null, new HashSet(), false, null, "test", null, OneDesignRankingMetric::new)), race, Collections. emptyList(), EmptyWindStore.INSTANCE, /* delayToLiveInMillis */1000, /* millisecondsOverWhichToAverageWind */30000, diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java index 520afa7188c..d22f580f0d8 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java @@ -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", diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java index def4524be32..7d80d1f872d 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java @@ -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(), null)), true, new HighPoint(), "ID", new CourseAreaImpl("area", new UUID(5, 5)), OneDesignRankingMetric::new); Course course = new CourseImpl("course", waypoints); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java index a16d753e2b0..085f3201e56 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java @@ -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 diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java index 4b13ac94da9..cc6723725a1 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java @@ -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)); } diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java index 0a7b45fe190..eb036e3eb93 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java @@ -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 diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java index 9f8ddebf9fc..1bf1ff98f8a 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java @@ -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 true. 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 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 RegattaImpl(RaceLogStore raceLogStore, RegattaLogStore regattaLogStore, String name, - BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta, + BoatClass boatClass, boolean canBoatsOfCompetitorsChangePerRace, CompetitorRegistrationType competitorRegistrationType, TimePoint startDate, TimePoint endDate, Iterable 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 seriesList = new ArrayList(); @@ -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 diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/FlexibleLeaderboardImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/FlexibleLeaderboardImpl.java index ba9a1c9099f..e05d0d11b69 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/FlexibleLeaderboardImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/FlexibleLeaderboardImpl.java @@ -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; } /** diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java index 23fbbd5ae14..47afe1d0d68 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java @@ -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 { diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/IsRegattaLike.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/IsRegattaLike.java index 20a2c45b615..806de03b76b 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/IsRegattaLike.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/IsRegattaLike.java @@ -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); diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java index 03474bb8a21..e80996e0a53 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java @@ -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.singletonList(series), false, new HighPoint(), UUID.randomUUID(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, RankingMetricsFactory.getRankingMetricConstructor(RankingMetrics.ONE_DESIGN)); diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java index cf658deb6fb..0ed3edd0d32 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java @@ -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> columnNames = new ArrayList<>(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CreateRegattaCallback.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CreateRegattaCallback.java index e53d134ab26..9f5d083aecf 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CreateRegattaCallback.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CreateRegattaCallback.java @@ -64,7 +64,7 @@ public class CreateRegattaCallback implements DialogCallback{ 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, diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java index ab6e6d8a13f..d5afc33ffcc 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java @@ -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) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java index b6b617946ec..c5aa189b2dc 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java @@ -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 regattaCanCompetitorsRegisterToOpenRegatta = new TextColumn() { + TextColumn competitorRegistrationTypeColumn = new TextColumn() { @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 startEndDateColumn = new TextColumn() { @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()); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java index 2738fe2530d..debb85b5ca7 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java @@ -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 series, List 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); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java index 20511dc2fb3..f48ece808f9 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java @@ -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; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java index 8f49a859426..37b7de65435 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java @@ -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); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java index 33eda5c9f7d..62e6078f933 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java @@ -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 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, diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index 92f8d117850..c29e1634bbf 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -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(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index 22bb772a440..23d15ab5adc 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -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 diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index 6839495d2d2..9a716e26aca 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -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 diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index ebea8caaed7..5ae8b4ffa90 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -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); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java index 9d39d0ccaa9..e5f2c860c58 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java @@ -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; } diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java index 46297503553..ae0fb1e4a68 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java @@ -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 = 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; diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java index 4ae5d665bbc..30405708165 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java @@ -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.asList(fleet), Collections.emptyList(), racingEventService); final Iterable series = Arrays.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); diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java index cb5f4137365..c0e03df28a8 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java @@ -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 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 competitorsAndBoats = new LinkedHashMap<>(); diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java index c082540d9d9..28330916cc1 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java @@ -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 { @@ -21,7 +22,7 @@ public class RegattaJsonSerializer implements JsonSerializer { 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 seriesSerializer; private final JsonSerializer competitorSerializer; @@ -48,7 +49,7 @@ public class RegattaJsonSerializer implements JsonSerializer { 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()) { diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java index a85e88fe395..276bab77949 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java @@ -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) { diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java index c2cdf1d832f..15202f5087f 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java @@ -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); diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java index f0e140ac1d0..21ac60db63d 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java @@ -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); diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java index 0b3f5bf340e..1ba8b5ff210 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java @@ -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); diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java index d857e704429..caa03635690 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java @@ -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); diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java index 71c3552a6f5..7d6cf97e1cc 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java @@ -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); diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java index 264fede2a40..86d8ba2c774 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java @@ -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 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 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 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; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java index 316ab61c1c2..ffab2745d8f 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java @@ -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)); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java index f76142be559..3b398f2493e 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java @@ -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 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 emptyWaypointList = Collections.emptyList(); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java index dfdc1825e10..1ebfcd782a0 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java @@ -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 = 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 emptyWaypointList = Collections.emptyList(); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java index 11aa93bc485..5a7f3719e40 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java @@ -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 = 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())); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java index 4c6baa6819b..a5d9f0f33a6 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java @@ -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 = 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.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.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); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java index 48c92b9aac8..bfb7eac4c9f 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java @@ -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(), diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java index d03658200ff..227ea2e423c 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java @@ -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 })); diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java index 6a35833d03a..e41bcb56832 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java @@ -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(), 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); diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index d370d3146eb..4fa6d1d4e1f 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -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); diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java index 40091cb6fd8..709c629de66 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java @@ -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); diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java index 4b0d4fc4960..e7fa1a363dc 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java @@ -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")); diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java index af79540ba1a..04cf4b200df 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java @@ -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 series, + CompetitorRegistrationType competitorRegistrationType, TimePoint startDate, TimePoint endDate, Serializable id, Iterable 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 getOrCreateRegattaWithoutReplication(String fullRegattaName, String boatClassName, - boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta, + boolean canBoatsOfCompetitorsChangePerRace, CompetitorRegistrationType competitorRegistrationType, TimePoint startDate, TimePoint endDate, Serializable id, Iterable series, boolean persistent, ScoringScheme scoringScheme, Serializable defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java index 456a3c178fb..ee9e7829070 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java @@ -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 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 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 getOrCreateRegattaWithoutReplication(String fullRegattaName, - String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, boolean canCompetitorsRegisterToOpenRegatta, + String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, CompetitorRegistrationType competitorRegistrationType, TimePoint startDate, TimePoint endDate, Serializable id, Iterable 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(), diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java index 641aa2d9929..8eabfa82f45 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java @@ -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; } diff --git a/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java b/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java index 043621e9add..4946b11293f 100755 --- a/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java +++ b/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java @@ -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); From 6a7f47789843125ffa08e5326f6dbead389ccc14 Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Wed, 26 Sep 2018 10:36:20 +0200 Subject: [PATCH 03/28] clean unused imports --- .../server/gateway/serialization/impl/RegattaJsonSerializer.java | 1 - 1 file changed, 1 deletion(-) diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java index 28330916cc1..fb999de1d35 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java @@ -7,7 +7,6 @@ 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 { From 1d8e594ab505bf3b737cd3673e930a6baded840a Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Wed, 26 Sep 2018 10:48:31 +0200 Subject: [PATCH 04/28] competitor registration type is not editable after creation of regatta --- .../ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java | 1 + 1 file changed, 1 insertion(+) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java index f48ece808f9..c13c739b356 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsEditDialog.java @@ -44,6 +44,7 @@ public class RegattaWithSeriesAndFleetsEditDialog extends RegattaWithSeriesAndFl scoringSchemeListBox.setEnabled(false); sailingEventsListBox.setEnabled(true); courseAreaListBox.setEnabled(true); + competitorRegistrationTypeListBox.setEnabled(false); regattaConfigurationCheckbox = createCheckbox(stringMessages.setRacingProcedureConfiguration()); regattaConfigurationCheckbox.ensureDebugId("RacingProcedureConfigurationCheckBox"); From 65df60b12ca2dffbc1ebdec521a2a4992778ad43 Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Thu, 4 Oct 2018 09:35:28 +0200 Subject: [PATCH 05/28] display registration url for open regattas --- .../ui/adminconsole/RegattaDetailsComposite.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java index d5afc33ffcc..0f51eda4c8a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java @@ -64,6 +64,7 @@ public class RegattaDetailsComposite extends Composite { private final Label competitorRegistrationType; private final Label configuration; private final Label buoyZoneRadiusInHullLengths; + private final Label openRegattaRegistrationLink; private final SelectionModel seriesSelectionModel; private final CellTable seriesTable; @@ -82,7 +83,7 @@ public class RegattaDetailsComposite extends Composite { VerticalPanel vPanel = new VerticalPanel(); mainPanel.add(vPanel); - int rows = 14; + int rows = 15; Grid grid = new Grid(rows, 2); vPanel.add(grid); @@ -96,12 +97,13 @@ 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"); - competitorRegistrationType = createLabelAndValueWidget(grid, currentRow++, stringMessages.competitorRegistrationType(), "GetcompetitorRegistrationType"); + competitorRegistrationType = createLabelAndValueWidget(grid, currentRow++, stringMessages.competitorRegistrationType(), "CompetitorRegistrationTypeLabel"); buoyZoneRadiusInHullLengths = createLabelAndValueWidget(grid, currentRow++, stringMessages.buoyZoneRadiusInHullLengths(), "BuoyZoneRadiusInHullLengthsLabel"); configuration = createLabelAndValueWidget(grid, currentRow++, stringMessages.racingProcedureConfiguration(), "RacingProcedureLabel"); scoringSystem = createLabelAndValueWidget(grid, currentRow++, stringMessages.scoringSystem(), "ScoringSystemLabel"); rankingMetric = createLabelAndValueWidget(grid, currentRow++, stringMessages.rankingMetric(), "RankingMetricLabel"); - + openRegattaRegistrationLink = createLabelAndValueWidget(grid, currentRow++, "Registration Link", "OpenRegattaRegistrationLinkLabel") ; + seriesTable = createRegattaSeriesTable(); seriesTable.ensureDebugId("SeriesCellTable"); seriesSelectionModel = new SingleSelectionModel(); @@ -406,8 +408,11 @@ public class RegattaDetailsComposite extends Composite { controlTrackingFromStartAndFinishTimes.setText(regatta.controlTrackingFromStartAndFinishTimes ? stringMessages.yes() : stringMessages.no()); canBoatsOfCompetitorsChangePerRace.setText(regatta.canBoatsOfCompetitorsChangePerRace ? stringMessages.yes() : stringMessages.no()); competitorRegistrationType.setText(regatta.competitorRegistrationType.getLabel()); - buoyZoneRadiusInHullLengths.setText(String.valueOf(regatta.buoyZoneRadiusInHullLengths)); - + openRegattaRegistrationLink.setText(regatta.competitorRegistrationType.isOpen() + ? "http://www.sapsailing.com" //TODO: get correct URL for branch.io + : "-"); + buoyZoneRadiusInHullLengths.setText(String.valueOf(regatta.buoyZoneRadiusInHullLengths)); + if (regatta.configuration != null) { configuration.setText(stringMessages.configured()); } else { From b1bb9af5b6d28d4a164cf78378c59c820a581bd0 Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Thu, 4 Oct 2018 10:03:59 +0200 Subject: [PATCH 06/28] Move CompetitorRegistrationType from com.sap.sailing.domain.common to com.sap.sailing.domain.base --- .../domain/persistence/impl/DomainObjectFactoryImpl.java | 2 +- .../sailing/domain/persistence/impl/MigratableRegattaImpl.java | 2 +- .../domain/racelogtracking/test/AbstractGPSFixStoreTest.java | 2 +- .../test/impl/CreateAndTrackWithRaceLogTest.java | 2 +- .../test/impl/RaceLogFixTrackerManagerTest.java | 2 +- .../racelogtracking/test/impl/SensorFixStoreAndLoadTest.java | 2 +- .../test/impl/TrackedRaceStartTimeInferenceTest.java | 2 +- .../swisstimingadapter/test/SimpleDomainFactoryTest.java | 2 +- .../domain/swisstimingadapter/impl/DomainFactoryImpl.java | 2 +- .../ranking/TestFarthestAheadWithSkippedMarkPassing.java | 2 +- .../ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java | 2 +- .../domain/test/CompetitorProviderCacheInvalidationTest.java | 2 +- .../src/com/sap/sailing/domain/test/CourseTest.java | 2 +- .../test/CourseUpdateDuringNonAtomicSerializationTest.java | 2 +- .../sap/sailing/domain/test/LeaderboardCourseChangeTest.java | 2 +- .../sailing/domain/test/LeaderboardScoringAndRankingTest.java | 2 +- .../domain/test/LeaderboardScoringAndRankingTestBase.java | 2 +- .../test/LeaderboardScoringAndRankingTestForLowPoints.java | 2 +- .../test/RaceExecutionOrderProvdiderAttachDetachTest.java | 2 +- .../src/com/sap/sailing/domain/test/ReachingLegTest.java | 2 +- .../domain/test/RegattaLogEventNotificationForwardingTest.java | 2 +- .../sap/sailing/domain/test/SerializeRankingMetricTest.java | 2 +- .../sap/sailing/domain/test/TestDeadlockInRegattaListener.java | 2 +- .../src/com/sap/sailing/domain/test/TrackBasedTest.java | 2 +- .../src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java | 2 +- .../src/com/sap/sailing/domain/test/WindTest.java | 2 +- .../test/markpassing/AbstractMockedRaceMarkPassingTest.java | 2 +- .../com/sap/sailing/domain/test/mock/MockedTrackedRace.java | 2 +- .../sap/sailing/domain/tracking/impl/TrackedRegattaTest.java | 2 +- .../sailing/domain/tractracadapter/impl/DomainFactoryImpl.java | 2 +- .../src/com/sap/sailing/domain/base/impl/RegattaImpl.java | 2 +- .../domain/leaderboard/impl/FlexibleLeaderboardImpl.java | 2 +- .../sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java | 1 - .../domain/regattalike}/CompetitorRegistrationType.java | 3 ++- .../src/com/sap/sailing/domain/regattalike/IsRegattaLike.java | 1 - .../com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java | 2 +- .../src/com/sap/sailing/gwt/ui/test/SlicingTest.java | 2 +- .../gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java | 2 +- .../java/com/sap/sailing/gwt/ui/client/SailingService.java | 2 +- .../com/sap/sailing/gwt/ui/client/SailingServiceAsync.java | 2 +- .../java/com/sap/sailing/gwt/ui/client/StringMessages.java | 3 --- .../java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java | 2 +- .../main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java | 2 +- .../test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java | 2 +- .../test/RaceLogConnectivityParamsLoadAndStoreTest.java | 2 +- .../mongodb/test/TestStoringAndLoadingEventsAndRegattas.java | 2 +- .../sailing/server/gateway/test/jaxrs/EventResourceTest.java | 2 +- .../gateway/test/jaxrs/LeaderboardGroupResourceTest.java | 2 +- .../test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java | 2 +- .../gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java | 2 +- .../server/gateway/test/jaxrs/LeaderboardsResourceTest.java | 2 +- .../server/gateway/test/jaxrs/RegattasResourceTest.java | 2 +- .../sap/sailing/server/gateway/jaxrs/api/EventsResource.java | 2 +- .../gateway/trackfiles/impl/ExpeditionAllInOneImporter.java | 2 +- .../server/replication/test/AbstractLogReplicationTest.java | 2 +- .../sailing/server/replication/test/BoatReplicationTest.java | 2 +- .../server/replication/test/CompetitorReplicationTest.java | 2 +- .../test/InitialLoadReplicationObjectIdentityTest.java | 2 +- .../server/replication/test/RegattaReplicationTest.java | 2 +- .../test/TrackRaceBoatCompetitorMetadataReplicationTest.java | 2 +- .../src/com/sap/sailing/server/statistics/StatisticsTest.java | 2 +- .../src/com/sap/sailing/server/test/MasterDataImportTest.java | 2 +- .../com/sap/sailing/server/test/RaceTrackerStartStopTest.java | 2 +- .../src/com/sap/sailing/server/test/RemoveLeaderboardTest.java | 2 +- .../src/com/sap/sailing/server/test/SearchServiceTest.java | 2 +- .../src/com/sap/sailing/server/RacingEventService.java | 2 +- .../com/sap/sailing/server/impl/RacingEventServiceImpl.java | 2 +- .../server/operationaltransformation/AddSpecificRegatta.java | 2 +- .../com/sap/sailing/xrr/structureimport/StructureImporter.java | 2 +- 69 files changed, 67 insertions(+), 71 deletions(-) rename java/{com.sap.sailing.domain.common/src/com/sap/sailing/domain/common => com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike}/CompetitorRegistrationType.java (96%) diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java index 4442f8ba6c5..0dc22f85234 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java @@ -169,7 +169,6 @@ 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; @@ -227,6 +226,7 @@ import com.sap.sailing.domain.racelogtracking.impl.PlaceHolderDeviceIdentifierSe import com.sap.sailing.domain.ranking.OneDesignRankingMetric; import com.sap.sailing.domain.ranking.RankingMetricConstructor; import com.sap.sailing.domain.ranking.RankingMetricsFactory; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalike.RegattaLikeIdentifier; import com.sap.sailing.domain.regattalog.RegattaLogStore; import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParameters; diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MigratableRegattaImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MigratableRegattaImpl.java index c8802c9f123..571f4551282 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MigratableRegattaImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MigratableRegattaImpl.java @@ -9,11 +9,11 @@ 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; import com.sap.sailing.domain.ranking.RankingMetricConstructor; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.RegattaLogStore; import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java index dde19c0bcce..b9db7dcd5e0 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java @@ -25,7 +25,6 @@ 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; @@ -41,6 +40,7 @@ import com.sap.sailing.domain.racelog.tracking.test.mock.MockDeviceAndSessionIde import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.Track; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java index 71522b874f0..6d3b1f9bbf4 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java @@ -44,7 +44,6 @@ 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; @@ -61,6 +60,7 @@ import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapterFactory; import com.sap.sailing.domain.racelogtracking.impl.fixtracker.RaceLogFixTrackerManager; import com.sap.sailing.domain.racelogtracking.test.RaceLogTrackingTestHelper; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.RaceHandle; import com.sap.sailing.domain.tracking.Track; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java index 30ff35eb73a..c10d4944d9a 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java @@ -34,7 +34,6 @@ 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; @@ -51,6 +50,7 @@ import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifie import com.sap.sailing.domain.racelogsensortracking.SensorFixMapperFactory; import com.sap.sailing.domain.racelogtracking.impl.fixtracker.RaceLogFixTrackerManager; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.DynamicTrack; import com.sap.sailing.domain.tracking.DynamicTrackedRace; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java index cd819d2d9bc..c8dfbb3d182 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java @@ -57,7 +57,6 @@ 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; @@ -83,6 +82,7 @@ import com.sap.sailing.domain.racelogsensortracking.SensorFixMapperFactory; import com.sap.sailing.domain.racelogtracking.impl.BravoDataFixMapper; import com.sap.sailing.domain.racelogtracking.impl.fixtracker.FixLoaderAndTracker; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.BravoFixTrack; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java index 4756226893f..64691f70985 100755 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java @@ -33,12 +33,12 @@ 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; import com.sap.sailing.domain.racelogtracking.test.AbstractGPSFixStoreTest; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.TrackedRegatta; diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java index f220b5238eb..db0c228808f 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java @@ -15,9 +15,9 @@ 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.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.swisstimingadapter.Competitor; import com.sap.sailing.domain.swisstimingadapter.Course; diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java index 2b9258b5b5f..de4f428be60 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java @@ -34,13 +34,13 @@ 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; import com.sap.sailing.domain.common.tracking.GPSFixMoving; import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.racelog.RaceLogStore; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.RegattaLogStore; import com.sap.sailing.domain.swisstimingadapter.Course; import com.sap.sailing.domain.swisstimingadapter.CrewMember; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java index d0b6594567e..873bb4be401 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java @@ -33,7 +33,6 @@ 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; @@ -45,6 +44,7 @@ import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl; import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.ranking.RankingMetric.RankingInfo; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.test.TrackBasedTest; import com.sap.sailing.domain.tracking.DynamicTrackedRace; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java index 1c31d38d52b..0097b6b15ae 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java @@ -33,7 +33,6 @@ 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; @@ -44,6 +43,7 @@ import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl; import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.test.TrackBasedTest; import com.sap.sailing.domain.tracking.DynamicTrackedRace; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CompetitorProviderCacheInvalidationTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CompetitorProviderCacheInvalidationTest.java index f6ca6545842..2e099456978 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CompetitorProviderCacheInvalidationTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CompetitorProviderCacheInvalidationTest.java @@ -35,7 +35,6 @@ 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; @@ -44,6 +43,7 @@ import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.leaderboard.impl.RegattaLeaderboardImpl; import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithStartTimeAndRanks; import com.sap.sailing.domain.tracking.TrackedRace; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java index 1de7c14f4b5..43741819f51 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java @@ -36,9 +36,9 @@ 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.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedLeg; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java index 7e6970d687b..54324cfedd8 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java @@ -36,10 +36,10 @@ 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; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.TrackedRegatta; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java index 24c57b4469b..74cb55eb1ed 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java @@ -43,7 +43,6 @@ 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; @@ -54,6 +53,7 @@ import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.leaderboard.impl.RegattaLeaderboardImpl; import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.TrackedRegatta; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java index 270e9787567..24e14869d0f 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java @@ -48,7 +48,6 @@ 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; @@ -70,6 +69,7 @@ import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRul import com.sap.sailing.domain.leaderboard.meta.LeaderboardGroupMetaLeaderboard; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithStartTimeAndRanks; import com.sap.sailing.domain.tracking.MarkPassing; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestBase.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestBase.java index e4b0d20c7fa..2257346c988 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestBase.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestBase.java @@ -23,7 +23,6 @@ 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; @@ -31,6 +30,7 @@ import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.leaderboard.impl.RegattaLeaderboardImpl; import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithStartTimeAndRanks; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithStartTimeAndZeroRanks; import com.sap.sailing.domain.tracking.MarkPassing; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java index 1e0d2c05984..4ac8d719564 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java @@ -17,13 +17,13 @@ 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; import com.sap.sailing.domain.leaderboard.impl.DelegatingRegattaLeaderboardWithCompetitorElimination; import com.sap.sailing.domain.leaderboard.impl.LowPointFirstToWinTwoRaces; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithStartTimeAndRanks; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sse.common.TimePoint; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java index 81e81e70e5a..f0bc4b003ba 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java @@ -26,7 +26,6 @@ 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; @@ -38,6 +37,7 @@ import com.sap.sailing.domain.leaderboard.impl.FlexibleLeaderboardImpl; import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.RaceExecutionOrderProvider; import com.sap.sailing.domain.tracking.TrackedRace; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java index f6e950718d0..ade20ff2b41 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java @@ -34,7 +34,6 @@ 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; @@ -48,6 +47,7 @@ import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl; import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.TrackedLeg; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RegattaLogEventNotificationForwardingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RegattaLogEventNotificationForwardingTest.java index 9badfa3ea40..756dcb47cb5 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RegattaLogEventNotificationForwardingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RegattaLogEventNotificationForwardingTest.java @@ -26,7 +26,6 @@ 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; @@ -36,6 +35,7 @@ import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.leaderboard.impl.RegattaLeaderboardImpl; import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalike.IsRegattaLike; import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java index 60ad6b3e3dc..1fdfeb04de4 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java @@ -18,11 +18,11 @@ 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; import com.sap.sailing.domain.ranking.TimeOnTimeAndDistanceRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java index 617291407b2..1759f28b078 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java @@ -21,12 +21,12 @@ 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; import com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.RaceTracker; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java index 464eb4f3898..43a516be0a7 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java @@ -47,7 +47,6 @@ 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; @@ -61,6 +60,7 @@ import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.TrackedRegatta; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java index 6943ee768e4..71aeeec7626 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java @@ -22,8 +22,8 @@ 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.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRegattaImpl; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java index d22f580f0d8..6f4ea067d64 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java @@ -36,7 +36,6 @@ 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; @@ -54,6 +53,7 @@ import com.sap.sailing.domain.confidence.ConfidenceBasedWindAverager; import com.sap.sailing.domain.confidence.ConfidenceFactory; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.MarkPassing; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java index 7d80d1f872d..881ce834bd7 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java @@ -31,7 +31,6 @@ 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; @@ -39,6 +38,7 @@ import com.sap.sailing.domain.common.impl.MeterDistance; import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl; import com.sap.sailing.domain.leaderboard.impl.HighPoint; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRegattaImpl; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java index 085f3201e56..569619fd22e 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java @@ -30,7 +30,6 @@ 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; @@ -52,6 +51,7 @@ import com.sap.sailing.domain.polars.PolarDataService; import com.sap.sailing.domain.ranking.RankingMetric; import com.sap.sailing.domain.ranking.RankingMetric.RankingInfo; import com.sap.sailing.domain.ranking.RankingMetricConstructor; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalike.IsRegattaLike; import com.sap.sailing.domain.regattalike.RegattaLikeIdentifier; import com.sap.sailing.domain.regattalike.RegattaLikeListener; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java index cc6723725a1..96fc1bf3de5 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java @@ -26,9 +26,9 @@ 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.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java index eb036e3eb93..c2e96552825 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java @@ -51,7 +51,6 @@ 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; @@ -63,6 +62,7 @@ import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.leaderboard.LeaderboardGroupResolver; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.racelog.RaceLogStore; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.RegattaLogStore; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; import com.sap.sailing.domain.tracking.DynamicTrackedRace; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java index 1bf1ff98f8a..31c19e76c40 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java @@ -45,7 +45,6 @@ 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; @@ -62,6 +61,7 @@ import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; import com.sap.sailing.domain.ranking.RankingMetricConstructor; import com.sap.sailing.domain.regattalike.BaseRegattaLikeImpl; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalike.IsRegattaLike; import com.sap.sailing.domain.regattalike.RegattaAsRegattaLikeIdentifier; import com.sap.sailing.domain.regattalike.RegattaLikeIdentifier; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/FlexibleLeaderboardImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/FlexibleLeaderboardImpl.java index e05d0d11b69..4666fbae34f 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/FlexibleLeaderboardImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/FlexibleLeaderboardImpl.java @@ -23,7 +23,6 @@ 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; @@ -32,6 +31,7 @@ import com.sap.sailing.domain.leaderboard.ThresholdBasedResultDiscardingRule; import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.regattalike.BaseRegattaLikeImpl; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalike.FlexibleLeaderboardAsRegattaLikeIdentifier; import com.sap.sailing.domain.regattalike.IsRegattaLike; import com.sap.sailing.domain.regattalike.RegattaLikeIdentifier; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java index 47afe1d0d68..3e0a8053919 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java @@ -11,7 +11,6 @@ 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; diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/CompetitorRegistrationType.java similarity index 96% rename from java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java rename to java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/CompetitorRegistrationType.java index 5750b78f03b..592d8f5de33 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/CompetitorRegistrationType.java @@ -1,4 +1,4 @@ -package com.sap.sailing.domain.common; +package com.sap.sailing.domain.regattalike; /** * Types of registration of competitors to a regatta. @@ -53,4 +53,5 @@ public enum CompetitorRegistrationType { // return "competitorRegistrationType" + this.labelPrefix; return this.labelPrefix; } + } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/IsRegattaLike.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/IsRegattaLike.java index 806de03b76b..a29b918a1f3 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/IsRegattaLike.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/IsRegattaLike.java @@ -6,7 +6,6 @@ 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; diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java index e80996e0a53..1138786ff12 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java @@ -12,7 +12,6 @@ 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; @@ -20,6 +19,7 @@ import com.sap.sailing.domain.common.racelog.tracking.DoesNotHaveRegattaLogExcep import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.leaderboard.impl.HighPoint; import com.sap.sailing.domain.ranking.RankingMetricsFactory; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.gwt.ui.shared.MarkDTO; import com.sap.sailing.server.RacingEventService; diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java index 0ed3edd0d32..6fb872e6e7b 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java @@ -18,7 +18,6 @@ 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; @@ -31,6 +30,7 @@ import com.sap.sailing.domain.common.dto.RaceDTO; import com.sap.sailing.domain.common.dto.RegattaCreationParametersDTO; import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO; import com.sap.sailing.domain.common.dto.TrackedRaceDTO; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.gwt.ui.adminconsole.RaceLogSetTrackingTimesDTO; import com.sap.sailing.gwt.ui.shared.DeviceIdentifierDTO; import com.sap.sailing.gwt.ui.shared.DeviceMappingDTO; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java index debb85b5ca7..7cdb9ed5eeb 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java @@ -10,8 +10,8 @@ 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.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.gwt.common.client.suggestion.BoatClassMasterdataSuggestOracle; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.EventDTO; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java index 37b7de65435..d9ba086d7a7 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java @@ -13,7 +13,6 @@ 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; @@ -57,6 +56,7 @@ import com.sap.sailing.domain.common.windfinder.SpotDTO; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.racelog.tracking.SensorFixStore; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapter; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.expeditionconnector.ExpeditionDeviceConfiguration; import com.sap.sailing.gwt.ui.adminconsole.RaceLogSetTrackingTimesDTO; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java index 62e6078f933..641ea112d9b 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java @@ -13,7 +13,6 @@ 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; @@ -46,6 +45,7 @@ import com.sap.sailing.domain.common.dto.RegattaCreationParametersDTO; import com.sap.sailing.domain.common.racelog.RacingProcedureType; import com.sap.sailing.domain.common.tracking.impl.PreciseCompactGPSFixMovingImpl.PreciseCompactPosition; import com.sap.sailing.domain.common.windfinder.SpotDTO; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.expeditionconnector.ExpeditionDeviceConfiguration; import com.sap.sailing.gwt.ui.adminconsole.RaceLogSetTrackingTimesDTO; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index c29e1634bbf..6bbbb06121c 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -1195,9 +1195,6 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, String canNotRegisterBoats(); String competitorRegistrationType(); String competitorRegistrationTypeShort(); - String competitorRegistrationTypeClosed(); - String competitorRegistrationTypeOpenModerated(); - String competitorRegistrationTypeOpenUnmoderated(); String numberOfQueueMessagesSent(); String totalSize(); String averageMessageSize(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index 5ae8b4ffa90..eddb45ae1c6 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -201,7 +201,6 @@ 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; @@ -323,6 +322,7 @@ import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapter; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapterFactory; import com.sap.sailing.domain.racelogtracking.impl.DeviceMappingImpl; import com.sap.sailing.domain.ranking.RankingMetric.RankingInfo; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalike.HasRegattaLike; import com.sap.sailing.domain.regattalike.IsRegattaLike; import com.sap.sailing.domain.regattalike.LeaderboardThatHasRegattaLike; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java index e5f2c860c58..fb2b0dd6a9f 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java @@ -6,7 +6,6 @@ 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; @@ -17,6 +16,7 @@ import com.sap.sailing.domain.common.dto.FleetDTO; import com.sap.sailing.domain.common.dto.NamedDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.domain.common.dto.RaceDTO; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettings; import com.sap.sse.common.Distance; import com.sap.sse.common.Util.Pair; diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java index ae0fb1e4a68..21be9788a38 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java @@ -18,13 +18,13 @@ 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; import com.sap.sailing.domain.persistence.MongoObjectFactory; import com.sap.sailing.domain.persistence.PersistenceFactory; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sse.common.impl.MillisecondsTimePoint; public abstract class AbstractTestStoringAndRetrievingRaceLogInRegatta extends RaceLogMongoDBTest { diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java index 30405708165..10f9112fc77 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java @@ -23,13 +23,13 @@ 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; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapterFactory; import com.sap.sailing.domain.racelogtracking.impl.RaceLogConnectivityParams; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParameters; import com.sap.sse.common.Duration; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java index c0e03df28a8..5b0d03fb3c1 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java @@ -58,7 +58,6 @@ 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; @@ -87,6 +86,7 @@ import com.sap.sailing.domain.racelog.tracking.EmptySensorFixStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; import com.sap.sailing.domain.ranking.RankingMetricConstructor; import com.sap.sailing.domain.ranking.TimeOnTimeAndDistanceRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.test.AbstractLeaderboardTest; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithFixedRank; import com.sap.sailing.domain.tracking.DynamicTrackedRace; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java index 276bab77949..9dacdd73541 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java @@ -21,10 +21,10 @@ 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; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource; import com.sap.sailing.server.gateway.jaxrs.api.AbstractLeaderboardsResource; import com.sap.sailing.server.gateway.jaxrs.api.EventsResource; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java index 15202f5087f..8492d0735ef 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java @@ -22,10 +22,10 @@ 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; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithStartTimeAndRanks; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.server.gateway.jaxrs.api.LeaderboardGroupsResource; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java index 21ac60db63d..a6b7b98496f 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java @@ -31,7 +31,6 @@ 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; @@ -39,6 +38,7 @@ import com.sap.sailing.domain.racelogtracking.DeviceMapping; import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent; import com.sap.sailing.domain.racelogtracking.SmartphoneUUIDIdentifier; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.server.gateway.jaxrs.api.LeaderboardsResource; import com.sap.sse.common.Util; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java index 1ba8b5ff210..0d8acda4aa7 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java @@ -22,7 +22,6 @@ 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; @@ -30,6 +29,7 @@ import com.sap.sailing.domain.leaderboard.impl.HighPoint; import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapterFactory; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.server.gateway.jaxrs.api.LeaderboardsResource; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java index caa03635690..092e19b235d 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java @@ -26,10 +26,10 @@ 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; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithStartTimeAndRanks; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.server.gateway.jaxrs.api.AbstractLeaderboardsResource; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java index 7d6cf97e1cc..4fbbf3c3328 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java @@ -22,9 +22,9 @@ 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.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.server.gateway.jaxrs.api.RegattasResource; import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java index 86d8ba2c774..d1c0eb4a664 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java @@ -50,7 +50,6 @@ 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; @@ -67,6 +66,7 @@ import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.leaderboard.ResultDiscardingRule; import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.leaderboard.ThresholdBasedResultDiscardingRule; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.geocoding.ReverseGeocoder; import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource; import com.sap.sailing.server.gateway.jaxrs.exceptions.ExceptionManager; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java index ffab2745d8f..c5ce0f9da09 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java @@ -40,7 +40,6 @@ 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; @@ -65,6 +64,7 @@ import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapter; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifierImpl; import com.sap.sailing.domain.trackimport.DoubleVectorFixImporter; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java index 3b398f2493e..a0d03c82b34 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java @@ -15,7 +15,6 @@ 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; @@ -24,6 +23,7 @@ import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO; import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.racelog.RaceLogIdentifier; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.server.impl.RacingEventServiceImpl; import com.sap.sailing.server.operationaltransformation.AddSpecificRegatta; import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/BoatReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/BoatReplicationTest.java index 4f858e34712..fbf003b26a3 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/BoatReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/BoatReplicationTest.java @@ -31,7 +31,6 @@ 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; @@ -39,6 +38,7 @@ import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java index 1ebfcd782a0..35c2c52c51a 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java @@ -34,7 +34,6 @@ 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; @@ -42,6 +41,7 @@ import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java index 5a7f3719e40..0f3183a5ce1 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java @@ -40,7 +40,6 @@ 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; @@ -60,6 +59,7 @@ import com.sap.sailing.domain.persistence.PersistenceFactory; import com.sap.sailing.domain.persistence.media.MediaDBFactory; import com.sap.sailing.domain.racelog.tracking.EmptySensorFixStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.test.PositionAssert; import com.sap.sailing.domain.test.TrackBasedTest; import com.sap.sailing.domain.tracking.DynamicTrackedRace; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java index a5d9f0f33a6..2a35acf28e3 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java @@ -25,12 +25,12 @@ 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; import com.sap.sailing.domain.common.dto.FleetDTO; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.server.operationaltransformation.UpdateSeries; import com.sap.sailing.server.operationaltransformation.UpdateSpecificRegatta; import com.sap.sse.common.Color; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java index bfb7eac4c9f..1737edc429f 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java @@ -19,13 +19,13 @@ 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; import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.test.AbstractTracTracLiveTest; import com.sap.sailing.domain.tracking.RaceHandle; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java index 227ea2e423c..37f44ea05ac 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java @@ -33,11 +33,11 @@ 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; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java index e41bcb56832..ade770b73d4 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java @@ -81,7 +81,6 @@ 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; @@ -122,6 +121,7 @@ import com.sap.sailing.domain.racelog.tracking.SensorFixStore; import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.test.TrackBasedTest; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.TrackedRace; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index 4fa6d1d4e1f..f483a44693e 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -35,9 +35,9 @@ 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.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.RaceTracker; import com.sap.sailing.domain.tracking.TrackedRace; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java index 709c629de66..e2ab615b9ad 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java @@ -32,7 +32,6 @@ 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; @@ -40,6 +39,7 @@ import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedRegatta; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java index e7fa1a363dc..33b92fcfe4c 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java @@ -33,7 +33,6 @@ 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; @@ -43,6 +42,7 @@ import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.leaderboard.impl.LowPoint; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.test.AbstractTracTracLiveTest; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java index 04cf4b200df..78461255b58 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java @@ -48,7 +48,6 @@ 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; @@ -77,6 +76,7 @@ import com.sap.sailing.domain.persistence.MongoObjectFactory; import com.sap.sailing.domain.polars.PolarDataService; import com.sap.sailing.domain.racelog.tracking.SensorFixStoreSupplier; import com.sap.sailing.domain.ranking.RankingMetricConstructor; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalike.LeaderboardThatHasRegattaLike; import com.sap.sailing.domain.statistics.Statistics; import com.sap.sailing.domain.tracking.DynamicTrackedRace; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java index ee9e7829070..3ce81c54f37 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java @@ -110,7 +110,6 @@ 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; @@ -170,6 +169,7 @@ import com.sap.sailing.domain.racelog.tracking.SensorFixStore; import com.sap.sailing.domain.ranking.RankingMetric.CompetitorRankingInfo; import com.sap.sailing.domain.ranking.RankingMetric.RankingInfo; import com.sap.sailing.domain.ranking.RankingMetricConstructor; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalike.HasRegattaLike; import com.sap.sailing.domain.regattalike.IsRegattaLike; import com.sap.sailing.domain.regattalike.LeaderboardThatHasRegattaLike; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java index 8eabfa82f45..8ed698087f2 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java @@ -11,7 +11,6 @@ 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; @@ -19,6 +18,7 @@ import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO; import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl; import com.sap.sailing.domain.ranking.RankingMetricsFactory; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.TrackedRegattaRegistry; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.RacingEventServiceOperation; diff --git a/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java b/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java index 4946b11293f..a6271d96020 100755 --- a/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java +++ b/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java @@ -30,11 +30,11 @@ 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; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; +import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.xrr.resultimport.ParserFactory; import com.sap.sailing.xrr.resultimport.impl.XRRParserUtil; import com.sap.sailing.xrr.schema.Boat; From f616603449e8bf65344f497ab5b6fae3c92890da Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Thu, 4 Oct 2018 13:38:20 +0200 Subject: [PATCH 07/28] Revert "display registration url for open regattas" This reverts commit 65df60b12ca2dffbc1ebdec521a2a4992778ad43. --- .../ui/adminconsole/RegattaDetailsComposite.java | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java index 0f51eda4c8a..d5afc33ffcc 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java @@ -64,7 +64,6 @@ public class RegattaDetailsComposite extends Composite { private final Label competitorRegistrationType; private final Label configuration; private final Label buoyZoneRadiusInHullLengths; - private final Label openRegattaRegistrationLink; private final SelectionModel seriesSelectionModel; private final CellTable seriesTable; @@ -83,7 +82,7 @@ public class RegattaDetailsComposite extends Composite { VerticalPanel vPanel = new VerticalPanel(); mainPanel.add(vPanel); - int rows = 15; + int rows = 14; Grid grid = new Grid(rows, 2); vPanel.add(grid); @@ -97,13 +96,12 @@ 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"); - competitorRegistrationType = createLabelAndValueWidget(grid, currentRow++, stringMessages.competitorRegistrationType(), "CompetitorRegistrationTypeLabel"); + 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"); rankingMetric = createLabelAndValueWidget(grid, currentRow++, stringMessages.rankingMetric(), "RankingMetricLabel"); - openRegattaRegistrationLink = createLabelAndValueWidget(grid, currentRow++, "Registration Link", "OpenRegattaRegistrationLinkLabel") ; - + seriesTable = createRegattaSeriesTable(); seriesTable.ensureDebugId("SeriesCellTable"); seriesSelectionModel = new SingleSelectionModel(); @@ -408,11 +406,8 @@ public class RegattaDetailsComposite extends Composite { controlTrackingFromStartAndFinishTimes.setText(regatta.controlTrackingFromStartAndFinishTimes ? stringMessages.yes() : stringMessages.no()); canBoatsOfCompetitorsChangePerRace.setText(regatta.canBoatsOfCompetitorsChangePerRace ? stringMessages.yes() : stringMessages.no()); competitorRegistrationType.setText(regatta.competitorRegistrationType.getLabel()); - openRegattaRegistrationLink.setText(regatta.competitorRegistrationType.isOpen() - ? "http://www.sapsailing.com" //TODO: get correct URL for branch.io - : "-"); - buoyZoneRadiusInHullLengths.setText(String.valueOf(regatta.buoyZoneRadiusInHullLengths)); - + buoyZoneRadiusInHullLengths.setText(String.valueOf(regatta.buoyZoneRadiusInHullLengths)); + if (regatta.configuration != null) { configuration.setText(stringMessages.configured()); } else { From 381f1aad8e8b3fddeb7f4dd5b8594146c2896a8c Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Thu, 4 Oct 2018 13:45:09 +0200 Subject: [PATCH 08/28] Revert "Revert "display registration url for open regattas"" This reverts commit f616603449e8bf65344f497ab5b6fae3c92890da. --- .../ui/adminconsole/RegattaDetailsComposite.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java index d5afc33ffcc..0f51eda4c8a 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java @@ -64,6 +64,7 @@ public class RegattaDetailsComposite extends Composite { private final Label competitorRegistrationType; private final Label configuration; private final Label buoyZoneRadiusInHullLengths; + private final Label openRegattaRegistrationLink; private final SelectionModel seriesSelectionModel; private final CellTable seriesTable; @@ -82,7 +83,7 @@ public class RegattaDetailsComposite extends Composite { VerticalPanel vPanel = new VerticalPanel(); mainPanel.add(vPanel); - int rows = 14; + int rows = 15; Grid grid = new Grid(rows, 2); vPanel.add(grid); @@ -96,12 +97,13 @@ 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"); - competitorRegistrationType = createLabelAndValueWidget(grid, currentRow++, stringMessages.competitorRegistrationType(), "GetcompetitorRegistrationType"); + competitorRegistrationType = createLabelAndValueWidget(grid, currentRow++, stringMessages.competitorRegistrationType(), "CompetitorRegistrationTypeLabel"); buoyZoneRadiusInHullLengths = createLabelAndValueWidget(grid, currentRow++, stringMessages.buoyZoneRadiusInHullLengths(), "BuoyZoneRadiusInHullLengthsLabel"); configuration = createLabelAndValueWidget(grid, currentRow++, stringMessages.racingProcedureConfiguration(), "RacingProcedureLabel"); scoringSystem = createLabelAndValueWidget(grid, currentRow++, stringMessages.scoringSystem(), "ScoringSystemLabel"); rankingMetric = createLabelAndValueWidget(grid, currentRow++, stringMessages.rankingMetric(), "RankingMetricLabel"); - + openRegattaRegistrationLink = createLabelAndValueWidget(grid, currentRow++, "Registration Link", "OpenRegattaRegistrationLinkLabel") ; + seriesTable = createRegattaSeriesTable(); seriesTable.ensureDebugId("SeriesCellTable"); seriesSelectionModel = new SingleSelectionModel(); @@ -406,8 +408,11 @@ public class RegattaDetailsComposite extends Composite { controlTrackingFromStartAndFinishTimes.setText(regatta.controlTrackingFromStartAndFinishTimes ? stringMessages.yes() : stringMessages.no()); canBoatsOfCompetitorsChangePerRace.setText(regatta.canBoatsOfCompetitorsChangePerRace ? stringMessages.yes() : stringMessages.no()); competitorRegistrationType.setText(regatta.competitorRegistrationType.getLabel()); - buoyZoneRadiusInHullLengths.setText(String.valueOf(regatta.buoyZoneRadiusInHullLengths)); - + openRegattaRegistrationLink.setText(regatta.competitorRegistrationType.isOpen() + ? "http://www.sapsailing.com" //TODO: get correct URL for branch.io + : "-"); + buoyZoneRadiusInHullLengths.setText(String.valueOf(regatta.buoyZoneRadiusInHullLengths)); + if (regatta.configuration != null) { configuration.setText(stringMessages.configured()); } else { From 660d6d1461bb85a97aeca1dc4017bc9ee55fe75e Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Thu, 4 Oct 2018 13:51:56 +0200 Subject: [PATCH 09/28] fixed javadoc --- .../domain/regattalike/CompetitorRegistrationType.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/CompetitorRegistrationType.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/CompetitorRegistrationType.java index 592d8f5de33..cfb1c1cbbe9 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/CompetitorRegistrationType.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/CompetitorRegistrationType.java @@ -2,8 +2,8 @@ package com.sap.sailing.domain.regattalike; /** * Types of registration of competitors to a regatta. - * Regattas can be closed, so only invited competitors are allowed or open, which means competitors can register - * @author Thomas + * Regattas can be closed, so only invited competitors are allowed or open, which means competitors can register themselves. + * @author Thomas Wiese * */ public enum CompetitorRegistrationType { From b254806a102c10ec4327e4fb5bd10fc792c5c684 Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Thu, 4 Oct 2018 14:01:38 +0200 Subject: [PATCH 10/28] Revert "Move CompetitorRegistrationType from com.sap.sailing.domain.common to com.sap.sailing.domain.base" This reverts commit b1bb9af5b6d28d4a164cf78378c59c820a581bd0. --- .../sap/sailing/domain/common}/CompetitorRegistrationType.java | 3 +-- .../domain/persistence/impl/DomainObjectFactoryImpl.java | 2 +- .../sailing/domain/persistence/impl/MigratableRegattaImpl.java | 2 +- .../domain/racelogtracking/test/AbstractGPSFixStoreTest.java | 2 +- .../test/impl/CreateAndTrackWithRaceLogTest.java | 2 +- .../test/impl/RaceLogFixTrackerManagerTest.java | 2 +- .../racelogtracking/test/impl/SensorFixStoreAndLoadTest.java | 2 +- .../test/impl/TrackedRaceStartTimeInferenceTest.java | 2 +- .../swisstimingadapter/test/SimpleDomainFactoryTest.java | 2 +- .../domain/swisstimingadapter/impl/DomainFactoryImpl.java | 2 +- .../ranking/TestFarthestAheadWithSkippedMarkPassing.java | 2 +- .../ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java | 2 +- .../domain/test/CompetitorProviderCacheInvalidationTest.java | 2 +- .../src/com/sap/sailing/domain/test/CourseTest.java | 2 +- .../test/CourseUpdateDuringNonAtomicSerializationTest.java | 2 +- .../sap/sailing/domain/test/LeaderboardCourseChangeTest.java | 2 +- .../sailing/domain/test/LeaderboardScoringAndRankingTest.java | 2 +- .../domain/test/LeaderboardScoringAndRankingTestBase.java | 2 +- .../test/LeaderboardScoringAndRankingTestForLowPoints.java | 2 +- .../test/RaceExecutionOrderProvdiderAttachDetachTest.java | 2 +- .../src/com/sap/sailing/domain/test/ReachingLegTest.java | 2 +- .../domain/test/RegattaLogEventNotificationForwardingTest.java | 2 +- .../sap/sailing/domain/test/SerializeRankingMetricTest.java | 2 +- .../sap/sailing/domain/test/TestDeadlockInRegattaListener.java | 2 +- .../src/com/sap/sailing/domain/test/TrackBasedTest.java | 2 +- .../src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java | 2 +- .../src/com/sap/sailing/domain/test/WindTest.java | 2 +- .../test/markpassing/AbstractMockedRaceMarkPassingTest.java | 2 +- .../com/sap/sailing/domain/test/mock/MockedTrackedRace.java | 2 +- .../sap/sailing/domain/tracking/impl/TrackedRegattaTest.java | 2 +- .../sailing/domain/tractracadapter/impl/DomainFactoryImpl.java | 2 +- .../src/com/sap/sailing/domain/base/impl/RegattaImpl.java | 2 +- .../domain/leaderboard/impl/FlexibleLeaderboardImpl.java | 2 +- .../sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java | 1 + .../src/com/sap/sailing/domain/regattalike/IsRegattaLike.java | 1 + .../com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java | 2 +- .../src/com/sap/sailing/gwt/ui/test/SlicingTest.java | 2 +- .../gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java | 2 +- .../java/com/sap/sailing/gwt/ui/client/SailingService.java | 2 +- .../com/sap/sailing/gwt/ui/client/SailingServiceAsync.java | 2 +- .../java/com/sap/sailing/gwt/ui/client/StringMessages.java | 3 +++ .../java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java | 2 +- .../main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java | 2 +- .../test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java | 2 +- .../test/RaceLogConnectivityParamsLoadAndStoreTest.java | 2 +- .../mongodb/test/TestStoringAndLoadingEventsAndRegattas.java | 2 +- .../sailing/server/gateway/test/jaxrs/EventResourceTest.java | 2 +- .../gateway/test/jaxrs/LeaderboardGroupResourceTest.java | 2 +- .../test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java | 2 +- .../gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java | 2 +- .../server/gateway/test/jaxrs/LeaderboardsResourceTest.java | 2 +- .../server/gateway/test/jaxrs/RegattasResourceTest.java | 2 +- .../sap/sailing/server/gateway/jaxrs/api/EventsResource.java | 2 +- .../gateway/trackfiles/impl/ExpeditionAllInOneImporter.java | 2 +- .../server/replication/test/AbstractLogReplicationTest.java | 2 +- .../sailing/server/replication/test/BoatReplicationTest.java | 2 +- .../server/replication/test/CompetitorReplicationTest.java | 2 +- .../test/InitialLoadReplicationObjectIdentityTest.java | 2 +- .../server/replication/test/RegattaReplicationTest.java | 2 +- .../test/TrackRaceBoatCompetitorMetadataReplicationTest.java | 2 +- .../src/com/sap/sailing/server/statistics/StatisticsTest.java | 2 +- .../src/com/sap/sailing/server/test/MasterDataImportTest.java | 2 +- .../com/sap/sailing/server/test/RaceTrackerStartStopTest.java | 2 +- .../src/com/sap/sailing/server/test/RemoveLeaderboardTest.java | 2 +- .../src/com/sap/sailing/server/test/SearchServiceTest.java | 2 +- .../src/com/sap/sailing/server/RacingEventService.java | 2 +- .../com/sap/sailing/server/impl/RacingEventServiceImpl.java | 2 +- .../server/operationaltransformation/AddSpecificRegatta.java | 2 +- .../com/sap/sailing/xrr/structureimport/StructureImporter.java | 2 +- 69 files changed, 71 insertions(+), 67 deletions(-) rename java/{com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike => com.sap.sailing.domain.common/src/com/sap/sailing/domain/common}/CompetitorRegistrationType.java (96%) diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/CompetitorRegistrationType.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java similarity index 96% rename from java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/CompetitorRegistrationType.java rename to java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java index cfb1c1cbbe9..8d7ae7aeaa1 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/CompetitorRegistrationType.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java @@ -1,4 +1,4 @@ -package com.sap.sailing.domain.regattalike; +package com.sap.sailing.domain.common; /** * Types of registration of competitors to a regatta. @@ -53,5 +53,4 @@ public enum CompetitorRegistrationType { // return "competitorRegistrationType" + this.labelPrefix; return this.labelPrefix; } - } diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java index 0dc22f85234..4442f8ba6c5 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java @@ -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; @@ -226,7 +227,6 @@ import com.sap.sailing.domain.racelogtracking.impl.PlaceHolderDeviceIdentifierSe import com.sap.sailing.domain.ranking.OneDesignRankingMetric; import com.sap.sailing.domain.ranking.RankingMetricConstructor; import com.sap.sailing.domain.ranking.RankingMetricsFactory; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalike.RegattaLikeIdentifier; import com.sap.sailing.domain.regattalog.RegattaLogStore; import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParameters; diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MigratableRegattaImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MigratableRegattaImpl.java index 571f4551282..c8802c9f123 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MigratableRegattaImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MigratableRegattaImpl.java @@ -9,11 +9,11 @@ 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; import com.sap.sailing.domain.ranking.RankingMetricConstructor; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.RegattaLogStore; import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java index b9db7dcd5e0..dde19c0bcce 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/AbstractGPSFixStoreTest.java @@ -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; @@ -40,7 +41,6 @@ import com.sap.sailing.domain.racelog.tracking.test.mock.MockDeviceAndSessionIde import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.Track; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java index 6d3b1f9bbf4..71522b874f0 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java @@ -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; @@ -60,7 +61,6 @@ import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapterFactory; import com.sap.sailing.domain.racelogtracking.impl.fixtracker.RaceLogFixTrackerManager; import com.sap.sailing.domain.racelogtracking.test.RaceLogTrackingTestHelper; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.RaceHandle; import com.sap.sailing.domain.tracking.Track; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java index c10d4944d9a..30ff35eb73a 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RaceLogFixTrackerManagerTest.java @@ -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; @@ -50,7 +51,6 @@ import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifie import com.sap.sailing.domain.racelogsensortracking.SensorFixMapperFactory; import com.sap.sailing.domain.racelogtracking.impl.fixtracker.RaceLogFixTrackerManager; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.DynamicTrack; import com.sap.sailing.domain.tracking.DynamicTrackedRace; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java index c8dfbb3d182..cd819d2d9bc 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/SensorFixStoreAndLoadTest.java @@ -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; @@ -82,7 +83,6 @@ import com.sap.sailing.domain.racelogsensortracking.SensorFixMapperFactory; import com.sap.sailing.domain.racelogtracking.impl.BravoDataFixMapper; import com.sap.sailing.domain.racelogtracking.impl.fixtracker.FixLoaderAndTracker; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.BravoFixTrack; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java index 64691f70985..4756226893f 100755 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/TrackedRaceStartTimeInferenceTest.java @@ -33,12 +33,12 @@ 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; import com.sap.sailing.domain.racelogtracking.test.AbstractGPSFixStoreTest; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.TrackedRegatta; diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java index db0c228808f..f220b5238eb 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SimpleDomainFactoryTest.java @@ -15,9 +15,9 @@ 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.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.swisstimingadapter.Competitor; import com.sap.sailing.domain.swisstimingadapter.Course; diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java index de4f428be60..2b9258b5b5f 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryImpl.java @@ -34,13 +34,13 @@ 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; import com.sap.sailing.domain.common.tracking.GPSFixMoving; import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.racelog.RaceLogStore; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.RegattaLogStore; import com.sap.sailing.domain.swisstimingadapter.Course; import com.sap.sailing.domain.swisstimingadapter.CrewMember; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java index 873bb4be401..d0b6594567e 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestFarthestAheadWithSkippedMarkPassing.java @@ -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; @@ -44,7 +45,6 @@ import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl; import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.ranking.RankingMetric.RankingInfo; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.test.TrackBasedTest; import com.sap.sailing.domain.tracking.DynamicTrackedRace; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java index 0097b6b15ae..1c31d38d52b 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/ranking/TestSimpleTimeOnTimeRankingWithOneUpwindLeg.java @@ -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; @@ -43,7 +44,6 @@ import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl; import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.test.TrackBasedTest; import com.sap.sailing.domain.tracking.DynamicTrackedRace; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CompetitorProviderCacheInvalidationTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CompetitorProviderCacheInvalidationTest.java index 2e099456978..f6ca6545842 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CompetitorProviderCacheInvalidationTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CompetitorProviderCacheInvalidationTest.java @@ -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; @@ -43,7 +44,6 @@ import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.leaderboard.impl.RegattaLeaderboardImpl; import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithStartTimeAndRanks; import com.sap.sailing.domain.tracking.TrackedRace; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java index 43741819f51..1de7c14f4b5 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseTest.java @@ -36,9 +36,9 @@ 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.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedLeg; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java index 54324cfedd8..7e6970d687b 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateDuringNonAtomicSerializationTest.java @@ -36,10 +36,10 @@ 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; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.TrackedRegatta; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java index 74cb55eb1ed..24c57b4469b 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardCourseChangeTest.java @@ -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; @@ -53,7 +54,6 @@ import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.leaderboard.impl.RegattaLeaderboardImpl; import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.TrackedRegatta; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java index 24e14869d0f..270e9787567 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTest.java @@ -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; @@ -69,7 +70,6 @@ import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRul import com.sap.sailing.domain.leaderboard.meta.LeaderboardGroupMetaLeaderboard; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithStartTimeAndRanks; import com.sap.sailing.domain.tracking.MarkPassing; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestBase.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestBase.java index 2257346c988..e4b0d20c7fa 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestBase.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestBase.java @@ -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; @@ -30,7 +31,6 @@ import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.leaderboard.impl.RegattaLeaderboardImpl; import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithStartTimeAndRanks; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithStartTimeAndZeroRanks; import com.sap.sailing.domain.tracking.MarkPassing; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java index 4ac8d719564..1e0d2c05984 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardScoringAndRankingTestForLowPoints.java @@ -17,13 +17,13 @@ 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; import com.sap.sailing.domain.leaderboard.impl.DelegatingRegattaLeaderboardWithCompetitorElimination; import com.sap.sailing.domain.leaderboard.impl.LowPointFirstToWinTwoRaces; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithStartTimeAndRanks; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sse.common.TimePoint; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java index f0bc4b003ba..81e81e70e5a 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RaceExecutionOrderProvdiderAttachDetachTest.java @@ -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; @@ -37,7 +38,6 @@ import com.sap.sailing.domain.leaderboard.impl.FlexibleLeaderboardImpl; import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.RaceExecutionOrderProvider; import com.sap.sailing.domain.tracking.TrackedRace; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java index ade20ff2b41..f6e950718d0 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/ReachingLegTest.java @@ -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; @@ -47,7 +48,6 @@ import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl; import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.TrackedLeg; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RegattaLogEventNotificationForwardingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RegattaLogEventNotificationForwardingTest.java index 756dcb47cb5..9badfa3ea40 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RegattaLogEventNotificationForwardingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/RegattaLogEventNotificationForwardingTest.java @@ -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; @@ -35,7 +36,6 @@ import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.leaderboard.impl.RegattaLeaderboardImpl; import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalike.IsRegattaLike; import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java index 1fdfeb04de4..60ad6b3e3dc 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializeRankingMetricTest.java @@ -18,11 +18,11 @@ 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; import com.sap.sailing.domain.ranking.TimeOnTimeAndDistanceRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java index 1759f28b078..617291407b2 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TestDeadlockInRegattaListener.java @@ -21,12 +21,12 @@ 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; import com.sap.sailing.domain.racelogtracking.impl.fixtracker.RegattaLogFixTrackerRegattaListener; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.RaceTracker; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java index 43a516be0a7..464eb4f3898 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackBasedTest.java @@ -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; @@ -60,7 +61,6 @@ import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.TrackedRegatta; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java index 71aeeec7626..6943ee768e4 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/UpdateMarkPassingTest.java @@ -22,8 +22,8 @@ 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.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRegattaImpl; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java index 6f4ea067d64..d22f580f0d8 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindTest.java @@ -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; @@ -53,7 +54,6 @@ import com.sap.sailing.domain.confidence.ConfidenceBasedWindAverager; import com.sap.sailing.domain.confidence.ConfidenceFactory; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.MarkPassing; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java index 881ce834bd7..7d80d1f872d 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMockedRaceMarkPassingTest.java @@ -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; @@ -38,7 +39,6 @@ import com.sap.sailing.domain.common.impl.MeterDistance; import com.sap.sailing.domain.common.tracking.impl.GPSFixImpl; import com.sap.sailing.domain.leaderboard.impl.HighPoint; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl; import com.sap.sailing.domain.tracking.impl.DynamicTrackedRegattaImpl; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java index 569619fd22e..085f3201e56 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java @@ -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; @@ -51,7 +52,6 @@ import com.sap.sailing.domain.polars.PolarDataService; import com.sap.sailing.domain.ranking.RankingMetric; import com.sap.sailing.domain.ranking.RankingMetric.RankingInfo; import com.sap.sailing.domain.ranking.RankingMetricConstructor; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalike.IsRegattaLike; import com.sap.sailing.domain.regattalike.RegattaLikeIdentifier; import com.sap.sailing.domain.regattalike.RegattaLikeListener; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java index 96fc1bf3de5..cc6723725a1 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/tracking/impl/TrackedRegattaTest.java @@ -26,9 +26,9 @@ 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.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java index c2e96552825..eb036e3eb93 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/DomainFactoryImpl.java @@ -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; @@ -62,7 +63,6 @@ import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.leaderboard.LeaderboardGroupResolver; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.racelog.RaceLogStore; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.RegattaLogStore; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; import com.sap.sailing.domain.tracking.DynamicTrackedRace; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java index 31c19e76c40..1bf1ff98f8a 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java @@ -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; @@ -61,7 +62,6 @@ import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; import com.sap.sailing.domain.ranking.RankingMetricConstructor; import com.sap.sailing.domain.regattalike.BaseRegattaLikeImpl; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalike.IsRegattaLike; import com.sap.sailing.domain.regattalike.RegattaAsRegattaLikeIdentifier; import com.sap.sailing.domain.regattalike.RegattaLikeIdentifier; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/FlexibleLeaderboardImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/FlexibleLeaderboardImpl.java index 4666fbae34f..e05d0d11b69 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/FlexibleLeaderboardImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/FlexibleLeaderboardImpl.java @@ -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; @@ -31,7 +32,6 @@ import com.sap.sailing.domain.leaderboard.ThresholdBasedResultDiscardingRule; import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.regattalike.BaseRegattaLikeImpl; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalike.FlexibleLeaderboardAsRegattaLikeIdentifier; import com.sap.sailing.domain.regattalike.IsRegattaLike; import com.sap.sailing.domain.regattalike.RegattaLikeIdentifier; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java index 3e0a8053919..47afe1d0d68 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/BaseRegattaLikeImpl.java @@ -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; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/IsRegattaLike.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/IsRegattaLike.java index a29b918a1f3..806de03b76b 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/IsRegattaLike.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/regattalike/IsRegattaLike.java @@ -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; diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java index 1138786ff12..e80996e0a53 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java @@ -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; @@ -19,7 +20,6 @@ import com.sap.sailing.domain.common.racelog.tracking.DoesNotHaveRegattaLogExcep import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.leaderboard.impl.HighPoint; import com.sap.sailing.domain.ranking.RankingMetricsFactory; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.gwt.ui.shared.MarkDTO; import com.sap.sailing.server.RacingEventService; diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java index 6fb872e6e7b..0ed3edd0d32 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java @@ -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; @@ -30,7 +31,6 @@ import com.sap.sailing.domain.common.dto.RaceDTO; import com.sap.sailing.domain.common.dto.RegattaCreationParametersDTO; import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO; import com.sap.sailing.domain.common.dto.TrackedRaceDTO; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.gwt.ui.adminconsole.RaceLogSetTrackingTimesDTO; import com.sap.sailing.gwt.ui.shared.DeviceIdentifierDTO; import com.sap.sailing.gwt.ui.shared.DeviceMappingDTO; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java index 7cdb9ed5eeb..debb85b5ca7 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java @@ -10,8 +10,8 @@ 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.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.gwt.common.client.suggestion.BoatClassMasterdataSuggestOracle; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.EventDTO; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java index d9ba086d7a7..37b7de65435 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java @@ -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; @@ -56,7 +57,6 @@ import com.sap.sailing.domain.common.windfinder.SpotDTO; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.racelog.tracking.SensorFixStore; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapter; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.expeditionconnector.ExpeditionDeviceConfiguration; import com.sap.sailing.gwt.ui.adminconsole.RaceLogSetTrackingTimesDTO; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java index 641ea112d9b..62e6078f933 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java @@ -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; @@ -45,7 +46,6 @@ import com.sap.sailing.domain.common.dto.RegattaCreationParametersDTO; import com.sap.sailing.domain.common.racelog.RacingProcedureType; import com.sap.sailing.domain.common.tracking.impl.PreciseCompactGPSFixMovingImpl.PreciseCompactPosition; import com.sap.sailing.domain.common.windfinder.SpotDTO; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.expeditionconnector.ExpeditionDeviceConfiguration; import com.sap.sailing.gwt.ui.adminconsole.RaceLogSetTrackingTimesDTO; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index 6bbbb06121c..c29e1634bbf 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -1195,6 +1195,9 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, String canNotRegisterBoats(); String competitorRegistrationType(); String competitorRegistrationTypeShort(); + String competitorRegistrationTypeClosed(); + String competitorRegistrationTypeOpenModerated(); + String competitorRegistrationTypeOpenUnmoderated(); String numberOfQueueMessagesSent(); String totalSize(); String averageMessageSize(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index eddb45ae1c6..5ae8b4ffa90 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -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; @@ -322,7 +323,6 @@ import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapter; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapterFactory; import com.sap.sailing.domain.racelogtracking.impl.DeviceMappingImpl; import com.sap.sailing.domain.ranking.RankingMetric.RankingInfo; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalike.HasRegattaLike; import com.sap.sailing.domain.regattalike.IsRegattaLike; import com.sap.sailing.domain.regattalike.LeaderboardThatHasRegattaLike; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java index fb2b0dd6a9f..e5f2c860c58 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java @@ -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; @@ -16,7 +17,6 @@ import com.sap.sailing.domain.common.dto.FleetDTO; import com.sap.sailing.domain.common.dto.NamedDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.domain.common.dto.RaceDTO; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapSettings; import com.sap.sse.common.Distance; import com.sap.sse.common.Util.Pair; diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java index 21be9788a38..ae0fb1e4a68 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/AbstractTestStoringAndRetrievingRaceLogInRegatta.java @@ -18,13 +18,13 @@ 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; import com.sap.sailing.domain.persistence.MongoObjectFactory; import com.sap.sailing.domain.persistence.PersistenceFactory; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sse.common.impl.MillisecondsTimePoint; public abstract class AbstractTestStoringAndRetrievingRaceLogInRegatta extends RaceLogMongoDBTest { diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java index 10f9112fc77..30405708165 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java @@ -23,13 +23,13 @@ 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; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapterFactory; import com.sap.sailing.domain.racelogtracking.impl.RaceLogConnectivityParams; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParameters; import com.sap.sse.common.Duration; import com.sap.sse.common.Util; diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java index 5b0d03fb3c1..c0e03df28a8 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java @@ -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; @@ -86,7 +87,6 @@ import com.sap.sailing.domain.racelog.tracking.EmptySensorFixStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; import com.sap.sailing.domain.ranking.RankingMetricConstructor; import com.sap.sailing.domain.ranking.TimeOnTimeAndDistanceRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.test.AbstractLeaderboardTest; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithFixedRank; import com.sap.sailing.domain.tracking.DynamicTrackedRace; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java index 9dacdd73541..276bab77949 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/EventResourceTest.java @@ -21,10 +21,10 @@ 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; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource; import com.sap.sailing.server.gateway.jaxrs.api.AbstractLeaderboardsResource; import com.sap.sailing.server.gateway.jaxrs.api.EventsResource; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java index 8492d0735ef..15202f5087f 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java @@ -22,10 +22,10 @@ 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; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithStartTimeAndRanks; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.server.gateway.jaxrs.api.LeaderboardGroupsResource; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java index a6b7b98496f..21ac60db63d 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceCheckinAndOutTest.java @@ -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; @@ -38,7 +39,6 @@ import com.sap.sailing.domain.racelogtracking.DeviceMapping; import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent; import com.sap.sailing.domain.racelogtracking.SmartphoneUUIDIdentifier; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.server.gateway.jaxrs.api.LeaderboardsResource; import com.sap.sse.common.Util; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java index 0d8acda4aa7..1ba8b5ff210 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourcePingMarkTest.java @@ -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; @@ -29,7 +30,6 @@ import com.sap.sailing.domain.leaderboard.impl.HighPoint; import com.sap.sailing.domain.racelogtracking.DeviceMappingWithRegattaLogEvent; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapterFactory; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.server.gateway.jaxrs.api.LeaderboardsResource; import com.sap.sse.common.NoCorrespondingServiceRegisteredException; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java index 092e19b235d..caa03635690 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java @@ -26,10 +26,10 @@ 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; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.test.mock.MockedTrackedRaceWithStartTimeAndRanks; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.server.gateway.jaxrs.api.AbstractLeaderboardsResource; diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java index 4fbbf3c3328..7d6cf97e1cc 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java @@ -22,9 +22,9 @@ 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.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.server.gateway.jaxrs.api.RegattasResource; import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java index d1c0eb4a664..86d8ba2c774 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java @@ -50,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; @@ -66,7 +67,6 @@ import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.leaderboard.ResultDiscardingRule; import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.leaderboard.ThresholdBasedResultDiscardingRule; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.geocoding.ReverseGeocoder; import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource; import com.sap.sailing.server.gateway.jaxrs.exceptions.ExceptionManager; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java index c5ce0f9da09..ffab2745d8f 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java @@ -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; @@ -64,7 +65,6 @@ import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapter; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifierImpl; import com.sap.sailing.domain.trackimport.DoubleVectorFixImporter; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java index a0d03c82b34..3b398f2493e 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java @@ -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; @@ -23,7 +24,6 @@ import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO; import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.racelog.RaceLogIdentifier; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.server.impl.RacingEventServiceImpl; import com.sap.sailing.server.operationaltransformation.AddSpecificRegatta; import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/BoatReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/BoatReplicationTest.java index fbf003b26a3..4f858e34712 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/BoatReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/BoatReplicationTest.java @@ -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; @@ -38,7 +39,6 @@ import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java index 35c2c52c51a..1ebfcd782a0 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java @@ -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; @@ -41,7 +42,6 @@ import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java index 0f3183a5ce1..5a7f3719e40 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java @@ -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; @@ -59,7 +60,6 @@ import com.sap.sailing.domain.persistence.PersistenceFactory; import com.sap.sailing.domain.persistence.media.MediaDBFactory; import com.sap.sailing.domain.racelog.tracking.EmptySensorFixStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.test.PositionAssert; import com.sap.sailing.domain.test.TrackBasedTest; import com.sap.sailing.domain.tracking.DynamicTrackedRace; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java index 2a35acf28e3..a5d9f0f33a6 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java @@ -25,12 +25,12 @@ 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; import com.sap.sailing.domain.common.dto.FleetDTO; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.server.operationaltransformation.UpdateSeries; import com.sap.sailing.server.operationaltransformation.UpdateSpecificRegatta; import com.sap.sse.common.Color; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java index 1737edc429f..bfb7eac4c9f 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java @@ -19,13 +19,13 @@ 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; import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.test.AbstractTracTracLiveTest; import com.sap.sailing.domain.tracking.RaceHandle; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java index 37f44ea05ac..227ea2e423c 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/statistics/StatisticsTest.java @@ -33,11 +33,11 @@ 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; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java index ade770b73d4..e41bcb56832 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java @@ -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; @@ -121,7 +122,6 @@ import com.sap.sailing.domain.racelog.tracking.SensorFixStore; import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.test.TrackBasedTest; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.TrackedRace; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java index f483a44693e..4fa6d1d4e1f 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerStartStopTest.java @@ -35,9 +35,9 @@ 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.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.RaceTracker; import com.sap.sailing.domain.tracking.TrackedRace; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java index e2ab615b9ad..709c629de66 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RemoveLeaderboardTest.java @@ -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; @@ -39,7 +40,6 @@ import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalog.impl.EmptyRegattaLogStore; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedRegatta; diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java index 33b92fcfe4c..e7fa1a363dc 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java @@ -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; @@ -42,7 +43,6 @@ import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.leaderboard.impl.LowPoint; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.test.AbstractTracTracLiveTest; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java index 78461255b58..04cf4b200df 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java @@ -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; @@ -76,7 +77,6 @@ import com.sap.sailing.domain.persistence.MongoObjectFactory; import com.sap.sailing.domain.polars.PolarDataService; import com.sap.sailing.domain.racelog.tracking.SensorFixStoreSupplier; import com.sap.sailing.domain.ranking.RankingMetricConstructor; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalike.LeaderboardThatHasRegattaLike; import com.sap.sailing.domain.statistics.Statistics; import com.sap.sailing.domain.tracking.DynamicTrackedRace; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java index 3ce81c54f37..ee9e7829070 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java @@ -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; @@ -169,7 +170,6 @@ import com.sap.sailing.domain.racelog.tracking.SensorFixStore; import com.sap.sailing.domain.ranking.RankingMetric.CompetitorRankingInfo; import com.sap.sailing.domain.ranking.RankingMetric.RankingInfo; import com.sap.sailing.domain.ranking.RankingMetricConstructor; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.regattalike.HasRegattaLike; import com.sap.sailing.domain.regattalike.IsRegattaLike; import com.sap.sailing.domain.regattalike.LeaderboardThatHasRegattaLike; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java index 8ed698087f2..8eabfa82f45 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java @@ -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; @@ -18,7 +19,6 @@ import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO; import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.leaderboard.impl.ThresholdBasedResultDiscardingRuleImpl; import com.sap.sailing.domain.ranking.RankingMetricsFactory; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.domain.tracking.TrackedRegattaRegistry; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.RacingEventServiceOperation; diff --git a/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java b/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java index a6271d96020..4946b11293f 100755 --- a/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java +++ b/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java @@ -30,11 +30,11 @@ 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; import com.sap.sailing.domain.ranking.OneDesignRankingMetric; -import com.sap.sailing.domain.regattalike.CompetitorRegistrationType; import com.sap.sailing.xrr.resultimport.ParserFactory; import com.sap.sailing.xrr.resultimport.impl.XRRParserUtil; import com.sap.sailing.xrr.schema.Boat; From 1f95f6b8967f3661959cbed6f532613659146c1b Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Mon, 8 Oct 2018 12:10:28 +0200 Subject: [PATCH 11/28] set visibility of getService(Class clazz) to public for accessibilty in unit tests, according to getService() --- .../server/gateway/jaxrs/AbstractSailingServerResource.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/AbstractSailingServerResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/AbstractSailingServerResource.java index 936faae6193..a7fac67aaf8 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/AbstractSailingServerResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/AbstractSailingServerResource.java @@ -33,7 +33,7 @@ public abstract class AbstractSailingServerResource { return resourceContext; } - protected T getService(Class clazz) { + public T getService(Class clazz) { BundleContext context = (BundleContext) servletContext .getAttribute(RestServletContainer.OSGI_RFC66_WEBBUNDLE_BUNDLECONTEXT_NAME); ServiceTracker tracker = new ServiceTracker(context, clazz, null); From ff6a0faed4531916852c7c75408fabcd1141ce8d Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Mon, 8 Oct 2018 13:28:42 +0200 Subject: [PATCH 12/28] append deviceId to rest api method creatAndAddCompetitor(...) and created intital unit test for competitor registration by admin user --- .../test/jaxrs/RegattasResourceTest.java | 69 +++++++++ .../gateway/jaxrs/api/RegattasResource.java | 134 +++++++++++++----- 2 files changed, 165 insertions(+), 38 deletions(-) diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java index 7d6cf97e1cc..89d2b11f38d 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java @@ -1,23 +1,39 @@ package com.sap.sailing.server.gateway.test.jaxrs; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; import java.util.ArrayList; import java.util.Calendar; import java.util.GregorianCalendar; +import java.util.Iterator; import java.util.List; import java.util.UUID; import javax.ws.rs.core.Response; +import org.apache.shiro.config.Ini; +import org.apache.shiro.mgt.DefaultSecurityManager; +import org.apache.shiro.realm.text.IniRealm; +import org.apache.shiro.subject.Subject; +import org.apache.shiro.subject.support.SubjectThreadState; +import org.apache.shiro.util.ThreadContext; +import org.apache.shiro.util.ThreadState; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.JSONValue; +import org.junit.After; import org.junit.Before; import org.junit.Test; +import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.DomainFactory; import com.sap.sailing.domain.base.Fleet; +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.RegattaImpl; @@ -28,6 +44,9 @@ import com.sap.sailing.domain.ranking.OneDesignRankingMetric; import com.sap.sailing.server.gateway.jaxrs.api.RegattasResource; import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; +import com.sap.sse.security.SecurityService; +import com.sap.sse.security.User; +import com.sap.sse.security.shared.Account; public class RegattasResourceTest extends AbstractJaxRsApiTest { private String boatClassName = "49er"; @@ -55,6 +74,11 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { testSeries.addRaceColumn("R2", /* trackedRegattaRegistry */ null); } + @After + public void tearDown() { + ThreadContext.remove(); + } + @Test public void testGetRegattas() throws Exception { RegattasResource resource = new RegattasResource(); @@ -76,4 +100,49 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { assertTrue(boatClassName.equals(jsonBoatClass)); } + @Test + public void testGetRegatta() throws Exception { + RegattasResource resource = new RegattasResource(); + RegattasResource spyResource = spyResource(resource); + final String name = RegattaImpl.getDefaultName(regattaName, boatClassName); + Response regattaResponse = spyResource.getRegatta(name); + String jsonString = (String) regattaResponse.getEntity(); + assertNotNull(jsonString); + String readRegattaName = (String) ((JSONObject) JSONValue.parse(jsonString)).get("name"); + assertEquals(name, readRegattaName); + } + + @Test + public void testCompetitorRegistrationByAdmin() throws Exception { + Ini ini = new Ini(); + ini.setSectionProperty("users", "admin", "admin"); + DefaultSecurityManager securityManager = new DefaultSecurityManager(new IniRealm(ini)); + + ThreadContext.bind(securityManager); + + Subject subject = mock(Subject.class); + when(subject.isAuthenticated()).thenReturn(true); + when(subject.getPrincipal()).thenReturn("admin"); + ThreadState subjectThreadState = new SubjectThreadState(subject); + subjectThreadState.bind(); + + RegattasResource resource = new RegattasResource(); + RegattasResource spyResource = spyResource(resource); + SecurityService securityService = mock(SecurityService.class); + User user = new User("admin", "noreply@sapsailing.com", new ArrayList(0)); + when(securityService.getCurrentUser()).thenReturn(user); + doReturn(securityService).when(spyResource).getService(SecurityService.class); + + final String name = RegattaImpl.getDefaultName(regattaName, boatClassName); + Response reponse = spyResource.createAndAddCompetitor(name, boatClassName, null, "GER", null, null, null, + "Max Mustermann", null, "abcd-abcd-abcd-abcd"); + assertTrue(reponse.getStatus() + ": " + reponse.getEntity().toString(), reponse.getStatus() == 200); + assertTrue(spyResource.getService() == racingEventService); + + Regatta regatta = racingEventService.getRegattaByName(name); + + Iterator cit = regatta.getAllCompetitors().iterator(); + Competitor readCompetitor = cit.next(); + assertNotNull(readCompetitor); + } } diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java index 9a739737646..1da13af6a47 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java @@ -35,6 +35,10 @@ import org.json.simple.JSONValue; import org.json.simple.parser.ParseException; import com.sap.sailing.datamining.SailingPredefinedQueries; +import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; +import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; +import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEventImpl; +import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorMappingEventImpl; import com.sap.sailing.domain.base.Boat; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.CompetitorWithBoat; @@ -49,6 +53,7 @@ import com.sap.sailing.domain.base.impl.BoatImpl; import com.sap.sailing.domain.base.impl.DynamicBoat; import com.sap.sailing.domain.base.impl.PersonImpl; import com.sap.sailing.domain.base.impl.TeamImpl; +import com.sap.sailing.domain.common.DeviceIdentifier; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.RegattaName; import com.sap.sailing.domain.common.SpeedWithBearing; @@ -62,6 +67,7 @@ import com.sap.sailing.domain.common.tracking.GPSFix; import com.sap.sailing.domain.common.tracking.GPSFixMoving; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.polars.NotEnoughDataHasBeenAddedException; +import com.sap.sailing.domain.racelogtracking.impl.SmartphoneUUIDIdentifierImpl; import com.sap.sailing.domain.ranking.RankingMetric.RankingInfo; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.GPSFixTrack; @@ -144,6 +150,21 @@ public class RegattasResource extends AbstractSailingServerResource { .type(MediaType.TEXT_PLAIN).build(); } + private Response getBadRegattaRegistrationTypeErrorResponse(String regattaName) { + return Response.status(Status.FORBIDDEN).entity("Self-registration to regatta '" + StringEscapeUtils.escapeHtml(regattaName) + "' is not allowed.") + .type(MediaType.TEXT_PLAIN).build(); + } + + private Response getAlreadyRegisteredDeviceErrorResponse(String regattaName, String deviceId) { + return Response.status(Status.FORBIDDEN).entity("Device is already registered to regatta '" + StringEscapeUtils.escapeHtml(regattaName) + "'.") + .type(MediaType.TEXT_PLAIN).build(); + } + + private Response getAlreadyRegisteredUserErrorResponse(String regattaName, String userName) { + return Response.status(Status.FORBIDDEN).entity("User is already registered to regatta '" + StringEscapeUtils.escapeHtml(regattaName) + "'.") + .type(MediaType.TEXT_PLAIN).build(); + } + private Response getBadBoatClassResponse(String boatClassName) { return Response.status(Status.NOT_FOUND).entity("Could not use a boat class with name '" + StringEscapeUtils.escapeHtml(boatClassName) + "'.") .type(MediaType.TEXT_PLAIN).build(); @@ -327,53 +348,90 @@ public class RegattasResource extends AbstractSailingServerResource { @QueryParam("timeontimefactor") Double timeOnTimeFactor, @QueryParam("timeondistanceallowancepernauticalmileasmillis") Long timeOnDistanceAllowancePerNauticalMileAsMillis, @QueryParam("searchtag") String searchTag, @QueryParam("competitorName") String competitorName, - @QueryParam("competitorEmail") String competitorEmail) { + @QueryParam("competitorEmail") String competitorEmail, @QueryParam("deviceUuid") String deviceUuid) { final Subject subject = SecurityUtils.getSubject(); - subject.checkPermission(Permission.REGATTA.getStringPermissionForObjects(Mode.UPDATE, regattaName)); - Response response; - Regatta regatta = findRegattaByName(regattaName); + + final Response response; + final Regatta regatta = findRegattaByName(regattaName); if (regatta == null) { response = getBadRegattaErrorResponse(regattaName); } else if (boatClassName == null) { response = getBadBoatClassResponse(boatClassName); } else { - final User user = getService(SecurityService.class).getCurrentUser(); - final String shortName; - final String name; - if (competitorName != null) { - name = competitorName; - shortName = competitorName; - } else { - shortName = user.getName(); - name = user.getFullName() == null ? shortName : user.getFullName(); + boolean registerCompetitor = false; + boolean checkInCompetitor = false; + if (subject.isAuthenticated() && ("admin".equals(subject.getPrincipal()) /*|| regatta.owner.equals(subject)*/)) { //TODO: correct admin-group and owner check + //case 1: admin or regatta owner is registering a competitor + subject.checkPermission(Permission.REGATTA.getStringPermissionForObjects(Mode.UPDATE, regattaName)); + registerCompetitor = true; + } else if (subject.isAuthenticated() && regatta.getCompetitorRegistrationType().isOpen()) { + //case 2: "unprivileged" authenticated user is registering + registerCompetitor = true; + //case 2.1: with device //TODO: correct to checkin in with device? + checkInCompetitor = deviceUuid != null; + } else if (deviceUuid != null && regatta.getCompetitorRegistrationType().isOpen()) { + //case 3: unauthorized with device + registerCompetitor = true; + checkInCompetitor = true; } - final String email; - if (competitorEmail != null) { - email = competitorEmail; + + //Check regattalog if device has been used already + if (checkInCompetitor) { + //RegattaLog regattaLog = regatta.getRegattaLog(); + //TODO: how to find out DeviceToCompetitorMappings + } + + if (registerCompetitor) { + final User user = getService(SecurityService.class).getCurrentUser(); + final String shortName; + final String name; + if (competitorName != null) { + name = competitorName; + shortName = competitorName; + } else { + shortName = user.getName(); + name = user.getFullName() == null ? shortName : user.getFullName(); + } + final String email; + if (competitorEmail != null) { + email = competitorEmail; + } else { + email = user.getEmail(); + } + + final Boat boat = new BoatImpl(UUID.randomUUID(), shortName, getService().getBaseDomainFactory() + .getOrCreateBoatClass(boatClassName, /* typicallyStartsUpwind */ true), sailId); + + final TeamImpl team = new TeamImpl(shortName, + Collections.singleton(new PersonImpl(name, + getService().getBaseDomainFactory() + .getOrCreateNationality(nationalityThreeLetterIOCCode), + /* dateOfBirth */ null, /* description */ null)), + /* coach */ null); + final CompetitorWithBoat competitor = getService().getCompetitorAndBoatStore() + .getOrCreateCompetitorWithBoat(UUID.randomUUID(), + name, /* shortName */ null, /* displayColor */ null, email, /* flagImageURI */ null, + team, + timeOnTimeFactor, + timeOnDistanceAllowancePerNauticalMileAsMillis == null ? null + : new MillisecondsDurationImpl(timeOnDistanceAllowancePerNauticalMileAsMillis), + searchTag, (DynamicBoat) boat); + regatta.registerCompetitor(competitor); + response = Response.ok(CompetitorJsonSerializer.create().serialize(competitor).toJSONString()). + header("Content-Type", MediaType.APPLICATION_JSON + ";charset=UTF-8").build(); + + if (checkInCompetitor) { + final DeviceIdentifier device = new SmartphoneUUIDIdentifierImpl(UUID.fromString(deviceUuid)); + final TimePoint now = MillisecondsTimePoint.now(); + RegattaLogDeviceMappingEventImpl event = + new RegattaLogDeviceCompetitorMappingEventImpl(now, now, new LogEventAuthorImpl(AbstractLogEventAuthor.NAME_COMPATIBILITY, + AbstractLogEventAuthor.PRIORITY_COMPATIBILITY), UUID.randomUUID(), competitor, device, + now, /* to */ null); + regatta.getRegattaLog().add(event); + } } else { - email = user.getEmail(); + response = getBadRegattaRegistrationTypeErrorResponse(regattaName); } - - final Boat boat = new BoatImpl(UUID.randomUUID(), shortName, getService().getBaseDomainFactory() - .getOrCreateBoatClass(boatClassName, /* typicallyStartsUpwind */ true), sailId); - - final TeamImpl team = new TeamImpl(shortName, - Collections.singleton(new PersonImpl(name, - getService().getBaseDomainFactory() - .getOrCreateNationality(nationalityThreeLetterIOCCode), - /* dateOfBirth */ null, /* description */ null)), - /* coach */ null); - final CompetitorWithBoat competitor = getService().getCompetitorAndBoatStore() - .getOrCreateCompetitorWithBoat(UUID.randomUUID(), - name, /* shortName */ null, /* displayColor */ null, email, /* flagImageURI */ null, - team, - timeOnTimeFactor, - timeOnDistanceAllowancePerNauticalMileAsMillis == null ? null - : new MillisecondsDurationImpl(timeOnDistanceAllowancePerNauticalMileAsMillis), - searchTag, (DynamicBoat) boat); - regatta.registerCompetitor(competitor); - response = Response.ok(CompetitorJsonSerializer.create().serialize(competitor).toJSONString()). - header("Content-Type", MediaType.APPLICATION_JSON + ";charset=UTF-8").build(); } return response; } From c3553a5e06d9701125fb61e922899e0ecd5dc99d Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Mon, 8 Oct 2018 14:43:13 +0200 Subject: [PATCH 13/28] unit test for competitor registration on open regatta --- .../test/jaxrs/AbstractJaxRsApiTest.java | 33 +++++++ .../test/jaxrs/RegattasResourceTest.java | 85 +++++++++++-------- .../gateway/jaxrs/api/RegattasResource.java | 4 +- 3 files changed, 86 insertions(+), 36 deletions(-) diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java index a24f93ba4d2..ffd6f15b0e9 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/AbstractJaxRsApiTest.java @@ -1,7 +1,9 @@ package com.sap.sailing.server.gateway.test.jaxrs; import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.mock; import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.when; import java.io.UnsupportedEncodingException; import java.text.ParseException; @@ -13,6 +15,14 @@ import java.util.List; import javax.ws.rs.core.Response; +import org.apache.shiro.config.Ini; +import org.apache.shiro.mgt.DefaultSecurityManager; +import org.apache.shiro.realm.text.IniRealm; +import org.apache.shiro.subject.Subject; +import org.apache.shiro.subject.support.SubjectThreadState; +import org.apache.shiro.util.ThreadContext; +import org.apache.shiro.util.ThreadState; + import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.impl.CompetitorImpl; import com.sap.sailing.domain.base.impl.NationalityImpl; @@ -27,10 +37,12 @@ import com.sap.sse.common.TimePoint; import com.sap.sse.common.impl.MillisecondsTimePoint; import com.sap.sse.mongodb.MongoDBConfiguration; import com.sap.sse.mongodb.MongoDBService; +import com.sap.sse.security.SecurityService; public abstract class AbstractJaxRsApiTest { protected RacingEventService racingEventService; protected MongoDBService service; + protected SecurityService securityService; protected static SimpleDateFormat TIMEPOINT_FORMATTER = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); @@ -39,6 +51,27 @@ public abstract class AbstractJaxRsApiTest { service.getDB().dropDatabase(); racingEventService = new RacingEventServiceImpl(/* clearPersistentCompetitorStore */ true, new MockSmartphoneUuidServiceFinderFactory(), /* restoreTrackedRaces */ false); + securityService = mock(SecurityService.class); + } + + public void setUpSecurityManager() { + Ini ini = new Ini(); + ini.setSectionProperty("users", "admin", "admin"); + DefaultSecurityManager securityManager = new DefaultSecurityManager(new IniRealm(ini)); + ThreadContext.bind(securityManager); + } + + public void tearDownSecurityManager() { + ThreadContext.remove(); + } + + public ThreadState setUpSubject(String principal) { + Subject subject = mock(Subject.class); + when(subject.isAuthenticated()).thenReturn(true); + when(subject.getPrincipal()).thenReturn(principal); + ThreadState subjectThreadState = new SubjectThreadState(subject); + subjectThreadState.bind(); + return subjectThreadState; } protected T spyResource(T resource) { diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java index 89d2b11f38d..b5597c2552f 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java @@ -16,12 +16,6 @@ import java.util.UUID; import javax.ws.rs.core.Response; -import org.apache.shiro.config.Ini; -import org.apache.shiro.mgt.DefaultSecurityManager; -import org.apache.shiro.realm.text.IniRealm; -import org.apache.shiro.subject.Subject; -import org.apache.shiro.subject.support.SubjectThreadState; -import org.apache.shiro.util.ThreadContext; import org.apache.shiro.util.ThreadState; import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -50,7 +44,8 @@ import com.sap.sse.security.shared.Account; public class RegattasResourceTest extends AbstractJaxRsApiTest { private String boatClassName = "49er"; - private String regattaName = "TestRegatta"; + private String closedRegattaName = "TestRegatta"; + private String openRegattaName = "TestOpenRegatta"; @Before public void setUp() throws Exception { @@ -67,36 +62,40 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { final TimePoint endDate = new MillisecondsTimePoint(cal.getTime()); Series testSeries = new SeriesImpl("TestSeries", /* isMedal */false, /* isFleetsCanRunInParallel */ true, fleets, raceColumnNames, /* trackedRegattaRegistry */null); series.add(testSeries); - racingEventService.createRegatta(RegattaImpl.getDefaultName(regattaName, boatClassName), boatClassName, + racingEventService.createRegatta(RegattaImpl.getDefaultName(closedRegattaName, boatClassName), boatClassName, /* 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); + racingEventService.createRegatta(RegattaImpl.getDefaultName(openRegattaName, boatClassName), boatClassName, + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.OPEN_MODERATED, 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); } @After public void tearDown() { - ThreadContext.remove(); + tearDownSecurityManager(); } @Test - public void testGetRegattas() throws Exception { + public void testGetRegattas() throws Exception { RegattasResource resource = new RegattasResource(); RegattasResource spyResource = spyResource(resource); - + Response regattasResponse = spyResource.getRegattas(); - + String jsonString = (String) regattasResponse.getEntity(); - Object obj= JSONValue.parse(jsonString); - JSONArray array= (JSONArray) obj; + Object obj = JSONValue.parse(jsonString); + JSONArray array = (JSONArray) obj; - assertTrue(array.size() == 1); + assertTrue(array.size() == 2); - JSONObject firstElement = (JSONObject) array.get(0); + JSONObject firstElement = (JSONObject) array.get(0); String jsonName = (String) firstElement.get("name"); String jsonBoatClass = (String) firstElement.get("boatclass"); - - assertTrue(RegattaImpl.getDefaultName(regattaName, boatClassName).equals(jsonName)); + + assertTrue(RegattaImpl.getDefaultName(closedRegattaName, boatClassName).equals(jsonName) + || RegattaImpl.getDefaultName(openRegattaName, boatClassName).equals(jsonName)); assertTrue(boatClassName.equals(jsonBoatClass)); } @@ -104,7 +103,7 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { public void testGetRegatta() throws Exception { RegattasResource resource = new RegattasResource(); RegattasResource spyResource = spyResource(resource); - final String name = RegattaImpl.getDefaultName(regattaName, boatClassName); + final String name = RegattaImpl.getDefaultName(closedRegattaName, boatClassName); Response regattaResponse = spyResource.getRegatta(name); String jsonString = (String) regattaResponse.getEntity(); assertNotNull(jsonString); @@ -114,28 +113,19 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { @Test public void testCompetitorRegistrationByAdmin() throws Exception { - Ini ini = new Ini(); - ini.setSectionProperty("users", "admin", "admin"); - DefaultSecurityManager securityManager = new DefaultSecurityManager(new IniRealm(ini)); - - ThreadContext.bind(securityManager); - - Subject subject = mock(Subject.class); - when(subject.isAuthenticated()).thenReturn(true); - when(subject.getPrincipal()).thenReturn("admin"); - ThreadState subjectThreadState = new SubjectThreadState(subject); - subjectThreadState.bind(); + setUpSecurityManager(); + ThreadState subjectThreadState = setUpSubject("admin"); RegattasResource resource = new RegattasResource(); RegattasResource spyResource = spyResource(resource); - SecurityService securityService = mock(SecurityService.class); - User user = new User("admin", "noreply@sapsailing.com", new ArrayList(0)); - when(securityService.getCurrentUser()).thenReturn(user); doReturn(securityService).when(spyResource).getService(SecurityService.class); - final String name = RegattaImpl.getDefaultName(regattaName, boatClassName); + User user = new User("admin", "noreply@sapsailing.com", new ArrayList(0)); + when(securityService.getCurrentUser()).thenReturn(user); + + final String name = RegattaImpl.getDefaultName(closedRegattaName, boatClassName); Response reponse = spyResource.createAndAddCompetitor(name, boatClassName, null, "GER", null, null, null, - "Max Mustermann", null, "abcd-abcd-abcd-abcd"); + "Max Mustermann", null, "abcd-abcd-abcd-abcd-abcd"); assertTrue(reponse.getStatus() + ": " + reponse.getEntity().toString(), reponse.getStatus() == 200); assertTrue(spyResource.getService() == racingEventService); @@ -144,5 +134,30 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { Iterator cit = regatta.getAllCompetitors().iterator(); Competitor readCompetitor = cit.next(); assertNotNull(readCompetitor); + + subjectThreadState.clear(); } + + @Test + public void testCompetitorRegistrationAnonymousOnOpenRegatta() throws Exception { + setUpSecurityManager(); + + RegattasResource resource = new RegattasResource(); + RegattasResource spyResource = spyResource(resource); + doReturn(securityService).when(spyResource).getService(SecurityService.class); + + final String name = RegattaImpl.getDefaultName(openRegattaName, boatClassName); + Regatta regatta = racingEventService.getRegattaByName(name); + + Response reponse = spyResource.createAndAddCompetitor(name, boatClassName, null, "GER", null, null, null, + "Max Mustermann", null, "abcd-abcd-abcd-abcd-abcd"); + assertTrue(reponse.getStatus() + ": " + reponse.getEntity().toString(), reponse.getStatus() == 200); + assertTrue(spyResource.getService() == racingEventService); + + regatta = racingEventService.getRegattaByName(name); + Iterator cit = regatta.getAllCompetitors().iterator(); + Competitor readCompetitor = cit.next(); + assertNotNull(readCompetitor); + } + } diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java index 1da13af6a47..11d275b03c1 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java @@ -395,8 +395,10 @@ public class RegattasResource extends AbstractSailingServerResource { final String email; if (competitorEmail != null) { email = competitorEmail; - } else { + } else if (user != null && user.getEmail() != null) { email = user.getEmail(); + } else { + email = null; } final Boat boat = new BoatImpl(UUID.randomUUID(), shortName, getService().getBaseDomainFactory() From 4aae33958c3f7bab5b7c776ac473fcb3b3bfcd5b Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Mon, 8 Oct 2018 14:44:21 +0200 Subject: [PATCH 14/28] removed unused import in RegattaRessourceTest --- .../sailing/server/gateway/test/jaxrs/RegattasResourceTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java index b5597c2552f..40c646aae19 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java @@ -4,7 +4,6 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import java.util.ArrayList; From 483cecaa5349fcfa74ccdaa01dcd72e8f0d5eee2 Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Mon, 8 Oct 2018 15:28:14 +0200 Subject: [PATCH 15/28] unit test for authenticated competitor registration on open regatta --- .../test/jaxrs/RegattasResourceTest.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java index 40c646aae19..b8abb121ef8 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java @@ -23,6 +23,7 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; +import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorMappingEventImpl; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.DomainFactory; import com.sap.sailing.domain.base.Fleet; @@ -157,6 +158,49 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { Iterator cit = regatta.getAllCompetitors().iterator(); Competitor readCompetitor = cit.next(); assertNotNull(readCompetitor); + + // should have one device registration event of type RegattaLogDeviceCompetitorMappingEventImpl... + assertTrue(regatta.getRegattaLog().getUnrevokedEvents().stream() + .filter(e -> e instanceof RegattaLogDeviceCompetitorMappingEventImpl).count() == 1); + // ..with requested device id + assertEquals("0000abcd-abcd-abcd-abcd-00000000abcd", ((RegattaLogDeviceCompetitorMappingEventImpl) regatta + .getRegattaLog().getUnrevokedEvents().iterator().next()).getDevice().getStringRepresentation()); + + } + + @Test + public void testCompetitorRegistrationAuthenticatedOnOpenRegatta() throws Exception { + setUpSecurityManager(); + ThreadState subjectThreadState = setUpSubject("testuser"); + + RegattasResource resource = new RegattasResource(); + RegattasResource spyResource = spyResource(resource); + doReturn(securityService).when(spyResource).getService(SecurityService.class); + + User user = new User("admin", "noreply@sapsailing.com", new ArrayList(0)); + when(securityService.getCurrentUser()).thenReturn(user); + + final String name = RegattaImpl.getDefaultName(openRegattaName, boatClassName); + Regatta regatta = racingEventService.getRegattaByName(name); + + Response reponse = spyResource.createAndAddCompetitor(name, boatClassName, null, "GER", null, null, null, + "Max Mustermann", null, "abcd-abcd-abcd-abcd-abcd"); + assertTrue(reponse.getStatus() + ": " + reponse.getEntity().toString(), reponse.getStatus() == 200); + assertTrue(spyResource.getService() == racingEventService); + + regatta = racingEventService.getRegattaByName(name); + Iterator cit = regatta.getAllCompetitors().iterator(); + Competitor readCompetitor = cit.next(); + assertNotNull(readCompetitor); + + // should have one device registration event of type RegattaLogDeviceCompetitorMappingEventImpl... + assertTrue(regatta.getRegattaLog().getUnrevokedEvents().stream() + .filter(e -> e instanceof RegattaLogDeviceCompetitorMappingEventImpl).count() == 1); + // ..with requested device if + assertEquals("0000abcd-abcd-abcd-abcd-00000000abcd", ((RegattaLogDeviceCompetitorMappingEventImpl) regatta + .getRegattaLog().getUnrevokedEvents().iterator().next()).getDevice().getStringRepresentation()); + + subjectThreadState.clear(); } } From 009d86e650123d306ba028c0c7d340fda004d4b5 Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Mon, 8 Oct 2018 16:24:10 +0200 Subject: [PATCH 16/28] check for duplicate deviceUuid registration --- .../test/jaxrs/RegattasResourceTest.java | 58 ++++++++++--------- .../gateway/jaxrs/api/RegattasResource.java | 20 +++++-- 2 files changed, 48 insertions(+), 30 deletions(-) diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java index b8abb121ef8..28eeb620833 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java @@ -14,6 +14,7 @@ import java.util.List; import java.util.UUID; import javax.ws.rs.core.Response; +import javax.ws.rs.core.Response.Status; import org.apache.shiro.util.ThreadState; import org.json.simple.JSONArray; @@ -23,7 +24,7 @@ import org.junit.After; import org.junit.Before; import org.junit.Test; -import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorMappingEventImpl; +import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorMappingEvent; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.DomainFactory; import com.sap.sailing.domain.base.Fleet; @@ -43,9 +44,10 @@ import com.sap.sse.security.User; import com.sap.sse.security.shared.Account; public class RegattasResourceTest extends AbstractJaxRsApiTest { - private String boatClassName = "49er"; - private String closedRegattaName = "TestRegatta"; - private String openRegattaName = "TestOpenRegatta"; + private final String boatClassName = "49er"; + private final String closedRegattaName = "TestRegatta"; + private final String openRegattaName = "TestOpenRegatta"; + private final String deviceUuid = "00000000-1111-2222-3333-444444444444"; @Before public void setUp() throws Exception { @@ -125,8 +127,9 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { final String name = RegattaImpl.getDefaultName(closedRegattaName, boatClassName); Response reponse = spyResource.createAndAddCompetitor(name, boatClassName, null, "GER", null, null, null, - "Max Mustermann", null, "abcd-abcd-abcd-abcd-abcd"); - assertTrue(reponse.getStatus() + ": " + reponse.getEntity().toString(), reponse.getStatus() == 200); + "Max Mustermann", null, deviceUuid); + assertTrue(reponse.getStatus() + ": " + reponse.getEntity().toString(), + reponse.getStatus() == Status.OK.getStatusCode()); assertTrue(spyResource.getService() == racingEventService); Regatta regatta = racingEventService.getRegattaByName(name); @@ -150,22 +153,13 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { Regatta regatta = racingEventService.getRegattaByName(name); Response reponse = spyResource.createAndAddCompetitor(name, boatClassName, null, "GER", null, null, null, - "Max Mustermann", null, "abcd-abcd-abcd-abcd-abcd"); - assertTrue(reponse.getStatus() + ": " + reponse.getEntity().toString(), reponse.getStatus() == 200); + "Max Mustermann", null, deviceUuid); + assertTrue(reponse.getStatus() + ": " + reponse.getEntity().toString(), + reponse.getStatus() == Status.OK.getStatusCode()); assertTrue(spyResource.getService() == racingEventService); regatta = racingEventService.getRegattaByName(name); - Iterator cit = regatta.getAllCompetitors().iterator(); - Competitor readCompetitor = cit.next(); - assertNotNull(readCompetitor); - - // should have one device registration event of type RegattaLogDeviceCompetitorMappingEventImpl... - assertTrue(regatta.getRegattaLog().getUnrevokedEvents().stream() - .filter(e -> e instanceof RegattaLogDeviceCompetitorMappingEventImpl).count() == 1); - // ..with requested device id - assertEquals("0000abcd-abcd-abcd-abcd-00000000abcd", ((RegattaLogDeviceCompetitorMappingEventImpl) regatta - .getRegattaLog().getUnrevokedEvents().iterator().next()).getDevice().getStringRepresentation()); - + testResponseOfOpenRegattaCompetitorRegistration(regatta, spyResource); } @Test @@ -184,23 +178,35 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { Regatta regatta = racingEventService.getRegattaByName(name); Response reponse = spyResource.createAndAddCompetitor(name, boatClassName, null, "GER", null, null, null, - "Max Mustermann", null, "abcd-abcd-abcd-abcd-abcd"); - assertTrue(reponse.getStatus() + ": " + reponse.getEntity().toString(), reponse.getStatus() == 200); + "Max Mustermann", null, deviceUuid); + assertTrue(reponse.getStatus() + ": " + reponse.getEntity().toString(), + reponse.getStatus() == Status.OK.getStatusCode()); assertTrue(spyResource.getService() == racingEventService); regatta = racingEventService.getRegattaByName(name); + testResponseOfOpenRegattaCompetitorRegistration(regatta, spyResource); + + subjectThreadState.clear(); + } + + private void testResponseOfOpenRegattaCompetitorRegistration(final Regatta regatta, + final RegattasResource spyResource) { Iterator cit = regatta.getAllCompetitors().iterator(); Competitor readCompetitor = cit.next(); assertNotNull(readCompetitor); // should have one device registration event of type RegattaLogDeviceCompetitorMappingEventImpl... assertTrue(regatta.getRegattaLog().getUnrevokedEvents().stream() - .filter(e -> e instanceof RegattaLogDeviceCompetitorMappingEventImpl).count() == 1); - // ..with requested device if - assertEquals("0000abcd-abcd-abcd-abcd-00000000abcd", ((RegattaLogDeviceCompetitorMappingEventImpl) regatta - .getRegattaLog().getUnrevokedEvents().iterator().next()).getDevice().getStringRepresentation()); + .filter(e -> e instanceof RegattaLogDeviceCompetitorMappingEvent).count() == 1); + // ..with requested device id + assertEquals(deviceUuid, ((RegattaLogDeviceCompetitorMappingEvent) regatta.getRegattaLog().getUnrevokedEvents() + .iterator().next()).getDevice().getStringRepresentation()); - subjectThreadState.clear(); + // Same deviceUuid for registration should fail + Response response = spyResource.createAndAddCompetitor(regatta.getName(), boatClassName, null, "GER", null, null, null, + "Max Mustermann", null, deviceUuid); + assertTrue("Reponse http status should be forbidden (403) but is " + response.getStatus(), + response.getStatus() == Status.FORBIDDEN.getStatusCode()); } } diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java index 11d275b03c1..650d746e471 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java @@ -37,6 +37,8 @@ import org.json.simple.parser.ParseException; import com.sap.sailing.datamining.SailingPredefinedQueries; import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; +import com.sap.sailing.domain.abstractlog.regatta.RegattaLog; +import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorMappingEvent; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceMappingEventImpl; import com.sap.sailing.domain.abstractlog.regatta.events.impl.RegattaLogDeviceCompetitorMappingEventImpl; import com.sap.sailing.domain.base.Boat; @@ -375,13 +377,23 @@ public class RegattasResource extends AbstractSailingServerResource { checkInCompetitor = true; } - //Check regattalog if device has been used already + // Check regattalog if device has been registered to this regatta already + boolean duplicateDeviceId = false; if (checkInCompetitor) { - //RegattaLog regattaLog = regatta.getRegattaLog(); - //TODO: how to find out DeviceToCompetitorMappings + RegattaLog regattaLog = regatta.getRegattaLog(); + duplicateDeviceId = regattaLog.getUnrevokedEvents().stream().anyMatch(event -> { + if (event instanceof RegattaLogDeviceCompetitorMappingEvent) { + return deviceUuid.equals( + ((RegattaLogDeviceCompetitorMappingEvent) event).getDevice().getStringRepresentation()); + } else { + return false; + } + }); } - if (registerCompetitor) { + if (duplicateDeviceId) { + response = this.getAlreadyRegisteredDeviceErrorResponse(regattaName, deviceUuid); + } else if (registerCompetitor) { final User user = getService(SecurityService.class).getCurrentUser(); final String shortName; final String name; From 330727f17de3772606e62f1de5acf379d507602d Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Tue, 9 Oct 2018 14:57:47 +0200 Subject: [PATCH 17/28] LogEventAuthor is created of user name or competitor name --- .../server/gateway/jaxrs/api/RegattasResource.java | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java index 650d746e471..8bbf38e8efe 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java @@ -35,7 +35,6 @@ import org.json.simple.JSONValue; import org.json.simple.parser.ParseException; import com.sap.sailing.datamining.SailingPredefinedQueries; -import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor; import com.sap.sailing.domain.abstractlog.impl.LogEventAuthorImpl; import com.sap.sailing.domain.abstractlog.regatta.RegattaLog; import com.sap.sailing.domain.abstractlog.regatta.events.RegattaLogDeviceCompetitorMappingEvent; @@ -366,7 +365,7 @@ public class RegattasResource extends AbstractSailingServerResource { //case 1: admin or regatta owner is registering a competitor subject.checkPermission(Permission.REGATTA.getStringPermissionForObjects(Mode.UPDATE, regattaName)); registerCompetitor = true; - } else if (subject.isAuthenticated() && regatta.getCompetitorRegistrationType().isOpen()) { + } else if (subject.isAuthenticated() && regatta.getCompetitorRegistrationType().isOpen()) { //case 2: "unprivileged" authenticated user is registering registerCompetitor = true; //case 2.1: with device //TODO: correct to checkin in with device? @@ -437,10 +436,9 @@ public class RegattasResource extends AbstractSailingServerResource { if (checkInCompetitor) { final DeviceIdentifier device = new SmartphoneUUIDIdentifierImpl(UUID.fromString(deviceUuid)); final TimePoint now = MillisecondsTimePoint.now(); - RegattaLogDeviceMappingEventImpl event = - new RegattaLogDeviceCompetitorMappingEventImpl(now, now, new LogEventAuthorImpl(AbstractLogEventAuthor.NAME_COMPATIBILITY, - AbstractLogEventAuthor.PRIORITY_COMPATIBILITY), UUID.randomUUID(), competitor, device, - now, /* to */ null); + RegattaLogDeviceMappingEventImpl event = new RegattaLogDeviceCompetitorMappingEventImpl( + now, now, new LogEventAuthorImpl(name, 0), UUID.randomUUID(), competitor, device, now, + /* to */ null); regatta.getRegattaLog().add(event); } } else { From ac019085b2bcf2d118c8d6dd2881d37585efe11a Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Tue, 9 Oct 2018 17:39:22 +0200 Subject: [PATCH 18/28] i18n support for CompetitorRegistrationType labels --- .../common/CompetitorRegistrationType.java | 46 +++++++++++-------- .../common/i18n/CommonStringMessages.java | 3 ++ .../adminconsole/RegattaDetailsComposite.java | 2 +- .../ui/adminconsole/RegattaListComposite.java | 2 +- .../RegattaWithSeriesAndFleetsDialog.java | 2 +- .../sailing/gwt/ui/client/StringMessages.java | 3 -- 6 files changed, 34 insertions(+), 24 deletions(-) diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java index 8d7ae7aeaa1..9e77ac51e91 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java @@ -1,32 +1,33 @@ package com.sap.sailing.domain.common; +import com.sap.sailing.domain.common.i18n.CommonStringMessages; + /** - * Types of registration of competitors to a regatta. - * Regattas can be closed, so only invited competitors are allowed or open, which means competitors can register themselves. + * Types of registration of competitors to a regatta. Regattas can be closed, so only invited competitors are + * allowed or open, which means competitors can register themselves. + * * @author Thomas Wiese * */ public enum CompetitorRegistrationType { /** Competitors are registered and invited by regatta owner. */ - CLOSED(false, false, "Closed"), - + CLOSED(false, false), + /** Competitors are registering themselve, but the regatta owner has to confirm the registration. */ - OPEN_MODERATED(true, true, "OpenModerated"), - + OPEN_MODERATED(true, true), + /** Competitors are registering themselves without the need of confirmation. */ - OPEN_UNMODERATED(true, false, "OpenUnmoderated"); - + OPEN_UNMODERATED(true, false); + private boolean open; private boolean moderated; - private String labelPrefix; - - private CompetitorRegistrationType(boolean open, boolean moderated, String labelPrefix) { + + private CompetitorRegistrationType(boolean open, boolean moderated) { this.open = open; this.moderated = moderated; - this.labelPrefix = labelPrefix; } - + /** * Is registration open to self register of competitors? * @@ -35,22 +36,31 @@ public enum CompetitorRegistrationType { 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; + public String getLabel(CommonStringMessages stringMessages) { + switch (this) { + case CLOSED: + return stringMessages.competitorRegistrationTypeClosed(); + case OPEN_UNMODERATED: + return stringMessages.competitorRegistrationTypeOpenUnmoderated(); + case OPEN_MODERATED: + return stringMessages.competitorRegistrationTypeOpenModerated(); + default: + return this.name(); + } } } diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/i18n/CommonStringMessages.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/i18n/CommonStringMessages.java index 4ce29972f79..6692074078b 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/i18n/CommonStringMessages.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/i18n/CommonStringMessages.java @@ -14,5 +14,8 @@ public interface CommonStringMessages { String importWindTracks(); String importSensorFixes(); String updateEventLeaderboardGroupLinks(); + String competitorRegistrationTypeClosed(); + String competitorRegistrationTypeOpenModerated(); + String competitorRegistrationTypeOpenUnmoderated(); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java index 0f51eda4c8a..b79ade2d302 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java @@ -407,7 +407,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()); - competitorRegistrationType.setText(regatta.competitorRegistrationType.getLabel()); + competitorRegistrationType.setText(regatta.competitorRegistrationType.getLabel(stringMessages)); openRegattaRegistrationLink.setText(regatta.competitorRegistrationType.isOpen() ? "http://www.sapsailing.com" //TODO: get correct URL for branch.io : "-"); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java index c5aa189b2dc..50becf6c5a5 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java @@ -176,7 +176,7 @@ public class RegattaListComposite extends Composite implements RegattasDisplayer TextColumn competitorRegistrationTypeColumn = new TextColumn() { @Override public String getValue(RegattaDTO regatta) { - return regatta.competitorRegistrationType.getLabel(); + return regatta.competitorRegistrationType.getLabel(stringMessages); } }; competitorRegistrationTypeColumn.setSortable(true); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java index debb85b5ca7..0d07bc9a97a 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java @@ -45,7 +45,7 @@ public abstract class RegattaWithSeriesAndFleetsDialog extends AbstractRegattaWi canBoatsOfCompetitorsChangePerRaceCheckBox.ensureDebugId("CanBoatsOfCompetitorsChangePerRaceCheckBox"); canBoatsOfCompetitorsChangePerRaceCheckBox.setValue(regatta.canBoatsOfCompetitorsChangePerRace); - EnumSet.allOf(CompetitorRegistrationType.class).forEach(t->competitorRegistrationTypeListBox.addItem(t.getLabel(), t.name())); + EnumSet.allOf(CompetitorRegistrationType.class).forEach(t->competitorRegistrationTypeListBox.addItem(t.getLabel(stringMessages), t.name())); competitorRegistrationTypeListBox.setSelectedIndex(regatta.competitorRegistrationType.ordinal()); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index c29e1634bbf..6bbbb06121c 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -1195,9 +1195,6 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, String canNotRegisterBoats(); String competitorRegistrationType(); String competitorRegistrationTypeShort(); - String competitorRegistrationTypeClosed(); - String competitorRegistrationTypeOpenModerated(); - String competitorRegistrationTypeOpenUnmoderated(); String numberOfQueueMessagesSent(); String totalSize(); String averageMessageSize(); From c90394607e0049be02838ecefb831c7485bd763b Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Tue, 9 Oct 2018 22:39:42 +0200 Subject: [PATCH 19/28] fixed tests --- .../gateway/test/jaxrs/RegattasResourceTest.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java index 28eeb620833..0cc4a399257 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java @@ -198,13 +198,15 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { // should have one device registration event of type RegattaLogDeviceCompetitorMappingEventImpl... assertTrue(regatta.getRegattaLog().getUnrevokedEvents().stream() .filter(e -> e instanceof RegattaLogDeviceCompetitorMappingEvent).count() == 1); - // ..with requested device id - assertEquals(deviceUuid, ((RegattaLogDeviceCompetitorMappingEvent) regatta.getRegattaLog().getUnrevokedEvents() - .iterator().next()).getDevice().getStringRepresentation()); + // ...with requested device id + assertEquals(deviceUuid, + ((RegattaLogDeviceCompetitorMappingEvent) regatta.getRegattaLog().getUnrevokedEvents().stream() + .filter(e -> e instanceof RegattaLogDeviceCompetitorMappingEvent).findFirst().get()).getDevice() + .getStringRepresentation()); // Same deviceUuid for registration should fail - Response response = spyResource.createAndAddCompetitor(regatta.getName(), boatClassName, null, "GER", null, null, null, - "Max Mustermann", null, deviceUuid); + Response response = spyResource.createAndAddCompetitor(regatta.getName(), boatClassName, null, "GER", null, + null, null, "Max Mustermann", null, deviceUuid); assertTrue("Reponse http status should be forbidden (403) but is " + response.getStatus(), response.getStatus() == Status.FORBIDDEN.getStatusCode()); } From 71df61d34afc83042ae79c4953bca0816b0caa43 Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Wed, 10 Oct 2018 11:25:57 +0200 Subject: [PATCH 20/28] corrected stringmessages_de for comptetitorregistrationtypes --- .../sap/sailing/gwt/ui/client/StringMessages_de.properties | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index 9a716e26aca..982a2bcb11a 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -1169,9 +1169,9 @@ canBoatsChange=Boot kann sich ändern 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 +competitorRegistrationTypeClosed=geschlossen +competitorRegistrationTypeOpenModerated=Öffentlich moderiert +competitorRegistrationTypeOpenUnmoderated=Öffentlich unmoderiert numberOfQueueMessagesSent=Anzahl verschickter Queue Nachrichten totalSize=Gesamtgröße averageMessageSize=Durchschnittsgrösse einer Nachricht From 7b14c712074fa197dfd3ce6ab66e4bc2c74737da Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Thu, 11 Oct 2018 10:50:34 +0200 Subject: [PATCH 21/28] add attribute registrationLinkSecret to regatta --- .../impl/CreateAndTrackWithRaceLogTest.java | 8 +- .../domain/test/mock/MockedTrackedRace.java | 9 ++ .../com/sap/sailing/domain/base/Regatta.java | 4 + .../sailing/domain/base/impl/RegattaImpl.java | 12 +++ .../ui/test/PingMarkViaRegattaLogTest.java | 2 +- .../sap/sailing/gwt/ui/test/SlicingTest.java | 6 +- .../adminconsole/CreateRegattaCallback.java | 12 ++- .../sailing/gwt/ui/client/SailingService.java | 7 +- .../gwt/ui/client/SailingServiceAsync.java | 2 +- .../gwt/ui/server/SailingServiceImpl.java | 14 +-- .../sap/sailing/gwt/ui/shared/RegattaDTO.java | 2 + ...LogConnectivityParamsLoadAndStoreTest.java | 8 +- ...estStoringAndLoadingEventsAndRegattas.java | 14 ++- .../jaxrs/LeaderboardGroupResourceTest.java | 8 +- .../test/jaxrs/LeaderboardsResourceTest.java | 8 +- .../test/jaxrs/RegattasResourceTest.java | 18 ++-- .../gateway/jaxrs/api/EventsResource.java | 2 +- .../impl/ExpeditionAllInOneImporter.java | 8 +- .../test/AbstractLogReplicationTest.java | 12 ++- .../replication/test/BoatReplicationTest.java | 6 +- .../test/CompetitorReplicationTest.java | 6 +- ...tialLoadReplicationObjectIdentityTest.java | 8 +- .../test/RegattaReplicationTest.java | 83 ++++++++------ ...BoatCompetitorMetadataReplicationTest.java | 2 +- .../server/test/MasterDataImportTest.java | 101 +++++++++++------- .../server/test/SearchServiceTest.java | 29 +++-- .../sailing/server/RacingEventService.java | 4 +- .../server/impl/RacingEventServiceImpl.java | 23 ++-- .../AddSpecificRegatta.java | 6 +- 29 files changed, 266 insertions(+), 158 deletions(-) diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java index 71522b874f0..2f571245cfe 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/CreateAndTrackWithRaceLogTest.java @@ -98,9 +98,11 @@ 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, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null, - UUID.randomUUID(), Collections. singletonList(series), /* persistent */ true, - new HighPoint(), UUID.randomUUID(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* startDate */null, /* endDate */null, UUID.randomUUID(), + Collections. singletonList(series), /* persistent */ true, new HighPoint(), UUID.randomUUID(), + /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */true, + /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); series.addRaceColumn(columnName, /* trackedRegattaRegistry */null); leaderboard = service.addRegattaLeaderboard(regatta.getRegattaIdentifier(), "RegattaLeaderboard", new int[] {}); adapter = RaceLogTrackingAdapterFactory.INSTANCE.getAdapter(DomainFactory.INSTANCE); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java index 085f3201e56..b522996efe6 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRace.java @@ -596,6 +596,15 @@ public class MockedTrackedRace implements DynamicTrackedRace { @Override public void setFleetsCanRunInParallelToTrue() { } + + @Override + public String getRegistrationLinkSecret() { + return null; + } + + @Override + public void setRegistrationLinkSecret(String registrationLinkSecret) { + } }; } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Regatta.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Regatta.java index 62bb9f38604..428c52af4ab 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Regatta.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Regatta.java @@ -235,4 +235,8 @@ public interface Regatta extends NamedWithID, IsRegattaLike, HasRaceColumnsAndRe * @see #isControlTrackingFromStartAndFinishTimes() */ void setControlTrackingFromStartAndFinishTimes(boolean controlTrackingFromStartAndFinishTimes); + + String getRegistrationLinkSecret(); + void setRegistrationLinkSecret(String registrationLinkSecret); + } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java index 1bf1ff98f8a..065dca00330 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RegattaImpl.java @@ -125,6 +125,8 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene private CourseArea defaultCourseArea; private RegattaConfiguration configuration; private RaceExecutionOrderCache raceExecutionOrderCache; + + private String registrationLinkSecret; /** * Regattas may be constructed as implicit default regattas in which case they won't need to be stored durably and @@ -964,5 +966,15 @@ public class RegattaImpl extends NamedImpl implements Regatta, RaceColumnListene RegattaLogBoatDeregistrator deregisterer = new RegattaLogBoatDeregistrator<>(regattaLog, boats, regattaLogEventAuthorForRegatta); deregisterer.deregister(deregisterer.analyze()); } + + @Override + public String getRegistrationLinkSecret() { + return registrationLinkSecret; + } + + @Override + public void setRegistrationLinkSecret(String registrationLinkSecret) { + this.registrationLinkSecret = registrationLinkSecret; + } } diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java index e80996e0a53..ef889b393bb 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PingMarkViaRegattaLogTest.java @@ -41,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, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* registrationLinkSecret */ null, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), Collections.singletonList(series), false, new HighPoint(), UUID.randomUUID(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, RankingMetricsFactory.getRankingMetricConstructor(RankingMetrics.ONE_DESIGN)); diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java index 0ed3edd0d32..ef025cea146 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SlicingTest.java @@ -96,9 +96,9 @@ 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, CompetitorRegistrationType.CLOSED, null, null, - regattaCreationParameters, false, ScoringSchemeType.HIGH_POINT, null, 3.0, false, false, - RankingMetrics.ONE_DESIGN); + final RegattaDTO regatta = sailingService.createRegatta(regattaName, boatClassName, false, + CompetitorRegistrationType.CLOSED, null, null, null, regattaCreationParameters, false, + ScoringSchemeType.HIGH_POINT, null, 3.0, false, false, RankingMetrics.ONE_DESIGN); final List> columnNames = new ArrayList<>(); columnNames.add(new Pair<>(columnNameOriginalRace, 0)); sailingService.addRaceColumnsToSeries(regatta.getRegattaIdentifier(), seriesName, columnNames); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CreateRegattaCallback.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CreateRegattaCallback.java index 9f5d083aecf..847c2e2ce35 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CreateRegattaCallback.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CreateRegattaCallback.java @@ -63,11 +63,13 @@ public class CreateRegattaCallback implements DialogCallback{ seriesDTO.hasSplitFleetContiguousScoring(), seriesDTO.getMaximumNumberOfDiscards()); seriesStructure.put(seriesDTO.getName(), seriesPair); } - sailingService.createRegatta(newRegatta.getName(), newRegatta.boatClass==null?null:newRegatta.boatClass.getName(), - newRegatta.canBoatsOfCompetitorsChangePerRace, newRegatta.competitorRegistrationType, newRegatta.startDate, newRegatta.endDate, - new RegattaCreationParametersDTO(seriesStructure), true, - newRegatta.scoringScheme, newRegatta.defaultCourseAreaUuid, newRegatta.buoyZoneRadiusInHullLengths, newRegatta.useStartTimeInference, - newRegatta.controlTrackingFromStartAndFinishTimes, + sailingService.createRegatta(newRegatta.getName(), + newRegatta.boatClass == null ? null : newRegatta.boatClass.getName(), + newRegatta.canBoatsOfCompetitorsChangePerRace, newRegatta.competitorRegistrationType, + newRegatta.registrationLinkSecret, newRegatta.startDate, newRegatta.endDate, + new RegattaCreationParametersDTO(seriesStructure), true, newRegatta.scoringScheme, + newRegatta.defaultCourseAreaUuid, newRegatta.buoyZoneRadiusInHullLengths, + newRegatta.useStartTimeInference, newRegatta.controlTrackingFromStartAndFinishTimes, newRegatta.rankingMetricType, new AsyncCallback() { @Override public void onFailure(Throwable t) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java index 37b7de65435..1a93ad2de03 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java @@ -234,9 +234,10 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS void moveLeaderboardColumnDown(String leaderboardName, String columnName); RegattaDTO createRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, - CompetitorRegistrationType competitorRegistrationType, Date startDate, Date endDate, - RegattaCreationParametersDTO seriesNamesWithFleetNamesAndFleetOrderingAndMedal, boolean persistent, - ScoringSchemeType scoringSchemeType, UUID defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, + CompetitorRegistrationType competitorRegistrationType, String registrationLinkSecret, Date startDate, + Date endDate, RegattaCreationParametersDTO seriesNamesWithFleetNamesAndFleetOrderingAndMedal, + boolean persistent, ScoringSchemeType scoringSchemeType, UUID defaultCourseAreaId, + Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, RankingMetrics rankingMetricType); void removeRegatta(RegattaIdentifier regattaIdentifier); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java index 62e6078f933..0f9a275e224 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java @@ -457,7 +457,7 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan AsyncCallback callback); void createRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, - CompetitorRegistrationType competitorRegistrationType, Date startDate, Date endDate, + CompetitorRegistrationType competitorRegistrationType, String registrationLinkSecret, Date startDate, Date endDate, RegattaCreationParametersDTO seriesNamesWithFleetNamesAndFleetOrderingAndMedal, boolean persistent, ScoringSchemeType scoringSchemeType, UUID defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, RankingMetrics rankingMetricType, diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index 5ae8b4ffa90..1cb147fccc7 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -1002,6 +1002,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S regattaDTO.competitorRegistrationType = regatta.getCompetitorRegistrationType(); regattaDTO.configuration = convertToRegattaConfigurationDTO(regatta.getRegattaConfiguration()); regattaDTO.rankingMetricType = regatta.getRankingMetricType(); + regattaDTO.registrationLinkSecret = regatta.getRegistrationLinkSecret(); return regattaDTO; } @@ -4427,7 +4428,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S @Override public RegattaDTO createRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, - CompetitorRegistrationType competitorRegistrationType, Date startDate, Date endDate, + CompetitorRegistrationType competitorRegistrationType, String registrationLinkSecret, Date startDate, Date endDate, RegattaCreationParametersDTO seriesNamesWithFleetNamesAndFleetOrderingAndMedal, boolean persistent, ScoringSchemeType scoringSchemeType, UUID defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, RankingMetrics rankingMetricType) { @@ -4436,7 +4437,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, competitorRegistrationType, startTimePoint, endTimePoint, UUID.randomUUID(), + regattaName, boatClassName, canBoatsOfCompetitorsChangePerRace, competitorRegistrationType, registrationLinkSecret, startTimePoint, endTimePoint, UUID.randomUUID(), seriesNamesWithFleetNamesAndFleetOrderingAndMedal, persistent, baseDomainFactory.createScoringScheme(scoringSchemeType), defaultCourseAreaId, buoyZoneRadiusInHullLengths, useStartTimeInference, controlTrackingFromStartAndFinishTimes, rankingMetricType)); @@ -4689,10 +4690,11 @@ 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.competitorRegistrationType, regatta.startDate, regatta.endDate, - new RegattaCreationParametersDTO(getSeriesCreationParameters(regatta)), - true, regatta.scoringScheme, regatta.defaultCourseAreaUuid, regatta.buoyZoneRadiusInHullLengths, regatta.useStartTimeInference, - regatta.controlTrackingFromStartAndFinishTimes, regatta.rankingMetricType); + regatta.competitorRegistrationType, /* registrationLinkSecret */ null, regatta.startDate, + regatta.endDate, new RegattaCreationParametersDTO(getSeriesCreationParameters(regatta)), true, + regatta.scoringScheme, regatta.defaultCourseAreaUuid, regatta.buoyZoneRadiusInHullLengths, + regatta.useStartTimeInference, regatta.controlTrackingFromStartAndFinishTimes, + regatta.rankingMetricType); } private SeriesParameters getSeriesParameters(SeriesDTO seriesDTO) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java index e5f2c860c58..664638ce4c9 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/RegattaDTO.java @@ -41,6 +41,7 @@ public class RegattaDTO extends NamedDTO { public CompetitorRegistrationType competitorRegistrationType = CompetitorRegistrationType.CLOSED; public RankingMetrics rankingMetricType; public Double buoyZoneRadiusInHullLengths; + public String registrationLinkSecret; public RegattaDTO() {} @@ -74,6 +75,7 @@ public class RegattaDTO extends NamedDTO { this.canBoatsOfCompetitorsChangePerRace = other.canBoatsOfCompetitorsChangePerRace; this.competitorRegistrationType = other.competitorRegistrationType; this.buoyZoneRadiusInHullLengths = other.buoyZoneRadiusInHullLengths; + this.registrationLinkSecret = other.registrationLinkSecret; } public Pair getSeriesAndFleet(RegattaAndRaceIdentifier raceIdentifier) { diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java index 30405708165..c9a7e1264d0 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/RaceLogConnectivityParamsLoadAndStoreTest.java @@ -50,9 +50,11 @@ public class RaceLogConnectivityParamsLoadAndStoreTest extends AbstractConnectiv final SeriesImpl theSeries = new SeriesImpl("Default", /* isMedal */ false, /* isFleetsCanRunInParallel */ true, Arrays.asList(fleet), Collections.emptyList(), racingEventService); final Iterable series = Arrays.asList(theSeries); - 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, + final Regatta regatta = racingEventService.createRegatta("My Regatta", "12mR", true, + CompetitorRegistrationType.CLOSED, /* registrationLinkSecret */ null, 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); theSeries.addRaceColumn("R1", racingEventService); theSeries.addRaceColumn("R2", racingEventService); diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java index c0e03df28a8..811b782ff4e 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java @@ -425,9 +425,10 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest /* 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, CompetitorRegistrationType.CLOSED, regattaStartDate, regattaEndDate, - "123", regattaProxy.getSeries(), regattaProxy.isPersistent(), DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), - /* defaultCourseAreaId */ null, /*buoyZoneRadiusInHullLengths*/ 2.0, /* useStartTimeInference */ true, + /* canBoatsOfCompetitorsChangePerRace */ false, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, regattaStartDate, regattaEndDate, "123", regattaProxy.getSeries(), + regattaProxy.isPersistent(), DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), + /* defaultCourseAreaId */ null, /* buoyZoneRadiusInHullLengths */ 2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); DynamicCompetitorWithBoat competitorWithBoat1 = AbstractLeaderboardTest.createCompetitorWithBoat("Humba1"); DynamicCompetitorWithBoat competitorWithBoat2 = AbstractLeaderboardTest.createCompetitorWithBoat("Humba2"); @@ -502,8 +503,11 @@ public class TestStoringAndLoadingEventsAndRegattas extends AbstractMongoDBTest /* 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); + /* registrationLinkSecret */ null, 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); logColumnsInRegatta(regatta); diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java index 15202f5087f..50e2f69a5d1 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardGroupResourceTest.java @@ -51,9 +51,11 @@ public class LeaderboardGroupResourceTest extends AbstractJaxRsApiTest { raceColumnNames, /* trackedRegattaRegistry */null); series.add(testSeries); regatta = racingEventService.createRegatta(RegattaImpl.getDefaultName(regattaName, boatClassName), boatClassName, - /* 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); + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* 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); testSeries.addRaceColumn("R2", /* trackedRegattaRegistry */ null); List competitors = createCompetitors(4); diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java index caa03635690..cb1dcedb254 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/LeaderboardsResourceTest.java @@ -59,9 +59,11 @@ public class LeaderboardsResourceTest extends AbstractJaxRsApiTest { raceColumnNames, /* trackedRegattaRegistry */null); series.add(testSeries); regatta = racingEventService.createRegatta(RegattaImpl.getDefaultName(regattaBaseName, boatClassName), boatClassName, - /* 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); + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* 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); testSeries.addRaceColumn("R2", /* trackedRegattaRegistry */ null); List competitors = createCompetitors(4); diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java index 0cc4a399257..dcbd6bd632a 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java @@ -64,12 +64,18 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { final TimePoint endDate = new MillisecondsTimePoint(cal.getTime()); Series testSeries = new SeriesImpl("TestSeries", /* isMedal */false, /* isFleetsCanRunInParallel */ true, fleets, raceColumnNames, /* trackedRegattaRegistry */null); series.add(testSeries); - racingEventService.createRegatta(RegattaImpl.getDefaultName(closedRegattaName, boatClassName), boatClassName, - /* 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); - racingEventService.createRegatta(RegattaImpl.getDefaultName(openRegattaName, boatClassName), boatClassName, - /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.OPEN_MODERATED, startDate, endDate, UUID.randomUUID(), series, /*persistent*/ true, - DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + racingEventService.createRegatta(RegattaImpl.getDefaultName(closedRegattaName, boatClassName), boatClassName, + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, startDate, endDate, UUID.randomUUID(), series, /* persistent */ true, + DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, + /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */ true, + /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + racingEventService.createRegatta(RegattaImpl.getDefaultName(openRegattaName, boatClassName), boatClassName, + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.OPEN_MODERATED, + /* registrationLinkSecret */ null, 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); } diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java index 86d8ba2c774..b5f8594a789 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java @@ -562,7 +562,7 @@ public static void main(String...a) { SecurityUtils.getSubject().checkPermission(Permission.REGATTA.getStringPermissionForObjects(Mode.CREATE, regattaName)); } Regatta regatta = getService().apply(new AddSpecificRegatta(regattaName, boatClassName, canBoatsOfCompetitorsChangePerRace, - competitorRegistrationType, startDate, endDate, regattaId, + competitorRegistrationType, /* registrationLinkSecret */ null, startDate, endDate, regattaId, regattaCreationParametersDTO, /* isPersistent */ true, scoringScheme, courseAreaId, buoyZoneRadiusInHullLengths, useStartTimeInterference, controlTrackingFromStartAndFinishTimes, rankingMetric)); return regatta; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java index ffab2745d8f..f0bb9add91b 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImporter.java @@ -626,10 +626,10 @@ 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, CompetitorRegistrationType.CLOSED, - /* start date */ null, /* end date */ null, UUID.randomUUID(), - regattaCreationParameters, true, scoringScheme, courseAreaId, buoyZoneRadiusInHullLengths, true, - false, rankingMetric)); + /* can boats of competitors change */ false, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* start date */ null, /* end date */ null, UUID.randomUUID(), + regattaCreationParameters, true, scoringScheme, courseAreaId, buoyZoneRadiusInHullLengths, true, false, + rankingMetric)); this.ensureBoatClassDetermination(regatta); service.apply(new AddColumnToSeries(regattaIdentifier, seriesName, raceColumnName)); return regatta; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java index 3b398f2493e..8f50a59c670 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractLogReplicationTest.java @@ -103,11 +103,13 @@ public abstract class AbstractLogReplicationTest series = Collections.emptyList(); Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), boatClassName, - /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, regattaId, series, - /* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* 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 emptyWaypointList = Collections.emptyList(); final String boatName = "Kielboat Harry"; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java index 1ebfcd782a0..7489ff789e9 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/CompetitorReplicationTest.java @@ -83,8 +83,10 @@ public class CompetitorReplicationTest extends AbstractServerReplicationTest { URI flagImageURI = new URI("http://www.sapsailing.com"); Iterable series = Collections.emptyList(); Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), boatClassName, - /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, regattaId, series, - /* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* 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 emptyWaypointList = Collections.emptyList(); final String competitorName = "Der mit dem Kiel zieht"; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java index 5a7f3719e40..511fa58f0d6 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/InitialLoadReplicationObjectIdentityTest.java @@ -126,9 +126,11 @@ public class InitialLoadReplicationObjectIdentityTest extends AbstractServerRepl final String baseEventName = "Kiel Week 2012"; final String boatClassName = "49er"; final Iterable series = Collections.emptyList(); - Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), boatClassName, - /* 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, + Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), + boatClassName, /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* 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())); assertTrue(master.getAllRegattas().iterator().hasNext()); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java index a5d9f0f33a6..62ecd8104e0 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java @@ -45,11 +45,13 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { final String boatClassName = "49er"; final Iterable series = Collections.emptyList(); final UUID regattaId = UUID.randomUUID(); - Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), boatClassName, - /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, regattaId, series, + Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), + boatClassName, /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* startDate */ null, /* endDate */ null, regattaId, series, /* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, - /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); - + /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */ true, + /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + Thread.sleep(1000); Regatta replicatedRegatta = replica.getRegatta(new RegattaName(masterRegatta.getName())); @@ -71,14 +73,18 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { final Iterable series = Collections.emptyList(); final UUID regattaId1 = UUID.randomUUID(); final UUID regattaId2 = UUID.randomUUID(); - Regatta masterRegatta1 = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClass1Name), boatClass1Name, - canBoatsOfCompetitorsChangePerRaceRegatta1, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, regattaId1, series, + Regatta masterRegatta1 = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClass1Name), + boatClass1Name, canBoatsOfCompetitorsChangePerRaceRegatta1, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* 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, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, regattaId2, series, + /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */ true, + /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + Regatta masterRegatta2 = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClass2Name), + boatClass2Name, canBoatsOfCompetitorsChangePerRaceRegatta2, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* startDate */ null, /* endDate */ null, regattaId2, series, /* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, - /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */ true, + /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); Thread.sleep(1000); @@ -105,7 +111,7 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { UUID currentCourseAreaId = null; Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName("Kiel Week 2012", "49er"), "49er", - /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* registrationLinkSecret */ null, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), Collections.emptyList(), /* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), currentCourseAreaId, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); @@ -157,11 +163,13 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { master.addCourseAreas(event.getId(), new String[] {"Alpha"}, new UUID[] {alphaCourseAreaId}); UUID currentCourseAreaId = null; - Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName("RR", "49er"), "49er", - /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, - UUID.randomUUID(), Collections.emptyList(), - true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), currentCourseAreaId, - /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName("RR", "49er"), "49er", + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* startDate */ null, /* endDate */ null, UUID.randomUUID(), + Collections. emptyList(), true, + DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), currentCourseAreaId, + /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */ true, + /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); // Test for 'null' master.apply(new UpdateSpecificRegatta(masterRegatta.getRegattaIdentifier(), /*startDate*/ null, /*endDate*/ null, currentCourseAreaId, null, @@ -206,10 +214,13 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { Arrays.asList(new Fleet[] { new FleetImpl("Gold", 1), new FleetImpl("Silver", 2) }), emptyRaceColumnNamesList, /* trackedRegattaRegistry */ null); 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, 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); + Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), + boatClassName, /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* 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); Regatta replicatedRegatta = replica.getRegatta(new RegattaName(masterRegatta.getName())); assertNotNull(replicatedRegatta); @@ -243,10 +254,13 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { final List emptyRaceColumnNamesList = Collections.emptyList(); 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, 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); + Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), + boatClassName, /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* 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); Regatta replicatedRegatta = replica.getRegatta(new RegattaName(masterRegatta.getName())); assertNotNull(replicatedRegatta); @@ -288,12 +302,13 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { final List emptyRaceColumnNamesList = Collections.emptyList(); 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, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, - UUID.randomUUID(), Arrays.asList(new Series[] { qualification }), /* persistent */ true, + Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(baseEventName, boatClassName), + boatClassName, /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* 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); + /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */ true, + /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); Thread.sleep(1000); Regatta replicatedRegatta = replica.getRegatta(new RegattaName(masterRegatta.getName())); assertNotNull(replicatedRegatta); @@ -327,10 +342,12 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { Event masterEvent = master.addEvent(eventName, /* eventDescription */ null, eventStartDate, eventEndDate, venueName, isPublic, UUID.randomUUID()); 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, 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); + Regatta masterRegatta = master.createRegatta(RegattaImpl.getDefaultName(eventName, boatClassName), + boatClassName, /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* 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); Event replicatedEvent = replica.getEvent(masterEvent.getId()); assertNotNull(replicatedEvent); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java index bfb7eac4c9f..5dc87ad49d6 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/TrackRaceBoatCompetitorMetadataReplicationTest.java @@ -98,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, - CompetitorRegistrationType.CLOSED, + CompetitorRegistrationType.CLOSED, /* registrationLinkSecret */ null, /* startDate */ null, /* endDate */ null, UUID.randomUUID(), /* start with no series */ Collections.emptySet(), /* persistent */ true, new LowPoint(), /* defaultCourseAreaId */ UUID.randomUUID(), diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java index e41bcb56832..696e82f45c3 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/MasterDataImportTest.java @@ -233,8 +233,9 @@ public class MasterDataImportTest { Regatta regatta = sourceService.createRegatta( RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME, /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, - /* startDate */null, /* endDate */null, regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, - /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + /* registrationLinkSecret */ null, /* startDate */null, /* endDate */null, regattaUUID, series, true, + new LowPoint(), courseAreaUUID, /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */ true, + /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); for (String name : raceColumnNames) { series.get(0).addRaceColumn(name, sourceService); @@ -556,9 +557,10 @@ 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, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null, - regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, - /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* startDate */null, /* endDate */null, regattaUUID, series, true, + new LowPoint(), courseAreaUUID, /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */ true, + /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); for (String name : raceColumnNames) { series.get(0).addRaceColumn(name, sourceService); } @@ -712,9 +714,10 @@ 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, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null, - regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, - /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* startDate */null, /* endDate */null, regattaUUID, series, true, + new LowPoint(), courseAreaUUID, /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */ true, + /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); for (String name : raceColumnNames) { series.get(0).addRaceColumn(name, sourceService); } @@ -876,9 +879,10 @@ 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, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null, - regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, - /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* startDate */null, /* endDate */null, regattaUUID, series, true, + new LowPoint(), courseAreaUUID, /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */ true, + /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); for (String name : raceColumnNames) { series.get(0).addRaceColumn(name, sourceService); @@ -1035,9 +1039,10 @@ 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, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null, - regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, - /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* startDate */null, /* endDate */null, regattaUUID, series, true, + new LowPoint(), courseAreaUUID, /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */ true, + /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); for (String name : raceColumnNames) { series.get(0).addRaceColumn(name, sourceService); } @@ -1147,9 +1152,11 @@ public class MasterDataImportTest { destService)); Regatta regattaNotToOverride = destService.createRegatta( RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME, - /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */ null, /* endDate */null, - regattaUUID, seriesNotToOverride, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, - /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* startDate */ null, /* endDate */null, regattaUUID, + seriesNotToOverride, true, new LowPoint(), courseAreaUUID, /* buoyZoneRadiusInHullLengths */2.0, + /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, + OneDesignRankingMetric::new); for (String name : raceColumnNamesNotToOverride) { seriesNotToOverride.get(0).addRaceColumn(name, destService); @@ -1236,9 +1243,10 @@ 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, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null, - regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, - /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* startDate */null, /* endDate */null, regattaUUID, series, true, + new LowPoint(), courseAreaUUID, /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */ true, + /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); for (String name : raceColumnNames) { series.get(0).addRaceColumn(name, sourceService); @@ -1345,9 +1353,11 @@ public class MasterDataImportTest { destService)); Regatta regattaToOverride = destService.createRegatta( RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME, - /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */ null, /* endDate */null, - regattaUUID, seriesToOverride, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, - /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* startDate */ null, /* endDate */null, regattaUUID, + seriesToOverride, true, new LowPoint(), courseAreaUUID, /* buoyZoneRadiusInHullLengths */2.0, + /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, + OneDesignRankingMetric::new); for (String name : raceColumnNamesToOverride) { seriesToOverride.get(0).addRaceColumn(name, destService); @@ -1454,10 +1464,12 @@ public class MasterDataImportTest { new UUID[] { UUID.randomUUID() })[0]; Regatta regatta = sourceService.createRegatta( - RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME, - /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */ + RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), + TEST_BOAT_CLASS_NAME, /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* startDate */ null, /* endDate */null, UUID.randomUUID(), new ArrayList(), true, new LowPoint(), - defaultCourseArea.getId(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + defaultCourseArea.getId(), /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */true, + /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); // Let's use the setters directly because we are not testing replication RegattaConfigurationImpl configuration = new RegattaConfigurationImpl(); configuration.setDefaultCourseDesignerMode(CourseDesignerMode.BY_MAP); @@ -1538,10 +1550,11 @@ public class MasterDataImportTest { Regatta regatta = sourceService.createRegatta( RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME, - /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null, - regattaUUID, series, true, new LowPoint(), - defaultCourseArea.getId(), /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */true, - /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* startDate */null, /* endDate */null, regattaUUID, series, true, + new LowPoint(), defaultCourseArea.getId(), /* buoyZoneRadiusInHullLengths */2.0, + /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, + OneDesignRankingMetric::new); for (String name : raceColumnNames) { series.get(0).addRaceColumn(name, sourceService); } @@ -1672,9 +1685,10 @@ 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, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null, - regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, - /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* startDate */null, /* endDate */null, regattaUUID, series, true, + new LowPoint(), courseAreaUUID, /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */true, + /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); for (String name : raceColumnNames) { series.get(0).addRaceColumn(name, sourceService); @@ -1916,8 +1930,9 @@ public class MasterDataImportTest { Regatta regatta = sourceService.createRegatta( RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME, /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, - /* startDate */null, /* endDate */null, regattaUUID, series, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, - /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + /* registrationLinkSecret */ null, /* startDate */null, /* endDate */null, regattaUUID, series, true, + new LowPoint(), courseAreaUUID, /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */true, + /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); for (String name : raceColumnNames) { series.get(0).addRaceColumn(name, sourceService); @@ -2145,9 +2160,11 @@ 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, CompetitorRegistrationType.CLOSED, /* startDate */ null, /* endDate */null, - regattaUUID, seriesOnSource, true, new LowPoint(), courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, - /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* startDate */ null, /* endDate */null, regattaUUID, seriesOnSource, + true, new LowPoint(), courseAreaUUID, /* buoyZoneRadiusInHullLengths */2.0, + /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, + OneDesignRankingMetric::new); for (String name : raceColumnNames) { seriesOnSource.get(0).addRaceColumn(name, sourceService); } @@ -2272,9 +2289,11 @@ public class MasterDataImportTest { Regatta regattaOnTarget = destService.createRegatta( RegattaImpl.getDefaultName(TEST_REGATTA_NAME, TEST_BOAT_CLASS_NAME), TEST_BOAT_CLASS_NAME, - /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /* startDate */null, /* endDate */null, - regattaUUID, seriesOnTarget, true, new LowPoint(), - courseAreaUUID, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* startDate */null, /* endDate */null, regattaUUID, seriesOnTarget, + true, new LowPoint(), courseAreaUUID, /* buoyZoneRadiusInHullLengths */2.0, + /* useStartTimeInference */true, /* controlTrackingFromStartAndFinishTimes */ false, + OneDesignRankingMetric::new); raceColumnOnTarget.setTrackedRace(defaultFleetOnTarget, new DummyTrackedRace(raceId, createCompetitorsAndBoatsMap(boatClass, competitors), regattaOnTarget, null, sourceService.getWindStore())); diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java index e7fa1a363dc..b2dc328aca9 100755 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/SearchServiceTest.java @@ -139,19 +139,25 @@ public class SearchServiceTest { new SeriesCreationParametersDTO(Collections.singletonList(new FleetDTO("Default", /* order */-1, Color.RED)), /* 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, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), + pfingstbusch29er = server.apply(new AddSpecificRegatta(RegattaImpl.getDefaultName("Pfingstbusch", "29er"), + "29er", /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* 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)); + true, new LowPoint(), kielAlpha.getId(), /* buoyZoneRadiusInHullLengths */2.0, + /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, + RankingMetrics.ONE_DESIGN)); server.apply(new AddColumnToSeries(pfingstbusch29er.getRegattaIdentifier(), "Default", "R1")); server.apply(new AddColumnToSeries(pfingstbusch29er.getRegattaIdentifier(), "Default", "R2")); server.apply(new AddColumnToSeries(pfingstbusch29er.getRegattaIdentifier(), "Default", "R3")); 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, 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)); + pfingstbusch470 = server.apply(new AddSpecificRegatta(RegattaImpl.getDefaultName("Pfingstbusch", "470"), "470", + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* 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")); server.apply(new AddColumnToSeries(pfingstbusch470.getRegattaIdentifier(), "Default", "R2")); server.apply(new AddColumnToSeries(pfingstbusch470.getRegattaIdentifier(), "Default", "R3")); @@ -171,10 +177,13 @@ public class SearchServiceTest { flensburg = aalEvent.getVenue(); final CourseAreaImpl flensburgStandard = new CourseAreaImpl("Standard", UUID.randomUUID()); flensburg.addCourseArea(flensburgStandard); - aalRegatta = server.apply(new AddSpecificRegatta(RegattaImpl.getDefaultName("Aalregatta", "ORC"), "ORC", - /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, /*startDate*/ null, /*endDate*/ null, UUID.randomUUID(), + aalRegatta = server.apply(new AddSpecificRegatta(RegattaImpl.getDefaultName("Aalregatta", "ORC"), "ORC", + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, + /* registrationLinkSecret */ null, /* 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)); + true, new LowPoint(), flensburgStandard.getId(), /* buoyZoneRadiusInHullLengths */2.0, + /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, + RankingMetrics.ONE_DESIGN)); server.apply(new AddColumnToSeries(aalRegatta.getRegattaIdentifier(), "Default", "R1")); server.apply(new AddColumnToSeries(aalRegatta.getRegattaIdentifier(), "Default", "R2")); RegattaLeaderboard aalRegattaLeaderboard = server.apply(new CreateRegattaLeaderboard(aalRegatta.getRegattaIdentifier(), diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java index 04cf4b200df..bb168acba30 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java @@ -336,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, - CompetitorRegistrationType competitorRegistrationType, TimePoint startDate, TimePoint endDate, Serializable id, Iterable series, + CompetitorRegistrationType competitorRegistrationType, String registrationLinkSecret, TimePoint startDate, TimePoint endDate, Serializable id, Iterable series, boolean persistent, ScoringScheme scoringScheme, Serializable defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, RankingMetricConstructor rankingMetricConstructor); @@ -497,7 +497,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch */ Util.Pair getOrCreateRegattaWithoutReplication(String fullRegattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, CompetitorRegistrationType competitorRegistrationType, - TimePoint startDate, TimePoint endDate, Serializable id, + String registrationLinkSecret, TimePoint startDate, TimePoint endDate, Serializable id, Iterable series, boolean persistent, ScoringScheme scoringScheme, Serializable defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, RankingMetricConstructor rankingMetricConstructor); diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java index ee9e7829070..aeed2e20961 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java @@ -1447,7 +1447,7 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes @Override public Regatta createRegatta(String fullRegattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, - CompetitorRegistrationType competitorRegistrationType, TimePoint startDate, TimePoint endDate, + CompetitorRegistrationType competitorRegistrationType, String registrationLinkSecret, TimePoint startDate, TimePoint endDate, Serializable id, Iterable series, boolean persistent, ScoringScheme scoringScheme, Serializable defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, RankingMetricConstructor rankingMetricConstructor) { @@ -1455,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 regattaWithCreatedFlag = getOrCreateRegattaWithoutReplication( - fullRegattaName, boatClassName, canBoatsOfCompetitorsChangePerRace, competitorRegistrationType, startDate, endDate, id, series, persistent, scoringScheme, + fullRegattaName, boatClassName, canBoatsOfCompetitorsChangePerRace, competitorRegistrationType, registrationLinkSecret, startDate, endDate, id, series, persistent, scoringScheme, defaultCourseAreaId, buoyZoneRadiusInHullLengths, useStartTimeInference, controlTrackingFromStartAndFinishTimes, rankingMetricConstructor); Regatta regatta = regattaWithCreatedFlag.getA(); if (regattaWithCreatedFlag.getB()) { @@ -1487,10 +1487,11 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes @Override public com.sap.sse.common.Util.Pair getOrCreateRegattaWithoutReplication(String fullRegattaName, - String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, CompetitorRegistrationType competitorRegistrationType, - TimePoint startDate, TimePoint endDate, Serializable id, - Iterable series, boolean persistent, ScoringScheme scoringScheme, - Serializable defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, + String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, + CompetitorRegistrationType competitorRegistrationType, String registrationLinkSecret, TimePoint startDate, + TimePoint endDate, Serializable id, Iterable 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, @@ -1696,11 +1697,13 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes if (regatta.getDefaultCourseArea() != null) { courseAreaId = regatta.getDefaultCourseArea().getId(); } - replicate(new AddSpecificRegatta(regatta.getName(), regatta.getBoatClass() == null ? null : regatta - .getBoatClass().getName(), regatta.canBoatsOfCompetitorsChangePerRace(), regatta.getCompetitorRegistrationType(), - regatta.getStartDate(), regatta.getEndDate(), regatta.getId(), + replicate(new AddSpecificRegatta(regatta.getName(), + regatta.getBoatClass() == null ? null : regatta.getBoatClass().getName(), + regatta.canBoatsOfCompetitorsChangePerRace(), regatta.getCompetitorRegistrationType(), + /* registrationLinkSecret */ null, regatta.getStartDate(), regatta.getEndDate(), regatta.getId(), getSeriesWithoutRaceColumnsConstructionParametersAsMap(regatta), regatta.isPersistent(), - regatta.getScoringScheme(), courseAreaId, regatta.getBuoyZoneRadiusInHullLengths(), regatta.useStartTimeInference(), regatta.isControlTrackingFromStartAndFinishTimes(), + regatta.getScoringScheme(), courseAreaId, regatta.getBuoyZoneRadiusInHullLengths(), + regatta.useStartTimeInference(), regatta.isControlTrackingFromStartAndFinishTimes(), regatta.getRankingMetricType())); RegattaIdentifier regattaIdentifier = regatta.getRegattaIdentifier(); for (RaceDefinition race : regatta.getAllRaces()) { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java index 8eabfa82f45..038f1db6819 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/AddSpecificRegatta.java @@ -36,9 +36,10 @@ public class AddSpecificRegatta extends AbstractAddRegattaOperation { private final boolean canBoatsOfCompetitorsChangePerRace; private final CompetitorRegistrationType competitorRegistrationType; private final RankingMetrics rankingMetricType; + private final String registrationLinkSecret; public AddSpecificRegatta(String regattaName, String boatClassName, boolean canBoatsOfCompetitorsChangePerRace, - CompetitorRegistrationType competitorRegistrationType, TimePoint startDate, TimePoint endDate, Serializable id, + CompetitorRegistrationType competitorRegistrationType, String registrationLinkSecret, TimePoint startDate, TimePoint endDate, Serializable id, RegattaCreationParametersDTO seriesNamesWithFleetNamesAndFleetOrderingAndMedalAndDiscardingThresholds, boolean persistent, ScoringScheme scoringScheme, Serializable defaultCourseAreaId, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, RankingMetrics rankingMetricType) { @@ -53,12 +54,13 @@ public class AddSpecificRegatta extends AbstractAddRegattaOperation { this.controlTrackingFromStartAndFinishTimes = controlTrackingFromStartAndFinishTimes; this.rankingMetricType = rankingMetricType; this.buoyZoneRadiusInHullLengths = buoyZoneRadiusInHullLengths; + this.registrationLinkSecret = registrationLinkSecret; } @Override public Regatta internalApplyTo(RacingEventService toState) throws Exception { Regatta regatta = toState.createRegatta(getRegattaName(), getBoatClassName(), canBoatsOfCompetitorsChangePerRace, - competitorRegistrationType, getStartDate(), getEndDate(), getId(), createSeries(toState), + competitorRegistrationType, registrationLinkSecret, getStartDate(), getEndDate(), getId(), createSeries(toState), persistent, scoringScheme, defaultCourseAreaId, buoyZoneRadiusInHullLengths, useStartTimeInference, controlTrackingFromStartAndFinishTimes, RankingMetricsFactory.getRankingMetricConstructor(rankingMetricType)); return regatta; } From 558e6360c22f2839a3240c948ef3f7fd6072f932 Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Thu, 11 Oct 2018 12:42:25 +0200 Subject: [PATCH 22/28] moved competitorRegistrationTypeListBox to AbstractRegattaWithSeriesAndFleetsDialog --- .../AbstractRegattaWithSeriesAndFleetsDialog.java | 12 +++++++++++- .../RegattaWithSeriesAndFleetsDialog.java | 11 ----------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java index 265a9ca27e1..0c2644b81c3 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java @@ -1,5 +1,6 @@ package com.sap.sailing.gwt.ui.adminconsole; +import java.util.EnumSet; import java.util.List; import java.util.UUID; @@ -15,6 +16,7 @@ import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.ListBox; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; +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.gwt.ui.client.DataEntryDialogWithDateTimeBox; @@ -55,6 +57,7 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn protected final DoubleBox buoyZoneRadiusInHullLengthsDoubleBox; protected final ListEditorComposite seriesEditor; private final ListBox rankingMetricListBox; + protected final ListBox competitorRegistrationTypeListBox; protected final List existingEvents; private EventDTO defaultEvent; @@ -103,6 +106,10 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn courseAreaListBox.setEnabled(false); this.seriesEditor = createSeriesEditor(series); setupEventAndCourseAreaListBoxes(stringMessages); + + competitorRegistrationTypeListBox = createListBox(false); + EnumSet.allOf(CompetitorRegistrationType.class).forEach(t->competitorRegistrationTypeListBox.addItem(t.getLabel(stringMessages), t.name())); + competitorRegistrationTypeListBox.setSelectedIndex(regatta.competitorRegistrationType.ordinal()); } /** @@ -146,7 +153,7 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn if (additionalWidget != null) { panel.add(additionalWidget); } - Grid formGrid = new Grid(9, 2); + Grid formGrid = new Grid(10, 2); panel.add(formGrid); formGrid.setWidget(0, 0, new Label(stringMessages.timeZone() + ":")); @@ -167,6 +174,8 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn formGrid.setWidget(7, 1, controlTrackingFromStartAndFinishTimesCheckBox); formGrid.setWidget(8, 0, new Label(stringMessages.buoyZoneRadiusInHullLengths() + ":")); formGrid.setWidget(8, 1, buoyZoneRadiusInHullLengthsDoubleBox); + formGrid.setWidget(9, 0, new Label(stringMessages.competitorRegistrationType() + ":")); + formGrid.setWidget(9, 1, competitorRegistrationTypeListBox); setupAdditionalWidgetsOnPanel(panel, formGrid); return panel; } @@ -294,6 +303,7 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn result.buoyZoneRadiusInHullLengths = buoyZoneRadiusInHullLengthsDoubleBox.getValue(); setCourseAreaInRegatta(result); result.series = getSeriesEditor().getValue(); + result.competitorRegistrationType = CompetitorRegistrationType.valueOf(competitorRegistrationTypeListBox.getSelectedValue()); return result; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java index 0d07bc9a97a..98da6d81083 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaWithSeriesAndFleetsDialog.java @@ -1,16 +1,13 @@ 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; @@ -25,8 +22,6 @@ public abstract class RegattaWithSeriesAndFleetsDialog extends AbstractRegattaWi protected TextBox nameEntryField; protected SuggestBox boatClassEntryField; protected CheckBox canBoatsOfCompetitorsChangePerRaceCheckBox; - protected ListBox competitorRegistrationTypeListBox = createListBox(false); - public RegattaWithSeriesAndFleetsDialog(RegattaDTO regatta, Iterable series, List existingEvents, EventDTO defaultEvent, String title, String okButton, StringMessages stringMessages, Validator validator, DialogCallback callback) { @@ -44,9 +39,6 @@ public abstract class RegattaWithSeriesAndFleetsDialog extends AbstractRegattaWi canBoatsOfCompetitorsChangePerRaceCheckBox = createCheckbox(""); canBoatsOfCompetitorsChangePerRaceCheckBox.ensureDebugId("CanBoatsOfCompetitorsChangePerRaceCheckBox"); canBoatsOfCompetitorsChangePerRaceCheckBox.setValue(regatta.canBoatsOfCompetitorsChangePerRace); - - EnumSet.allOf(CompetitorRegistrationType.class).forEach(t->competitorRegistrationTypeListBox.addItem(t.getLabel(stringMessages), t.name())); - competitorRegistrationTypeListBox.setSelectedIndex(regatta.competitorRegistrationType.ordinal()); } @Override @@ -62,7 +54,6 @@ 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.competitorRegistrationType = CompetitorRegistrationType.valueOf(competitorRegistrationTypeListBox.getSelectedValue()); return result; } @@ -77,7 +68,5 @@ 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.competitorRegistrationType() + ":")); - formGrid.setWidget(3, 1, competitorRegistrationTypeListBox); } } From ca0633dbc719ccac6ccbaa0835e8c2ae171b7cfa Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Mon, 15 Oct 2018 14:23:32 +0200 Subject: [PATCH 23/28] add secret for registration link to regatta dialog in the admin console --- .../impl/DomainObjectFactoryImpl.java | 3 +- .../domain/persistence/impl/FieldNames.java | 1 + .../impl/MongoObjectFactoryImpl.java | 1 + ...tractRegattaWithSeriesAndFleetsDialog.java | 33 +++++++++++- .../adminconsole/RegattaDetailsComposite.java | 2 +- .../ui/adminconsole/RegattaListComposite.java | 2 +- .../RegistrationLinkWithQRCode.java | 34 +++++++++++++ .../RegistrationLinkWithQRCodeDialog.java | 51 +++++++++++++++++++ ...martphoneTrackingEventManagementPanel.java | 2 +- .../sailing/gwt/ui/client/SailingService.java | 3 +- .../gwt/ui/client/SailingServiceAsync.java | 2 +- .../sailing/gwt/ui/client/StringMessages.java | 5 ++ .../gwt/ui/client/StringMessages.properties | 5 ++ .../ui/client/StringMessages_de.properties | 5 ++ .../gwt/ui/server/SailingServiceImpl.java | 8 +-- .../test/RegattaReplicationTest.java | 18 ++++--- .../sailing/server/RacingEventService.java | 2 +- .../server/impl/RacingEventServiceImpl.java | 4 +- .../UpdateSpecificRegatta.java | 10 ++-- 19 files changed, 170 insertions(+), 21 deletions(-) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCode.java create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCodeDialog.java diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java index 4442f8ba6c5..4f780f7e4a1 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java @@ -1297,7 +1297,6 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { } else { competitorRegistrationType = CompetitorRegistrationType.CLOSED; } - final RankingMetricConstructor rankingMetricConstructor = loadRankingMetricConstructor(dbRegatta); if (createMigratableRegatta) { result = new MigratableRegattaImpl(getRaceLogStore(), getRegattaLogStore(), name, boatClass, @@ -1319,6 +1318,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { rankingMetricConstructor); } result.setRegattaConfiguration(configuration); + String registrationLinkSecret = (String) dbRegatta.get(FieldNames.REGATTA_REGISTRATION_LINK_SECRET.name()); + result.setRegistrationLinkSecret(registrationLinkSecret); } return result; } diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java index c848d76754f..203537607cf 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/FieldNames.java @@ -40,6 +40,7 @@ public enum FieldNames { REGATTA_CONTROL_TRACKING_FROM_START_AND_FINISH_TIMES, REGATTA_CAN_BOATS_OF_COMPETITORS_CHANGE_PER_RACE, REGATTA_COMPETITOR_REGISTRATION_TYPE, + REGATTA_REGISTRATION_LINK_SECRET, SERIES_NAME, SERIES_IS_MEDAL, SERIES_IS_FLEETS_CAN_RUN_IN_PARALLEL, diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java index c5e1030e60b..93ab693a091 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/MongoObjectFactoryImpl.java @@ -717,6 +717,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { 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_COMPETITOR_REGISTRATION_TYPE.name(), regatta.getCompetitorRegistrationType().name()); + dbRegatta.put(FieldNames.REGATTA_REGISTRATION_LINK_SECRET.name(), regatta.getRegistrationLinkSecret()); dbRegatta.put(FieldNames.REGATTA_RANKING_METRIC.name(), storeRankingMetric(regatta)); boolean success = false; final int MAX_TRIES = 3; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java index 0c2644b81c3..747b7325c90 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java @@ -9,6 +9,9 @@ import com.google.gwt.dom.client.OptionElement; import com.google.gwt.dom.client.SelectElement; import com.google.gwt.event.dom.client.ChangeEvent; import com.google.gwt.event.dom.client.ChangeHandler; +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.CheckBox; import com.google.gwt.user.client.ui.DoubleBox; import com.google.gwt.user.client.ui.Grid; @@ -58,9 +61,11 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn protected final ListEditorComposite seriesEditor; private final ListBox rankingMetricListBox; protected final ListBox competitorRegistrationTypeListBox; + protected final Button registrationLinkWithQRCodeOpenButton; protected final List existingEvents; private EventDTO defaultEvent; + private RegistrationLinkWithQRCode registrationLinkWithQRCode; public AbstractRegattaWithSeriesAndFleetsDialog(RegattaDTO regatta, Iterable series, List existingEvents, EventDTO correspondingEvent, String title, String okButton, StringMessages stringMessages, Validator validator, DialogCallback callback) { @@ -110,6 +115,25 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn competitorRegistrationTypeListBox = createListBox(false); EnumSet.allOf(CompetitorRegistrationType.class).forEach(t->competitorRegistrationTypeListBox.addItem(t.getLabel(stringMessages), t.name())); competitorRegistrationTypeListBox.setSelectedIndex(regatta.competitorRegistrationType.ordinal()); + + registrationLinkWithQRCode = new RegistrationLinkWithQRCode(); + registrationLinkWithQRCode.setSecret(regatta.registrationLinkSecret); + registrationLinkWithQRCodeOpenButton = new Button(stringMessages.registrationLinkConfig(), new ClickHandler() { + @Override + public void onClick(ClickEvent event) { + new RegistrationLinkWithQRCodeDialog(stringMessages, registrationLinkWithQRCode, + new DialogCallback() { + @Override + public void ok(RegistrationLinkWithQRCode result) { + registrationLinkWithQRCode = result; + } + + @Override + public void cancel() { + } + }).show(); + } + }); } /** @@ -153,7 +177,7 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn if (additionalWidget != null) { panel.add(additionalWidget); } - Grid formGrid = new Grid(10, 2); + Grid formGrid = new Grid(11, 2); panel.add(formGrid); formGrid.setWidget(0, 0, new Label(stringMessages.timeZone() + ":")); @@ -176,6 +200,8 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn formGrid.setWidget(8, 1, buoyZoneRadiusInHullLengthsDoubleBox); formGrid.setWidget(9, 0, new Label(stringMessages.competitorRegistrationType() + ":")); formGrid.setWidget(9, 1, competitorRegistrationTypeListBox); + formGrid.setWidget(10, 0, new Label(stringMessages.registrationLink() + ":")); + formGrid.setWidget(10, 1, registrationLinkWithQRCodeOpenButton); setupAdditionalWidgetsOnPanel(panel, formGrid); return panel; } @@ -304,6 +330,11 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn setCourseAreaInRegatta(result); result.series = getSeriesEditor().getValue(); result.competitorRegistrationType = CompetitorRegistrationType.valueOf(competitorRegistrationTypeListBox.getSelectedValue()); + if (result.competitorRegistrationType.isOpen() && registrationLinkWithQRCode != null) { + result.registrationLinkSecret = registrationLinkWithQRCode.getSecret(); + } else { + result.registrationLinkSecret = null; + } return result; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java index b79ade2d302..0019ab618c9 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java @@ -102,7 +102,7 @@ public class RegattaDetailsComposite extends Composite { configuration = createLabelAndValueWidget(grid, currentRow++, stringMessages.racingProcedureConfiguration(), "RacingProcedureLabel"); scoringSystem = createLabelAndValueWidget(grid, currentRow++, stringMessages.scoringSystem(), "ScoringSystemLabel"); rankingMetric = createLabelAndValueWidget(grid, currentRow++, stringMessages.rankingMetric(), "RankingMetricLabel"); - openRegattaRegistrationLink = createLabelAndValueWidget(grid, currentRow++, "Registration Link", "OpenRegattaRegistrationLinkLabel") ; + openRegattaRegistrationLink = createLabelAndValueWidget(grid, currentRow++, stringMessages.registrationLink(), "OpenRegattaRegistrationLinkLabel") ; seriesTable = createRegattaSeriesTable(); seriesTable.ensureDebugId("SeriesCellTable"); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java index 50becf6c5a5..e904b485fc4 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaListComposite.java @@ -311,9 +311,9 @@ public class RegattaListComposite extends Composite implements RegattasDisplayer private void commitEditedRegatta(final RegattaDTO editedRegatta) { final RegattaIdentifier regattaName = new RegattaName(editedRegatta.getName()); - sailingService.updateRegatta(regattaName, editedRegatta.startDate, editedRegatta.endDate, editedRegatta.defaultCourseAreaUuid, editedRegatta.configuration, editedRegatta.buoyZoneRadiusInHullLengths, editedRegatta.useStartTimeInference, editedRegatta.controlTrackingFromStartAndFinishTimes, + editedRegatta.registrationLinkSecret, new MarkedAsyncCallback(new AsyncCallback() { @Override public void onFailure(Throwable caught) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCode.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCode.java new file mode 100644 index 00000000000..c55d5dce627 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCode.java @@ -0,0 +1,34 @@ +package com.sap.sailing.gwt.ui.adminconsole; + +/** + * Type to transfer data between {#link {@link RegistrationLinkWithQRCodeDialog) and caller. + * + * @author Thomas Wiese + * + */ +public class RegistrationLinkWithQRCode { + + /* Secret for extending registration URL. */ + private String secret; + + public RegistrationLinkWithQRCode() { + super(); + } + + /** + * Get entered secrect. + * @return Secret or null, if not set + */ + public String getSecret() { + return secret; + } + + /** + * Set secret. + * @param secret + */ + public void setSecret(String secret) { + this.secret = secret; + } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCodeDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCodeDialog.java new file mode 100644 index 00000000000..746718a79df --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCodeDialog.java @@ -0,0 +1,51 @@ +package com.sap.sailing.gwt.ui.adminconsole; + +import com.google.gwt.user.client.ui.Grid; +import com.google.gwt.user.client.ui.Label; +import com.google.gwt.user.client.ui.TextBox; +import com.google.gwt.user.client.ui.VerticalPanel; +import com.google.gwt.user.client.ui.Widget; +import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sse.gwt.client.dialog.DataEntryDialog; + +public class RegistrationLinkWithQRCodeDialog extends DataEntryDialog { + + private StringMessages stringMessages; + private TextBox secretTextBox; + + private RegistrationLinkWithQRCode registrationLinkWithQRCode; + + public RegistrationLinkWithQRCodeDialog(final StringMessages stringMessages, + RegistrationLinkWithQRCode registrationLinkWithQRCode, + DialogCallback callback) { + super(stringMessages.registrationLinkDialog(), stringMessages.explainRegistrationLinkDialog(), + stringMessages.ok(), stringMessages.cancel(), null, true, callback); + this.stringMessages = stringMessages; + this.registrationLinkWithQRCode = registrationLinkWithQRCode == null ? new RegistrationLinkWithQRCode() + : registrationLinkWithQRCode; + secretTextBox = createTextBox(registrationLinkWithQRCode.getSecret(), 20); + } + + @Override + protected RegistrationLinkWithQRCode getResult() { + registrationLinkWithQRCode.setSecret(secretTextBox.getValue()); + return registrationLinkWithQRCode; + } + + @Override + protected Widget getAdditionalWidget() { + final VerticalPanel panel = new VerticalPanel(); + Widget additionalWidget = super.getAdditionalWidget(); + if (additionalWidget != null) { + panel.add(additionalWidget); + } + Grid formGrid = new Grid(1, 2); + panel.add(formGrid); + + formGrid.setWidget(0, 0, new Label(stringMessages.registrationLinkSecret() + ":")); + formGrid.setWidget(0, 1, secretTextBox); + + return panel; + } + +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java index 20e494bd823..89a957dae85 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SmartphoneTrackingEventManagementPanel.java @@ -748,7 +748,7 @@ public class SmartphoneTrackingEventManagementPanel extends AbstractLeaderboardC final RegattaIdentifier regattaIdentifier = new RegattaName(regatta.getName()); sailingService.updateRegatta(regattaIdentifier, regatta.startDate, regatta.endDate, regatta.defaultCourseAreaUuid, configuration, regatta.buoyZoneRadiusInHullLengths, regatta.useStartTimeInference, - regatta.controlTrackingFromStartAndFinishTimes, + regatta.controlTrackingFromStartAndFinishTimes, regatta.registrationLinkSecret, new MarkedAsyncCallback(new AsyncCallback() { @Override public void onFailure(Throwable caught) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java index 1a93ad2de03..b4148dd3aec 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingService.java @@ -247,7 +247,8 @@ public interface SailingService extends RemoteService, FileStorageManagementGwtS void removeRegattas(Collection regattas); void updateRegatta(RegattaIdentifier regattaIdentifier, Date startDate, Date endDate, UUID defaultCourseAreaUuid, - RegattaConfigurationDTO regattaConfiguration, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes); + RegattaConfigurationDTO regattaConfiguration, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, + String registrationLinkSecret); List addRaceColumnsToSeries(RegattaIdentifier regattaIdentifier, String seriesName, List> columnNames); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java index 0f9a275e224..8e75816dac1 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/SailingServiceAsync.java @@ -553,7 +553,7 @@ public interface SailingServiceAsync extends ServerInfoRetriever, FileStorageMan void updateRegatta(RegattaIdentifier regattaIdentifier, Date startDate, Date endDate, UUID defaultCourseAreaUuid, RegattaConfigurationDTO regattaConfiguration, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, - boolean controlTrackingFromStartAndFinishTimes, AsyncCallback callback); + boolean controlTrackingFromStartAndFinishTimes, String registrationLinkSecret, AsyncCallback callback); /** * @param detailType diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java index 6bbbb06121c..ff86790fbbd 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.java @@ -1195,6 +1195,11 @@ public interface StringMessages extends com.sap.sse.gwt.client.StringMessages, String canNotRegisterBoats(); String competitorRegistrationType(); String competitorRegistrationTypeShort(); + String registrationLink(); + String registrationLinkConfig(); + String registrationLinkDialog(); + String registrationLinkSecret(); + String explainRegistrationLinkDialog(); String numberOfQueueMessagesSent(); String totalSize(); String averageMessageSize(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties index 23d15ab5adc..10ba73550e9 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages.properties @@ -1185,6 +1185,11 @@ competitorRegistrationTypeShort=Registration competitorRegistrationTypeClosed=closed competitorRegistrationTypeOpenModerated=open moderated competitorRegistrationTypeOpenUnmoderated=open unmoderated +registrationLink=Registration Link +registrationLinkConfig=configure +registrationLinkDialog=Link for open regatta registration +registrationLinkSecret=Secret +explainRegistrationLinkDialog= numberOfQueueMessagesSent=Number of queue messages sent totalSize=Total Size averageMessageSize=Average size per message in bytes diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index 982a2bcb11a..6dc3c687f0e 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -1172,6 +1172,11 @@ competitorRegistrationTypeShort=Registrierung competitorRegistrationTypeClosed=geschlossen competitorRegistrationTypeOpenModerated=Öffentlich moderiert competitorRegistrationTypeOpenUnmoderated=Öffentlich unmoderiert +registrationLink=Registrierungslink +registrationLinkConfig=konfigurieren +registrationLinkDialog=Registrierungslink für offene Regattas +registrationLinkSecret=Secret +explainRegistrationLinkDialog= numberOfQueueMessagesSent=Anzahl verschickter Queue Nachrichten totalSize=Gesamtgröße averageMessageSize=Durchschnittsgrösse einer Nachricht diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index 1cb147fccc7..f59aa652957 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -4353,15 +4353,17 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S @Override public void updateRegatta(RegattaIdentifier regattaName, Date startDate, Date endDate, UUID defaultCourseAreaUuid, - RegattaConfigurationDTO configurationDTO, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes) { + RegattaConfigurationDTO configurationDTO, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, + String registrationLinkSecret) { Regatta regatta = getService().getRegatta(regattaName); if (regatta != null) { SecurityUtils.getSubject().checkPermission(Permission.REGATTA.getStringPermissionForObjects(Mode.UPDATE, regatta.getName())); } TimePoint startTimePoint = startDate != null ? new MillisecondsTimePoint(startDate) : null; TimePoint endTimePoint = endDate != null ? new MillisecondsTimePoint(endDate) : null; - getService().apply(new UpdateSpecificRegatta(regattaName, startTimePoint, endTimePoint, - defaultCourseAreaUuid, convertToRegattaConfiguration(configurationDTO), buoyZoneRadiusInHullLengths, useStartTimeInference, controlTrackingFromStartAndFinishTimes)); + getService().apply(new UpdateSpecificRegatta(regattaName, startTimePoint, endTimePoint, defaultCourseAreaUuid, + convertToRegattaConfiguration(configurationDTO), buoyZoneRadiusInHullLengths, useStartTimeInference, + controlTrackingFromStartAndFinishTimes, registrationLinkSecret)); } @Override diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java index 62ecd8104e0..84cd6a827d4 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RegattaReplicationTest.java @@ -118,7 +118,8 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { // Test for 'null' master.apply(new UpdateSpecificRegatta(masterRegatta.getRegattaIdentifier(), /*startDate*/ null, /*endDate*/ null, - currentCourseAreaId, null, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false)); + currentCourseAreaId, null, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, + /* registrationLinkSecret*/ null)); Thread.sleep(1000); replicatedRegatta = replica.getRegatta(new RegattaName(masterRegatta.getName())); assertNotNull(replicatedRegatta); @@ -127,7 +128,8 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { // Test for 'alpha' currentCourseAreaId = alphaCourseAreaId; master.apply(new UpdateSpecificRegatta(masterRegatta.getRegattaIdentifier(), /*startDate*/ null, /*endDate*/ null, - currentCourseAreaId, null, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false)); + currentCourseAreaId, null, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, + /* registrationLinkSecret*/ null)); Thread.sleep(1000); replicatedRegatta = replica.getRegatta(new RegattaName(masterRegatta.getName())); assertNotNull(replicatedRegatta); @@ -136,7 +138,8 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { // Test for 'tv' currentCourseAreaId = tvCourseAreaId; master.apply(new UpdateSpecificRegatta(masterRegatta.getRegattaIdentifier(), /*startDate*/ null, /*endDate*/ null, - currentCourseAreaId, null, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false)); + currentCourseAreaId, null, /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, + /* registrationLinkSecret*/ null)); Thread.sleep(1000); replicatedRegatta = replica.getRegatta(new RegattaName(masterRegatta.getName())); assertNotNull(replicatedRegatta); @@ -145,7 +148,8 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { // Test back to 'null' currentCourseAreaId = null; master.apply(new UpdateSpecificRegatta(masterRegatta.getRegattaIdentifier(), /*startDate*/ null, /*endDate*/ null, currentCourseAreaId, null, - /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false)); + /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, + /* registrationLinkSecret*/ null)); Thread.sleep(1000); replicatedRegatta = replica.getRegatta(new RegattaName(masterRegatta.getName())); assertNotNull(replicatedRegatta); @@ -173,7 +177,8 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { // Test for 'null' master.apply(new UpdateSpecificRegatta(masterRegatta.getRegattaIdentifier(), /*startDate*/ null, /*endDate*/ null, currentCourseAreaId, null, - /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false)); + /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, + /* registrationLinkSecret*/ null)); Thread.sleep(1000); replicatedRegatta = replica.getRegatta(new RegattaName(masterRegatta.getName())); assertNotNull(replicatedRegatta); @@ -183,7 +188,8 @@ public class RegattaReplicationTest extends AbstractServerReplicationTest { RegattaConfigurationImpl config = new RegattaConfigurationImpl(); config.setDefaultCourseDesignerMode(CourseDesignerMode.BY_MARKS); master.apply(new UpdateSpecificRegatta(masterRegatta.getRegattaIdentifier(), /*startDate*/ null, /*endDate*/ null, currentCourseAreaId, config, - /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false)); + /*buoyZoneRadiusInHullLengths*/2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, + /* registrationLinkSecret*/ null)); Thread.sleep(1000); replicatedRegatta = replica.getRegatta(new RegattaName(masterRegatta.getName())); assertNotNull(replicatedRegatta); diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java index bb168acba30..ea54ad902c0 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/RacingEventService.java @@ -347,7 +347,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch Regatta updateRegatta(RegattaIdentifier regattaIdentifier, TimePoint startDate, TimePoint endDate, Serializable newDefaultCourseAreaId, RegattaConfiguration regattaConfiguration, Iterable series, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, - boolean controlTrackingFromStartAndFinishTimes); + boolean controlTrackingFromStartAndFinishTimes, String registrationLinkSecret); /** * Adds raceDefinition to the {@link Regatta} such that it will appear in {@link Regatta#getAllRaces()} diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java index aeed2e20961..b4f7a078e5d 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java @@ -2404,7 +2404,8 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes @Override public Regatta updateRegatta(RegattaIdentifier regattaIdentifier, TimePoint startDate, TimePoint endDate, Serializable newDefaultCourseAreaId, RegattaConfiguration newRegattaConfiguration, - Iterable series, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes) { + Iterable series, Double buoyZoneRadiusInHullLengths, boolean useStartTimeInference, boolean controlTrackingFromStartAndFinishTimes, + String registrationLinkSecret) { if (useStartTimeInference && controlTrackingFromStartAndFinishTimes) { throw new IllegalArgumentException("Cannot set both of useStartTimeInference and controlTrackingFromStartAndFinishTimes to true"); } @@ -2418,6 +2419,7 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes regatta.setEndDate(endDate); regatta.setBuoyZoneRadiusInHullLengths(buoyZoneRadiusInHullLengths); regatta.setControlTrackingFromStartAndFinishTimes(controlTrackingFromStartAndFinishTimes); + regatta.setRegistrationLinkSecret(registrationLinkSecret); if (regatta.useStartTimeInference() != useStartTimeInference) { regatta.setUseStartTimeInference(useStartTimeInference); final DynamicTrackedRegatta trackedRegatta = getTrackedRegatta(regatta); diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateSpecificRegatta.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateSpecificRegatta.java index a59a133dd2f..f09253bbbce 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateSpecificRegatta.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateSpecificRegatta.java @@ -20,9 +20,12 @@ public class UpdateSpecificRegatta extends AbstractRacingEventServiceOperation Date: Tue, 16 Oct 2018 09:02:29 +0200 Subject: [PATCH 24/28] minor fixes from code review --- .../domain/persistence/impl/DomainObjectFactoryImpl.java | 2 +- .../src/com/sap/sailing/domain/base/Regatta.java | 9 +++++++++ .../sailing/gwt/ui/client/StringMessages_de.properties | 2 +- .../sap/sailing/gwt/ui/server/SailingServiceImpl.java | 1 - .../test/TestStoringAndLoadingEventsAndRegattas.java | 2 +- .../serialization/impl/RegattaJsonSerializer.java | 2 +- .../sailing/server/gateway/jaxrs/api/EventsResource.java | 4 +--- .../sailing/xrr/structureimport/StructureImporter.java | 2 +- 8 files changed, 15 insertions(+), 9 deletions(-) diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java index b5a57c1789c..98024ab2aa0 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java @@ -1285,7 +1285,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { CompetitorRegistrationType competitorRegistrationType; if (dbRegatta.containsField(FieldNames.REGATTA_COMPETITOR_REGISTRATION_TYPE.name())) { - String competitorRegistrationTypeName = (String) dbRegatta + final String competitorRegistrationTypeName = (String) dbRegatta .get(FieldNames.REGATTA_COMPETITOR_REGISTRATION_TYPE.name()); try { competitorRegistrationType = competitorRegistrationTypeName == null diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Regatta.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Regatta.java index 428c52af4ab..9c1c6b7868e 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Regatta.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Regatta.java @@ -236,7 +236,16 @@ public interface Regatta extends NamedWithID, IsRegattaLike, HasRaceColumnsAndRe */ void setControlTrackingFromStartAndFinishTimes(boolean controlTrackingFromStartAndFinishTimes); + /** + * get secret for registration link of open regattas. + * @return secret to append on regisration URL + */ String getRegistrationLinkSecret(); + + /** + * set secret for registration link of open regattas to be appended to the URL. + * @param registrationLinkSecret secret string + */ void setRegistrationLinkSecret(String registrationLinkSecret); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties index 0615b0e259f..e5f2b0ef52f 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_de.properties @@ -1169,7 +1169,7 @@ canBoatsChange=Boot kann sich ändern 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 -competitorRegistrationTypeClosed=geschlossen +competitorRegistrationTypeClosed=Geschlossen competitorRegistrationTypeOpenModerated=Öffentlich moderiert competitorRegistrationTypeOpenUnmoderated=Öffentlich unmoderiert registrationLink=Registrierungslink diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java index 95b55fdc90a..7bf2dd2d7c4 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SailingServiceImpl.java @@ -4689,7 +4689,6 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } private void createRegattaFromRegattaDTO(RegattaDTO regatta) { - 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.competitorRegistrationType, /* registrationLinkSecret */ null, regatta.startDate, diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java index 811b782ff4e..1b5485cbda6 100755 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndLoadingEventsAndRegattas.java @@ -547,7 +547,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()); + assertEquals(regatta.getCompetitorRegistrationType(), loadedRegatta.getCompetitorRegistrationType()); } private void logColumnsInRegattaLeaderboard(RegattaLeaderboard regattaLeaderboard) { diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java index fb999de1d35..bf051f0ed2d 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java @@ -48,7 +48,7 @@ public class RegattaJsonSerializer implements JsonSerializer { 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_COMPETITOR_REGISTRATION_TYPE, regatta.getCompetitorRegistrationType().name()); + result.put(FIELD_COMPETITOR_REGISTRATION_TYPE, regatta.getCompetitorRegistrationType().name()); if (seriesSerializer != null) { JSONArray seriesJson = new JSONArray(); for (Series series : regatta.getSeries()) { diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java index b5f8594a789..587a2dc2324 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java @@ -442,9 +442,7 @@ 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 leaderboardNamesParam, diff --git a/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java b/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java index 4946b11293f..fcf2ddbc181 100755 --- a/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java +++ b/java/com.sap.sailing.xrr.structureimport/src/com/sap/sailing/xrr/structureimport/StructureImporter.java @@ -102,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, CompetitorRegistrationType.CLOSED, + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.CLOSED, startDate, endDate, getSeries(buildStructure), false, this.baseDomainFactory.createScoringScheme(ScoringSchemeType.LOW_POINT), event.getEventID(), null, OneDesignRankingMetric::new); addSpecificRegattas.add(regatta); From de5c9c12af402ea31a517ed780f445ab8ee203aa Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Tue, 16 Oct 2018 10:35:02 +0200 Subject: [PATCH 25/28] centralize validation of competitor registration type --- .../common/CompetitorRegistrationType.java | 46 +++++++++++++++++++ .../impl/DomainObjectFactoryImpl.java | 17 +------ .../gateway/jaxrs/api/EventsResource.java | 4 +- 3 files changed, 50 insertions(+), 17 deletions(-) diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java index 9e77ac51e91..55842c65f90 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/CompetitorRegistrationType.java @@ -1,5 +1,8 @@ package com.sap.sailing.domain.common; +import java.util.logging.Level; +import java.util.logging.Logger; + import com.sap.sailing.domain.common.i18n.CommonStringMessages; /** @@ -20,6 +23,8 @@ public enum CompetitorRegistrationType { /** Competitors are registering themselves without the need of confirmation. */ OPEN_UNMODERATED(true, false); + private static final Logger logger = Logger.getLogger(CompetitorRegistrationType.class.getName()); + private boolean open; private boolean moderated; @@ -46,6 +51,47 @@ public enum CompetitorRegistrationType { return this.moderated; } + /** + * Get ComptetitorRegistrationType for given name. If the name is unknown or null it returns {@link #CLOSED} as + * default value. + * + * @param name + * enum name + * @param failForUnknown + * if set and name is not konwn competitor type than this method throws IllegalArgumentException + * @return CompetitorRegistrationType + */ + public static CompetitorRegistrationType valueOfOrDefault(String name, boolean failForUnknown) { + if (name == null) { + return CLOSED; + } else { + try { + return valueOf(name); + } catch (IllegalArgumentException iae) { + if (failForUnknown) { + throw iae; + } else { + logger.log(Level.WARNING, "Unknown CompetitorRegistrationType " + name + + " for regatta. Interpreting it to default CLOSED."); + return CLOSED; + } + } + + } + } + + /** + * et ComptetitorRegistrationType for given name. If the name is unknown or null it returns {{@link #CLOSED} as + * default value. + * + * @param name + * enum name + * @return CompetitorRegistrationType + */ + public static CompetitorRegistrationType valueOfOrDefault(String name) { + return valueOfOrDefault(name, false); + } + /** * Get i18n label. * diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java index 98024ab2aa0..8fefcf95883 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/DomainObjectFactoryImpl.java @@ -1283,21 +1283,8 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { createMigratableRegatta = true; } - CompetitorRegistrationType competitorRegistrationType; - if (dbRegatta.containsField(FieldNames.REGATTA_COMPETITOR_REGISTRATION_TYPE.name())) { - final 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; - } + CompetitorRegistrationType competitorRegistrationType = CompetitorRegistrationType + .valueOfOrDefault((String) dbRegatta.get(FieldNames.REGATTA_COMPETITOR_REGISTRATION_TYPE.name())); final RankingMetricConstructor rankingMetricConstructor = loadRankingMetricConstructor(dbRegatta); if (createMigratableRegatta) { result = new MigratableRegattaImpl(getRaceLogStore(), getRegattaLogStore(), name, boatClass, diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java index 587a2dc2324..99bd1378e51 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/EventsResource.java @@ -415,8 +415,8 @@ public class EventsResource extends AbstractSailingServerResource { } final CompetitorRegistrationType competitorRegistrationType; try { - competitorRegistrationType = CompetitorRegistrationType.valueOf(competitorRegistrationTypeString); - } catch (IllegalArgumentException | NullPointerException e) { + competitorRegistrationType = CompetitorRegistrationType.valueOfOrDefault(competitorRegistrationTypeString, /* failForUnknown */ true); + } catch (IllegalArgumentException iae) { throw new IllegalArgumentException(ExceptionManager.incorrectParameterValue(competitorRegistrationTypeString, StringUtils.join(CompetitorRegistrationType.values(), ", "))); } From 245fb83b6d3359c96627511167a67a0c02914619 Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Tue, 16 Oct 2018 13:52:39 +0200 Subject: [PATCH 26/28] check registration link secret on anynomous competitor registration on an open regatta --- .../test/jaxrs/RegattasResourceTest.java | 28 +++++++++++++++---- .../gateway/jaxrs/api/RegattasResource.java | 11 +++++--- .../server/impl/RacingEventServiceImpl.java | 1 + 3 files changed, 30 insertions(+), 10 deletions(-) diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java index dcbd6bd632a..08ce5f7450b 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/test/jaxrs/RegattasResourceTest.java @@ -48,6 +48,7 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { private final String closedRegattaName = "TestRegatta"; private final String openRegattaName = "TestOpenRegatta"; private final String deviceUuid = "00000000-1111-2222-3333-444444444444"; + private final String secret = "ABCDEF"; @Before public void setUp() throws Exception { @@ -71,8 +72,8 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); racingEventService.createRegatta(RegattaImpl.getDefaultName(openRegattaName, boatClassName), boatClassName, - /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.OPEN_MODERATED, - /* registrationLinkSecret */ null, startDate, endDate, UUID.randomUUID(), series, /* persistent */ true, + /* canBoatsOfCompetitorsChangePerRace */ true, CompetitorRegistrationType.OPEN_UNMODERATED, + /* registrationLinkSecret */ secret, startDate, endDate, UUID.randomUUID(), series, /* persistent */ true, DomainFactory.INSTANCE.createScoringScheme(ScoringSchemeType.LOW_POINT), null, /* buoyZoneRadiusInHullLengths */2.0, /* useStartTimeInference */ true, /* controlTrackingFromStartAndFinishTimes */ false, OneDesignRankingMetric::new); @@ -133,7 +134,7 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { final String name = RegattaImpl.getDefaultName(closedRegattaName, boatClassName); Response reponse = spyResource.createAndAddCompetitor(name, boatClassName, null, "GER", null, null, null, - "Max Mustermann", null, deviceUuid); + "Max Mustermann", null, deviceUuid, null); assertTrue(reponse.getStatus() + ": " + reponse.getEntity().toString(), reponse.getStatus() == Status.OK.getStatusCode()); assertTrue(spyResource.getService() == racingEventService); @@ -159,7 +160,7 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { Regatta regatta = racingEventService.getRegattaByName(name); Response reponse = spyResource.createAndAddCompetitor(name, boatClassName, null, "GER", null, null, null, - "Max Mustermann", null, deviceUuid); + "Max Mustermann", null, deviceUuid, secret); assertTrue(reponse.getStatus() + ": " + reponse.getEntity().toString(), reponse.getStatus() == Status.OK.getStatusCode()); assertTrue(spyResource.getService() == racingEventService); @@ -167,6 +168,21 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { regatta = racingEventService.getRegattaByName(name); testResponseOfOpenRegattaCompetitorRegistration(regatta, spyResource); } + + @Test + public void testCompetitorRegistrationAnonymousOnOpenRegattaWrongSecret() throws Exception { + setUpSecurityManager(); + + RegattasResource resource = new RegattasResource(); + RegattasResource spyResource = spyResource(resource); + doReturn(securityService).when(spyResource).getService(SecurityService.class); + + final String name = RegattaImpl.getDefaultName(openRegattaName, boatClassName); + Response reponse = spyResource.createAndAddCompetitor(name, boatClassName, null, "GER", null, null, null, + "Max Mustermann", null, deviceUuid, "WRONGSECRET"); + assertTrue(reponse.getStatus() + ": " + reponse.getEntity().toString(), + reponse.getStatus() == Status.FORBIDDEN.getStatusCode()); + } @Test public void testCompetitorRegistrationAuthenticatedOnOpenRegatta() throws Exception { @@ -184,7 +200,7 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { Regatta regatta = racingEventService.getRegattaByName(name); Response reponse = spyResource.createAndAddCompetitor(name, boatClassName, null, "GER", null, null, null, - "Max Mustermann", null, deviceUuid); + "Max Mustermann", null, deviceUuid, secret); assertTrue(reponse.getStatus() + ": " + reponse.getEntity().toString(), reponse.getStatus() == Status.OK.getStatusCode()); assertTrue(spyResource.getService() == racingEventService); @@ -212,7 +228,7 @@ public class RegattasResourceTest extends AbstractJaxRsApiTest { // Same deviceUuid for registration should fail Response response = spyResource.createAndAddCompetitor(regatta.getName(), boatClassName, null, "GER", null, - null, null, "Max Mustermann", null, deviceUuid); + null, null, "Max Mustermann", null, deviceUuid, secret); assertTrue("Reponse http status should be forbidden (403) but is " + response.getStatus(), response.getStatus() == Status.FORBIDDEN.getStatusCode()); } diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java index 8bbf38e8efe..0b8fdfaba7e 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/RegattasResource.java @@ -349,7 +349,8 @@ public class RegattasResource extends AbstractSailingServerResource { @QueryParam("timeontimefactor") Double timeOnTimeFactor, @QueryParam("timeondistanceallowancepernauticalmileasmillis") Long timeOnDistanceAllowancePerNauticalMileAsMillis, @QueryParam("searchtag") String searchTag, @QueryParam("competitorName") String competitorName, - @QueryParam("competitorEmail") String competitorEmail, @QueryParam("deviceUuid") String deviceUuid) { + @QueryParam("competitorEmail") String competitorEmail, @QueryParam("deviceUuid") String deviceUuid, + @QueryParam("secret") String registrationLinkSecret) { final Subject subject = SecurityUtils.getSubject(); final Response response; @@ -371,9 +372,11 @@ public class RegattasResource extends AbstractSailingServerResource { //case 2.1: with device //TODO: correct to checkin in with device? checkInCompetitor = deviceUuid != null; } else if (deviceUuid != null && regatta.getCompetitorRegistrationType().isOpen()) { - //case 3: unauthorized with device - registerCompetitor = true; - checkInCompetitor = true; + //case 3: unauthorized with device (check secret) + if (regatta.getRegistrationLinkSecret() != null && regatta.getRegistrationLinkSecret().equals(registrationLinkSecret)) { + registerCompetitor = true; + checkInCompetitor = true; + } } // Check regattalog if device has been registered to this regatta already diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java index b4f7a078e5d..47d48c5fe2d 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RacingEventServiceImpl.java @@ -1497,6 +1497,7 @@ public class RacingEventServiceImpl implements RacingEventService, ClearStateTes Regatta regatta = new RegattaImpl(getRaceLogStore(), getRegattaLogStore(), fullRegattaName, getBaseDomainFactory().getOrCreateBoatClass(boatClassName), canBoatsOfCompetitorsChangePerRace, competitorRegistrationType, startDate, endDate, series, persistent, scoringScheme, id, courseArea, buoyZoneRadiusInHullLengths, useStartTimeInference, controlTrackingFromStartAndFinishTimes, rankingMetricConstructor); + regatta.setRegistrationLinkSecret(registrationLinkSecret); boolean wasCreated = addAndConnectRegatta(persistent, defaultCourseAreaId, regatta); if (wasCreated) { logger.info("Created regatta " + regatta.getName() + " (" + hashCode() + ") on " + this); From bc8f5aa212fa1bf181c145d27a00570745399a09 Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Tue, 16 Oct 2018 17:27:55 +0200 Subject: [PATCH 27/28] add random secret generator on registration link dialog --- .../RegistrationLinkWithQRCodeDialog.java | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCodeDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCodeDialog.java index 746718a79df..daf9e37e6a2 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCodeDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCodeDialog.java @@ -1,5 +1,11 @@ package com.sap.sailing.gwt.ui.adminconsole; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +import com.google.gwt.event.dom.client.ClickEvent; +import com.google.gwt.event.dom.client.ClickHandler; +import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Grid; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.TextBox; @@ -12,6 +18,7 @@ public class RegistrationLinkWithQRCodeDialog extends DataEntryDialog (int) (r * 100)) + .filter(i -> (i > 47 && i < 58 || i > 64 && i < 90)).limit(length) + .map(i -> (String) String.valueOf((char) i.intValue())).collect(Collectors.joining()); + return randomString; + } + } From aad4a669e7577e5818f8151d4474d738f649934b Mon Sep 17 00:00:00 2001 From: Thomas Wiese Date: Wed, 17 Oct 2018 09:49:12 +0200 Subject: [PATCH 28/28] set secret on open regatta on creation --- ...tractRegattaWithSeriesAndFleetsDialog.java | 14 ++++++++++++ .../adminconsole/RegattaDetailsComposite.java | 2 +- .../RegistrationLinkWithQRCodeDialog.java | 13 ++--------- .../gwt/ui/common/client/RandomString.java | 22 +++++++++++++++++++ 4 files changed, 39 insertions(+), 12 deletions(-) create mode 100644 java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/common/client/RandomString.java diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java index 747b7325c90..35d16575f11 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractRegattaWithSeriesAndFleetsDialog.java @@ -25,6 +25,7 @@ import com.sap.sailing.domain.common.ScoringSchemeType; import com.sap.sailing.gwt.ui.client.DataEntryDialogWithDateTimeBox; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil; +import com.sap.sailing.gwt.ui.common.client.RandomString; import com.sap.sailing.gwt.ui.leaderboard.RankingMetricTypeFormatter; import com.sap.sailing.gwt.ui.leaderboard.ScoringSchemeTypeFormatter; import com.sap.sailing.gwt.ui.shared.CourseAreaDTO; @@ -115,6 +116,19 @@ public abstract class AbstractRegattaWithSeriesAndFleetsDialog extends DataEn competitorRegistrationTypeListBox = createListBox(false); EnumSet.allOf(CompetitorRegistrationType.class).forEach(t->competitorRegistrationTypeListBox.addItem(t.getLabel(stringMessages), t.name())); competitorRegistrationTypeListBox.setSelectedIndex(regatta.competitorRegistrationType.ordinal()); + competitorRegistrationTypeListBox.addChangeHandler(new ChangeHandler() { + + @Override + public void onChange(ChangeEvent event) { + if (CompetitorRegistrationType.valueOf(competitorRegistrationTypeListBox.getSelectedValue()).isOpen()) { + registrationLinkWithQRCodeOpenButton.setEnabled(true); + registrationLinkWithQRCode.setSecret(RandomString.createRandomSecret(20)); + } else { + registrationLinkWithQRCodeOpenButton.setEnabled(false); + registrationLinkWithQRCode.setSecret(null); + } + } + }); registrationLinkWithQRCode = new RegistrationLinkWithQRCode(); registrationLinkWithQRCode.setSecret(regatta.registrationLinkSecret); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java index 0019ab618c9..8f6159f3128 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegattaDetailsComposite.java @@ -409,7 +409,7 @@ public class RegattaDetailsComposite extends Composite { canBoatsOfCompetitorsChangePerRace.setText(regatta.canBoatsOfCompetitorsChangePerRace ? stringMessages.yes() : stringMessages.no()); competitorRegistrationType.setText(regatta.competitorRegistrationType.getLabel(stringMessages)); openRegattaRegistrationLink.setText(regatta.competitorRegistrationType.isOpen() - ? "http://www.sapsailing.com" //TODO: get correct URL for branch.io + ? "http://www.sapsailing.com?secret=" + regatta.registrationLinkSecret //TODO: get correct URL for branch.io : "-"); buoyZoneRadiusInHullLengths.setText(String.valueOf(regatta.buoyZoneRadiusInHullLengths)); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCodeDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCodeDialog.java index daf9e37e6a2..baad9007bf2 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCodeDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RegistrationLinkWithQRCodeDialog.java @@ -1,8 +1,5 @@ package com.sap.sailing.gwt.ui.adminconsole; -import java.util.stream.Collectors; -import java.util.stream.Stream; - import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.ui.Button; @@ -12,6 +9,7 @@ import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sailing.gwt.ui.common.client.RandomString; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class RegistrationLinkWithQRCodeDialog extends DataEntryDialog { @@ -36,7 +34,7 @@ public class RegistrationLinkWithQRCodeDialog extends DataEntryDialog (int) (r * 100)) - .filter(i -> (i > 47 && i < 58 || i > 64 && i < 90)).limit(length) - .map(i -> (String) String.valueOf((char) i.intValue())).collect(Collectors.joining()); - return randomString; - } - } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/common/client/RandomString.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/common/client/RandomString.java new file mode 100644 index 00000000000..29e7f3c4b78 --- /dev/null +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/common/client/RandomString.java @@ -0,0 +1,22 @@ +package com.sap.sailing.gwt.ui.common.client; + +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class RandomString { + + /** + * Generate a random string containing uppercase letters and numbers. + * + * @param length + * length of the string to generate + * @return random string + */ + public static String createRandomSecret(int length) { + String randomString = Stream.generate(Math::random).map(r -> (int) (r * 100)) + .filter(i -> (i > 47 && i < 58 || i > 64 && i < 90)).limit(length) + .map(i -> String.valueOf((char) i.intValue())).collect(Collectors.joining()); + return randomString; + } + +}