From 0c47e86304ca769979d5565e7ff628b05a366075 Mon Sep 17 00:00:00 2001 From: Axel Uhl Date: Mon, 2 Jun 2014 23:31:26 +0200 Subject: [PATCH] moved Pair and Triple from com.sap.sailing.common.Util to com.sap.sse.common.Util and introduced all missing dependencies on com.sap.sse.common --- .../META-INF/MANIFEST.MF | 3 +- .../test/BarbadosResultImportTest.java | 10 +- .../META-INF/MANIFEST.MF | 3 +- .../impl/ScoreCorrectionProviderImpl.java | 10 +- .../META-INF/MANIFEST.MF | 3 +- .../META-INF/MANIFEST.MF | 3 +- ...ctLeaderboardGroupDataRetrievalWorker.java | 18 +-- ...ixLeaderboardGroupDataRetrievalWorker.java | 8 +- .../impl/gps_fix/GPSFixWithContextImpl.java | 2 +- ...orLeaderboardGroupDataRetrievalWorker.java | 6 +- .../com/sap/sailing/domain/common/Color.java | 5 +- .../sap/sailing/domain/common/DetailType.java | 5 +- .../common/ScoreCorrectionProvider.java | 5 +- .../common/dto/AbstractLeaderboardDTO.java | 8 +- .../common/dto/IncrementalLeaderboardDTO.java | 37 +++-- .../domain/common/impl/AbstractColor.java | 4 +- .../domain/common/impl/ColorMapImpl.java | 6 +- .../sailing/domain/common/impl/HSVColor.java | 10 +- .../domain/common/impl/QRCodeUtils.java | 6 +- .../sailing/domain/common/impl/RGBColor.java | 10 +- .../domain/common/impl/TimeRangeImpl.java | 4 +- .../sap/sailing/domain/common/impl/Util.java | 123 ----------------- .../impl/WindSourceWithAdditionalID.java | 1 + .../impl/ScalableSpeedWithBearing.java | 10 +- .../igtimiadapter/impl/IgtimiWindTracker.java | 8 +- .../shared/IgtimiWindReceiver.java | 35 +++-- .../websocket/WebSocketConnectionManager.java | 5 +- .../persistence/impl/CollectionNames.java | 3 + .../impl/DomainObjectFactoryImpl.java | 17 ++- .../impl/MongoObjectFactoryImpl.java | 12 +- .../persistence/impl/TripleSerializer.java | 4 +- .../test/impl/RecordFixesTest.java | 4 +- .../test/manual/PostFixes.java | 4 +- .../META-INF/MANIFEST.MF | 3 +- .../SmartphoneImeiSerializationHandler.java | 6 +- ...gDeviceIdentifierSerializationHandler.java | 6 +- .../impl/RaceLogRaceTracker.java | 6 +- ...FileImportDeviceIdentifierJsonHandler.java | 6 +- ...ileImportDeviceIdentifierMongoHandler.java | 6 +- ...eIdentifierStringSerializationHandler.java | 6 +- .../servlet/RecordFixesPostServlet.java | 8 +- .../test/PassAwareRaceLogAnalyzerTest.java | 3 +- .../sap/sailing/domain/base/BoatClass.java | 1 + .../impl/EmptyRegattaConfiguration.java | 2 +- .../domain/racelog/CompetitorResults.java | 4 +- .../RaceLogGateLineOpeningTimeEvent.java | 4 +- .../impl/LastPublishedCourseDesignFinder.java | 1 - .../impl/RRS26StartModeFlagFinder.java | 2 +- .../racelog/impl/BaseRaceLogEventVisitor.java | 4 +- .../racelog/impl/CompetitorResultsImpl.java | 4 +- .../racelog/impl/RaceLogChangedVisitor.java | 4 +- .../racelog/impl/RaceLogEventFactoryImpl.java | 10 +- .../racelog/state/impl/RaceStateImpl.java | 2 +- .../BaseRacingProcedureChangedListener.java | 2 +- .../impl/RacingProcedureFactoryImpl.java | 2 +- .../racelog/tracking/DeviceIdentifier.java | 2 + .../DeviceIdentifierSerializationHandler.java | 4 +- .../tracking/PlaceHolderDeviceIdentifier.java | 2 + .../tracking/RegisterCompetitorEvent.java | 1 + .../SmartphoneUUIDSerializationHandler.java | 6 +- .../racelog/tracking/StartTrackingEvent.java | 1 + .../impl/RaceLogTrackingStateAnalyzer.java | 2 +- ...rDeviceIdentifierSerializationHandler.java | 6 +- .../services/MessageFileServiceImpl.java | 2 +- .../impl/DomainFactoryTest.java | 9 +- .../test/SailMasterConnectivityTest.java | 5 +- .../test/SwissTimingSailMasterLiveTest.java | 12 +- .../swisstimingadapter/test/ui/EditCAM.java | 6 +- .../swisstimingadapter/test/ui/EditSTL.java | 3 +- .../test/ui/SwissTimingRaceEditor.java | 21 +-- .../swisstimingadapter/SailMasterAdapter.java | 6 +- .../SailMasterConnector.java | 7 +- .../SailMasterListener.java | 6 +- .../SwissTimingRaceTracker.java | 4 +- .../impl/DomainFactoryImpl.java | 5 +- .../impl/SailMasterConnectorImpl.java | 25 ++-- .../impl/SwissTimingFactoryImpl.java | 8 +- .../impl/SwissTimingRaceTrackerImpl.java | 15 +- .../impl/TMDMessageQueue.java | 14 +- .../SwissTimingReplayToDomainAdapter.java | 5 +- .../sailing/domain/common/MediaTrackTest.java | 5 +- .../sailing/domain/common/MediaUtilTest.java | 6 +- .../domain/common/test/BeaufortTest.java | 2 +- .../test/LeaderboardDTODiffingTest.java | 7 +- .../domain/test/AbstractTracTracLiveTest.java | 8 +- .../sap/sailing/domain/test/CourseTest.java | 9 +- .../sailing/domain/test/CourseUpdateTest.java | 3 +- .../test/FetchTracksAndStoreLocallyTest.java | 2 +- .../test/LeaderboardForKielWeekTest.java | 8 +- .../domain/test/LeaderboardOfflineTest.java | 3 +- .../domain/test/OfflineSerializationTest.java | 17 ++- .../domain/test/PolarSheetGenerationTest.java | 10 +- .../test/SerializationWithOnlineRaceTest.java | 7 +- .../sailing/domain/test/TrackBasedTest.java | 2 +- .../sap/sailing/domain/test/TrackTest.java | 24 ++-- ...WindEstimationOnConstructedTracksTest.java | 6 +- .../markpassing/AbstractMarkPassingTest.java | 4 +- .../AbstractMockedRaceMarkPassingTest.java | 8 +- .../MarkPassingCalculatorPerformanceTest.java | 6 +- .../domain/test/mock/MockedTrackedRace.java | 10 +- ...ockedTrackedRaceWithStartTimeAndRanks.java | 8 +- .../META-INF/MANIFEST.MF | 3 +- .../domain/tractracadapter/DomainFactory.java | 8 +- .../tractracadapter/TracTracAdapter.java | 4 +- .../tractracadapter/TracTracRaceTracker.java | 4 +- .../impl/AbstractReceiverWithQueue.java | 16 +-- .../tractracadapter/impl/ClientParamsPHP.java | 12 +- .../impl/DomainFactoryImpl.java | 29 ++-- .../impl/MarkPassingReceiver.java | 6 +- .../impl/MarkPositionReceiver.java | 8 +- .../impl/RaceCourseReceiver.java | 13 +- .../impl/RaceStartedAndFinishedReceiver.java | 6 +- ...aceTrackingConnectivityParametersImpl.java | 3 +- .../impl/RawPositionReceiver.java | 8 +- .../impl/TracTracAdapterImpl.java | 6 +- .../impl/TracTracRaceTrackerImpl.java | 33 +++-- .../com/sap/sailing/domain/base/Course.java | 4 +- .../sap/sailing/domain/base/RaceColumn.java | 3 +- .../base/SpeedWithBearingWithConfidence.java | 4 +- .../sailing/domain/base/impl/CourseImpl.java | 6 +- .../domain/base/impl/DomainFactoryImpl.java | 8 +- .../domain/base/impl/DouglasPeucker.java | 30 ++-- .../impl/RaceColumnRaceLogReplicator.java | 4 +- .../base/impl/SimpleAbstractRaceColumn.java | 5 +- .../SpeedWithBearingWithConfidenceImpl.java | 8 +- .../impl/PositionAndTimePointWeigher.java | 6 +- .../domain/leaderboard/Leaderboard.java | 6 +- .../domain/leaderboard/ScoringScheme.java | 8 +- .../caching/LeaderboardDTOCache.java | 10 +- .../impl/AbstractScoringSchemeImpl.java | 9 +- .../impl/AbstractSimpleLeaderboardImpl.java | 29 ++-- .../HighPointExtremeSailingSeriesOverall.java | 7 +- .../HighPointFirstGets10LastBreaksTie.java | 4 +- .../HighPointFirstGets1LastBreaksTie.java | 4 +- .../impl/HighPointLastBreaksTie.java | 4 +- .../impl/LeaderboardTotalRankComparator.java | 22 +-- .../leaderboard/impl/ScoreCorrectionImpl.java | 25 ++-- .../meta/LeaderboardGroupMetaLeaderboard.java | 1 + .../AbstractCandidateChooser.java | 4 +- .../AbstractCandidateFinder.java | 6 +- .../CandidateChooser.java | 16 +-- .../CandidateFinder.java | 36 ++--- .../MarkPassingCalculator.java | 8 +- .../MarkPassingUpdateListener.java | 14 +- ...dCompetitorPolarSheetGenerationWorker.java | 20 +-- .../domain/racelog/RaceLogIdentifier.java | 4 +- .../racelog/RaceLogIdentifierTemplate.java | 4 + .../RaceLogIdentifierTemplateResolver.java | 2 + .../domain/racelog/RaceLogInformation.java | 2 + .../racelog/impl/RaceLogIdentifierImpl.java | 6 +- .../domain/tracking/DynamicTrackedRace.java | 4 +- .../sailing/domain/tracking/GPSFixTrack.java | 6 +- .../sailing/domain/tracking/RacesHandle.java | 3 +- .../tracking/TrackedLegOfCompetitor.java | 4 +- .../sailing/domain/tracking/TrackedRace.java | 8 +- .../domain/tracking/TrackedRegatta.java | 1 + .../sailing/domain/tracking/WindTrack.java | 4 +- .../sailing/domain/tracking/WindTracker.java | 2 + .../impl/BearingWithConfidenceCluster.java | 10 +- .../tracking/impl/CombinedWindTrackImpl.java | 4 +- .../domain/tracking/impl/DistanceCache.java | 48 +++---- .../tracking/impl/DynamicTrackedRaceImpl.java | 11 +- .../domain/tracking/impl/GPSFixTrackImpl.java | 22 +-- .../domain/tracking/impl/MaxSpeedCache.java | 75 +++++----- .../TrackBasedEstimationWindTrackImpl.java | 12 +- .../impl/TrackedLegOfCompetitorImpl.java | 4 +- .../domain/tracking/impl/TrackedRaceImpl.java | 72 +++++----- .../tracking/impl/VirtualWindTrackImpl.java | 8 +- .../domain/tracking/impl/WindTrackImpl.java | 24 ++-- .../sap/sailing/util/WeakIdentityHashMap.java | 1 - .../META-INF/MANIFEST.MF | 3 +- .../test/SimpleESS40ResultImportTest.java | 6 +- .../META-INF/MANIFEST.MF | 3 +- .../impl/RegattaScoreCorrectionsImpl.java | 8 +- ...coreCorrectionForCompetitorInRaceImpl.java | 4 +- .../impl/ScoreCorrectionForRaceImpl.java | 8 +- .../impl/ScoreCorrectionProviderImpl.java | 24 ++-- .../META-INF/MANIFEST.MF | 3 +- .../META-INF/MANIFEST.MF | 3 +- .../impl/ScoreCorrectionProviderImpl.java | 8 +- .../META-INF/MANIFEST.MF | 3 +- .../geocoding/impl/ReverseGeocoderImpl.java | 14 +- .../ui/test/GwtTestCaseColumnToggling.java | 6 +- .../sailing/gwt/ui/test/LineSegmentTest.java | 2 +- .../gwt/ui/test/MockedTrackedRace.java | 10 +- .../test/PolarSheetGenerationServiceTest.java | 10 +- .../test/SafeHtmlHeaderWithTooltipTest.java | 2 +- .../gwt/ui/test/SailingServiceImplMock.java | 2 +- .../gwt/ui/test/WindGridColorPaletteTest.java | 5 +- .../GetLeaderboardDataEntriesAction.java | 6 +- .../AbstractTrackedRacesListComposite.java | 2 +- .../ui/adminconsole/CompetitorEditDialog.java | 5 +- .../adminconsole/CourseManagementWidget.java | 7 +- .../adminconsole/LeaderboardConfigPanel.java | 6 +- .../LeaderboardGroupConfigPanel.java | 2 +- .../RaceLogTrackingEventManagementPanel.java | 8 +- .../ui/adminconsole/RacesListBoxPanel.java | 2 +- .../ui/adminconsole/RegattaListComposite.java | 2 +- .../gwt/ui/adminconsole/ReplicationPanel.java | 18 +-- .../ui/adminconsole/SetStartTimeDialog.java | 5 +- .../TracTracEventManagementPanel.java | 7 +- .../TrackedRacesListComposite.java | 2 +- .../gwt/ui/adminconsole/WindPanel.java | 2 +- .../sailing/gwt/ui/client/RaceTimePanel.java | 4 +- .../ui/client/RaceTimesCalculationUtil.java | 6 +- .../sailing/gwt/ui/client/SailingService.java | 28 ++-- .../gwt/ui/client/SailingServiceAsync.java | 27 ++-- .../TextfieldEntryDialogWithCheckbox.java | 10 +- .../AbstractCompetitorLeaderboardChart.java | 13 +- .../charts/AbstractCompetitorRaceChart.java | 14 +- .../shared/components/CompositeSettings.java | 4 +- .../shared/components/CompositeValidator.java | 4 +- .../ui/client/shared/racemap/BoatOverlay.java | 12 +- .../shared/racemap/CourseMarkOverlay.java | 12 +- .../client/shared/racemap/FixesAndTails.java | 7 +- .../gwt/ui/client/shared/racemap/RaceMap.java | 22 ++- .../shared/racemap/RaceMapImageManager.java | 34 ++--- .../RaceMapSettingsDialogComponent.java | 22 +-- .../ui/leaderboard/LeaderboardEntryPoint.java | 8 +- .../gwt/ui/leaderboard/LeaderboardPanel.java | 7 +- .../ui/leaderboard/MultiLeaderboardPanel.java | 14 +- .../ui/leaderboardedit/EditScoreDialog.java | 10 +- .../EditableLeaderboardPanel.java | 23 ++-- .../MatchAndApplyScoreCorrectionsDialog.java | 18 +-- .../ResultSelectionAndApplyDialog.java | 43 +++--- .../ui/polarsheets/PolarSheetsEntryPoint.java | 2 +- .../gwt/ui/server/SailingServiceImpl.java | 130 +++++++++--------- .../gwt/ui/server/SimulatorServiceImpl.java | 16 +-- .../gwt/ui/shared/CompetitorRaceDataDTO.java | 47 +++---- .../ui/shared/ScoreCorrectionProviderDTO.java | 8 +- .../ui/simulator/WindGridCanvasOverlay.java | 20 +-- .../META-INF/MANIFEST.MF | 3 +- .../kiworesultimport/impl/BoatImpl.java | 2 +- .../impl/ScoreCorrectionProviderImpl.java | 12 +- .../kiworesultimport/impl/ZipFileImpl.java | 8 +- .../resultimport/test/ParserTest.java | 13 +- .../META-INF/MANIFEST.MF | 3 +- .../ScoreCorrectionProviderImpl.java | 12 +- .../StoreAndLoadDeviceIdentifierTest.java | 3 +- .../test/StoreAndLoadRaceLogEventsTest.java | 3 +- ...ingAndRetrievingRaceLogInLeaderboards.java | 5 +- ...tStoringAndRetrievingRaceLogInRegatta.java | 5 +- .../META-INF/MANIFEST.MF | 3 +- .../mongodb/internal/MongoDBServiceImpl.java | 11 +- .../resultimport/test/ParserTest.java | 3 +- .../META-INF/MANIFEST.MF | 3 +- .../impl/ScoreCorrectionProviderImpl.java | 8 +- .../META-INF/MANIFEST.MF | 3 +- .../test/EventDataJsonSerializerTest.java | 2 +- ...ourseDesignChangedEventSerializerTest.java | 4 +- ...sitioningConfirmedEventSerializerTest.java | 3 +- ...ionIdentifierWithGPSFixesDeserializer.java | 8 +- .../RRS26ConfigurationJsonDeserializer.java | 10 +- ...PositioningConfirmedEventDeserializer.java | 4 +- ...sitioningListChangedEventDeserializer.java | 4 +- .../impl/ColorJsonSerializer.java | 4 +- ...ssionIdentifierWithGPSFixesSerializer.java | 6 +- .../impl/DeviceIdentifierJsonSerializer.java | 4 +- .../impl/PositionedMarkJsonSerializer.java | 6 +- ...shPositioningConfirmedEventSerializer.java | 6 +- ...PositioningListChangedEventSerializer.java | 6 +- .../META-INF/MANIFEST.MF | 3 +- .../expeditionimport/TestWindLogParser.java | 10 +- .../server/gateway/impl/GPSFixImportTest.java | 4 +- .../sailing/server/gateway/impl/AdminApp.java | 4 +- .../impl/LeaderboardJsonGetServlet.java | 45 +++--- .../RegattaAndRaceDataJsonGetServlet.java | 2 +- .../rc/MarkPositionsJsonExportServlet.java | 4 +- .../jaxrs/api/LeaderboardsResource.java | 6 +- .../gateway/jaxrs/api/RegattasResource.java | 7 +- .../impl/TrackFilesImportServlet.java | 10 +- .../test/AbstractServerReplicationTest.java | 8 +- .../test/ConnectionResetAndReconnectTest.java | 3 +- ...LeaderboardCorrectionsReplicationTest.java | 3 +- ...tialLoadReplicationObjectIdentityTest.java | 4 +- .../test/MediaReplicationTest.java | 11 +- .../test/PrematureOperationReceiptTest.java | 4 +- .../test/RaceLogReplicationTest.java | 3 +- .../META-INF/MANIFEST.MF | 3 +- .../sailing/server/impl/MediaLibaryTest.java | 13 +- .../server/test/MasterDataImportTest.java | 6 +- .../sailing/server/test/RaceTrackerMock.java | 2 +- .../META-INF/MANIFEST.MF | 3 +- .../META-INF/MANIFEST.MF | 3 +- .../sailing/server/RacingEventService.java | 16 +-- .../sap/sailing/server/impl/Activator.java | 4 +- .../server/impl/CourseChangeReplicator.java | 2 +- .../server/impl/RaceLogReplicator.java | 1 + .../server/impl/RaceLogScoringReplicator.java | 9 +- .../server/impl/RacingEventServiceImpl.java | 22 ++- .../server/impl/RemoteSailingServerSet.java | 16 +-- .../server/masterdata/DummyTrackedRace.java | 8 +- .../ImportMasterDataOperation.java | 5 +- .../RemoveAndUntrackRace.java | 2 +- .../StopTrackingRace.java | 2 +- .../UpdateLeaderboardMaxPointsReason.java | 8 +- .../UpdateLeaderboardScoreCorrection.java | 8 +- .../META-INF/MANIFEST.MF | 3 +- .../test/RectangularBoundaryTest.java | 2 +- .../test/WindFieldGeneratorTest.java | 10 +- .../META-INF/MANIFEST.MF | 3 +- .../com/sap/sailing/simulator/Boundary.java | 4 +- .../simulator/impl/PathGeneratorDijkstra.java | 12 +- .../impl/PathGeneratorTreeGrowWind.java | 8 +- .../impl/PathGeneratorTreeGrowWind2.java | 14 +- .../impl/PathGeneratorTreeGrowWind3.java | 14 +- .../simulator/impl/RectangularBoundary.java | 6 +- .../simulator/impl/SailingSimulatorImpl.java | 4 +- .../simulator/impl/SimulatorUtils.java | 10 +- .../impl/WindFieldGeneratorBlastImpl.java | 4 +- .../impl/WindFieldGeneratorImpl.java | 6 +- .../WindFieldGeneratorOscillationImpl.java | 6 +- .../velum/resultimport/test/ParserTest.java | 3 +- .../META-INF/MANIFEST.MF | 3 +- .../impl/ScoreCorrectionProviderImpl.java | 2 +- .../sap/sailing/xmlexport/ExportAction.java | 3 +- .../sailing/xmlexport/LeaderboardData.java | 38 ++--- .../xrr/resultimport/test/ParserTest.java | 7 +- .../META-INF/MANIFEST.MF | 3 +- .../impl/ScoreCorrectionProviderImpl.java | 10 +- .../src/com/sap/sse/common/Util.java | 122 ++++++++-------- .../app/services/polling/PollingResult.java | 6 +- .../app/services/polling/RaceLogPoller.java | 12 +- .../services/polling/RaceLogPollerTask.java | 10 +- .../app/services/sending/EventSenderTask.java | 18 +-- .../CompetitorPositioningListAdapter.java | 8 +- .../dialogs/PositioningFragment.java | 29 ++-- .../preference/GeneralPreferenceFragment.java | 4 +- .../RegattaSpecificPreferenceFragment.java | 2 + .../running/RRS26RunningRaceFragment.java | 1 + .../app/ui/utils/FlagPoleStateRenderer.java | 6 +- .../app/utils/autoupdate/AutoUpdater.java | 2 + .../autoupdate/AutoUpdaterDownloader.java | 4 +- .../AutoUpdaterVersionDownloader.java | 12 +- 334 files changed, 1540 insertions(+), 1692 deletions(-) diff --git a/java/com.sap.sailing.barbados.resultimport.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.barbados.resultimport.test/META-INF/MANIFEST.MF index 26e5ba185a6..7ed218598ed 100644 --- a/java/com.sap.sailing.barbados.resultimport.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.barbados.resultimport.test/META-INF/MANIFEST.MF @@ -11,4 +11,5 @@ Require-Bundle: org.junit4;bundle-version="4.8.2", com.sap.sailing.barbados.resultimport, com.sap.sailing.domain.common, com.sap.sailing.domain, - com.sap.sailing.resultimport + com.sap.sailing.resultimport, + com.sap.sse.common diff --git a/java/com.sap.sailing.barbados.resultimport.test/src/com/sap/sailing/barbados/resultimport/test/BarbadosResultImportTest.java b/java/com.sap.sailing.barbados.resultimport.test/src/com/sap/sailing/barbados/resultimport/test/BarbadosResultImportTest.java index 3d3997e4b2a..67eb041fbdf 100755 --- a/java/com.sap.sailing.barbados.resultimport.test/src/com/sap/sailing/barbados/resultimport/test/BarbadosResultImportTest.java +++ b/java/com.sap.sailing.barbados.resultimport.test/src/com/sap/sailing/barbados/resultimport/test/BarbadosResultImportTest.java @@ -28,11 +28,11 @@ import com.sap.sailing.domain.common.RegattaScoreCorrections; import com.sap.sailing.domain.common.RegattaScoreCorrections.ScoreCorrectionsForRace; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.resultimport.RegattaResults; import com.sap.sailing.resultimport.ResultDocumentDescriptor; import com.sap.sailing.resultimport.ResultDocumentProvider; import com.sap.sailing.resultimport.impl.ResultDocumentDescriptorImpl; +import com.sap.sse.common.Util; public class BarbadosResultImportTest { private static final MillisecondsTimePoint NOW = MillisecondsTimePoint.now(); @@ -74,16 +74,16 @@ public class BarbadosResultImportTest { @Test public void testHasResultsThroughScoreCorrectionProvider() throws Exception { - Map>> hasResultsFor = scp.getHasResultsForBoatClassFromDateByEventName(); + Map>> hasResultsFor = scp.getHasResultsForBoatClassFromDateByEventName(); assertNotNull(hasResultsFor); assertEquals(1, hasResultsFor.size()); - Entry>> entry = hasResultsFor.entrySet().iterator().next(); + Entry>> entry = hasResultsFor.entrySet().iterator().next(); assertEquals("505", entry.getValue().iterator().next().getA()); } @Test public void testResultsThroughScoreCorrectionProvider() throws Exception { - Map>> hasResultsFor = scp.getHasResultsForBoatClassFromDateByEventName(); + Map>> hasResultsFor = scp.getHasResultsForBoatClassFromDateByEventName(); String eventName = hasResultsFor.entrySet().iterator().next().getKey(); String boatClassName = hasResultsFor.entrySet().iterator().next().getValue().iterator().next().getA(); TimePoint timePoint = hasResultsFor.entrySet().iterator().next().getValue().iterator().next().getB(); @@ -125,7 +125,7 @@ public class BarbadosResultImportTest { return result; } }); - Map>> hasResultsFor = scp2.getHasResultsForBoatClassFromDateByEventName(); + Map>> hasResultsFor = scp2.getHasResultsForBoatClassFromDateByEventName(); String eventName = hasResultsFor.entrySet().iterator().next().getKey(); String boatClassName = hasResultsFor.entrySet().iterator().next().getValue().iterator().next().getA(); TimePoint timePoint = hasResultsFor.entrySet().iterator().next().getValue().iterator().next().getB(); diff --git a/java/com.sap.sailing.barbados.resultimport/META-INF/MANIFEST.MF b/java/com.sap.sailing.barbados.resultimport/META-INF/MANIFEST.MF index 656ccbc7baa..391054f4a26 100644 --- a/java/com.sap.sailing.barbados.resultimport/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.barbados.resultimport/META-INF/MANIFEST.MF @@ -15,7 +15,8 @@ Require-Bundle: com.sap.sailing.server, com.sap.sailing.domain, jcl.over.slf4j;bundle-version="1.6.4", com.sap.sailing.resultimport, - slf4j.api;bundle-version="1.6.4" + slf4j.api;bundle-version="1.6.4", + com.sap.sse.common Bundle-ClassPath: lib/com.springsource.org.apache.commons.beanutils-1.8.0.jar, lib/com.springsource.org.apache.commons.collections-3.2.1.jar, lib/com.springsource.org.apache.commons.digester-1.8.0.jar, diff --git a/java/com.sap.sailing.barbados.resultimport/src/com/sap/sailing/barbados/resultimport/impl/ScoreCorrectionProviderImpl.java b/java/com.sap.sailing.barbados.resultimport/src/com/sap/sailing/barbados/resultimport/impl/ScoreCorrectionProviderImpl.java index c2ec106043b..e662784cc3c 100644 --- a/java/com.sap.sailing.barbados.resultimport/src/com/sap/sailing/barbados/resultimport/impl/ScoreCorrectionProviderImpl.java +++ b/java/com.sap.sailing.barbados.resultimport/src/com/sap/sailing/barbados/resultimport/impl/ScoreCorrectionProviderImpl.java @@ -9,12 +9,12 @@ import java.util.logging.Logger; import com.sap.sailing.domain.common.RegattaScoreCorrections; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.resultimport.RegattaResults; import com.sap.sailing.resultimport.ResultDocumentDescriptor; import com.sap.sailing.resultimport.ResultDocumentProvider; import com.sap.sailing.resultimport.impl.AbstractDocumentBasedScoreCorrectionProvider; import com.sap.sailing.resultimport.impl.RegattaScoreCorrectionsImpl; +import com.sap.sse.common.Util; public class ScoreCorrectionProviderImpl extends AbstractDocumentBasedScoreCorrectionProvider { private static final Logger logger = Logger.getLogger(ScoreCorrectionProviderImpl.class.getName()); @@ -34,19 +34,19 @@ public class ScoreCorrectionProviderImpl extends AbstractDocumentBasedScoreCorre } @Override - public Map>> getHasResultsForBoatClassFromDateByEventName() throws Exception { - Map>> result = new HashMap>>(); + public Map>> getHasResultsForBoatClassFromDateByEventName() throws Exception { + Map>> result = new HashMap>>(); for (ResultDocumentDescriptor resultDocDescr : getResultDocumentProvider().getResultDocumentDescriptors()) { try { RegattaResults regattaResults = new BarbadosResultSpreadsheet(resultDocDescr.getInputStream()).getRegattaResults(); TimePoint lastModified = resultDocDescr.getLastModified(); final String boatClassName = getBoatClassName(regattaResults); - Set> set = result.get(boatClassName); + Set> set = result.get(boatClassName); if (set == null) { set = new HashSet<>(); result.put(/* use document name as "event" name */ resultDocDescr.getDocumentName(), set); } - set.add(new Pair(boatClassName, lastModified)); + set.add(new Util.Pair(boatClassName, lastModified)); } catch (Exception e) { logger.log(Level.WARNING, "Couldn't parse Barbados result document "+ resultDocDescr.getDocumentName(), e); } diff --git a/java/com.sap.sailing.datamining.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.datamining.test/META-INF/MANIFEST.MF index b59ee210076..493169806e6 100644 --- a/java/com.sap.sailing.datamining.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.datamining.test/META-INF/MANIFEST.MF @@ -10,4 +10,5 @@ Import-Package: junit.framework;version="4.8.2", org.junit;version="4.8.2", org.junit.runner;version="4.8.2" Require-Bundle: org.mockito.mockito-core;bundle-version="1.9.5", - org.hamcrest;bundle-version="1.1.0" + org.hamcrest;bundle-version="1.1.0", + com.sap.sse.common diff --git a/java/com.sap.sailing.datamining/META-INF/MANIFEST.MF b/java/com.sap.sailing.datamining/META-INF/MANIFEST.MF index 55ba7a730cb..d49c040b52b 100644 --- a/java/com.sap.sailing.datamining/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.datamining/META-INF/MANIFEST.MF @@ -14,6 +14,7 @@ Require-Bundle: com.sap.sailing.domain;bundle-version="1.0.0", com.sap.sailing.domain.common, com.sap.sailing.datamining.shared;bundle-version="1.0.0", com.sap.sse.datamining;bundle-version="1.0.0", - com.sap.sse.datamining.shared;bundle-version="1.0.0" + com.sap.sse.datamining.shared;bundle-version="1.0.0", + com.sap.sse.common Bundle-ClassPath: . Bundle-Activator: com.sap.sailing.datamining.impl.Activator diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/AbstractLeaderboardGroupDataRetrievalWorker.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/AbstractLeaderboardGroupDataRetrievalWorker.java index 8a5abc27ad4..0aa8b24e865 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/AbstractLeaderboardGroupDataRetrievalWorker.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/components/AbstractLeaderboardGroupDataRetrievalWorker.java @@ -12,12 +12,12 @@ import com.sap.sailing.domain.base.CourseArea; import com.sap.sailing.domain.base.Fleet; import com.sap.sailing.domain.base.Leg; import com.sap.sailing.domain.base.RaceColumn; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.tracking.TrackedLeg; import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor; import com.sap.sailing.domain.tracking.TrackedRace; +import com.sap.sse.common.Util; import com.sap.sse.datamining.impl.workers.retrievers.AbstractRetrievalWorker; import com.sap.sse.datamining.workers.DataRetrievalWorker; @@ -36,8 +36,8 @@ public abstract class AbstractLeaderboardGroupDataRetrievalWorker return group; } - private static Collection> retrieveDataTillTrackedLeg(LeaderboardGroup group) { - Collection> data = new ArrayList>(); + private static Collection> retrieveDataTillTrackedLeg(LeaderboardGroup group) { + Collection> data = new ArrayList>(); for (Leaderboard leaderboard : group.getLeaderboards()) { CourseArea courseArea = leaderboard.getDefaultCourseArea(); for (RaceColumn raceColumn : leaderboard.getRaceColumns()) { @@ -50,7 +50,7 @@ public abstract class AbstractLeaderboardGroupDataRetrievalWorker if (trackedLeg != null) { HasTrackedLegContext dataContext = new HasTrackedLegContextImpl(group, leaderboard, courseArea, fleet, trackedRace, trackedLeg, legNumber); - data.add(new Pair(trackedLeg, dataContext)); + data.add(new Util.Pair(trackedLeg, dataContext)); legNumber++; } } @@ -61,18 +61,18 @@ public abstract class AbstractLeaderboardGroupDataRetrievalWorker return data; } - protected static Collection> retrieveDataTillTrackedLegOfCompetitor( + protected static Collection> retrieveDataTillTrackedLegOfCompetitor( LeaderboardGroup group) { - Collection> data = new ArrayList>(); - Collection> baseData = retrieveDataTillTrackedLeg(group); - for (Pair baseDataEntry : baseData) { + Collection> data = new ArrayList>(); + Collection> baseData = retrieveDataTillTrackedLeg(group); + for (Util.Pair baseDataEntry : baseData) { TrackedLeg trackedLeg = baseDataEntry.getA(); HasTrackedLegContext trackedLegContext = baseDataEntry.getB(); for (Competitor competitor : trackedLegContext.getTrackedRace().getRace().getCompetitors()) { TrackedLegOfCompetitor trackedLegOfCompetitor = trackedLeg.getTrackedLeg(competitor); HasTrackedLegOfCompetitorContext dataContext = new HasTrackedLegOfCompetitorContextImpl(trackedLegContext, competitor); - data.add(new Pair(trackedLegOfCompetitor, + data.add(new Util.Pair(trackedLegOfCompetitor, dataContext)); } } diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/gps_fix/GPSFixLeaderboardGroupDataRetrievalWorker.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/gps_fix/GPSFixLeaderboardGroupDataRetrievalWorker.java index 34a35a734a0..0d6cd415472 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/gps_fix/GPSFixLeaderboardGroupDataRetrievalWorker.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/gps_fix/GPSFixLeaderboardGroupDataRetrievalWorker.java @@ -4,24 +4,24 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; -import com.sap.sailing.datamining.data.HasGPSFixContext; import com.sap.sailing.datamining.data.GPSFixWithContext; +import com.sap.sailing.datamining.data.HasGPSFixContext; import com.sap.sailing.datamining.data.HasTrackedLegOfCompetitorContext; import com.sap.sailing.datamining.impl.components.AbstractLeaderboardGroupDataRetrievalWorker; import com.sap.sailing.datamining.impl.data.HasGPSFixContextImpl; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.GPSFixTrack; import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor; +import com.sap.sse.common.Util; public class GPSFixLeaderboardGroupDataRetrievalWorker extends AbstractLeaderboardGroupDataRetrievalWorker { @Override public Collection doWork() { Collection data = new ArrayList(); - Collection> baseData = retrieveDataTillTrackedLegOfCompetitor(getGroup()); - for (Pair baseDataEntry : baseData) { + Collection> baseData = retrieveDataTillTrackedLegOfCompetitor(getGroup()); + for (Util.Pair baseDataEntry : baseData) { HasGPSFixContext context = new HasGPSFixContextImpl(baseDataEntry.getB()); data.addAll(retrieveDataFor(context)); } diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/gps_fix/GPSFixWithContextImpl.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/gps_fix/GPSFixWithContextImpl.java index bd56ee9d4c1..e514dcdd62f 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/gps_fix/GPSFixWithContextImpl.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/gps_fix/GPSFixWithContextImpl.java @@ -2,8 +2,8 @@ package com.sap.sailing.datamining.impl.gps_fix; import com.sap.sailing.datamining.Clusters.WindStrength; import com.sap.sailing.datamining.WindStrengthCluster; -import com.sap.sailing.datamining.data.HasGPSFixContext; import com.sap.sailing.datamining.data.GPSFixWithContext; +import com.sap.sailing.datamining.data.HasGPSFixContext; import com.sap.sailing.domain.common.LegType; import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.SpeedWithBearing; diff --git a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/tracked_leg_of_competitor/TrackedLegOfCompetitorLeaderboardGroupDataRetrievalWorker.java b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/tracked_leg_of_competitor/TrackedLegOfCompetitorLeaderboardGroupDataRetrievalWorker.java index 6a700a65945..813add4be80 100644 --- a/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/tracked_leg_of_competitor/TrackedLegOfCompetitorLeaderboardGroupDataRetrievalWorker.java +++ b/java/com.sap.sailing.datamining/src/com/sap/sailing/datamining/impl/tracked_leg_of_competitor/TrackedLegOfCompetitorLeaderboardGroupDataRetrievalWorker.java @@ -6,16 +6,16 @@ import java.util.Collection; import com.sap.sailing.datamining.data.HasTrackedLegOfCompetitorContext; import com.sap.sailing.datamining.data.TrackedLegOfCompetitorWithContext; import com.sap.sailing.datamining.impl.components.AbstractLeaderboardGroupDataRetrievalWorker; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor; +import com.sap.sse.common.Util; public class TrackedLegOfCompetitorLeaderboardGroupDataRetrievalWorker extends AbstractLeaderboardGroupDataRetrievalWorker { @Override public Collection doWork() { Collection data = new ArrayList(); - Collection> baseData = retrieveDataTillTrackedLegOfCompetitor(getGroup()); - for (Pair baseDataEntry : baseData) { + Collection> baseData = retrieveDataTillTrackedLegOfCompetitor(getGroup()); + for (Util.Pair baseDataEntry : baseData) { data.add(new TrackedLegOfCompetitorWithContextImpl(baseDataEntry.getA(), baseDataEntry.getB())); } return data; diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Color.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Color.java index bcdead1f5bc..7ce135d2001 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Color.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/Color.java @@ -3,7 +3,6 @@ package com.sap.sailing.domain.common; import java.io.Serializable; import com.sap.sailing.domain.common.impl.RGBColor; -import com.sap.sailing.domain.common.impl.Util; public interface Color extends Serializable { final Color WHITE = new RGBColor(255, 255, 255); @@ -32,9 +31,9 @@ public interface Color extends Serializable { final Color BLUE = new RGBColor(0, 0, 255); - Util.Triple getAsRGB(); + com.sap.sse.common.Util.Triple getAsRGB(); - Util.Triple getAsHSV(); + com.sap.sse.common.Util.Triple getAsHSV(); String getAsHtml(); } diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DetailType.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DetailType.java index 2ec82cf3f4c..f0ea050a3b4 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DetailType.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/DetailType.java @@ -1,7 +1,10 @@ package com.sap.sailing.domain.common; +import static com.sap.sailing.domain.common.SortingOrder.ASCENDING; +import static com.sap.sailing.domain.common.SortingOrder.DESCENDING; +import static com.sap.sailing.domain.common.SortingOrder.NONE; + import java.io.Serializable; -import static com.sap.sailing.domain.common.SortingOrder.*; /** * Identifies details that can be requested from the racing service. Optionally, the details can specify a precision diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/ScoreCorrectionProvider.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/ScoreCorrectionProvider.java index e7e333e0155..f146228adec 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/ScoreCorrectionProvider.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/ScoreCorrectionProvider.java @@ -3,7 +3,8 @@ package com.sap.sailing.domain.common; import java.util.Map; import java.util.Set; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; +import com.sap.sse.common.Util.Pair; /** * Describes sources of official regatta results which may be imported and applied to ScoreCorrection @@ -19,7 +20,7 @@ public interface ScoreCorrectionProvider extends Named { * score corrections taken at different times. Later score corrections are expected to be cumulative, meaning they * also contain all previous corrections. */ - public Map>> getHasResultsForBoatClassFromDateByEventName() throws Exception; + public Map>> getHasResultsForBoatClassFromDateByEventName() throws Exception; /** * @param eventName diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/AbstractLeaderboardDTO.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/AbstractLeaderboardDTO.java index 76050e1f12a..8d6775de7a9 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/AbstractLeaderboardDTO.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/AbstractLeaderboardDTO.java @@ -13,7 +13,7 @@ import java.util.UUID; import com.sap.sailing.domain.common.LeaderboardType; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.ScoringSchemeType; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; public abstract class AbstractLeaderboardDTO implements Serializable { private static final long serialVersionUID = -205106531931903527L; @@ -277,12 +277,12 @@ public abstract class AbstractLeaderboardDTO implements Serializable { return false; } - public List> getLiveRaces(long serverTimePointAsMillis) { - List> result = new ArrayList>(); + public List> getLiveRaces(long serverTimePointAsMillis) { + List> result = new ArrayList>(); for (RaceColumnDTO race : getRaceList()) { for (FleetDTO fleet : race.getFleets()) { if (race.isLive(fleet, serverTimePointAsMillis)) { - result.add(new Pair(race, fleet)); + result.add(new Util.Pair(race, fleet)); } } } diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/IncrementalLeaderboardDTO.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/IncrementalLeaderboardDTO.java index 47f9e831eea..0d5ea543f03 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/IncrementalLeaderboardDTO.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/IncrementalLeaderboardDTO.java @@ -13,7 +13,6 @@ import java.util.Set; import com.sap.sailing.domain.common.Cloner; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; /** * Reduces the transmission size of a {@link LeaderboardDTO} by comparing this object to a previous version of @@ -177,14 +176,14 @@ public class IncrementalLeaderboardDTO extends LeaderboardDTO implements Increme /** * @param previousVersion needed because after serialization/deserialization, the transient {@link #previousLeaderboard} will be null */ - public Set> getAllUnchangedCompetitorsAndKeys(LeaderboardDTO previousVersion) { - Set> result = new HashSet>(); + public Set> getAllUnchangedCompetitorsAndKeys(LeaderboardDTO previousVersion) { + Set> result = new HashSet>(); for (Map.Entry raceColumnNameAndBitSet : unchanged.entrySet()) { final long[] bitset = raceColumnNameAndBitSet.getValue(); if (bitset == null) { // this means that all entries for the column are unchanged for all competitors for (CompetitorDTO competitor : previousVersion.competitors) { - result.add(new Pair(competitor, raceColumnNameAndBitSet.getKey())); + result.add(new com.sap.sse.common.Util.Pair(competitor, raceColumnNameAndBitSet.getKey())); } } else { int competitorNumber = 0; @@ -192,7 +191,7 @@ public class IncrementalLeaderboardDTO extends LeaderboardDTO implements Increme long bitValue = 1; for (int bit=0; bit(previousVersion.competitors.get(competitorNumber), raceColumnNameAndBitSet.getKey())); + result.add(new com.sap.sse.common.Util.Pair(previousVersion.competitors.get(competitorNumber), raceColumnNameAndBitSet.getKey())); } bitValue <<= 1; competitorNumber++; @@ -259,7 +258,7 @@ public class IncrementalLeaderboardDTO extends LeaderboardDTO implements Increme * @author Axel Uhl (d043530) * */ - static class UnchangedLegDetails extends UnchangedWithCompetitorsInBitSet> { + static class UnchangedLegDetails extends UnchangedWithCompetitorsInBitSet> { private static final long serialVersionUID = 8726138955651801210L; UnchangedLegDetails() {} // for (de)serialization @@ -277,7 +276,7 @@ public class IncrementalLeaderboardDTO extends LeaderboardDTO implements Increme * by null, meaning the race column / leg details are unchnaged for all competitors. */ public void compact() { - for (Pair key : getAllUnchangedKeys()) { + for (com.sap.sse.common.Util.Pair key : getAllUnchangedKeys()) { if (key.getB() != null) { tryToCompact(key); } @@ -290,11 +289,11 @@ public class IncrementalLeaderboardDTO extends LeaderboardDTO implements Increme * or for which all entries in the race column are unchanged. */ @Override - protected int getNumberOfSetBits(Pair key) { + protected int getNumberOfSetBits(com.sap.sse.common.Util.Pair key) { int result; if (key.getB() != null) { long[] bitset = getUnchangedBitset(key); - long[] nullBitset = getUnchangedBitset(new Pair(key.getA(), null)); + long[] nullBitset = getUnchangedBitset(new com.sap.sse.common.Util.Pair(key.getA(), null)); long[] orBitset = or(bitset, nullBitset); result = getNumberOfBitsSet(orBitset); } else { @@ -413,16 +412,16 @@ public class IncrementalLeaderboardDTO extends LeaderboardDTO implements Increme } final Set rowsUnchangedForCompetitors = new HashSet(); if (rowsUnchanged != null) { - for (Pair rowUnchanged : rowsUnchanged.getAllUnchangedCompetitorsAndKeys(previousVersion)) { + for (com.sap.sse.common.Util.Pair rowUnchanged : rowsUnchanged.getAllUnchangedCompetitorsAndKeys(previousVersion)) { rowsUnchangedForCompetitors.add(rowUnchanged.getA()); rows.put(rowUnchanged.getA(), previousVersion.rows.get(rowUnchanged.getA())); } } - final Set> allUnchangedLeaderboardEntriesAsCompetitorsAndColumnNames = - unchangedLeaderboardEntries == null ? new HashSet>() : + final Set> allUnchangedLeaderboardEntriesAsCompetitorsAndColumnNames = + unchangedLeaderboardEntries == null ? new HashSet>() : unchangedLeaderboardEntries.getAllUnchangedCompetitorsAndKeys(previousVersion); if (unchangedLeaderboardEntries != null) { - for (Pair competitorAndColumnName : allUnchangedLeaderboardEntriesAsCompetitorsAndColumnNames) { + for (com.sap.sse.common.Util.Pair competitorAndColumnName : allUnchangedLeaderboardEntriesAsCompetitorsAndColumnNames) { CompetitorDTO previousCompetitor = competitorAndColumnName.getA(); if (!rowsUnchangedForCompetitors.contains(previousCompetitor)) { // only care if not the entire row was marked unchanged LeaderboardEntryDTO previousEntry = previousVersion.rows.get(previousCompetitor).fieldsByRaceColumnName.get( @@ -435,14 +434,14 @@ public class IncrementalLeaderboardDTO extends LeaderboardDTO implements Increme } } if (legDetailsUnchanged != null) { - for (Pair> competitorInPreviosAndColumnNameAndLegDetailsIndex : legDetailsUnchanged + for (com.sap.sse.common.Util.Pair> competitorInPreviosAndColumnNameAndLegDetailsIndex : legDetailsUnchanged .getAllUnchangedCompetitorsAndKeys(previousVersion)) { CompetitorDTO previousCompetitor = competitorInPreviosAndColumnNameAndLegDetailsIndex.getA(); final String raceColumnName = competitorInPreviosAndColumnNameAndLegDetailsIndex.getB().getA(); // if it's already clear that the entire LeaderboardEntryDTO was unchanged, the entry in legDetailsUnchanged was // merely a hint for column compression within legDetailsUnchanged and doesn't need to be handled here if (!allUnchangedLeaderboardEntriesAsCompetitorsAndColumnNames - .contains(new Pair(previousCompetitor, raceColumnName))) { + .contains(new com.sap.sse.common.Util.Pair(previousCompetitor, raceColumnName))) { final LeaderboardRowDTO leaderboardRowDTO = rows.get(previousCompetitor); LeaderboardEntryDTO leaderboardEntry = leaderboardRowDTO == null ? null : leaderboardRowDTO.fieldsByRaceColumnName.get(raceColumnName); @@ -606,7 +605,7 @@ public class IncrementalLeaderboardDTO extends LeaderboardDTO implements Increme // also mark all leg details for the competitor for this column as unchanged; this will ensure // that column compression can work for leg details getLegDetailsUnchanged(previousVersion).unchanged(competitorAndRow.getKey(), - new Pair(raceColumnNameAndLeaderboardEntry.getKey(), null)); + new com.sap.sse.common.Util.Pair(raceColumnNameAndLeaderboardEntry.getKey(), null)); } else { LeaderboardEntryDTO newLeaderboardEntryDTO = new LeaderboardEntryDTO(); cloner.clone(raceColumnNameAndLeaderboardEntry.getValue(), newLeaderboardEntryDTO); @@ -627,7 +626,7 @@ public class IncrementalLeaderboardDTO extends LeaderboardDTO implements Increme && previousVersion.competitors.contains(competitorAndRow.getKey())) { getLegDetailsUnchanged(previousVersion).unchanged( competitorAndRow.getKey(), - new Pair(raceColumnNameAndLeaderboardEntry.getKey(), + new com.sap.sse.common.Util.Pair(raceColumnNameAndLeaderboardEntry.getKey(), legDetailsIndex)); newLeaderboardEntryDTO.legDetails.set(legDetailsIndex, null); } @@ -641,7 +640,7 @@ public class IncrementalLeaderboardDTO extends LeaderboardDTO implements Increme // however, mark the legDetails as unchanged in legDetailsUnchanged so as to allow for // all-column compression getLegDetailsUnchanged(previousVersion).unchanged(competitorAndRow.getKey(), - new Pair(raceColumnNameAndLeaderboardEntry.getKey(), null)); + new com.sap.sse.common.Util.Pair(raceColumnNameAndLeaderboardEntry.getKey(), null)); } } } @@ -693,7 +692,7 @@ public class IncrementalLeaderboardDTO extends LeaderboardDTO implements Increme if (row != null && row.fieldsByRaceColumnName != null) { for (Map.Entry e : row.fieldsByRaceColumnName.entrySet()) { getUnchangedLeaderboardEntries(previousVersion).unchanged(competitor, e.getKey()); - getLegDetailsUnchanged(previousVersion).unchanged(competitor, new Pair(e.getKey(), /* all legs unchanged */ null)); + getLegDetailsUnchanged(previousVersion).unchanged(competitor, new com.sap.sse.common.Util.Pair(e.getKey(), /* all legs unchanged */ null)); } } } diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/AbstractColor.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/AbstractColor.java index ae5b6b0009c..adb3ee4d4fe 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/AbstractColor.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/AbstractColor.java @@ -1,14 +1,14 @@ package com.sap.sailing.domain.common.impl; import com.sap.sailing.domain.common.Color; -import com.sap.sailing.domain.common.impl.Util.Triple; +import com.sap.sse.common.Util; public abstract class AbstractColor implements Color { private static final long serialVersionUID = 7758884012281863458L; @Override public String getAsHtml() { - Triple asRGB = getAsRGB(); + Util.Triple asRGB = getAsRGB(); return "#" + toBrowserHexValue(asRGB.getA()) + toBrowserHexValue(asRGB.getB()) + toBrowserHexValue(asRGB.getC()); } diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/ColorMapImpl.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/ColorMapImpl.java index 0f307f87777..e64431c5488 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/ColorMapImpl.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/ColorMapImpl.java @@ -6,7 +6,7 @@ import java.util.List; import com.sap.sailing.domain.common.Color; import com.sap.sailing.domain.common.ColorMap; -import com.sap.sailing.domain.common.impl.Util.Triple; +import com.sap.sse.common.Util; /** @@ -64,7 +64,7 @@ public class ColorMapImpl implements ColorMap { public boolean addBlockedColor(Color color) { boolean result = false; if(color != null) { - Triple asHSV = color.getAsHSV(); + Util.Triple asHSV = color.getAsHSV(); result = blockedColors.add(new HSVColor(asHSV.getA(), asHSV.getB(), asHSV.getC())); } return result; @@ -73,7 +73,7 @@ public class ColorMapImpl implements ColorMap { public boolean removeBlockedColor(Color color) { boolean result = false; if(color != null) { - Triple asHSV = color.getAsHSV(); + Util.Triple asHSV = color.getAsHSV(); result = blockedColors.remove(new HSVColor(asHSV.getA(), asHSV.getB(), asHSV.getC())); } return result; diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/HSVColor.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/HSVColor.java index 519b08a64b8..5d6e45ceb0c 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/HSVColor.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/HSVColor.java @@ -1,6 +1,6 @@ package com.sap.sailing.domain.common.impl; -import com.sap.sailing.domain.common.impl.Util.Triple; +import com.sap.sse.common.Util; /** * A color defined in the HSV color schema (hue, saturation, brightness) Hue is a degree between 0.0 and 360.0 @@ -35,7 +35,7 @@ public class HSVColor extends AbstractColor { } @Override - public Triple getAsRGB() { + public Util.Triple getAsRGB() { float r, b, g; if (saturation == 0) { @@ -80,14 +80,14 @@ public class HSVColor extends AbstractColor { b = q; } } - Triple RGBColor = new Triple(Math.round(r * 255), + Util.Triple RGBColor = new Util.Triple(Math.round(r * 255), Math.round(g * 255), Math.round(b * 255)); return RGBColor; } @Override - public Triple getAsHSV() { - return new Triple(hue, saturation, brightness); + public Util.Triple getAsHSV() { + return new Util.Triple(hue, saturation, brightness); } @Override diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/QRCodeUtils.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/QRCodeUtils.java index 551aab07d1e..2c48304a04b 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/QRCodeUtils.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/QRCodeUtils.java @@ -2,7 +2,7 @@ package com.sap.sailing.domain.common.impl; import java.net.URLEncoder; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; /** * This class is used by our backend, in GWT-client code and by the Android app. Therefore we cannot use classes like @@ -18,7 +18,7 @@ public class QRCodeUtils { return apkUrl + "#" + fragmentKey + "=" + encodedIdentifier; } - public static Pair splitQRContent(String qrCodeContent) { + public static Util.Pair splitQRContent(String qrCodeContent) { int fragmentIndex = qrCodeContent.lastIndexOf('#'); if (fragmentIndex == -1 || fragmentIndex == 0 || qrCodeContent.length() == fragmentIndex + 1) { throw new IllegalArgumentException("There is no server or identifier."); @@ -31,7 +31,7 @@ public class QRCodeUtils { deviceIdentifier = deviceIdentifier.replaceAll("%20", " "); String apkUrl = qrCodeContent.substring(0, fragmentIndex); - return new Pair(deviceIdentifier, apkUrl); + return new Util.Pair(deviceIdentifier, apkUrl); } } diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/RGBColor.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/RGBColor.java index 3faa62a768f..818f18cc729 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/RGBColor.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/RGBColor.java @@ -1,6 +1,6 @@ package com.sap.sailing.domain.common.impl; -import com.sap.sailing.domain.common.impl.Util.Triple; +import com.sap.sse.common.Util; /** * A color defined in the RGB color schema @@ -66,11 +66,11 @@ public class RGBColor extends AbstractColor { } @Override - public Triple getAsRGB() { - return new Triple(red, green, blue); + public Util.Triple getAsRGB() { + return new Util.Triple(red, green, blue); } - public Triple getAsHSV() { + public Util.Triple getAsHSV() { float hue, saturation, brightness; int cmax = (red > green) ? red : green; if (blue > cmax) { @@ -107,7 +107,7 @@ public class RGBColor extends AbstractColor { } } - Triple HSVColor = new Triple(hue, saturation, brightness); + Util.Triple HSVColor = new Util.Triple(hue, saturation, brightness); return HSVColor; } diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/TimeRangeImpl.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/TimeRangeImpl.java index c0f50529164..943f337b459 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/TimeRangeImpl.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/TimeRangeImpl.java @@ -3,9 +3,9 @@ package com.sap.sailing.domain.common.impl; import com.sap.sailing.domain.common.Duration; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.TimeRange; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; -public class TimeRangeImpl extends Pair implements TimeRange { +public class TimeRangeImpl extends Util.Pair implements TimeRange { public static final TimePoint BeginningOfTime = new MillisecondsTimePoint(Long.MIN_VALUE); public static final TimePoint EndOfTime = new MillisecondsTimePoint(Long.MAX_VALUE); private static final long serialVersionUID = 8710198176227507300L; diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/Util.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/Util.java index 90f664fe449..98a7dde1874 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/Util.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/Util.java @@ -1,6 +1,5 @@ package com.sap.sailing.domain.common.impl; -import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; @@ -134,128 +133,6 @@ public class Util extends com.sap.sse.common.Util { } } - public static class Pair implements Serializable { - private static final long serialVersionUID = -7631774746419135931L; - - private A a; - - private B b; - - private transient int hashCode; - - @SuppressWarnings("unused") // required for some serialization frameworks such as GWT RPC - private Pair() {} - - public Pair( A a, B b ) { - this.a = a; - this.b = b; - hashCode = 0; - } - - public A getA( ) { - return a; - } - - public B getB( ) { - return b; - } - - @Override - public int hashCode( ) { - if ( hashCode == 0 ) { - hashCode = 17; - hashCode = 37 * hashCode + ( a != null ? a.hashCode( ) : 0 ); - hashCode = 37 * hashCode + ( b != null ? b.hashCode( ) : 0 ); - } - return hashCode; - } - - @Override - public boolean equals( Object obj ) { - boolean result; - if ( this == obj ) { - result = true; - } else if ( obj instanceof Pair ) { - Pair pair = (Pair) obj; - result = ( this.a != null && this.a.equals( pair.a ) || this.a == null && pair.a == null ) && ( this.b != null && this.b.equals( pair.b ) || this.b == null && pair.b == null ); - } else { - result = false; - } - return result; - } - - @Override - public String toString( ) { - return "[" + (a==null?"null":a.toString( )) + ", " + - (b==null?"null":b.toString( )) + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ - } - } - - public static class Triple implements Serializable { - private static final long serialVersionUID = 6806146864367514601L; - - private A a; - - private B b; - - private C c; - - private transient int hashCode; - - @SuppressWarnings("unused") // required for some serialization frameworks such as GWT RPC - private Triple() {} - - public Triple( A a, B b, C c ) { - this.a = a; - this.b = b; - this.c = c; - hashCode = 0; - } - - public A getA( ) { - return a; - } - - public B getB( ) { - return b; - } - - public C getC( ) { - return c; - } - - @Override - public int hashCode( ) { - if ( hashCode == 0 ) { - hashCode = 17; - hashCode = 37 * hashCode + ( a != null ? a.hashCode( ) : 0 ); - hashCode = 37 * hashCode + ( b != null ? b.hashCode( ) : 0 ); - hashCode = 37 * hashCode + ( c != null ? c.hashCode( ) : 0 ); - } - return hashCode; - } - - @Override - public boolean equals( Object obj ) { - boolean result; - if ( this == obj ) { - result = true; - } else if ( obj instanceof Triple ) { - Triple thrice = (Triple) obj; - result = ( this.a != null && this.a.equals( thrice.a ) || this.a == null && thrice.a == null ) && ( this.b != null && this.b.equals( thrice.b ) || this.b == null && thrice.b == null ) && ( this.c != null && this.c.equals( thrice.c ) || this.c == null && thrice.c == null ); - } else { - result = false; - } - return result; - } - - @Override - public String toString( ) { - return "[" + a + ", " + b + ", " + c + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ - } - } - - public static boolean equalsWithNull(Object o1, Object o2) { final boolean result; if (o1 == null) { diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/WindSourceWithAdditionalID.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/WindSourceWithAdditionalID.java index acf438f171d..db560f16a0c 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/WindSourceWithAdditionalID.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/impl/WindSourceWithAdditionalID.java @@ -1,5 +1,6 @@ package com.sap.sailing.domain.common.impl; +import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.common.WindSourceType; /** diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/scalablevalue/impl/ScalableSpeedWithBearing.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/scalablevalue/impl/ScalableSpeedWithBearing.java index a18a1294fb5..719d111965f 100755 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/scalablevalue/impl/ScalableSpeedWithBearing.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/scalablevalue/impl/ScalableSpeedWithBearing.java @@ -6,8 +6,8 @@ import com.sap.sailing.domain.common.SpeedWithBearing; import com.sap.sailing.domain.common.impl.KnotSpeedImpl; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.RadianBearingImpl; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.scalablevalue.ScalableValue; +import com.sap.sse.common.Util; /** * Separately scales speed and bearing. Instead of considering speed and bearing a single vector that can be scaled, the @@ -19,7 +19,7 @@ import com.sap.sailing.domain.common.scalablevalue.ScalableValue; * @author Axel Uhl (d043530) * */ -public class ScalableSpeedWithBearing implements ScalableValue, SpeedWithBearing> { +public class ScalableSpeedWithBearing implements ScalableValue, SpeedWithBearing> { private final Speed speed; private final double sin; private final double cos; @@ -42,7 +42,7 @@ public class ScalableSpeedWithBearing implements ScalableValue, SpeedWithBearing> t) { + public ScalableSpeedWithBearing add(ScalableValue, SpeedWithBearing> t) { Speed newSpeed = new KnotSpeedImpl(speed.getKnots() + t.getValue().getA().getKnots()); return new ScalableSpeedWithBearing(newSpeed, sin+t.getValue().getB(), cos+t.getValue().getC()); } @@ -61,8 +61,8 @@ public class ScalableSpeedWithBearing implements ScalableValue getValue() { - return new Triple(speed, sin, cos); + public Util.Triple getValue() { + return new Util.Triple(speed, sin, cos); } } \ No newline at end of file diff --git a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiWindTracker.java b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiWindTracker.java index dd66828da22..fadf81628c1 100755 --- a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiWindTracker.java +++ b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/impl/IgtimiWindTracker.java @@ -11,7 +11,6 @@ import java.util.logging.Logger; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.igtimiadapter.Account; import com.sap.sailing.domain.igtimiadapter.IgtimiConnection; import com.sap.sailing.domain.igtimiadapter.IgtimiConnectionFactory; @@ -20,12 +19,13 @@ import com.sap.sailing.domain.igtimiadapter.shared.IgtimiWindReceiver; import com.sap.sailing.domain.tracking.AbstractWindTracker; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.WindTracker; +import com.sap.sse.common.Util; public class IgtimiWindTracker extends AbstractWindTracker implements WindTracker { private static final Logger logger = Logger.getLogger(IgtimiWindTracker.class.getName()); private static final int TIME_INTERVAL_TO_TRACK_BEFORE_RACE_START_MILLIS = 10*60*1000; // 10 minutes private static final long TIME_INTERVAL_TO_TRACK_AFTER_END_OF_RACE_MILLIS = 60*60*1000; // 60 minutes - private final Map, Account>> liveConnectionsAndDeviceSerialNumber; + private final Map, Account>> liveConnectionsAndDeviceSerialNumber; private final IgtimiWindTrackerFactory windTrackerFactory; private boolean stopping; @@ -50,7 +50,7 @@ public class IgtimiWindTracker extends AbstractWindTracker implements WindTracke IgtimiWindReceiver windReceiver = new IgtimiWindReceiver(devicesWeShouldListenTo); liveConnection.addListener(windReceiver); windReceiver.addListener(new WindListenerSendingToTrackedRace(Collections.singleton(getTrackedRace()), windTrackerFactory)); - liveConnectionsAndDeviceSerialNumber.put(liveConnection, new Pair, Account>(devicesWeShouldListenTo, account)); + liveConnectionsAndDeviceSerialNumber.put(liveConnection, new Util.Pair, Account>(devicesWeShouldListenTo, account)); } } } catch (Exception e) { @@ -114,7 +114,7 @@ public class IgtimiWindTracker extends AbstractWindTracker implements WindTracke logger.info("Stopping Igtimi live connection "+ldc); ldc.stop(); } catch (Exception e) { - final Pair, Account> deviceSerialNumberAndAccount = liveConnectionsAndDeviceSerialNumber.get(ldc); + final Util.Pair, Account> deviceSerialNumberAndAccount = liveConnectionsAndDeviceSerialNumber.get(ldc); logger.log(Level.INFO, "Exception trying to stop Igtimi live connection for wind receiver for race " + getTrackedRace().getRace() + " and device " + deviceSerialNumberAndAccount.getA() diff --git a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/shared/IgtimiWindReceiver.java b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/shared/IgtimiWindReceiver.java index 2433265bb0f..bef3be452ed 100755 --- a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/shared/IgtimiWindReceiver.java +++ b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/shared/IgtimiWindReceiver.java @@ -20,7 +20,6 @@ import com.sap.sailing.domain.common.SpeedWithBearing; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.scalablevalue.ScalableValue; import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing; import com.sap.sailing.domain.common.scalablevalue.impl.ScalablePosition; @@ -180,14 +179,14 @@ public class IgtimiWindReceiver implements BulkFixReceiver { private Wind getWind(final TimePoint timePoint, String deviceSerialNumber) throws ClassNotFoundException, IOException, ParseException { final Wind result; - Pair awaPair = getSurroundingFixes(getAwaTrack(deviceSerialNumber), timePoint); + com.sap.sse.common.Util.Pair awaPair = getSurroundingFixes(getAwaTrack(deviceSerialNumber), timePoint); Bearing awa = getAWA(timePoint, awaPair); - Pair awsPair = getSurroundingFixes(getAwsTrack(deviceSerialNumber), timePoint); + com.sap.sse.common.Util.Pair awsPair = getSurroundingFixes(getAwsTrack(deviceSerialNumber), timePoint); Speed aws = getAWS(timePoint, awsPair); - Pair gpsPair = getSurroundingFixes(getGpsTrack(deviceSerialNumber), timePoint); + com.sap.sse.common.Util.Pair gpsPair = getSurroundingFixes(getGpsTrack(deviceSerialNumber), timePoint); Position pos = getPosition(timePoint, gpsPair); - Pair hdgPair = getSurroundingFixes(getHdgTrack(deviceSerialNumber), timePoint); - Pair hdgmPair = getSurroundingFixes(getHdgmTrack(deviceSerialNumber), timePoint); + com.sap.sse.common.Util.Pair hdgPair = getSurroundingFixes(getHdgTrack(deviceSerialNumber), timePoint); + com.sap.sse.common.Util.Pair hdgmPair = getSurroundingFixes(getHdgmTrack(deviceSerialNumber), timePoint); Bearing heading = getHeading(timePoint, hdgPair, hdgmPair, pos); if (awa != null && aws != null && pos != null && heading != null) { Bearing apparentWindDirection = heading.add(awa); @@ -215,9 +214,9 @@ public class IgtimiWindReceiver implements BulkFixReceiver { * So again, my personal preference would be to work with the data that should be the most accurate * (COG/SOG) and consider algorithms that handle smoothing of that data best." */ - Pair sogPair = getSurroundingFixes(getSogTrack(deviceSerialNumber), timePoint); + com.sap.sse.common.Util.Pair sogPair = getSurroundingFixes(getSogTrack(deviceSerialNumber), timePoint); Speed sog = getSOG(timePoint, sogPair); - Pair cogPair = getSurroundingFixes(getCogTrack(deviceSerialNumber), timePoint); + com.sap.sse.common.Util.Pair cogPair = getSurroundingFixes(getCogTrack(deviceSerialNumber), timePoint); Bearing cog = getCOG(timePoint, cogPair); SpeedWithBearing sogCog = new KnotSpeedWithBearingImpl(sog.getKnots(), cog); SpeedWithBearing trueWindSpeedAndDirection = apparentWindSpeedWithDirection.add(sogCog); @@ -228,7 +227,7 @@ public class IgtimiWindReceiver implements BulkFixReceiver { return result; } - private Bearing getAWA(TimePoint timePoint, Pair awaPair) { + private Bearing getAWA(TimePoint timePoint, com.sap.sse.common.Util.Pair awaPair) { final Bearing awaFrom; if (awaPair.getA() == null) { if (awaPair.getB() == null) { @@ -248,7 +247,7 @@ public class IgtimiWindReceiver implements BulkFixReceiver { return awaFrom == null ? null : awaFrom.reverse(); } - private Speed getAWS(TimePoint timePoint, Pair awsPair) { + private Speed getAWS(TimePoint timePoint, com.sap.sse.common.Util.Pair awsPair) { final Speed aws; if (awsPair.getA() == null) { if (awsPair.getB() == null) { @@ -268,7 +267,7 @@ public class IgtimiWindReceiver implements BulkFixReceiver { return aws; } - private Speed getSOG(TimePoint timePoint, Pair sogPair) { + private Speed getSOG(TimePoint timePoint, com.sap.sse.common.Util.Pair sogPair) { final Speed sog; if (sogPair.getA() == null) { if (sogPair.getB() == null) { @@ -288,7 +287,7 @@ public class IgtimiWindReceiver implements BulkFixReceiver { return sog; } - private Bearing getCOG(TimePoint timePoint, Pair cogPair) { + private Bearing getCOG(TimePoint timePoint, com.sap.sse.common.Util.Pair cogPair) { final Bearing sog; if (cogPair.getA() == null) { if (cogPair.getB() == null) { @@ -308,7 +307,7 @@ public class IgtimiWindReceiver implements BulkFixReceiver { return sog; } - private Position getPosition(TimePoint timePoint, Pair gpsPair) { + private Position getPosition(TimePoint timePoint, com.sap.sse.common.Util.Pair gpsPair) { final Position pos; if (gpsPair.getA() == null) { if (gpsPair.getB() == null) { @@ -328,7 +327,7 @@ public class IgtimiWindReceiver implements BulkFixReceiver { return pos; } - private Bearing getHDG(TimePoint timePoint, Pair hdgPair) { + private Bearing getHDG(TimePoint timePoint, com.sap.sse.common.Util.Pair hdgPair) { final Bearing hdg; if (hdgPair.getA() == null) { if (hdgPair.getB() == null) { @@ -348,7 +347,7 @@ public class IgtimiWindReceiver implements BulkFixReceiver { return hdg; } - private Bearing getHDGM(TimePoint timePoint, Pair hdgmPair) { + private Bearing getHDGM(TimePoint timePoint, com.sap.sse.common.Util.Pair hdgmPair) { final Bearing hdgm; if (hdgmPair.getA() == null) { if (hdgmPair.getB() == null) { @@ -368,7 +367,7 @@ public class IgtimiWindReceiver implements BulkFixReceiver { return hdgm; } - private Bearing getHeading(TimePoint timePoint, Pair hdgPair, Pair hdgmPair, Position position) throws ClassNotFoundException, IOException, ParseException { + private Bearing getHeading(TimePoint timePoint, com.sap.sse.common.Util.Pair hdgPair, com.sap.sse.common.Util.Pair hdgmPair, Position position) throws ClassNotFoundException, IOException, ParseException { final Bearing trueHeading; Bearing hdg = getHDG(timePoint, hdgPair); if (hdg != null) { @@ -397,10 +396,10 @@ public class IgtimiWindReceiver implements BulkFixReceiver { return acc; } - private Pair getSurroundingFixes(Track track, TimePoint timePoint) { + private com.sap.sse.common.Util.Pair getSurroundingFixes(Track track, TimePoint timePoint) { T left = track.getLastFixAtOrBefore(timePoint); T right = track.getFirstFixAtOrAfter(timePoint); - Pair result = new Pair<>(left, right); + com.sap.sse.common.Util.Pair result = new com.sap.sse.common.Util.Pair<>(left, right); return result; } diff --git a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/websocket/WebSocketConnectionManager.java b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/websocket/WebSocketConnectionManager.java index 8b9aecbaa12..891aabb2c1c 100755 --- a/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/websocket/WebSocketConnectionManager.java +++ b/java/com.sap.sailing.domain.igtimiadapter/src/com/sap/sailing/domain/igtimiadapter/websocket/WebSocketConnectionManager.java @@ -22,7 +22,6 @@ import org.json.simple.parser.ParseException; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.igtimiadapter.Account; import com.sap.sailing.domain.igtimiadapter.BulkFixReceiver; import com.sap.sailing.domain.igtimiadapter.LiveDataConnection; @@ -144,8 +143,8 @@ public class WebSocketConnectionManager extends WebSocketAdapter implements Live } } - public Pair getIgtimiServerTimePointAndWhenItWasReceived() { - return new Pair(igtimiServerTimepoint, localTimepointWhenServerTimepointWasReceived); + public com.sap.sse.common.Util.Pair getIgtimiServerTimePointAndWhenItWasReceived() { + return new com.sap.sse.common.Util.Pair(igtimiServerTimepoint, localTimepointWhenServerTimepointWasReceived); } @Override diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/CollectionNames.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/CollectionNames.java index 1f781009a2e..db630f00403 100755 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/CollectionNames.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/CollectionNames.java @@ -1,5 +1,8 @@ package com.sap.sailing.domain.persistence.impl; +import com.sap.sailing.domain.base.RaceDefinition; +import com.sap.sailing.domain.tracking.GPSFix; + /** * Defines literals providing the names for MongoDB collections. The literal documentation described the semantics * of the collection identified by that literal. 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 5411fda21bc..4805312a9e1 100755 --- 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 @@ -79,8 +79,6 @@ import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.RGBColor; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.domain.common.impl.WindSourceWithAdditionalID; import com.sap.sailing.domain.common.racelog.Flags; @@ -156,6 +154,7 @@ import com.sap.sailing.server.gateway.deserialization.impl.CompetitorJsonDeseria import com.sap.sailing.server.gateway.deserialization.impl.DeviceConfigurationJsonDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.Helpers; import com.sap.sailing.server.gateway.deserialization.impl.RegattaConfigurationJsonDeserializer; +import com.sap.sse.common.Util; public class DomainObjectFactoryImpl implements DomainObjectFactory { private static final Logger logger = Logger.getLogger(DomainObjectFactoryImpl.class.getName()); @@ -844,7 +843,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { if (windFixesFoundByName.hasNext()) { List windFixesToMigrate = new ArrayList(); for (DBObject dbWind : windFixesFoundByName) { - Pair wind = loadWindFix(result, dbWind, millisecondsOverWhichToAverageWind); + Util.Pair wind = loadWindFix(result, dbWind, millisecondsOverWhichToAverageWind); // write the wind fix with the new ID-based key and remove the legacy wind fix from the DB windFixesToMigrate.add(new MongoObjectFactoryImpl(database).storeWindTrackEntry(race, regattaName, wind.getB(), wind.getA())); @@ -864,7 +863,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result; } - private Pair loadWindFix(Map result, DBObject dbWind, long millisecondsOverWhichToAverageWind) { + private Util.Pair loadWindFix(Map result, DBObject dbWind, long millisecondsOverWhichToAverageWind) { Wind wind = loadWind((DBObject) dbWind.get(FieldNames.WIND.name())); WindSourceType windSourceType = WindSourceType.valueOf((String) dbWind.get(FieldNames.WIND_SOURCE_NAME.name())); WindSource windSource; @@ -881,7 +880,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { result.put(windSource, track); } track.add(wind); - return new Pair(wind, windSource); + return new Util.Pair(wind, windSource); } @Override @@ -1484,7 +1483,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { MaxPointsReason maxPointsReason = MaxPointsReason.valueOf((String) dbObject.get(FieldNames.LEADERBOARD_SCORE_CORRECTION_MAX_POINTS_REASON.name())); - Triple positionedCompetitor = new Triple(competitorId, competitorName, maxPointsReason); + Util.Triple positionedCompetitor = new Util.Triple(competitorId, competitorName, maxPointsReason); positionedCompetitors.add(positionedCompetitor); } return positionedCompetitors; @@ -1662,7 +1661,7 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { try { for (DBObject dbObject : configurationCollection.find()) { - Pair entry = loadConfigurationEntry(dbObject); + Util.Pair entry = loadConfigurationEntry(dbObject); result.put(entry.getA(), entry.getB()); } } catch (Exception e) { @@ -1673,10 +1672,10 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory { return result.entrySet(); } - private Pair loadConfigurationEntry(DBObject dbObject) { + private Util.Pair loadConfigurationEntry(DBObject dbObject) { DBObject matcherObject = (DBObject) dbObject.get(FieldNames.CONFIGURATION_MATCHER.name()); DBObject configObject = (DBObject) dbObject.get(FieldNames.CONFIGURATION_CONFIG.name()); - return new Pair(loadConfigurationMatcher(matcherObject), + return new Util.Pair(loadConfigurationMatcher(matcherObject), loadConfiguration(configObject)); } 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 55dca803487..48e10290d96 100755 --- 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 @@ -51,8 +51,6 @@ import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.common.WithID; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.racelog.tracking.NoCorrespondingServiceRegisteredException; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinder; @@ -627,7 +625,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { if (fleet instanceof FleetImpl) { dbFleet.put(FieldNames.FLEET_ORDERING.name(), ((FleetImpl) fleet).getOrdering()); if(fleet.getColor() != null) { - Triple colorAsRGB = fleet.getColor().getAsRGB(); + com.sap.sse.common.Util.Triple colorAsRGB = fleet.getColor().getAsRGB(); // we save the color as a integer value representing the RGB values int colorAsInt = (256 * 256 * colorAsRGB.getC()) + colorAsRGB.getB() * 256 + colorAsRGB.getA(); dbFleet.put(FieldNames.FLEET_COLOR.name(), colorAsInt); @@ -1031,17 +1029,17 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { return result; } - private BasicDBList storePositionedCompetitors(List> positionedCompetitors) { + private BasicDBList storePositionedCompetitors(List> positionedCompetitors) { BasicDBList dbList = new BasicDBList(); if (positionedCompetitors != null) { - for (Triple competitorPair : positionedCompetitors) { + for (com.sap.sse.common.Util.Triple competitorPair : positionedCompetitors) { dbList.add(storePositionedCompetitor(competitorPair)); } } return dbList; } - private DBObject storePositionedCompetitor(Triple competitorTriple) { + private DBObject storePositionedCompetitor(com.sap.sse.common.Util.Triple competitorTriple) { DBObject result = new BasicDBObject(); result.put(FieldNames.COMPETITOR_ID.name(), competitorTriple.getA()); result.put(FieldNames.COMPETITOR_DISPLAY_NAME.name(), competitorTriple.getB()); @@ -1181,7 +1179,7 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory { throws TransformationException, NoCorrespondingServiceRegisteredException { String type = device.getIdentifierType(); DeviceIdentifierMongoHandler handler = deviceIdentifierServiceFinder.findService(type); - Pair pair = handler.serialize(device); + com.sap.sse.common.Util.Pair pair = handler.serialize(device); type = pair.getA(); Object deviceTypeSpecificId = pair.getB(); return new BasicDBObjectBuilder() diff --git a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/TripleSerializer.java b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/TripleSerializer.java index 7fda33ae5b9..2fc7244eaa6 100644 --- a/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/TripleSerializer.java +++ b/java/com.sap.sailing.domain.persistence/src/com/sap/sailing/domain/persistence/impl/TripleSerializer.java @@ -2,10 +2,10 @@ package com.sap.sailing.domain.persistence.impl; import com.mongodb.BasicDBObject; import com.mongodb.DBObject; -import com.sap.sailing.domain.common.impl.Util.Triple; +import com.sap.sse.common.Util; public class TripleSerializer { - public static DBObject serialize(Triple value) { + public static DBObject serialize(Util.Triple value) { DBObject container = new BasicDBObject(); container.put("a", value.getA()); container.put("b", value.getB()); diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RecordFixesTest.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RecordFixesTest.java index afc8c4599a6..1ed85a7ed81 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RecordFixesTest.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/impl/RecordFixesTest.java @@ -15,7 +15,6 @@ import org.junit.Before; import org.junit.Test; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.racelog.tracking.NoCorrespondingServiceRegisteredException; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; @@ -27,6 +26,7 @@ import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.impl.DynamicGPSFixMovingTrackImpl; import com.sap.sailing.server.gateway.deserialization.impl.DeviceAndSessionIdentifierWithGPSFixesDeserializer; +import com.sap.sse.common.Util; public class RecordFixesTest extends AbstractGPSFixStoreTest { private RecordFixesPostServlet servlet; @@ -50,7 +50,7 @@ public class RecordFixesTest extends AbstractGPSFixStoreTest { List fixes = new ArrayList<>(); fixes.add(createFix(timepoint, 0, 0, 0, 0)); fixes.add(createFix(timepoint+1, 0, 0, 0, 0)); - Triple> data = new Triple<>(device, null, fixes); + Util.Triple> data = new Util.Triple<>(device, null, fixes); servlet.process(null, data); DynamicGPSFixMovingTrackImpl track = new DynamicGPSFixMovingTrackImpl<>(comp, 0); diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/manual/PostFixes.java b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/manual/PostFixes.java index 505b6ff9b37..ba4030bb612 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/manual/PostFixes.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.test/src/com/sap/sailing/domain/racelogtracking/test/manual/PostFixes.java @@ -16,7 +16,6 @@ import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiIdentifier; import com.sap.sailing.domain.racelog.tracking.test.mock.SmartphoneImeiJsonHandler; import com.sap.sailing.domain.racelogtracking.test.AbstractJsonOverHttpTest; @@ -27,6 +26,7 @@ import com.sap.sailing.domain.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.server.gateway.serialization.impl.DeviceAndSessionIdentifierWithGPSFixesSerializer; import com.sap.sailing.server.gateway.serialization.impl.DeviceIdentifierJsonSerializer; import com.sap.sailing.server.gateway.serialization.impl.GPSFixMovingNmeaDTOJsonSerializer; +import com.sap.sse.common.Util; public class PostFixes extends AbstractJsonOverHttpTest { protected static final SmartphoneImeiIdentifier device = new SmartphoneImeiIdentifier("a"); @@ -37,7 +37,7 @@ public class PostFixes extends AbstractJsonOverHttpTest { private void recordFix(GPSFixMoving... fix) throws IOException { String request = fixSerializer.serialize( - new Triple>( + new Util.Triple>( device, null, Arrays.asList(fix))).toJSONString(); executeRequest("POST", getUrl(URL_TR + "/recordFixes"), request); diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/META-INF/MANIFEST.MF index 8fdb50d5cc4..57124c65247 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/META-INF/MANIFEST.MF @@ -15,5 +15,6 @@ Require-Bundle: com.sap.sailing.domain.shared.android, org.json.simple;bundle-version="1.1.0", org.mockito.mockito-core;bundle-version="1.9.5", org.hamcrest;bundle-version="1.1.0", - org.junit4;bundle-version="4.8.2" + org.junit4;bundle-version="4.8.2", + com.sap.sse.common Export-Package: com.sap.sailing.domain.racelog.tracking.test.mock diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiSerializationHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiSerializationHandler.java index 6a6047eb887..1f5e4485067 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiSerializationHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter.testsupport/src/com/sap/sailing/domain/racelog/tracking/test/mock/SmartphoneImeiSerializationHandler.java @@ -1,8 +1,8 @@ package com.sap.sailing.domain.racelog.tracking.test.mock; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; +import com.sap.sse.common.Util; public class SmartphoneImeiSerializationHandler { private SmartphoneImeiIdentifier castIdentifier(DeviceIdentifier identifier) throws TransformationException { @@ -11,8 +11,8 @@ public class SmartphoneImeiSerializationHandler { return (SmartphoneImeiIdentifier) identifier; } - public Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { - return new Pair(SmartphoneImeiIdentifier.TYPE, castIdentifier(deviceIdentifier).getImei()); + public Util.Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { + return new Util.Pair(SmartphoneImeiIdentifier.TYPE, castIdentifier(deviceIdentifier).getImei()); } public DeviceIdentifier deserialize(String input, String type, String stringRep) throws TransformationException { diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierSerializationHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierSerializationHandler.java index 828b4d7a796..e3049cacde8 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierSerializationHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/PingDeviceIdentifierSerializationHandler.java @@ -2,11 +2,11 @@ package com.sap.sailing.domain.racelogtracking.impl; import java.util.UUID; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; import com.sap.sailing.domain.racelogtracking.PingDeviceIdentifier; import com.sap.sailing.domain.racelogtracking.PingDeviceIdentifierImpl; +import com.sap.sse.common.Util; public class PingDeviceIdentifierSerializationHandler { private PingDeviceIdentifier castIdentifier(DeviceIdentifier identifier) throws TransformationException { @@ -15,8 +15,8 @@ public class PingDeviceIdentifierSerializationHandler { return (PingDeviceIdentifier) identifier; } - public Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { - return new Pair(PingDeviceIdentifier.TYPE, castIdentifier(deviceIdentifier).getId().toString()); + public Util.Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { + return new Util.Pair(PingDeviceIdentifier.TYPE, castIdentifier(deviceIdentifier).getId().toString()); } public DeviceIdentifier deserialize(String input, String type, String stringRep) throws TransformationException { diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogRaceTracker.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogRaceTracker.java index 28d0680843d..ef2571bf197 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogRaceTracker.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/RaceLogRaceTracker.java @@ -31,7 +31,6 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.TrackedRaceStatusEnum; import com.sap.sailing.domain.common.WithID; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.racelog.tracking.NotRevokableException; import com.sap.sailing.domain.common.racelog.tracking.RaceLogTrackingState; import com.sap.sailing.domain.common.racelog.tracking.RaceNotCreatedException; @@ -64,6 +63,7 @@ import com.sap.sailing.domain.tracking.RacesHandle; import com.sap.sailing.domain.tracking.WindStore; import com.sap.sailing.domain.tracking.WindTrack; import com.sap.sailing.domain.tracking.impl.TrackedRaceStatusImpl; +import com.sap.sse.common.Util; import difflib.PatchFailedException; @@ -332,10 +332,10 @@ public class RaceLogRaceTracker extends BaseRaceLogEventVisitor implements RaceT if (trackedRace == null) return; CourseBase base = new LastPublishedCourseDesignFinder(params.getRaceLog()).analyze(); - List> update = new ArrayList<>(); + List> update = new ArrayList<>(); for (Waypoint waypoint : base.getWaypoints()) { - update.add(new Pair<>(waypoint.getControlPoint(), waypoint.getPassingInstructions())); + update.add(new Util.Pair<>(waypoint.getControlPoint(), waypoint.getPassingInstructions())); } try { diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierJsonHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierJsonHandler.java index c8c014d1a68..7af401b6cec 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierJsonHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierJsonHandler.java @@ -6,12 +6,12 @@ import org.json.simple.JSONObject; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifierImpl; import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; +import com.sap.sse.common.Util; public class TrackFileImportDeviceIdentifierJsonHandler implements DeviceIdentifierJsonHandler { private static enum Fields {UUID, FILE_NAME, TRACK_NAME, UPLOADED_MILLIS}; @@ -45,14 +45,14 @@ public class TrackFileImportDeviceIdentifierJsonHandler implements DeviceIdentif } @Override - public Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { + public Util.Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { TrackFileImportDeviceIdentifier id = TrackFileImportDeviceIdentifierImpl.cast(deviceIdentifier); JSONObject result = new JSONObject(); result.put(Fields.UUID.name(), id.getId().toString()); result.put(Fields.FILE_NAME.name(), id.getFileName()); result.put(Fields.TRACK_NAME.name(), id.getTrackName()); result.put(Fields.UPLOADED_MILLIS.name(), storeTimePoint(id.getUploadedAt())); - return new Pair(TrackFileImportDeviceIdentifier.TYPE, result); + return new Util.Pair(TrackFileImportDeviceIdentifier.TYPE, result); } } diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierMongoHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierMongoHandler.java index d89bb6e5d72..def1acea245 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierMongoHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierMongoHandler.java @@ -5,12 +5,12 @@ import java.util.UUID; import com.mongodb.BasicDBObject; import com.mongodb.DBObject; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.persistence.racelog.tracking.DeviceIdentifierMongoHandler; import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifierImpl; +import com.sap.sse.common.Util; public class TrackFileImportDeviceIdentifierMongoHandler implements DeviceIdentifierMongoHandler { private static enum Fields {UUID, FILE_NAME, TRACK_NAME, UPLOADED_MILLIS}; @@ -28,7 +28,7 @@ public class TrackFileImportDeviceIdentifierMongoHandler implements DeviceIdenti } @Override - public Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { + public Util.Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { TrackFileImportDeviceIdentifier id = TrackFileImportDeviceIdentifierImpl.cast(deviceIdentifier); DBObject result = new BasicDBObject(); result.put(Fields.UUID.name(), id.getId().toString()); @@ -36,7 +36,7 @@ public class TrackFileImportDeviceIdentifierMongoHandler implements DeviceIdenti result.put(Fields.TRACK_NAME.name(), id.getTrackName()); result.put(Fields.UPLOADED_MILLIS.name(), TrackFileImportDeviceIdentifierJsonHandler. storeTimePoint(id.getUploadedAt())); - return new Pair(TrackFileImportDeviceIdentifier.TYPE, result); + return new Util.Pair(TrackFileImportDeviceIdentifier.TYPE, result); } } diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierStringSerializationHandler.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierStringSerializationHandler.java index b4271f7e8ec..784b2b48043 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierStringSerializationHandler.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/impl/TrackFileImportDeviceIdentifierStringSerializationHandler.java @@ -2,20 +2,20 @@ package com.sap.sailing.domain.racelogtracking.impl; import java.util.UUID; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; import com.sap.sailing.domain.racelog.tracking.DeviceIdentifierStringSerializationHandler; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifier; import com.sap.sailing.domain.trackfiles.TrackFileImportDeviceIdentifierImpl; +import com.sap.sse.common.Util; public class TrackFileImportDeviceIdentifierStringSerializationHandler implements DeviceIdentifierStringSerializationHandler { @Override - public Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { + public Util.Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { TrackFileImportDeviceIdentifier id = TrackFileImportDeviceIdentifierImpl.cast(deviceIdentifier); - return new Pair(TrackFileImportDeviceIdentifier.TYPE, id.getStringRepresentation()); + return new Util.Pair(TrackFileImportDeviceIdentifier.TYPE, id.getStringRepresentation()); } @Override diff --git a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/servlet/RecordFixesPostServlet.java b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/servlet/RecordFixesPostServlet.java index ee12da74fe0..a1089d744cd 100644 --- a/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/servlet/RecordFixesPostServlet.java +++ b/java/com.sap.sailing.domain.racelogtrackingadapter/src/com/sap/sailing/domain/racelogtracking/servlet/RecordFixesPostServlet.java @@ -7,7 +7,6 @@ import java.util.Map; import javax.servlet.ServletConfig; import javax.servlet.ServletException; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinder; import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; import com.sap.sailing.domain.tracking.GPSFix; @@ -19,9 +18,10 @@ import com.sap.sailing.server.gateway.deserialization.impl.DeviceIdentifierJsonD import com.sap.sailing.server.gateway.serialization.JsonSerializer; import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; import com.sap.sailing.server.gateway.serialization.racelog.tracking.GPSFixJsonHandler; +import com.sap.sse.common.Util; public class RecordFixesPostServlet extends - AbstractJsonPostServlet>, Void> { + AbstractJsonPostServlet>, Void> { private static final long serialVersionUID = 2778739335260621119L; private DeviceAndSessionIdentifierWithGPSFixesDeserializer deserializer; @@ -37,7 +37,7 @@ public class RecordFixesPostServlet extends } @Override - public JsonDeserializer>> getRequestDeserializer() { + public JsonDeserializer>> getRequestDeserializer() { return deserializer; } @@ -48,7 +48,7 @@ public class RecordFixesPostServlet extends @Override public Void process(Map parameterValues, - Triple> domainObject) throws HttpExceptionWithMessage { + Util.Triple> domainObject) throws HttpExceptionWithMessage { DeviceIdentifier device = domainObject.getA(); // might use the session id in the future // Serializable sessionId = domainObject.getB(); diff --git a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/analyzing/test/PassAwareRaceLogAnalyzerTest.java b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/analyzing/test/PassAwareRaceLogAnalyzerTest.java index 36badea21b0..8ce10fa81eb 100644 --- a/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/analyzing/test/PassAwareRaceLogAnalyzerTest.java +++ b/java/com.sap.sailing.domain.shared.android.test/src/com/sap/sailing/domain/racelog/analyzing/test/PassAwareRaceLogAnalyzerTest.java @@ -10,7 +10,6 @@ import java.util.UUID; import org.junit.Test; -import com.sap.sailing.domain.common.impl.Util; import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.RaceLogEventAuthor; @@ -19,7 +18,7 @@ import com.sap.sailing.domain.racelog.analyzing.impl.RaceLogAnalyzer; public abstract class PassAwareRaceLogAnalyzerTest, ResultType> extends RaceLogAnalyzerTest { - protected class TargetPair extends Util.Pair, ResultType> { + protected class TargetPair extends com.sap.sse.common.Util.Pair, ResultType> { private static final long serialVersionUID = 7961879340006633439L; public TargetPair(Collection a, ResultType b) { diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/BoatClass.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/BoatClass.java index 94b193f11aa..9f50bb945f2 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/BoatClass.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/BoatClass.java @@ -2,6 +2,7 @@ package com.sap.sailing.domain.base; import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.Named; +import com.sap.sailing.domain.common.TimePoint; public interface BoatClass extends Named, IsManagedBySharedDomainFactory { /** diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/configuration/impl/EmptyRegattaConfiguration.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/configuration/impl/EmptyRegattaConfiguration.java index f9832609406..799654d8425 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/configuration/impl/EmptyRegattaConfiguration.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/base/configuration/impl/EmptyRegattaConfiguration.java @@ -1,7 +1,7 @@ package com.sap.sailing.domain.base.configuration.impl; -import com.sap.sailing.domain.base.configuration.RegattaConfiguration; import com.sap.sailing.domain.base.configuration.ConfigurationLoader; +import com.sap.sailing.domain.base.configuration.RegattaConfiguration; import com.sap.sailing.domain.common.CourseDesignerMode; import com.sap.sailing.domain.common.racelog.RacingProcedureType; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/CompetitorResults.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/CompetitorResults.java index 03cbde6c23b..31d63a75e82 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/CompetitorResults.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/CompetitorResults.java @@ -4,8 +4,8 @@ import java.io.Serializable; import java.util.List; import com.sap.sailing.domain.common.MaxPointsReason; -import com.sap.sailing.domain.common.impl.Util.Triple; +import com.sap.sse.common.Util; -public interface CompetitorResults extends List> { +public interface CompetitorResults extends List> { } diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogGateLineOpeningTimeEvent.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogGateLineOpeningTimeEvent.java index 74d202cb0fa..40f0a0ccf39 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogGateLineOpeningTimeEvent.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/RaceLogGateLineOpeningTimeEvent.java @@ -1,11 +1,11 @@ package com.sap.sailing.domain.racelog; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; public interface RaceLogGateLineOpeningTimeEvent extends RaceLogEvent { - public class GateLineOpeningTimes extends Pair { + public class GateLineOpeningTimes extends Util.Pair { private static final long serialVersionUID = -3262303047719105275L; public GateLineOpeningTimes(long gateLaunchStopTime, long golfDownTime) { diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/analyzing/impl/LastPublishedCourseDesignFinder.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/analyzing/impl/LastPublishedCourseDesignFinder.java index c700b59c17a..9ee61de7fba 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/analyzing/impl/LastPublishedCourseDesignFinder.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/analyzing/impl/LastPublishedCourseDesignFinder.java @@ -4,7 +4,6 @@ import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent; import com.sap.sailing.domain.racelog.RaceLogEvent; -import com.sap.sailing.domain.racelog.analyzing.impl.RaceLogAnalyzer; public class LastPublishedCourseDesignFinder extends RaceLogAnalyzer { diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/analyzing/impl/RRS26StartModeFlagFinder.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/analyzing/impl/RRS26StartModeFlagFinder.java index 9c04c01f70f..9ad54b69cf1 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/analyzing/impl/RRS26StartModeFlagFinder.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/analyzing/impl/RRS26StartModeFlagFinder.java @@ -1,7 +1,7 @@ package com.sap.sailing.domain.racelog.analyzing.impl; -import java.util.List; import java.util.Arrays; +import java.util.List; import com.sap.sailing.domain.common.racelog.Flags; import com.sap.sailing.domain.common.racelog.RacingProcedureType; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/BaseRaceLogEventVisitor.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/BaseRaceLogEventVisitor.java index 04f6c2af5a2..16bca0b04ec 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/BaseRaceLogEventVisitor.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/BaseRaceLogEventVisitor.java @@ -17,11 +17,11 @@ import com.sap.sailing.domain.racelog.RaceLogWindFixEvent; import com.sap.sailing.domain.racelog.RevokeEvent; import com.sap.sailing.domain.racelog.tracking.CloseOpenEndedDeviceMappingEvent; import com.sap.sailing.domain.racelog.tracking.DefineMarkEvent; -import com.sap.sailing.domain.racelog.tracking.RegisterCompetitorEvent; -import com.sap.sailing.domain.racelog.tracking.StartTrackingEvent; import com.sap.sailing.domain.racelog.tracking.DenoteForTrackingEvent; import com.sap.sailing.domain.racelog.tracking.DeviceCompetitorMappingEvent; import com.sap.sailing.domain.racelog.tracking.DeviceMarkMappingEvent; +import com.sap.sailing.domain.racelog.tracking.RegisterCompetitorEvent; +import com.sap.sailing.domain.racelog.tracking.StartTrackingEvent; /** * Base class implementing {@link RaceLogEventVisitor}. Every method is implemented as a no-op. diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/CompetitorResultsImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/CompetitorResultsImpl.java index 3eed3b472d8..66c8326d61c 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/CompetitorResultsImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/CompetitorResultsImpl.java @@ -4,10 +4,10 @@ import java.io.Serializable; import java.util.ArrayList; import com.sap.sailing.domain.common.MaxPointsReason; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.racelog.CompetitorResults; +import com.sap.sse.common.Util; -public class CompetitorResultsImpl extends ArrayList> implements CompetitorResults { +public class CompetitorResultsImpl extends ArrayList> implements CompetitorResults { private static final long serialVersionUID = 4928351242700897387L; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogChangedVisitor.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogChangedVisitor.java index c589eccb3c5..d3e57ea8001 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogChangedVisitor.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogChangedVisitor.java @@ -18,11 +18,11 @@ import com.sap.sailing.domain.racelog.RaceLogWindFixEvent; import com.sap.sailing.domain.racelog.RevokeEvent; import com.sap.sailing.domain.racelog.tracking.CloseOpenEndedDeviceMappingEvent; import com.sap.sailing.domain.racelog.tracking.DefineMarkEvent; -import com.sap.sailing.domain.racelog.tracking.RegisterCompetitorEvent; -import com.sap.sailing.domain.racelog.tracking.StartTrackingEvent; import com.sap.sailing.domain.racelog.tracking.DenoteForTrackingEvent; import com.sap.sailing.domain.racelog.tracking.DeviceCompetitorMappingEvent; import com.sap.sailing.domain.racelog.tracking.DeviceMarkMappingEvent; +import com.sap.sailing.domain.racelog.tracking.RegisterCompetitorEvent; +import com.sap.sailing.domain.racelog.tracking.StartTrackingEvent; public class RaceLogChangedVisitor implements RaceLogEventVisitor { diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java index bd1c391bd5e..6838ddef26b 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/impl/RaceLogEventFactoryImpl.java @@ -32,20 +32,20 @@ import com.sap.sailing.domain.racelog.RaceLogWindFixEvent; import com.sap.sailing.domain.racelog.RevokeEvent; import com.sap.sailing.domain.racelog.tracking.CloseOpenEndedDeviceMappingEvent; import com.sap.sailing.domain.racelog.tracking.DefineMarkEvent; -import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; -import com.sap.sailing.domain.racelog.tracking.RegisterCompetitorEvent; -import com.sap.sailing.domain.racelog.tracking.StartTrackingEvent; import com.sap.sailing.domain.racelog.tracking.DenoteForTrackingEvent; import com.sap.sailing.domain.racelog.tracking.DeviceCompetitorMappingEvent; +import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; import com.sap.sailing.domain.racelog.tracking.DeviceMarkMappingEvent; +import com.sap.sailing.domain.racelog.tracking.RegisterCompetitorEvent; +import com.sap.sailing.domain.racelog.tracking.StartTrackingEvent; import com.sap.sailing.domain.racelog.tracking.events.CloseOpenEndedDeviceMappingEventImpl; import com.sap.sailing.domain.racelog.tracking.events.DefineMarkEventImpl; -import com.sap.sailing.domain.racelog.tracking.events.RegisterCompetitorEventImpl; -import com.sap.sailing.domain.racelog.tracking.events.StartTrackingEventImpl; import com.sap.sailing.domain.racelog.tracking.events.DenoteForTrackingEventImpl; import com.sap.sailing.domain.racelog.tracking.events.DeviceCompetitorMappingEventImpl; import com.sap.sailing.domain.racelog.tracking.events.DeviceMarkMappingEventImpl; +import com.sap.sailing.domain.racelog.tracking.events.RegisterCompetitorEventImpl; import com.sap.sailing.domain.racelog.tracking.events.RevokeEventImpl; +import com.sap.sailing.domain.racelog.tracking.events.StartTrackingEventImpl; import com.sap.sailing.domain.tracking.Wind; public class RaceLogEventFactoryImpl implements RaceLogEventFactory { diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/state/impl/RaceStateImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/state/impl/RaceStateImpl.java index f1158dbda02..dcd929c3e60 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/state/impl/RaceStateImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/state/impl/RaceStateImpl.java @@ -1,8 +1,8 @@ package com.sap.sailing.domain.racelog.state.impl; import com.sap.sailing.domain.base.CourseBase; -import com.sap.sailing.domain.base.configuration.RegattaConfiguration; import com.sap.sailing.domain.base.configuration.ConfigurationLoader; +import com.sap.sailing.domain.base.configuration.RegattaConfiguration; import com.sap.sailing.domain.base.configuration.impl.EmptyRegattaConfiguration; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.racelog.Flags; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/state/racingprocedure/impl/BaseRacingProcedureChangedListener.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/state/racingprocedure/impl/BaseRacingProcedureChangedListener.java index a3d0ef987e1..fa4e7e612ac 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/state/racingprocedure/impl/BaseRacingProcedureChangedListener.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/state/racingprocedure/impl/BaseRacingProcedureChangedListener.java @@ -1,7 +1,7 @@ package com.sap.sailing.domain.racelog.state.racingprocedure.impl; -import com.sap.sailing.domain.racelog.state.racingprocedure.ReadonlyRacingProcedure; import com.sap.sailing.domain.racelog.state.racingprocedure.RacingProcedureChangedListener; +import com.sap.sailing.domain.racelog.state.racingprocedure.ReadonlyRacingProcedure; public abstract class BaseRacingProcedureChangedListener implements RacingProcedureChangedListener { diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/state/racingprocedure/impl/RacingProcedureFactoryImpl.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/state/racingprocedure/impl/RacingProcedureFactoryImpl.java index 448b5fc96a5..f5e34bb8571 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/state/racingprocedure/impl/RacingProcedureFactoryImpl.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/state/racingprocedure/impl/RacingProcedureFactoryImpl.java @@ -1,7 +1,7 @@ package com.sap.sailing.domain.racelog.state.racingprocedure.impl; -import com.sap.sailing.domain.base.configuration.RegattaConfiguration; import com.sap.sailing.domain.base.configuration.ConfigurationLoader; +import com.sap.sailing.domain.base.configuration.RegattaConfiguration; import com.sap.sailing.domain.common.racelog.RacingProcedureType; import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.RaceLogEventAuthor; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/DeviceIdentifier.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/DeviceIdentifier.java index 119532ce1fa..fe2290bdfda 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/DeviceIdentifier.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/DeviceIdentifier.java @@ -2,6 +2,8 @@ package com.sap.sailing.domain.racelog.tracking; import java.io.Serializable; +import com.sap.sailing.domain.racelog.RaceLog; + /** * Identifies any kind of tracking device. Should be implemented accordingly for different tracking * adapters, e.g. for smartphones, Igtimi trackers etc.

diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/DeviceIdentifierSerializationHandler.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/DeviceIdentifierSerializationHandler.java index 40465a62bdb..fcad12efeaf 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/DeviceIdentifierSerializationHandler.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/DeviceIdentifierSerializationHandler.java @@ -1,7 +1,7 @@ package com.sap.sailing.domain.racelog.tracking; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; +import com.sap.sse.common.Util; /** * Base interface for handlers of serialization and deserialization of {@link DeviceIdentifier}s. @@ -29,7 +29,7 @@ public interface DeviceIdentifierSerializationHandler { * @param deviceIdentifier * @return A pair: <{@code device type}, {@code serialized identifier}> */ - Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException; + Util.Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException; /** * Deserialize the identifier. In case this is a fallback deserializer (e.g. for {@link PlaceHolderDeviceIdentifier}), diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/PlaceHolderDeviceIdentifier.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/PlaceHolderDeviceIdentifier.java index 7bcc051ccb6..e3c6a87e05a 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/PlaceHolderDeviceIdentifier.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/PlaceHolderDeviceIdentifier.java @@ -1,5 +1,7 @@ package com.sap.sailing.domain.racelog.tracking; +import com.sap.sailing.domain.racelog.RaceLog; + /** diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/RegisterCompetitorEvent.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/RegisterCompetitorEvent.java index e6a3e256278..06470d41647 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/RegisterCompetitorEvent.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/RegisterCompetitorEvent.java @@ -2,6 +2,7 @@ package com.sap.sailing.domain.racelog.tracking; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.IsManagedBySharedDomainFactory; +import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.Revokable; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/SmartphoneUUIDSerializationHandler.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/SmartphoneUUIDSerializationHandler.java index 0f8050eba2f..f96ef1e702c 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/SmartphoneUUIDSerializationHandler.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/SmartphoneUUIDSerializationHandler.java @@ -2,9 +2,9 @@ package com.sap.sailing.domain.racelog.tracking; import java.util.UUID; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.racelog.tracking.impl.SmartphoneUUIDIdentifierImpl; +import com.sap.sse.common.Util; public class SmartphoneUUIDSerializationHandler { private SmartphoneUUIDIdentifier castIdentifier(DeviceIdentifier identifier) throws TransformationException { @@ -13,8 +13,8 @@ public class SmartphoneUUIDSerializationHandler { return (SmartphoneUUIDIdentifier) identifier; } - public Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { - return new Pair(castIdentifier(deviceIdentifier).getUUID().toString(), SmartphoneUUIDIdentifier.TYPE); + public Util.Pair serialize(DeviceIdentifier deviceIdentifier) throws TransformationException { + return new Util.Pair(castIdentifier(deviceIdentifier).getUUID().toString(), SmartphoneUUIDIdentifier.TYPE); } public DeviceIdentifier deserialize(String input, String type, String stringRep) throws TransformationException { diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/StartTrackingEvent.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/StartTrackingEvent.java index ba607148ecd..de7c0c166ac 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/StartTrackingEvent.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/StartTrackingEvent.java @@ -1,5 +1,6 @@ package com.sap.sailing.domain.racelog.tracking; +import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.Revokable; import com.sap.sailing.domain.racelog.tracking.events.DeviceCompetitorMappingEventImpl; diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/analyzing/impl/RaceLogTrackingStateAnalyzer.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/analyzing/impl/RaceLogTrackingStateAnalyzer.java index 712cde0e9a4..5a4f72d4ffb 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/analyzing/impl/RaceLogTrackingStateAnalyzer.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/analyzing/impl/RaceLogTrackingStateAnalyzer.java @@ -4,8 +4,8 @@ import com.sap.sailing.domain.common.racelog.tracking.RaceLogTrackingState; import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.analyzing.impl.RaceLogAnalyzer; -import com.sap.sailing.domain.racelog.tracking.StartTrackingEvent; import com.sap.sailing.domain.racelog.tracking.DenoteForTrackingEvent; +import com.sap.sailing.domain.racelog.tracking.StartTrackingEvent; public class RaceLogTrackingStateAnalyzer extends RaceLogAnalyzer { diff --git a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/impl/PlaceHolderDeviceIdentifierSerializationHandler.java b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/impl/PlaceHolderDeviceIdentifierSerializationHandler.java index 1875ac68233..469c94f8ac0 100644 --- a/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/impl/PlaceHolderDeviceIdentifierSerializationHandler.java +++ b/java/com.sap.sailing.domain.shared.android/src/com/sap/sailing/domain/racelog/tracking/impl/PlaceHolderDeviceIdentifierSerializationHandler.java @@ -1,9 +1,9 @@ package com.sap.sailing.domain.racelog.tracking.impl; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; import com.sap.sailing.domain.racelog.tracking.PlaceHolderDeviceIdentifier; +import com.sap.sse.common.Util; /** * Can be used as the last option, if no other service is available when trying to load an identifier @@ -21,8 +21,8 @@ public class PlaceHolderDeviceIdentifierSerializationHandler { return new PlaceHolderDeviceIdentifier(type, stringRepresentation); } - public Pair serialize(DeviceIdentifier object) throws TransformationException { - return new Pair(object.getIdentifierType(), object.getStringRepresentation()); + public Util.Pair serialize(DeviceIdentifier object) throws TransformationException { + return new Util.Pair(object.getIdentifierType(), object.getStringRepresentation()); } } diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/classes/services/MessageFileServiceImpl.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/classes/services/MessageFileServiceImpl.java index 0a05cb6ed7b..4fdac1e0c57 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/classes/services/MessageFileServiceImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/classes/services/MessageFileServiceImpl.java @@ -23,9 +23,9 @@ import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MeterDistance; import com.sap.sailing.domain.swisstimingadapter.Competitor; import com.sap.sailing.domain.swisstimingadapter.Mark; +import com.sap.sailing.domain.swisstimingadapter.Mark.MarkType; import com.sap.sailing.domain.swisstimingadapter.Race; import com.sap.sailing.domain.swisstimingadapter.SailMasterMessage; -import com.sap.sailing.domain.swisstimingadapter.Mark.MarkType; import com.sap.sailing.domain.swisstimingadapter.classes.messages.CAMMessage; import com.sap.sailing.domain.swisstimingadapter.classes.messages.CCGMessage; import com.sap.sailing.domain.swisstimingadapter.classes.messages.ClockAtMarkElement; diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryTest.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryTest.java index 99a9d34deac..f6b46ce87d1 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryTest.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/impl/DomainFactoryTest.java @@ -1,5 +1,9 @@ package com.sap.sailing.domain.swisstimingadapter.impl; +import static org.hamcrest.core.Is.is; +import static org.hamcrest.core.IsNull.notNullValue; +import static org.junit.Assert.assertThat; + import org.junit.Before; import org.junit.Ignore; import org.junit.Test; @@ -7,11 +11,6 @@ import org.junit.Test; import com.sap.sailing.domain.swisstimingadapter.RaceType; import com.sap.sailing.domain.swisstimingadapter.RaceType.OlympicRaceCode; -import static org.junit.Assert.*; - -import static org.hamcrest.core.Is.*; -import static org.hamcrest.core.IsNull.*; - public class DomainFactoryTest { private com.sap.sailing.domain.swisstimingadapter.impl.DomainFactoryImpl swissTimingDomainFactory; diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SailMasterConnectivityTest.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SailMasterConnectivityTest.java index c664a3d10ae..e6fe547077d 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SailMasterConnectivityTest.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SailMasterConnectivityTest.java @@ -27,7 +27,6 @@ import org.junit.rules.Timeout; import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.swisstimingadapter.Competitor; import com.sap.sailing.domain.swisstimingadapter.Course; import com.sap.sailing.domain.swisstimingadapter.Fix; @@ -101,13 +100,13 @@ public class SailMasterConnectivityTest { final Collection fixesResult = new ArrayList(); connector4702.addSailMasterListener(new SailMasterListener() { @Override - public void receivedTimingData(String raceID, String boatID, List> markIndicesRanksAndTimesSinceStartInMilliseconds) {} + public void receivedTimingData(String raceID, String boatID, List> markIndicesRanksAndTimesSinceStartInMilliseconds) {} @Override public void receivedStartList(String raceID, StartList startList) {} @Override public void receivedCourseConfiguration(String raceID, Course course) {} @Override - public void receivedClockAtMark(String raceID, List> markIndicesTimePointsAndBoatIDs) {} + public void receivedClockAtMark(String raceID, List> markIndicesTimePointsAndBoatIDs) {} @Override public void receivedAvailableRaces(Iterable races) {} @Override diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SwissTimingSailMasterLiveTest.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SwissTimingSailMasterLiveTest.java index 6937d2ce805..604c0f1ae55 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SwissTimingSailMasterLiveTest.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/SwissTimingSailMasterLiveTest.java @@ -22,8 +22,6 @@ import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.Speed; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.swisstimingadapter.Competitor; import com.sap.sailing.domain.swisstimingadapter.Course; import com.sap.sailing.domain.swisstimingadapter.Fix; @@ -96,7 +94,7 @@ public class SwissTimingSailMasterLiveTest implements SailMasterListener { @Test public void testGetClockAtMark() throws UnknownHostException, IOException, InterruptedException, ParseException { Race race = connector.getRace(); - List> clockAtMark = connector.getClockAtMark(race.getRaceID()); + List> clockAtMark = connector.getClockAtMark(race.getRaceID()); assertFalse(clockAtMark.isEmpty()); } @@ -150,9 +148,9 @@ public class SwissTimingSailMasterLiveTest implements SailMasterListener { int numberOfMarks = Util.size(course.getMarks()); Iterable competitors = connector.getStartList(race.getRaceID()).getCompetitors(); for (Competitor competitor : competitors) { - Map> markPassingTimes = connector.getMarkPassingTimesInMillisecondsSinceRaceStart(race.getRaceID(), competitor.getBoatID()); + Map> markPassingTimes = connector.getMarkPassingTimesInMillisecondsSinceRaceStart(race.getRaceID(), competitor.getBoatID()); for (Integer markIndex : markPassingTimes.keySet()) { - Pair rankAndTime = markPassingTimes.get(markIndex); + com.sap.sse.common.Util.Pair rankAndTime = markPassingTimes.get(markIndex); for (int i=0; i> markIndicesRanksAndTimesSinceStartInMilliseconds) { + List> markIndicesRanksAndTimesSinceStartInMilliseconds) { } @Override public void receivedClockAtMark(String raceID, - List> markIndicesTimePointsAndBoatIDs) { + List> markIndicesTimePointsAndBoatIDs) { } @Override diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ui/EditCAM.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ui/EditCAM.java index 93df613d515..ac74434a56b 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ui/EditCAM.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ui/EditCAM.java @@ -10,16 +10,18 @@ */ package com.sap.sailing.domain.swisstimingadapter.test.ui; -import com.sap.sailing.domain.swisstimingadapter.classes.messages.CAMMessage; -import com.sap.sailing.domain.swisstimingadapter.classes.messages.ClockAtMarkElement; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; + import javax.swing.JOptionPane; +import com.sap.sailing.domain.swisstimingadapter.classes.messages.CAMMessage; +import com.sap.sailing.domain.swisstimingadapter.classes.messages.ClockAtMarkElement; + /** * * @author D056866 diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ui/EditSTL.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ui/EditSTL.java index 5bf8c25c32f..7eee29387a2 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ui/EditSTL.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ui/EditSTL.java @@ -10,10 +10,11 @@ */ package com.sap.sailing.domain.swisstimingadapter.test.ui; +import java.util.List; + import com.sap.sailing.domain.swisstimingadapter.Competitor; import com.sap.sailing.domain.swisstimingadapter.classes.messages.STLMessage; import com.sap.sailing.domain.swisstimingadapter.impl.CompetitorWithoutID; -import java.util.List; /** * diff --git a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ui/SwissTimingRaceEditor.java b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ui/SwissTimingRaceEditor.java index b74f7b8902c..fb3b82aad9b 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ui/SwissTimingRaceEditor.java +++ b/java/com.sap.sailing.domain.swisstimingadapter.test/src/com/sap/sailing/domain/swisstimingadapter/test/ui/SwissTimingRaceEditor.java @@ -10,6 +10,17 @@ */ package com.sap.sailing.domain.swisstimingadapter.test.ui; +import java.io.File; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; + +import javax.swing.JFileChooser; +import javax.swing.JOptionPane; +import javax.swing.filechooser.FileFilter; + import com.sap.sailing.domain.swisstimingadapter.classes.messages.ABSMessage; import com.sap.sailing.domain.swisstimingadapter.classes.messages.CAMMessage; import com.sap.sailing.domain.swisstimingadapter.classes.messages.CCGMessage; @@ -20,16 +31,6 @@ import com.sap.sailing.domain.swisstimingadapter.classes.messages.TMDMessage; import com.sap.sailing.domain.swisstimingadapter.classes.services.MessageFileService; import com.sap.sailing.domain.swisstimingadapter.classes.services.MessageFileServiceImpl; -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; -import javax.swing.JFileChooser; -import javax.swing.JOptionPane; -import javax.swing.filechooser.FileFilter; - /** * * @author D056866 diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SailMasterAdapter.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SailMasterAdapter.java index 488ce756399..9cc91e9000b 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SailMasterAdapter.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SailMasterAdapter.java @@ -5,7 +5,7 @@ import java.util.List; import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Triple; +import com.sap.sse.common.Util; public abstract class SailMasterAdapter implements SailMasterListener { @@ -17,12 +17,12 @@ public abstract class SailMasterAdapter implements SailMasterListener { @Override public void receivedTimingData(String raceID, String boatID, - List> markIndicesRanksAndTimesSinceStartInMilliseconds) { + List> markIndicesRanksAndTimesSinceStartInMilliseconds) { } @Override public void receivedClockAtMark(String raceID, - List> markIndicesTimePointsAndBoatIDs) { + List> markIndicesTimePointsAndBoatIDs) { } @Override diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SailMasterConnector.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SailMasterConnector.java index c4d24c38ff2..a8ba1c6dfaa 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SailMasterConnector.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SailMasterConnector.java @@ -9,8 +9,7 @@ import java.util.Map; import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.Speed; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; +import com.sap.sse.common.Util; public interface SailMasterConnector { SailMasterMessage sendRequestAndGetResponse(MessageType messageType, String... args) throws UnknownHostException, IOException, InterruptedException; @@ -39,7 +38,7 @@ public interface SailMasterConnector { * boatID passed the mark. * @throws InterruptedException */ - Map> getMarkPassingTimesInMillisecondsSinceRaceStart(String raceID, String boatID) + Map> getMarkPassingTimesInMillisecondsSinceRaceStart(String raceID, String boatID) throws UnknownHostException, IOException, InterruptedException; /** @@ -69,7 +68,7 @@ public interface SailMasterConnector { * @return the list of mark index / mark time / sail number triplets telling when which leader * first passed the mark with the respective index */ - List> getClockAtMark(String raceID) throws ParseException, UnknownHostException, IOException, InterruptedException; + List> getClockAtMark(String raceID) throws ParseException, UnknownHostException, IOException, InterruptedException; /** * Stops this connector's thread that is started upon creation and responsible for receiving spontaneous events diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SailMasterListener.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SailMasterListener.java index 5bed6cb229a..e6cf48b01af 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SailMasterListener.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SailMasterListener.java @@ -5,16 +5,16 @@ import java.util.List; import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Triple; +import com.sap.sse.common.Util; public interface SailMasterListener { void receivedRacePositionData(String raceID, RaceStatus status, TimePoint timePoint, TimePoint startTime, Long millisecondsSinceRaceStart, Integer nextMarkIndexForLeader, Distance distanceToNextMarkForLeader, Collection fixes); - void receivedTimingData(String raceID, String boatID, List> markIndicesRanksAndTimesSinceStartInMilliseconds); + void receivedTimingData(String raceID, String boatID, List> markIndicesRanksAndTimesSinceStartInMilliseconds); - void receivedClockAtMark(String raceID, List> markIndicesTimePointsAndBoatIDs); + void receivedClockAtMark(String raceID, List> markIndicesTimePointsAndBoatIDs); void receivedStartList(String raceID, StartList startList); diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SwissTimingRaceTracker.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SwissTimingRaceTracker.java index bd749cd4e2c..2da24a55968 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SwissTimingRaceTracker.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/SwissTimingRaceTracker.java @@ -2,14 +2,14 @@ package com.sap.sailing.domain.swisstimingadapter; import com.sap.sailing.domain.base.BoatClass; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.tracking.RaceTracker; +import com.sap.sse.common.Util; public interface SwissTimingRaceTracker extends RaceTracker { /** * The key for a SwissTiming race tracker is the triple of raceID, host name and port number. */ - Triple getID(); + Util.Triple getID(); Competitor getCompetitorByBoatIDAndRaceIDOrBoatClass(String boatID, String raceID, BoatClass boatClass); } 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 d1208426348..b3d942e7881 100755 --- 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,7 +34,6 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.WithID; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.swisstimingadapter.Course; import com.sap.sailing.domain.swisstimingadapter.CrewMember; @@ -312,11 +311,11 @@ public class DomainFactoryImpl implements DomainFactory { @Override public void updateCourseWaypoints(com.sap.sailing.domain.base.Course courseToUpdate, Iterable marks) throws PatchFailedException { - List> newDomainControlPoints = new ArrayList>(); + List> newDomainControlPoints = new ArrayList>(); for (Mark mark : marks) { // TODO bug 1043: propagate the mark names to the waypoint names com.sap.sailing.domain.base.ControlPoint domainControlPoint = getOrCreateControlPoint(mark.getDevices()); - newDomainControlPoints.add(new Pair(domainControlPoint, null)); + newDomainControlPoints.add(new com.sap.sse.common.Util.Pair(domainControlPoint, null)); } courseToUpdate.update(newDomainControlPoints, baseDomainFactory); } diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SailMasterConnectorImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SailMasterConnectorImpl.java index 7c356bc833f..532d1390863 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SailMasterConnectorImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SailMasterConnectorImpl.java @@ -39,8 +39,6 @@ import com.sap.sailing.domain.common.impl.KnotSpeedImpl; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MeterDistance; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.swisstimingadapter.Competitor; import com.sap.sailing.domain.swisstimingadapter.Course; import com.sap.sailing.domain.swisstimingadapter.Fix; @@ -54,6 +52,7 @@ import com.sap.sailing.domain.swisstimingadapter.SailMasterListener; import com.sap.sailing.domain.swisstimingadapter.SailMasterMessage; import com.sap.sailing.domain.swisstimingadapter.StartList; import com.sap.sailing.domain.swisstimingadapter.TrackerType; +import com.sap.sse.common.Util; /** * Implements the connector to the SwissTiming Sail Master system. It uses a host name and port number to establish the @@ -284,14 +283,14 @@ public class SailMasterConnectorImpl extends SailMasterTransceiverImpl implement String raceID = message.getSections()[1]; String boatID = message.getSections()[2]; int count = Integer.valueOf(message.getSections()[3]); - List> markIndicesRanksAndTimesSinceStartInMilliseconds = new ArrayList>(); + List> markIndicesRanksAndTimesSinceStartInMilliseconds = new ArrayList>(); for (int i = 0; i < count; i++) { String[] details = message.getSections()[4+i].split(";"); Integer markIndex = details.length <= 0 || details[0].trim().length() == 0 ? null : Integer.valueOf(details[0]); Integer rank = details.length <= 1 || details[1].trim().length() == 0 ? null : Integer.valueOf(details[1]); Long timeSinceStartInMilliseconds = details.length <= 2 || details[2].trim().length() == 0 ? null : parseHHMMSSToMilliseconds(details[2]); - markIndicesRanksAndTimesSinceStartInMilliseconds.add(new Triple(markIndex, rank, timeSinceStartInMilliseconds)); + markIndicesRanksAndTimesSinceStartInMilliseconds.add(new Util.Triple(markIndex, rank, timeSinceStartInMilliseconds)); } for (SailMasterListener listener : getListeners()) { try { @@ -304,7 +303,7 @@ public class SailMasterConnectorImpl extends SailMasterTransceiverImpl implement } private void notifyListenersCAM(SailMasterMessage message) throws ParseException { - List> clockAtMarkResults = parseClockAtMarkMessage(message); + List> clockAtMarkResults = parseClockAtMarkMessage(message); for (SailMasterListener listener : getListeners()) { try { listener.receivedClockAtMark(message.getSections()[1], clockAtMarkResults); @@ -770,7 +769,7 @@ public class SailMasterConnectorImpl extends SailMasterTransceiverImpl implement } @Override - public Map> getMarkPassingTimesInMillisecondsSinceRaceStart(String raceID, String boatID) + public Map> getMarkPassingTimesInMillisecondsSinceRaceStart(String raceID, String boatID) throws UnknownHostException, IOException, InterruptedException { SailMasterMessage response = sendRequestAndGetResponse(MessageType.TMD, raceID, boatID); String[] sections = response.getSections(); @@ -778,12 +777,12 @@ public class SailMasterConnectorImpl extends SailMasterTransceiverImpl implement assertRaceID(raceID, sections[1]); assertBoatID(boatID, sections[2]); int count = Integer.valueOf(sections[3]); - Map> result = new HashMap>(); + Map> result = new HashMap>(); for (int i=0; i( + result.put(Integer.valueOf(markTimeDetail[0]), new Util.Pair( markTimeDetail.length <= 1 || markTimeDetail[1].trim().length() == 0 ? null : Integer.valueOf(markTimeDetail[1]), millisecondsSinceStart)); } @@ -791,25 +790,25 @@ public class SailMasterConnectorImpl extends SailMasterTransceiverImpl implement } @Override - public List> getClockAtMark(String raceID) throws ParseException, UnknownHostException, IOException, InterruptedException { + public List> getClockAtMark(String raceID) throws ParseException, UnknownHostException, IOException, InterruptedException { SailMasterMessage response = sendRequestAndGetResponse(MessageType.CAM, raceID); String[] sections = response.getSections(); assertResponseType(MessageType.CAM, response); assertRaceID(raceID, sections[1]); - List> result = parseClockAtMarkMessage(response); + List> result = parseClockAtMarkMessage(response); return result; } - private List> parseClockAtMarkMessage(SailMasterMessage clockAtMarkMessage) throws ParseException { + private List> parseClockAtMarkMessage(SailMasterMessage clockAtMarkMessage) throws ParseException { assertMessageType(MessageType.CAM, clockAtMarkMessage); - List> result = new ArrayList>(); + List> result = new ArrayList>(); int count = Integer.valueOf(clockAtMarkMessage.getSections()[2]); for (int i=0; i( + result.add(new Util.Triple( markIndex, timePoint, clockAtMarkDetail.length <= 2 ? null : clockAtMarkDetail[2])); } return result; diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingFactoryImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingFactoryImpl.java index 825a2ab771a..4326bb77b57 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingFactoryImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingFactoryImpl.java @@ -9,7 +9,6 @@ import java.util.logging.Logger; import com.sap.sailing.domain.base.BoatClass; import com.sap.sailing.domain.base.Regatta; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.racelog.tracking.GPSFixStore; import com.sap.sailing.domain.swisstimingadapter.DomainFactory; @@ -26,11 +25,12 @@ import com.sap.sailing.domain.swisstimingadapter.SwissTimingRaceTracker; import com.sap.sailing.domain.tracking.RaceTracker; import com.sap.sailing.domain.tracking.TrackedRegattaRegistry; import com.sap.sailing.domain.tracking.WindStore; +import com.sap.sse.common.Util; public class SwissTimingFactoryImpl implements SwissTimingFactory { private static final Logger logger = Logger.getLogger(SwissTimingFactoryImpl.class.getName()); - private final Map, SailMasterConnector> connectors; + private final Map, SailMasterConnector> connectors; public SwissTimingFactoryImpl() { connectors = new HashMap<>(); @@ -47,7 +47,7 @@ public class SwissTimingFactoryImpl implements SwissTimingFactory { if (Boolean.valueOf(System.getProperty("simulateLiveMode", "false"))) { return getOrCreateSailMasterLiveSimulatorConnector(host, port, raceId, raceName, raceDescription, boatClass); } else { - Triple key = new Triple(host, port, raceId); + Util.Triple key = new Util.Triple(host, port, raceId); SailMasterConnector result = connectors.get(key); if (result == null || result.isStopped()) { if (result == null) { @@ -68,7 +68,7 @@ public class SwissTimingFactoryImpl implements SwissTimingFactory { @Override public SailMasterConnector getOrCreateSailMasterLiveSimulatorConnector(String host, int port, String raceId, String raceName, String raceDescription, BoatClass boatClass) throws InterruptedException, ParseException { - Triple key = new Triple<>(host, port, raceId); + Util.Triple key = new Util.Triple<>(host, port, raceId); SailMasterConnector result = connectors.get(key); if (result == null) { result = new SailMasterLiveSimulatorConnectorImpl(host, port, raceId, raceName, raceDescription, boatClass); diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java index 0780917c142..5bb94a82269 100644 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/SwissTimingRaceTrackerImpl.java @@ -33,7 +33,6 @@ import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.impl.WindSourceWithAdditionalID; import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.racelog.tracking.GPSFixStore; @@ -77,7 +76,7 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl implemen private final String raceDescription; private final BoatClass boatClass; private final DomainFactory domainFactory; - private final Triple id; + private final com.sap.sse.common.Util.Triple id; private final Regatta regatta; private final WindStore windStore; private final GPSFixStore gpsFixStore; @@ -143,8 +142,8 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl implemen return trackedRegatta; } - static Triple createID(String raceID, String hostname, int port) { - return new Triple(raceID, hostname, port); + static com.sap.sse.common.Util.Triple createID(String raceID, String hostname, int port) { + return new com.sap.sse.common.Util.Triple(raceID, hostname, port); } @Override @@ -239,7 +238,7 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl implemen } @Override - public Triple getID() { + public com.sap.sse.common.Util.Triple getID() { return id; } @@ -324,7 +323,7 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl implemen @Override public void receivedTimingData(String raceID, String boatID, - List> markIndicesRanksAndTimesSinceStartInMilliseconds) { + List> markIndicesRanksAndTimesSinceStartInMilliseconds) { assert this.raceID.equals(raceID); if (isTrackedRaceStillReachable()) { Competitor competitor = getCompetitorByBoatIDAndRaceIDOrBoatClass(boatID, raceID, boatClass); @@ -348,7 +347,7 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl implemen trackedRace.unlockAfterRead(markPassings); } // ...and then overwrite those for which we received "new evidence" - for (Triple markIndexRankAndTimeSinceStartInMilliseconds : markIndicesRanksAndTimesSinceStartInMilliseconds) { + for (com.sap.sse.common.Util.Triple markIndexRankAndTimeSinceStartInMilliseconds : markIndicesRanksAndTimesSinceStartInMilliseconds) { Waypoint waypoint = Util.get(trackedRace.getRace().getCourse().getWaypoints(), markIndexRankAndTimeSinceStartInMilliseconds.getA()); // If the rank and time information is empty, we interpret this by clearing the mark rounding if any @@ -409,7 +408,7 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl implemen @Override public void receivedClockAtMark(String raceID, - List> markIndicesTimePointsAndBoatIDs) { + List> markIndicesTimePointsAndBoatIDs) { // Ignored because it's covered by TMD. Mail from Kai Hahndorf of 2011-11-15T12:42:00Z: // "Die TMD werden immer gesendet. Das CAM Protokoll ist nur fuer unsere TV-Grafik wichtig, da damit die Rueckstandsuhr gestartet wird." } diff --git a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/TMDMessageQueue.java b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/TMDMessageQueue.java index 4851658c50e..a2f0010c9a4 100755 --- a/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/TMDMessageQueue.java +++ b/java/com.sap.sailing.domain.swisstimingadapter/src/com/sap/sailing/domain/swisstimingadapter/impl/TMDMessageQueue.java @@ -12,10 +12,10 @@ import java.util.logging.Logger; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Course; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.TrackedRace; +import com.sap.sse.common.Util; /** * When TMD messages about mark passings arrive with their race start time-relative time stamp, and no race start time @@ -31,10 +31,10 @@ public class TMDMessageQueue { private static class TMDMessageContents { private final String raceID; private final String boatID; - private final List> markIndicesRanksAndTimesSinceStartInMilliseconds; + private final List> markIndicesRanksAndTimesSinceStartInMilliseconds; public TMDMessageContents(String raceID, String boatID, - List> markIndicesRanksAndTimesSinceStartInMilliseconds) { + List> markIndicesRanksAndTimesSinceStartInMilliseconds) { super(); this.raceID = raceID; this.boatID = boatID; @@ -49,7 +49,7 @@ public class TMDMessageQueue { return boatID; } - public List> getMarkIndicesRanksAndTimesSinceStartInMilliseconds() { + public List> getMarkIndicesRanksAndTimesSinceStartInMilliseconds() { return markIndicesRanksAndTimesSinceStartInMilliseconds; } @@ -58,7 +58,7 @@ public class TMDMessageQueue { StringBuilder result = new StringBuilder("TMD|"+getRaceID()+"|"+getBoatID()+"|"); result.append(getMarkIndicesRanksAndTimesSinceStartInMilliseconds().size()); result.append('|'); - for (Triple markIndexRankAndTimeSinceStartInMilliseconds : getMarkIndicesRanksAndTimesSinceStartInMilliseconds()) { + for (Util.Triple markIndexRankAndTimeSinceStartInMilliseconds : getMarkIndicesRanksAndTimesSinceStartInMilliseconds()) { result.append(markIndexRankAndTimeSinceStartInMilliseconds.getA()); result.append(';'); if (markIndexRankAndTimeSinceStartInMilliseconds.getB() != null) { @@ -82,7 +82,7 @@ public class TMDMessageQueue { queuedMessages = new HashSet<>(); } - public synchronized void enqueue(String raceID, String boatID, List> markIndicesRanksAndTimesSinceStartInMilliseconds) { + public synchronized void enqueue(String raceID, String boatID, List> markIndicesRanksAndTimesSinceStartInMilliseconds) { final TMDMessageContents message = new TMDMessageContents(raceID, boatID, markIndicesRanksAndTimesSinceStartInMilliseconds); queuedMessages.add(message); logger.info("Queued TMD message "+message+" for replay when start time has been received"); @@ -132,7 +132,7 @@ public class TMDMessageQueue { // just have been guessed. // This will avoid that the start time inference // rules consider them and let them take precedence over the start time received - for (Triple markIndexRankAndTimeSinceStartInMilliseconds : messageContents + for (Util.Triple markIndexRankAndTimeSinceStartInMilliseconds : messageContents .getMarkIndicesRanksAndTimesSinceStartInMilliseconds()) { if (cleansedMarkPassingsForCompetitor.containsKey(markIndexRankAndTimeSinceStartInMilliseconds .getA())) { diff --git a/java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayToDomainAdapter.java b/java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayToDomainAdapter.java index a81b3ac2a40..9a1365b26c5 100755 --- a/java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayToDomainAdapter.java +++ b/java/com.sap.sailing.domain.swisstimingreplayadapter/src/com/sap/sailing/domain/swisstimingreplayadapter/impl/SwissTimingReplayToDomainAdapter.java @@ -35,7 +35,6 @@ import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.impl.WindSourceWithAdditionalID; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.racelog.tracking.EmptyGPSFixStore; @@ -290,9 +289,9 @@ public class SwissTimingReplayToDomainAdapter extends SwissTimingReplayAdapter { Course course = race.getCourse(); try { // TODO: Does SwissTiming also deliver the passing side for course marks? - List> courseToUpdate = new ArrayList>(); + List> courseToUpdate = new ArrayList>(); for (ControlPoint cp : currentCourseDefinition) { - courseToUpdate.add(new Pair(cp, null)); + courseToUpdate.add(new com.sap.sse.common.Util.Pair(cp, null)); } course.update(courseToUpdate, domainFactory.getBaseDomainFactory()); } catch (PatchFailedException e) { diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/MediaTrackTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/MediaTrackTest.java index 75cd78a4515..0ea678cf1bb 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/MediaTrackTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/MediaTrackTest.java @@ -1,13 +1,14 @@ package com.sap.sailing.domain.common; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import java.util.Date; import org.junit.Test; import com.sap.sailing.domain.common.media.MediaTrack; -import static org.junit.Assert.*; - public class MediaTrackTest { @Test diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/MediaUtilTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/MediaUtilTest.java index 256b4809925..b5f4d581dd4 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/MediaUtilTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/MediaUtilTest.java @@ -1,14 +1,14 @@ package com.sap.sailing.domain.common; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + import java.util.Date; import org.junit.Test; import com.sap.sailing.domain.common.media.MediaUtil; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - public class MediaUtilTest { @Test diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/BeaufortTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/BeaufortTest.java index ccf01878328..cb54b39a073 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/BeaufortTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/BeaufortTest.java @@ -1,6 +1,6 @@ package com.sap.sailing.domain.common.test; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; import org.junit.Test; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/LeaderboardDTODiffingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/LeaderboardDTODiffingTest.java index b1feeddb4e0..61085fc595f 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/LeaderboardDTODiffingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/common/test/LeaderboardDTODiffingTest.java @@ -35,7 +35,6 @@ import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.domain.common.dto.RaceDTO; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.test.StoredTrackBasedTest; import com.sap.sailing.util.ClonerImpl; @@ -145,18 +144,18 @@ public class LeaderboardDTODiffingTest { } newVersion.rows = newRows; Map rowsBeforeStripping = newVersion.rows; - Map, List> previousLegDetailsBeforeStripping = new HashMap<>(); + Map, List> previousLegDetailsBeforeStripping = new HashMap<>(); for (Map.Entry e : rowsBeforeStripping.entrySet()) { for (Map.Entry e2 : e.getValue().fieldsByRaceColumnName.entrySet()) { if (e2.getValue().legDetails != null) { - previousLegDetailsBeforeStripping.put(new Pair(e.getKey(), e2.getKey()), + previousLegDetailsBeforeStripping.put(new com.sap.sse.common.Util.Pair(e.getKey(), e2.getKey()), new ArrayList<>(e2.getValue().legDetails)); } } } newVersion.strip(previousVersion); // see bug 1455; check that the stripping doesn't kill the previous leaderboard's legDetails lists - for (Map.Entry, List> e : previousLegDetailsBeforeStripping.entrySet()) { + for (Map.Entry, List> e : previousLegDetailsBeforeStripping.entrySet()) { final LeaderboardRowDTO leaderboardRowDTO = rowsBeforeStripping.get(e.getKey().getA()); if (leaderboardRowDTO != null) { List newLegDetails = leaderboardRowDTO.fieldsByRaceColumnName.get(e.getKey().getB()).legDetails; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/AbstractTracTracLiveTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/AbstractTracTracLiveTest.java index 1b23c69fa1b..71bd4100723 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/AbstractTracTracLiveTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/AbstractTracTracLiveTest.java @@ -24,11 +24,11 @@ import org.junit.rules.Timeout; import com.maptrack.client.io.TypeController; import com.sap.sailing.domain.common.PassingInstruction; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tractracadapter.Receiver; import com.sap.sailing.domain.tractracadapter.TracTracConnectionConstants; import com.sap.sailing.domain.tractracadapter.TracTracControlPoint; import com.sap.sailing.domain.tractracadapter.impl.ControlPointAdapter; +import com.sap.sse.common.Util; import com.tractrac.clientmodule.ControlPoint; import com.tractrac.clientmodule.Event; import com.tractrac.clientmodule.data.DataController; @@ -205,10 +205,10 @@ public abstract class AbstractTracTracLiveTest extends StoredTrackBasedTest impl System.err.println("Error with live data "+arg0); } - public static Iterable> getTracTracControlPointsWithPassingInstructions(Iterable controlPoints) { - List> ttControlPoints = new ArrayList>(); + public static Iterable> getTracTracControlPointsWithPassingInstructions(Iterable controlPoints) { + List> ttControlPoints = new ArrayList>(); for (com.tractrac.clientmodule.ControlPoint cp : controlPoints) { - ttControlPoints.add(new Pair(new ControlPointAdapter(cp), null)); + ttControlPoints.add(new Util.Pair(new ControlPointAdapter(cp), null)); } return ttControlPoints; } 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 7589ca46242..7e7e46dd713 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 @@ -31,7 +31,6 @@ import com.sap.sailing.domain.base.impl.RegattaImpl; import com.sap.sailing.domain.base.impl.WaypointImpl; import com.sap.sailing.domain.common.PassingInstruction; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.racelog.tracking.EmptyGPSFixStore; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedLeg; @@ -180,10 +179,10 @@ public class CourseTest { assertEquals(3, Util.size(course.getWaypoints())); assertEquals(2, Util.size(course.getLegs())); assertWaypointIndexes(course); - List> courseToUpdate = new ArrayList>(); - courseToUpdate.add(new Pair(wp2.getMarks().iterator().next(), wp2.getPassingInstructions())); - courseToUpdate.add(new Pair(wp3.getMarks().iterator().next(), wp3.getPassingInstructions())); - courseToUpdate.add(new Pair(wp1.getMarks().iterator().next(), wp1.getPassingInstructions())); + List> courseToUpdate = new ArrayList>(); + courseToUpdate.add(new com.sap.sse.common.Util.Pair(wp2.getMarks().iterator().next(), wp2.getPassingInstructions())); + courseToUpdate.add(new com.sap.sse.common.Util.Pair(wp3.getMarks().iterator().next(), wp3.getPassingInstructions())); + courseToUpdate.add(new com.sap.sse.common.Util.Pair(wp1.getMarks().iterator().next(), wp1.getPassingInstructions())); course.update(courseToUpdate, DomainFactory.INSTANCE); assertWaypointIndexes(course); } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateTest.java index ffd86d338d1..7091fc8fcb0 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/CourseUpdateTest.java @@ -31,7 +31,6 @@ import com.sap.sailing.domain.base.impl.CourseImpl; import com.sap.sailing.domain.base.impl.MarkImpl; import com.sap.sailing.domain.base.impl.WaypointImpl; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; import com.sap.sailing.domain.tracking.DynamicTrackedRace; @@ -82,7 +81,7 @@ public class CourseUpdateTest extends AbstractTracTracLiveTest { }, /* delayToLiveInMillis */ 0l, /* millisecondsOverWhichToAverageWind */ 30000, /* simulator */ null, /*courseDesignUpdateURI*/ null, /*tracTracUsername*/ null, /*tracTracPassword*/ null) { @Override - protected void handleEvent(Triple event) { + protected void handleEvent(com.sap.sse.common.Util.Triple event) { super.handleEvent(event); synchronized (routeData) { routeData[0] = event.getB(); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/FetchTracksAndStoreLocallyTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/FetchTracksAndStoreLocallyTest.java index 20352794864..84353f4df6f 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/FetchTracksAndStoreLocallyTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/FetchTracksAndStoreLocallyTest.java @@ -12,8 +12,8 @@ import org.junit.Test; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; -import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.DynamicTrackedRace; +import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.RaceChangeListener; import com.sap.sailing.domain.tracking.RaceListener; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardForKielWeekTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardForKielWeekTest.java index bf39cfb080a..e3e1195d331 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardForKielWeekTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardForKielWeekTest.java @@ -21,13 +21,13 @@ import com.sap.sailing.domain.common.WindSourceType; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.impl.WindSourceImpl; 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.tracking.impl.WindImpl; import com.sap.sailing.domain.tractracadapter.ReceiverType; +import com.sap.sse.common.Util; public class LeaderboardForKielWeekTest extends OnlineTracTracBasedTest { @@ -48,19 +48,19 @@ public class LeaderboardForKielWeekTest extends OnlineTracTracBasedTest { Competitor kevin = getCompetitorByName("Kevin"); RaceColumn column = leaderboard.addRace(getTrackedRace(), "Test Race 1", /* medalRace */ false, defaultFleet); assertEquals(17, leaderboard.getTotalPoints(kevin, now), 0.000000001); - Pair key = new Pair(kevin, column); + Util.Pair key = new Util.Pair(kevin, column); assertEquals(17, leaderboard.getContent(now).get(key).getTotalPoints(), 0.000000001); assertEquals(17, leaderboard.getEntry(kevin, column, now).getTotalPoints(), 0.000000001); loadRace("event_20110609_KielerWoch-505_Race_3.txt", "event_20110609_KielerWoch-505_Race_3.mtb"); // 505 Race 3 column = leaderboard.addRace(getTrackedRace(), "Test Race 2", /* medalRace */ false, defaultFleet); - key = new Pair(kevin, column); + key = new Util.Pair(kevin, column); // In Race 3, Hasso ranked 31st assertEquals(29, leaderboard.getTotalPoints(kevin, now), 0.000000001); assertEquals(12, leaderboard.getContent(now).get(key).getTotalPoints(), 0.000000001); assertEquals(12, leaderboard.getEntry(kevin, column, now).getTotalPoints(), 0.000000001); loadRace("event_20110609_KielerWoch-505_race_4.txt", "event_20110609_KielerWoch-505_race_4.mtb"); // 505 Race 4 column = leaderboard.addRace(getTrackedRace(), "Test Race 3", /* medalRace */ false, defaultFleet); - key = new Pair(kevin, column); + key = new Util.Pair(kevin, column); // now the first race is discarded because Kevin ranked worst compared to the other two; in race 4 he ranked 10th assertEquals(22, leaderboard.getTotalPoints(kevin, now), 0.000000001); assertEquals(10, leaderboard.getContent(now).get(key).getTotalPoints(), 0.000000001); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardOfflineTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardOfflineTest.java index 354af34fed2..6145f865f76 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardOfflineTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/LeaderboardOfflineTest.java @@ -35,7 +35,6 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.dto.LeaderboardDTO; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.impl.FlexibleLeaderboardImpl; import com.sap.sailing.domain.leaderboard.impl.LowPoint; @@ -323,7 +322,7 @@ public class LeaderboardOfflineTest extends AbstractLeaderboardTest { int medalRacePoints = getMedalRacePoints(competitor, now, defaultFleet); for (TrackedRace race : testRaces) { RaceColumn raceColumn = raceColumnsInLeaderboard.get(race); - Pair key = new Pair(competitor, raceColumn); + com.sap.sse.common.Util.Pair key = new com.sap.sse.common.Util.Pair(competitor, raceColumn); if (race.hasStarted(now)) { int rank = race.getRank(competitor, now); assertEquals(rank, leaderboard.getTrackedRank(competitor, raceColumn, now)); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OfflineSerializationTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OfflineSerializationTest.java index 454f21a12a7..241d4fd0ade 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OfflineSerializationTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/OfflineSerializationTest.java @@ -32,7 +32,6 @@ import com.sap.sailing.domain.common.Color; import com.sap.sailing.domain.common.Duration; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; import com.sap.sailing.domain.leaderboard.impl.FlexibleLeaderboardImpl; @@ -53,16 +52,16 @@ public class OfflineSerializationTest extends AbstractSerializationTest { DomainFactory receiverDomainFactory = new DomainFactoryImpl(); final Throwable s1 = new Throwable(); final Throwable s2 = new Throwable(); - Pair p = - new Pair( + com.sap.sse.common.Util.Pair p = + new com.sap.sse.common.Util.Pair( s1, s2); - HashSet> s = - new HashSet>(); + HashSet> s = + new HashSet>(); s.add(p); - Set> ss = + Set> ss = cloneBySerialization(s, /* resolveAgainst */ receiverDomainFactory); - Pair ps = ss.iterator().next(); + com.sap.sse.common.Util.Pair ps = ss.iterator().next(); Throwable s1Des = ps.getA(); Throwable s2Des = ps.getB(); assertNotSame(s, ss); @@ -70,8 +69,8 @@ public class OfflineSerializationTest extends AbstractSerializationTest { assertNotSame(s1, s1Des); assertNotSame(s2, s2Des); assertEquals(1, ss.size()); - Pair pNew = - new Pair(s1Des, s2Des); + com.sap.sse.common.Util.Pair pNew = + new com.sap.sse.common.Util.Pair(s1Des, s2Des); assertEquals(ps.hashCode(), pNew.hashCode()); assertTrue(ss.contains(pNew)); } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/PolarSheetGenerationTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/PolarSheetGenerationTest.java index 1d6d1b6f49e..dfccf777536 100644 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/PolarSheetGenerationTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/PolarSheetGenerationTest.java @@ -41,8 +41,6 @@ import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.PolarSheetGenerationSettingsImpl; -import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.domain.common.impl.WindSteppingWithMaxDistance; import com.sap.sailing.domain.polarsheets.DataPointWithOriginInfo; @@ -223,14 +221,14 @@ public class PolarSheetGenerationTest { } @Override - public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at) { - return new WindWithConfidenceImpl>(new WindImpl(p, at, + public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at) { + return new WindWithConfidenceImpl>(new WindImpl(p, at, new KnotSpeedWithBearingImpl(2.0, new DegreeBearingImpl(180.0))), 0.9, - new Pair(p, at), true); + new com.sap.sse.common.Util.Pair(p, at), true); } @Override - public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at, + public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at, Iterable windSourcesToExclude) { return getWindWithConfidence(p, at); } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializationWithOnlineRaceTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializationWithOnlineRaceTest.java index a5d42cb45c4..f070dce9142 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializationWithOnlineRaceTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/SerializationWithOnlineRaceTest.java @@ -25,7 +25,6 @@ import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; import com.sap.sailing.domain.tracking.GPSFixMoving; @@ -51,11 +50,11 @@ public class SerializationWithOnlineRaceTest extends OnlineTracTracBasedTest { new DegreeBearingImpl(65))), new WindSourceImpl(WindSourceType.WEB)); } - private Pair getSerializationSizeAndTime(Serializable s) throws IOException { + private com.sap.sse.common.Util.Pair getSerializationSizeAndTime(Serializable s) throws IOException { ByteArrayOutputStream bos = new ByteArrayOutputStream(); long start = System.currentTimeMillis(); new ObjectOutputStream(bos).writeObject(s); - return new Pair(bos.size(), System.currentTimeMillis()-start); + return new com.sap.sse.common.Util.Pair(bos.size(), System.currentTimeMillis()-start); } @Test @@ -67,7 +66,7 @@ public class SerializationWithOnlineRaceTest extends OnlineTracTracBasedTest { cloneOfFindelsTrack.lockForRead(); try { assertEquals(Util.size(findelsTrack.getFixes()), Util.size(cloneOfFindelsTrack.getFixes())); - Pair sizeAndTime = getSerializationSizeAndTime(findelsTrack); + com.sap.sse.common.Util.Pair sizeAndTime = getSerializationSizeAndTime(findelsTrack); System.out.println(sizeAndTime); assertTrue(sizeAndTime.getA() > 100000); } finally { 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 f02a9a42231..2f31e9cde6c 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 @@ -17,8 +17,8 @@ import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.base.impl.BoatClassImpl; import com.sap.sailing.domain.base.impl.BoatImpl; import com.sap.sailing.domain.base.impl.CompetitorImpl; -import com.sap.sailing.domain.base.impl.CourseImpl; import com.sap.sailing.domain.base.impl.ControlPointWithTwoMarksImpl; +import com.sap.sailing.domain.base.impl.CourseImpl; import com.sap.sailing.domain.base.impl.MarkImpl; import com.sap.sailing.domain.base.impl.NationalityImpl; import com.sap.sailing.domain.base.impl.PersonImpl; diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackTest.java index 809b4a1d79a..3ecb23fb547 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/TrackTest.java @@ -40,8 +40,6 @@ import com.sap.sailing.domain.common.impl.MeterDistance; import com.sap.sailing.domain.common.impl.MeterPerSecondSpeedWithDegreeBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.domain.tracking.GPSFixMoving; @@ -262,12 +260,12 @@ public class TrackTest { */ @Test public void testDistanceTraveledBackwardsQuery() { - final Set> cacheEntries = new HashSet<>(); + final Set> cacheEntries = new HashSet<>(); final DistanceCache distanceCache = new DistanceCache("test-DistanceCache") { @Override public void cache(TimePoint from, TimePoint to, Distance distance) { super.cache(from, to, distance); - cacheEntries.add(new Triple<>(from, to, distance)); + cacheEntries.add(new com.sap.sse.common.Util.Triple<>(from, to, distance)); } }; @@ -632,7 +630,7 @@ public class TrackTest { } invalidationCalls.clear(); assertEquals(speed.getMetersPerSecond()*(steps-1), track.getDistanceTraveled(now, start).getMeters(), 0.01); - final Pair> fullIntervalCacheEntry = distanceCache.getEarliestFromAndDistanceAtOrAfterFrom(now, start); + final com.sap.sse.common.Util.Pair> fullIntervalCacheEntry = distanceCache.getEarliestFromAndDistanceAtOrAfterFrom(now, start); assertNotNull(fullIntervalCacheEntry); // no more entry for "to"-value start in cache assertEquals(start, fullIntervalCacheEntry.getA()); assertEquals(now, fullIntervalCacheEntry.getB().getA()); @@ -648,7 +646,7 @@ public class TrackTest { final TimePoint timePointOfLastOriginalFix = track.getLastRawFix().getTimePoint(); assertEquals(speed.getMetersPerSecond() * (steps - 1), track.getDistanceTraveled(now, timePointOfLastOriginalFix).getMeters(), 0.01); - final Pair> newFullIntervalCacheEntry = distanceCache + final com.sap.sse.common.Util.Pair> newFullIntervalCacheEntry = distanceCache .getEarliestFromAndDistanceAtOrAfterFrom(now, timePointOfLastOriginalFix); assertNotNull(newFullIntervalCacheEntry); // no more entry for "to"-value start in cache assertEquals(timePointOfLastOriginalFix, newFullIntervalCacheEntry.getA()); @@ -665,7 +663,7 @@ public class TrackTest { assertTrue(invalidationCalls.iterator().next().equals(timePointOfLastRawFixBeforeLateOutlier)); invalidationCalls.clear(); // expect the invalidation to have started after the single cache entry, so the cache entry still has to be there: - final Pair> stillPresentFullIntervalCacheEntry = distanceCache + final com.sap.sse.common.Util.Pair> stillPresentFullIntervalCacheEntry = distanceCache .getEarliestFromAndDistanceAtOrAfterFrom(now, timePointOfLastOriginalFix); assertNull(stillPresentFullIntervalCacheEntry); // no more entry for "to"-value start in cache because new temporary outlier lies in previously cached interval GPSFix polishedLastFix = track.getLastFixBefore(new MillisecondsTimePoint(Long.MAX_VALUE)); // get the last smoothened fix... @@ -690,7 +688,7 @@ public class TrackTest { assertEquals(track.getLastFixBefore(timePointOfLastRawFixBeforeLateOutlier).getTimePoint().plus(1), invalidationCalls.iterator().next()); assertTrue(timePointForLateOutlier.compareTo(fix.getTimePoint()) < 0); // expect the invalidation to have started at the fix before the outlier, leaving the previous result ending at the fix right before the outlier intact - final Pair> stillStillPresentFullIntervalCacheEntry = distanceCache + final com.sap.sse.common.Util.Pair> stillStillPresentFullIntervalCacheEntry = distanceCache .getEarliestFromAndDistanceAtOrAfterFrom(now, timePointOfLastOriginalFix); assertNull(stillStillPresentFullIntervalCacheEntry); // still nothing in the cache track.lockForRead(); @@ -796,11 +794,11 @@ public class TrackTest { assertEquals(speed.getMetersPerSecond()*(steps-1), track.getDistanceTraveled(now, start).getMeters(), 0.01); assertTrue(invalidationCalls.isEmpty()); // expect a cache entry exactly for the strip's boundaries - Pair> stripCacheEntry = distanceCache.getEarliestFromAndDistanceAtOrAfterFrom(stripFrom, stripTo); + com.sap.sse.common.Util.Pair> stripCacheEntry = distanceCache.getEarliestFromAndDistanceAtOrAfterFrom(stripFrom, stripTo); assertEquals(stripTo, stripCacheEntry.getA()); assertEquals(stripFrom, stripCacheEntry.getB().getA()); // expect a cache entry exactly for the full boundaries - Pair> fullCacheEntry = distanceCache.getEarliestFromAndDistanceAtOrAfterFrom(now, start); + com.sap.sse.common.Util.Pair> fullCacheEntry = distanceCache.getEarliestFromAndDistanceAtOrAfterFrom(now, start); assertEquals(start, fullCacheEntry.getA()); assertEquals(now, fullCacheEntry.getB().getA()); } @@ -930,7 +928,7 @@ public class TrackTest { speed.travel(firstFixSoFar.getTimePoint(), firstFixSoFar.getTimePoint().plus(timespan))); GPSFixMoving newFirstFix = new GPSFixMovingImpl(newPosition, slightlyBeforeFirstFix, speed); track.addGPSFix(newFirstFix); - Pair intervalAffected = track.getEstimatedPositionTimePeriodAffectedBy(newFirstFix); + com.sap.sse.common.Util.Pair intervalAffected = track.getEstimatedPositionTimePeriodAffectedBy(newFirstFix); Position newPositionAtBeginningOfTime = track.getEstimatedPosition(beginningOfTime, /* extrapolate */false); assertFalse(newPositionAtBeginningOfTime.equals(positionAtBeginningOfTime)); assertTrue(!intervalAffected.getA().after(beginningOfTime)); @@ -949,7 +947,7 @@ public class TrackTest { speed.travel(lastFixSoFar.getTimePoint(), lastFixSoFar.getTimePoint().plus(timespan))); GPSFixMoving newLastFix = new GPSFixMovingImpl(newPosition, slightlyAfterLastFix, speed); track.addGPSFix(newLastFix); - Pair intervalAffected = track.getEstimatedPositionTimePeriodAffectedBy(newLastFix); + com.sap.sse.common.Util.Pair intervalAffected = track.getEstimatedPositionTimePeriodAffectedBy(newLastFix); Position newPositionAtEndOfTime = track.getEstimatedPosition(endOfTime, /* extrapolate */false); assertFalse(newPositionAtEndOfTime.equals(positionAtEndOfTime)); assertTrue(!intervalAffected.getB().before(endOfTime)); @@ -967,7 +965,7 @@ public class TrackTest { assertNull(positionAtEndOfTime); GPSFixMoving newFix = new GPSFixMovingImpl(new DegreePosition(12, 34), now, new KnotSpeedWithBearingImpl(12, new DegreeBearingImpl(123))); myTrack.addGPSFix(newFix); - Pair intervalAffected = myTrack.getEstimatedPositionTimePeriodAffectedBy(newFix); + com.sap.sse.common.Util.Pair intervalAffected = myTrack.getEstimatedPositionTimePeriodAffectedBy(newFix); Position newPositionAtBeginningOfTime = myTrack.getEstimatedPosition(beginningOfTime, /* extrapolate */false); Position newPositionAtEndOfTime = myTrack.getEstimatedPosition(now, /* extrapolate */false); assertFalse(newPositionAtBeginningOfTime.equals(positionAtBeginningOfTime)); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindEstimationOnConstructedTracksTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindEstimationOnConstructedTracksTest.java index cd505684e59..2ebe9b2c901 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindEstimationOnConstructedTracksTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/WindEstimationOnConstructedTracksTest.java @@ -31,7 +31,6 @@ import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.NauticalMileDistance; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; import com.sap.sailing.domain.tracking.GPSFixMoving; @@ -45,6 +44,7 @@ import com.sap.sailing.domain.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.tracking.impl.MarkPassingImpl; import com.sap.sailing.domain.tracking.impl.TrackBasedEstimationWindTrackImpl; import com.sap.sailing.domain.tracking.impl.WindImpl; +import com.sap.sse.common.Util; public class WindEstimationOnConstructedTracksTest extends StoredTrackBasedTest { private List competitors; @@ -116,14 +116,14 @@ public class WindEstimationOnConstructedTracksTest extends StoredTrackBasedTest // produces estimated bearing of 170deg; result should be averaged between 170 (estimation) and 180 (web) deg setBearingForCompetitor(competitors.get(0), now, 305); setBearingForCompetitor(competitors.get(1), now, 35); - WindWithConfidence> combinedWindDirectionMinClusterSizeOne = getTrackedRace() + WindWithConfidence> combinedWindDirectionMinClusterSizeOne = getTrackedRace() .getWindWithConfidence(/* position */null, now); final double combinedDegreesMinClusterSizeOne = combinedWindDirectionMinClusterSizeOne.getObject().getBearing().getDegrees(); assertTrue(combinedDegreesMinClusterSizeOne > 170 && combinedDegreesMinClusterSizeOne < 180); // now produce a minimum cluster size of 2, raising the estimation's confidence setBearingForCompetitor(competitors.get(2), now, 305); setBearingForCompetitor(competitors.get(3), now, 35); - WindWithConfidence> combinedWindDirectionMinClusterSizeTwo = getTrackedRace() + WindWithConfidence> combinedWindDirectionMinClusterSizeTwo = getTrackedRace() .getWindWithConfidence(/* position */null, now); final double combinedDegreesNow = combinedWindDirectionMinClusterSizeTwo.getObject().getBearing().getDegrees(); assertTrue(combinedDegreesNow > 170 && combinedDegreesNow < 180); diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMarkPassingTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMarkPassingTest.java index 46a462be763..4b5aa7fcfc4 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMarkPassingTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/AbstractMarkPassingTest.java @@ -25,7 +25,6 @@ import com.sap.sailing.domain.common.WindSourceType; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.domain.markpassingcalculation.Candidate; import com.sap.sailing.domain.markpassingcalculation.CandidateChooser; @@ -40,6 +39,7 @@ import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.impl.WindImpl; import com.sap.sailing.domain.tractracadapter.ReceiverType; +import com.sap.sse.common.Util; public abstract class AbstractMarkPassingTest extends OnlineTracTracBasedTest { @@ -217,7 +217,7 @@ public abstract class AbstractMarkPassingTest extends OnlineTracTracBasedTest { } finally { getTrackedRace().getTrack(c).unlockAfterRead(); } - Pair, Iterable> f = finder.getCandidateDeltas(c, fixes); + Util.Pair, Iterable> f = finder.getCandidateDeltas(c, fixes); chooser.calculateMarkPassDeltas(c, f); boolean gotPassed = true; boolean gotOther = false; 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 14d19636981..1c7bfd6c19c 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 @@ -33,7 +33,6 @@ import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.impl.HighPoint; import com.sap.sailing.domain.racelog.tracking.EmptyGPSFixStore; import com.sap.sailing.domain.tracking.DynamicTrackedRace; @@ -43,6 +42,7 @@ import com.sap.sailing.domain.tracking.impl.EmptyWindStore; import com.sap.sailing.domain.tracking.impl.GPSFixImpl; import com.sap.sailing.domain.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.tracking.impl.TrackedRegattaImpl; +import com.sap.sse.common.Util; public class AbstractMockedRaceMarkPassingTest { protected Competitor bob = new CompetitorImpl("Bob", "Bob", null, null, null); @@ -71,9 +71,9 @@ public class AbstractMockedRaceMarkPassingTest { trackedRace.setStartTimeReceived(new MillisecondsTimePoint(System.currentTimeMillis() - 120000)); List tps = Arrays.asList(new MillisecondsTimePoint(System.currentTimeMillis()), new MillisecondsTimePoint(System.currentTimeMillis() - 30000), new MillisecondsTimePoint(System.currentTimeMillis() + 30000)); - List> pos = Arrays.asList(new Pair(m, new DegreePosition(0, 0)), new Pair(m2, new DegreePosition(-0.001, -0.00005)), - new Pair(m3, new DegreePosition(-0.001, 0.00005))); - for (Pair pair : pos) { + List> pos = Arrays.asList(new Util.Pair(m, new DegreePosition(0, 0)), new Util.Pair(m2, new DegreePosition(-0.001, -0.00005)), + new Util.Pair(m3, new DegreePosition(-0.001, 0.00005))); + for (Util.Pair pair : pos) { for (TimePoint t : tps) { trackedRace.recordFix(pair.getA(), new GPSFixImpl(pair.getB(), t)); } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MarkPassingCalculatorPerformanceTest.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MarkPassingCalculatorPerformanceTest.java index b1ac49f4be6..17a88657663 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MarkPassingCalculatorPerformanceTest.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/markpassing/MarkPassingCalculatorPerformanceTest.java @@ -13,7 +13,6 @@ import org.junit.AfterClass; import org.junit.Test; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.markpassingcalculation.AbstractCandidateFinder; import com.sap.sailing.domain.markpassingcalculation.Candidate; import com.sap.sailing.domain.markpassingcalculation.CandidateChooser; @@ -23,6 +22,7 @@ import com.sap.sailing.domain.test.measurements.MeasurementCase; import com.sap.sailing.domain.test.measurements.MeasurementXMLFile; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.domain.tracking.GPSFixMoving; +import com.sap.sse.common.Util; public class MarkPassingCalculatorPerformanceTest extends AbstractMockedRaceMarkPassingTest { @@ -72,7 +72,7 @@ public class MarkPassingCalculatorPerformanceTest extends AbstractMockedRaceMark } time = System.currentTimeMillis(); CandidateChooser c = new CandidateChooser(trackedRace); - c.calculateMarkPassDeltas(bob, new Pair, Iterable>(newCans, new ArrayList())); + c.calculateMarkPassDeltas(bob, new Util.Pair, Iterable>(newCans, new ArrayList())); time = System.currentTimeMillis() - time; ArrayList times = new ArrayList<>(); for (int i = 0; i < 100; i++) { @@ -82,7 +82,7 @@ public class MarkPassingCalculatorPerformanceTest extends AbstractMockedRaceMark ne.add(randomCan()); } time = System.currentTimeMillis(); - c.calculateMarkPassDeltas(bob, new Pair, Iterable>(ne, old)); + c.calculateMarkPassDeltas(bob, new Util.Pair, Iterable>(ne, old)); times.add(System.currentTimeMillis() - time); old = ne; } 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 ebf828ee700..0f0f6598464 100755 --- 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 @@ -32,7 +32,6 @@ import com.sap.sailing.domain.common.Tack; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.common.WindSourceType; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.tracking.GPSFixStore; @@ -58,6 +57,7 @@ import com.sap.sailing.domain.tracking.WindStore; import com.sap.sailing.domain.tracking.WindTrack; import com.sap.sailing.domain.tracking.WindWithConfidence; import com.sap.sailing.domain.tracking.impl.WindTrackImpl; +import com.sap.sse.common.Util; public class MockedTrackedRace implements DynamicTrackedRace { private static final long serialVersionUID = 5827912985564121181L; @@ -618,7 +618,7 @@ public class MockedTrackedRace implements DynamicTrackedRace { } @Override - public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at, + public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at, Iterable windSourcesToExclude) { // TODO Auto-generated method stub return null; @@ -631,7 +631,7 @@ public class MockedTrackedRace implements DynamicTrackedRace { } @Override - public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at) { + public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at) { // TODO Auto-generated method stub return null; } @@ -667,7 +667,7 @@ public class MockedTrackedRace implements DynamicTrackedRace { } @Override - public Iterable>> getMarkPassingsTimes() { + public Iterable>> getMarkPassingsTimes() { // TODO Auto-generated method stub return null; } @@ -945,7 +945,7 @@ public class MockedTrackedRace implements DynamicTrackedRace { } @Override - public Pair getPortAndStarboardMarks(TimePoint t, Waypoint w) { + public Util.Pair getPortAndStarboardMarks(TimePoint t, Waypoint w) { // TODO Auto-generated method stub return null; } diff --git a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java index ef9f70252a2..b30eef991e0 100755 --- a/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java +++ b/java/com.sap.sailing.domain.test/src/com/sap/sailing/domain/test/mock/MockedTrackedRaceWithStartTimeAndRanks.java @@ -24,7 +24,6 @@ import com.sap.sailing.domain.common.Tack; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.common.WindSourceType; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.tracking.GPSFixStore; import com.sap.sailing.domain.tracking.CourseDesignChangedListener; @@ -45,6 +44,7 @@ import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.domain.tracking.WindStore; import com.sap.sailing.domain.tracking.WindTrack; import com.sap.sailing.domain.tracking.WindWithConfidence; +import com.sap.sse.common.Util; /** * Simple mock for {@link TrackedRace} for leaderboard testing; the leaderboard only requests {@link #hasStarted(TimePoint)} and @@ -98,7 +98,7 @@ public class MockedTrackedRaceWithStartTimeAndRanks implements TrackedRace { } @Override - public Iterable>> getMarkPassingsTimes() { + public Iterable>> getMarkPassingsTimes() { // TODO Auto-generated method stub return null; } @@ -379,7 +379,7 @@ public class MockedTrackedRaceWithStartTimeAndRanks implements TrackedRace { } @Override - public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at) { + public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at) { // TODO Auto-generated method stub return null; } @@ -391,7 +391,7 @@ public class MockedTrackedRaceWithStartTimeAndRanks implements TrackedRace { } @Override - public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at, + public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at, Iterable windSourcesToExclude) { // TODO Auto-generated method stub return null; diff --git a/java/com.sap.sailing.domain.tractracadapter.persistence/META-INF/MANIFEST.MF b/java/com.sap.sailing.domain.tractracadapter.persistence/META-INF/MANIFEST.MF index 2661208dc39..05a553a24c9 100755 --- a/java/com.sap.sailing.domain.tractracadapter.persistence/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.domain.tractracadapter.persistence/META-INF/MANIFEST.MF @@ -10,5 +10,6 @@ Require-Bundle: com.mongodb.driver;bundle-version="2.6.2", com.sap.sailing.mongodb, com.sap.sailing.domain.tractracadapter, com.sap.sailing.domain, - com.sap.sailing.domain.common + com.sap.sailing.domain.common, + com.sap.sse.common Export-Package: com.sap.sailing.domain.tractracadapter.persistence diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/DomainFactory.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/DomainFactory.java index 16301840c45..2acff0ec20b 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/DomainFactory.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/DomainFactory.java @@ -23,7 +23,6 @@ import com.sap.sailing.domain.base.Sideline; import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.common.PassingInstruction; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.racelog.tracking.GPSFixStore; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; @@ -42,6 +41,7 @@ import com.sap.sailing.domain.tracking.impl.EmptyWindStore; import com.sap.sailing.domain.tractracadapter.impl.DomainFactoryImpl; import com.sap.sailing.domain.tractracadapter.impl.RaceCourseReceiver; import com.sap.sailing.domain.tractracadapter.impl.Simulator; +import com.sap.sse.common.Util; import com.tractrac.clientmodule.Competitor; import com.tractrac.clientmodule.Event; import com.tractrac.clientmodule.Race; @@ -65,7 +65,7 @@ public interface DomainFactory { com.sap.sailing.domain.common.TimePoint createTimePoint(long timestamp); - Course createCourse(String name, Iterable> controlPoints); + Course createCourse(String name, Iterable> controlPoints); Sideline createSideline(String name, Iterable controlPoints); @@ -232,7 +232,7 @@ public interface DomainFactory { * of waypoints. The waypoints are created from the control points and represent usages of the control points * in a course. A single control point may be used more than once in a course's list of waypoints. */ - void updateCourseWaypoints(Course courseToUpdate, Iterable> controlPoints) throws PatchFailedException; + void updateCourseWaypoints(Course courseToUpdate, Iterable> controlPoints) throws PatchFailedException; TracTracConfiguration createTracTracConfiguration(String name, String jsonURL, String liveDataURI, String storedDataURI, String courseDesignUpdateURI, String tracTracUsername, String tracTracPassword); @@ -249,7 +249,7 @@ public interface DomainFactory { */ RaceDefinition getAndWaitForRaceDefinition(UUID raceId, long timeoutInMilliseconds); - Pair, BoatClass> getCompetitorsAndDominantBoatClass(Race race); + Util.Pair, BoatClass> getCompetitorsAndDominantBoatClass(Race race); RaceTrackingConnectivityParameters createTrackingConnectivityParameters(URL paramURL, URI liveURI, URI storedURI, URI courseDesignUpdateURI, TimePoint startOfTracking, TimePoint endOfTracking, long delayToLiveInMillis, boolean simulateWithStartTimeNow, RaceLogStore raceLogStore, diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/TracTracAdapter.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/TracTracAdapter.java index ab116e5149e..f4003b3cc3f 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/TracTracAdapter.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/TracTracAdapter.java @@ -13,11 +13,11 @@ import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.tracking.RacesHandle; import com.sap.sailing.domain.tracking.TrackerManager; import com.sap.sailing.domain.tracking.WindStore; +import com.sap.sse.common.Util; public interface TracTracAdapter { DomainFactory getTracTracDomainFactory(); @@ -105,7 +105,7 @@ public interface TracTracAdapter { * and {@link #addTracTracRace(TrackerManager, URL, URI, URI, URI, RaceLogStore, WindStore, long, String, String)} will * fetch the JSON and clientparams.php documents to work with up-to-date data. */ - Pair> getTracTracRaceRecords(URL jsonURL, boolean loadClientParams) throws IOException, + Util.Pair> getTracTracRaceRecords(URL jsonURL, boolean loadClientParams) throws IOException, ParseException, org.json.simple.parser.ParseException, URISyntaxException; RaceRecord getSingleTracTracRaceRecord(URL jsonURL, String raceId, boolean loadClientParams) throws Exception; diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/TracTracRaceTracker.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/TracTracRaceTracker.java index edc61b4717c..9b8a982bf7d 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/TracTracRaceTracker.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/TracTracRaceTracker.java @@ -3,13 +3,13 @@ package com.sap.sailing.domain.tractracadapter; import java.net.URI; import java.net.URL; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.tracking.RaceTracker; +import com.sap.sse.common.Util; public interface TracTracRaceTracker extends RaceTracker { /** * returns the paramURL, liveURI and storedURI for the TracTrac connection maintained by this tracker */ - Triple getID(); + Util.Triple getID(); } diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/AbstractReceiverWithQueue.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/AbstractReceiverWithQueue.java index b3d2ceca9a9..9f1447a27c8 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/AbstractReceiverWithQueue.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/AbstractReceiverWithQueue.java @@ -5,7 +5,6 @@ import java.util.concurrent.TimeUnit; import java.util.logging.Logger; import com.sap.sailing.domain.base.RaceDefinition; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.RaceTracker; @@ -13,6 +12,7 @@ import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.TrackedRegatta; import com.sap.sailing.domain.tractracadapter.DomainFactory; import com.sap.sailing.domain.tractracadapter.Receiver; +import com.sap.sse.common.Util; import com.tractrac.clientmodule.Event; import com.tractrac.clientmodule.Race; @@ -27,7 +27,7 @@ import com.tractrac.clientmodule.Race; public abstract class AbstractReceiverWithQueue implements Runnable, Receiver { private static Logger logger = Logger.getLogger(AbstractReceiverWithQueue.class.getName()); - private final LinkedBlockingQueue> queue; + private final LinkedBlockingQueue> queue; private final DomainFactory domainFactory; private final com.tractrac.clientmodule.Event tractracEvent; private final DynamicTrackedRegatta trackedRegatta; @@ -47,7 +47,7 @@ public abstract class AbstractReceiverWithQueue implements Runnable, Re this.trackedRegatta = trackedRegatta; this.domainFactory = domainFactory; this.simulator = simulator; - this.queue = new LinkedBlockingQueue>(); + this.queue = new LinkedBlockingQueue>(); } protected synchronized void setAndStartThread(Thread thread) { @@ -75,7 +75,7 @@ public abstract class AbstractReceiverWithQueue implements Runnable, Re @Override public void stopAfterProcessingQueuedEvents() { - queue.add(new Triple(null, null, null)); + queue.add(new Util.Triple(null, null, null)); } protected Simulator getSimulator() { @@ -102,18 +102,18 @@ public abstract class AbstractReceiverWithQueue implements Runnable, Re }, timeoutInMilliseconds, TimeUnit.MILLISECONDS); } - protected void enqueue(Triple event) { + protected void enqueue(Util.Triple event) { queue.add(event); receivedEventDuringTimeout = true; } - private boolean isStopEvent(Triple event) { + private boolean isStopEvent(Util.Triple event) { return event.getA() == null && event.getB() == null && event.getC() == null; } @Override public void run() { - Triple event = null; + Util.Triple event = null; while (event == null || !isStopEvent(event)) { try { event = queue.take(); @@ -143,7 +143,7 @@ public abstract class AbstractReceiverWithQueue implements Runnable, Re } } - protected abstract void handleEvent(Triple event); + protected abstract void handleEvent(Util.Triple event); /** * Tries to find a {@link TrackedRace} for race in the {@link com.sap.sailing.domain.base.Regatta} diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/ClientParamsPHP.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/ClientParamsPHP.java index 5fdadcd1541..87422cce6c3 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/ClientParamsPHP.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/ClientParamsPHP.java @@ -25,8 +25,6 @@ import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tractracadapter.TracTracControlPoint; /** @@ -96,7 +94,7 @@ public class ClientParamsPHP { } private final static Pattern defaultPropertyNamePattern = Pattern.compile("([^0-9]*)(([0-9][0-9]*)(.*))?"); - private static Util.Pair getPropertyNamePrefixAndNumber(UUID uuid, String idPropertyName) { + private static com.sap.sse.common.Util.Pair getPropertyNamePrefixAndNumber(UUID uuid, String idPropertyName) { Matcher m = defaultPropertyNamePattern.matcher(idPropertyName); if (m.matches()) { final String propertyNamePrefix; @@ -107,7 +105,7 @@ public class ClientParamsPHP { } else { number = null; } - return new Util.Pair(propertyNamePrefix, number); + return new com.sap.sse.common.Util.Pair(propertyNamePrefix, number); } else { throw new RuntimeException("Unexpected ID property name "+idPropertyName+" that cannot be analyzed"); } @@ -128,7 +126,7 @@ public class ClientParamsPHP { this(uuid, getPropertyNamePrefixAndNumber(uuid, propertiesByID.get(uuid))); } - protected ObjectWithUUID(UUID uuid, Util.Pair propertyNamePrefixAndNumber) { + protected ObjectWithUUID(UUID uuid, com.sap.sse.common.Util.Pair propertyNamePrefixAndNumber) { this.uuid = uuid; propertyNamePrefix = propertyNamePrefixAndNumber.getA(); number = propertyNamePrefixAndNumber.getB(); @@ -171,7 +169,7 @@ public class ClientParamsPHP { public Event(UUID uuid) { // there is only one event in a document, and the race is not numbered; the property name // therefore doesn't follow the usual convention but simply has "Event" as its prefix - super(uuid, new Pair("Event", null)); + super(uuid, new com.sap.sse.common.Util.Pair("Event", null)); } public String getName() { @@ -209,7 +207,7 @@ public class ClientParamsPHP { public Race(UUID uuid) { // there is only one race in a document, and the race is not numbered; the property name // therefore doesn't follow the usual convention but simply has "Race" as its prefix - super(uuid, new Pair("Race", null)); + super(uuid, new com.sap.sse.common.Util.Pair("Race", null)); } public String getName() { 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 8b66996d840..5b4cc4cae31 100644 --- 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 @@ -50,7 +50,6 @@ import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.markpassingcalculation.MarkPassingCalculator; import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.racelog.tracking.EmptyGPSFixStore; @@ -92,15 +91,15 @@ public class DomainFactoryImpl implements DomainFactory { private final Map controlPointCache = new HashMap(); - private final Map, DynamicPerson> personCache = new HashMap<>(); + private final Map, DynamicPerson> personCache = new HashMap<>(); private final Map teamCache = new HashMap<>(); /** * Caches regattas by their name and their boat class's name */ - private final Map, com.sap.sailing.domain.base.Regatta> regattaCache = - new HashMap, com.sap.sailing.domain.base.Regatta>(); + private final Map, com.sap.sailing.domain.base.Regatta> regattaCache = + new HashMap, com.sap.sailing.domain.base.Regatta>(); /** * A cache based on weak references to the TracTrac event, allowing for quick Event lookup as long as the @@ -152,11 +151,11 @@ public class DomainFactoryImpl implements DomainFactory { } @Override - public void updateCourseWaypoints(Course courseToUpdate, Iterable> controlPoints) throws PatchFailedException { - List> newDomainControlPoints = new ArrayList>(); - for (Pair tractracControlPoint : controlPoints) { + public void updateCourseWaypoints(Course courseToUpdate, Iterable> controlPoints) throws PatchFailedException { + List> newDomainControlPoints = new ArrayList>(); + for (com.sap.sse.common.Util.Pair tractracControlPoint : controlPoints) { com.sap.sailing.domain.base.ControlPoint newDomainControlPoint = getOrCreateControlPoint(tractracControlPoint.getA()); - newDomainControlPoints.add(new Pair(newDomainControlPoint, tractracControlPoint.getB())); + newDomainControlPoints.add(new com.sap.sse.common.Util.Pair(newDomainControlPoint, tractracControlPoint.getB())); } courseToUpdate.update(newDomainControlPoints, baseDomainFactory); } @@ -203,9 +202,9 @@ public class DomainFactoryImpl implements DomainFactory { } @Override - public Course createCourse(String name, Iterable> controlPoints) { + public Course createCourse(String name, Iterable> controlPoints) { List waypointList = new ArrayList(); - for (Pair controlPoint: controlPoints) { + for (com.sap.sse.common.Util.Pair controlPoint: controlPoints) { Waypoint waypoint = baseDomainFactory.createWaypoint(getOrCreateControlPoint(controlPoint.getA()), controlPoint.getB()); waypointList.add(waypoint); } @@ -284,7 +283,7 @@ public class DomainFactoryImpl implements DomainFactory { @Override public DynamicPerson getOrCreatePerson(String name, Nationality nationality, UUID competitorId) { synchronized (personCache) { - Pair key = new Pair(name, competitorId); + com.sap.sse.common.Util.Pair key = new com.sap.sse.common.Util.Pair(name, competitorId); DynamicPerson result = personCache.get(key); if (result == null) { result = new PersonImpl(name, nationality, /* date of birth unknown */null, /* description */""); @@ -362,7 +361,7 @@ public class DomainFactoryImpl implements DomainFactory { competitorClassList.add(c.getCompetitorClass()); } BoatClass boatClass = getDominantBoatClass(competitorClassList); - Pair key = new Pair(event.getName(), boatClass == null ? null + com.sap.sse.common.Util.Pair key = new com.sap.sse.common.Util.Pair(event.getName(), boatClass == null ? null : boatClass.getName()); result = regattaCache.get(key); // FIXME When a Regatta is removed from RacingEventService, it isn't removed here. We use a "stale" regatta here. @@ -451,7 +450,7 @@ public class DomainFactoryImpl implements DomainFactory { competitorClassList.add(c.getCompetitorClass()); } BoatClass boatClass = getDominantBoatClass(competitorClassList); - Pair key = new Pair(tractracEvent.getName(), boatClass == null ? null + com.sap.sse.common.Util.Pair key = new com.sap.sse.common.Util.Pair(tractracEvent.getName(), boatClass == null ? null : boatClass.getName()); synchronized (regattaCache) { Regatta regatta = regattaCache.get(key); @@ -539,7 +538,7 @@ public class DomainFactoryImpl implements DomainFactory { } @Override - public Pair, BoatClass> getCompetitorsAndDominantBoatClass(Race race) { + public com.sap.sse.common.Util.Pair, BoatClass> getCompetitorsAndDominantBoatClass(Race race) { List competitorClasses = new ArrayList(); final List competitors = new ArrayList(); for (RaceCompetitor rc : race.getRaceCompetitorList()) { @@ -549,7 +548,7 @@ public class DomainFactoryImpl implements DomainFactory { competitorClasses.add(rc.getCompetitor().getCompetitorClass()); } BoatClass dominantBoatClass = getDominantBoatClass(competitorClasses); - Pair, BoatClass> competitorsAndDominantBoatClass = new Pair, BoatClass>( + com.sap.sse.common.Util.Pair, BoatClass> competitorsAndDominantBoatClass = new com.sap.sse.common.Util.Pair, BoatClass>( competitors, dominantBoatClass); return competitorsAndDominantBoatClass; } diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/MarkPassingReceiver.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/MarkPassingReceiver.java index c8a2f09009e..c4181909c27 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/MarkPassingReceiver.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/MarkPassingReceiver.java @@ -14,12 +14,12 @@ import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tractracadapter.DomainFactory; +import com.sap.sse.common.Util; import com.tractrac.clientmodule.ControlPoint; import com.tractrac.clientmodule.Race; import com.tractrac.clientmodule.RaceCompetitor; @@ -49,7 +49,7 @@ public class MarkPassingReceiver extends AbstractReceiverWithQueue() { @Override public void gotData(RaceCompetitor competitor, MarkPassingsData record, boolean isLiveData) { - enqueue(new Triple(competitor, record, isLiveData)); + enqueue(new Util.Triple(competitor, record, isLiveData)); } }); result.add(controlPointListener); @@ -58,7 +58,7 @@ public class MarkPassingReceiver extends AbstractReceiverWithQueue event) { + protected void handleEvent(Util.Triple event) { System.out.print("L"); // as in "Leg" DynamicTrackedRace trackedRace = getTrackedRace(event.getA().getRace()); if (trackedRace != null) { diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/MarkPositionReceiver.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/MarkPositionReceiver.java index 2de3dc1965c..3b5c1437760 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/MarkPositionReceiver.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/MarkPositionReceiver.java @@ -6,13 +6,12 @@ import java.util.List; import java.util.logging.Logger; import com.maptrack.client.io.TypeController; -import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Course; +import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.GPSFixMoving; @@ -20,6 +19,7 @@ import com.sap.sailing.domain.tracking.GPSFixTrack; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.TrackedRegatta; import com.sap.sailing.domain.tractracadapter.DomainFactory; +import com.sap.sse.common.Util; import com.tractrac.clientmodule.ControlPoint; import com.tractrac.clientmodule.Race; import com.tractrac.clientmodule.data.ControlPointPositionData; @@ -101,7 +101,7 @@ public class MarkPositionReceiver extends AbstractReceiverWithQueue() { @Override public void gotData(ControlPoint controlPoint, ControlPointPositionData record, boolean isLiveData) { - enqueue(new Triple(controlPoint, record, isLiveData)); + enqueue(new Util.Triple(controlPoint, record, isLiveData)); } }, fromTime, toTime); result.add(controlPointListener); @@ -110,7 +110,7 @@ public class MarkPositionReceiver extends AbstractReceiverWithQueue event) { + protected void handleEvent(Util.Triple event) { if (received++ % 1000 == 0) { System.out.print("M"); if ((received / 1000 + 1) % 80 == 0) { diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceCourseReceiver.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceCourseReceiver.java index f82cb43df70..c3d400df8ad 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceCourseReceiver.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceCourseReceiver.java @@ -17,9 +17,6 @@ import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.Sideline; import com.sap.sailing.domain.common.PassingInstruction; -import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.markpassingcalculation.MarkPassingCalculator; import com.sap.sailing.domain.racelog.tracking.EmptyGPSFixStore; import com.sap.sailing.domain.tracking.DynamicRaceDefinitionSet; @@ -86,7 +83,7 @@ public class RaceCourseReceiver extends AbstractReceiverWithQueue() { @Override public void gotData(Route route, RouteData record, boolean isLiveData) { - enqueue(new Triple(route, record, race)); + enqueue(new com.sap.sse.common.Util.Triple(route, record, race)); } }); setAndStartThread(new Thread(this, getClass().getName())); @@ -96,7 +93,7 @@ public class RaceCourseReceiver extends AbstractReceiverWithQueue event) { + protected void handleEvent(com.sap.sse.common.Util.Triple event) { System.out.print("R"); final Route route = event.getA(); final String routeMetadataString = route.getMetadata() != null ? route.getMetadata().getText() : null; @@ -109,11 +106,11 @@ public class RaceCourseReceiver extends AbstractReceiverWithQueue courseWaypointPassingInstructions = getDomainFactory().getMetadataParser().parsePassingInstructionData(routeMetadataString, routeControlPoints); - List> ttControlPoints = new ArrayList<>(); + List> ttControlPoints = new ArrayList<>(); int i = 1; for (com.tractrac.clientmodule.ControlPoint cp : event.getB().getPoints()) { PassingInstruction passingInstructions = courseWaypointPassingInstructions.containsKey(i) ? courseWaypointPassingInstructions.get(i) : null; - ttControlPoints.add(new Pair(ttControlPointsForAllOriginalEventControlPoints.get(cp), passingInstructions)); + ttControlPoints.add(new com.sap.sse.common.Util.Pair(ttControlPointsForAllOriginalEventControlPoints.get(cp), passingInstructions)); i++; } @@ -142,7 +139,7 @@ public class RaceCourseReceiver extends AbstractReceiverWithQueue, BoatClass> competitorsAndDominantBoatClass = getDomainFactory().getCompetitorsAndDominantBoatClass(race); + com.sap.sse.common.Util.Pair, BoatClass> competitorsAndDominantBoatClass = getDomainFactory().getCompetitorsAndDominantBoatClass(race); DynamicTrackedRace trackedRace = getDomainFactory().getOrCreateRaceDefinitionAndTrackedRace( getTrackedRegatta(), race.getId(), race.getName(), competitorsAndDominantBoatClass.getA(), competitorsAndDominantBoatClass.getB(), course, sidelines, windStore, delayToLiveInMillis, diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceStartedAndFinishedReceiver.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceStartedAndFinishedReceiver.java index 9ea16d1a8d6..9acd1f33ee2 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceStartedAndFinishedReceiver.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceStartedAndFinishedReceiver.java @@ -11,10 +11,10 @@ import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tractracadapter.DomainFactory; +import com.sap.sse.common.Util; import com.tractrac.clientmodule.Race; import com.tractrac.clientmodule.data.ICallbackData; import com.tractrac.clientmodule.data.StartStopTimesData; @@ -49,7 +49,7 @@ public class RaceStartedAndFinishedReceiver extends AbstractReceiverWithQueue() { @Override public void gotData(Race race, StartStopTimesData record, boolean isLiveData) { - enqueue(new Triple(race, record, isLiveData)); + enqueue(new Util.Triple(race, record, isLiveData)); } }); result.add(startStopListener); @@ -59,7 +59,7 @@ public class RaceStartedAndFinishedReceiver extends AbstractReceiverWithQueue event) { + protected void handleEvent(Util.Triple event) { System.out.print("StartStop"); DynamicTrackedRace trackedRace = getTrackedRace(event.getA()); if (trackedRace != null) { diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceTrackingConnectivityParametersImpl.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceTrackingConnectivityParametersImpl.java index ef3eae7c1d5..d5d318d4372 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceTrackingConnectivityParametersImpl.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RaceTrackingConnectivityParametersImpl.java @@ -8,7 +8,6 @@ import java.net.URL; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util; import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.racelog.tracking.GPSFixStore; import com.sap.sailing.domain.tracking.RaceTracker; @@ -68,7 +67,7 @@ public class RaceTrackingConnectivityParametersImpl implements RaceTrackingConne } @Override - public Util.Triple getTrackerID() { + public com.sap.sse.common.Util.Triple getTrackerID() { return TracTracRaceTrackerImpl.createID(paramURL, liveURI, storedURI); } diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RawPositionReceiver.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RawPositionReceiver.java index 2bed078e47d..c33527cdb55 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RawPositionReceiver.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/RawPositionReceiver.java @@ -6,12 +6,12 @@ import java.util.logging.Logger; import com.maptrack.client.io.TypeController; import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.common.impl.Util.Triple; -import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.DynamicTrackedRace; +import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.domain.tractracadapter.DomainFactory; +import com.sap.sse.common.Util; import com.tractrac.clientmodule.Race; import com.tractrac.clientmodule.RaceCompetitor; import com.tractrac.clientmodule.data.CompetitorPositionRawData; @@ -35,7 +35,7 @@ public class RawPositionReceiver extends AbstractReceiverWithQueue positionListener = new ICallbackData() { public void gotData(RaceCompetitor tracked, CompetitorPositionRawData record, boolean isLiveData) { - enqueue(new Triple(tracked, record, isLiveData)); + enqueue(new Util.Triple(tracked, record, isLiveData)); } }; List listeners = new ArrayList(); @@ -49,7 +49,7 @@ public class RawPositionReceiver extends AbstractReceiverWithQueue event) { + protected void handleEvent(Util.Triple event) { if (received++ % 1000 == 0) { System.out.print("P"); if ((received / 1000 + 1) % 80 == 0) { diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/TracTracAdapterImpl.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/TracTracAdapterImpl.java index 9c068699ad2..462acca012e 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/TracTracAdapterImpl.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/TracTracAdapterImpl.java @@ -11,7 +11,6 @@ import java.util.logging.Logger; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.tracking.RacesHandle; import com.sap.sailing.domain.tracking.TrackedRace; @@ -22,6 +21,7 @@ import com.sap.sailing.domain.tractracadapter.JSONService; import com.sap.sailing.domain.tractracadapter.RaceRecord; import com.sap.sailing.domain.tractracadapter.TracTracAdapter; import com.sap.sailing.domain.tractracadapter.TracTracConfiguration; +import com.sap.sse.common.Util; public class TracTracAdapterImpl implements TracTracAdapter { private final static Logger logger = Logger.getLogger(TracTracAdapter.class.getName()); @@ -73,12 +73,12 @@ public class TracTracAdapterImpl implements TracTracAdapter { } @Override - public Pair> getTracTracRaceRecords(URL jsonURL, boolean loadClientParams) + public Util.Pair> getTracTracRaceRecords(URL jsonURL, boolean loadClientParams) throws IOException, ParseException, org.json.simple.parser.ParseException, URISyntaxException { logger.info("Retrieving TracTrac race records from " + jsonURL); JSONService jsonService = getTracTracDomainFactory().parseJSONURLWithRaceRecords(jsonURL, loadClientParams); logger.info("OK retrieving TracTrac race records from " + jsonURL); - return new Pair>(jsonService.getEventName(), jsonService.getRaceRecords()); + return new Util.Pair>(jsonService.getEventName(), jsonService.getRaceRecords()); } @Override diff --git a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/TracTracRaceTrackerImpl.java b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/TracTracRaceTrackerImpl.java index 226818f2c19..ece94a2622c 100755 --- a/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/TracTracRaceTrackerImpl.java +++ b/java/com.sap.sailing.domain.tractracadapter/src/com/sap/sailing/domain/tractracadapter/impl/TracTracRaceTrackerImpl.java @@ -42,8 +42,6 @@ import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.TrackedRaceStatusEnum; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.racelog.tracking.GPSFixStore; import com.sap.sailing.domain.tracking.AbstractRaceTrackerImpl; @@ -67,6 +65,7 @@ import com.sap.sailing.domain.tractracadapter.Receiver; import com.sap.sailing.domain.tractracadapter.TracTracConnectionConstants; import com.sap.sailing.domain.tractracadapter.TracTracControlPoint; import com.sap.sailing.domain.tractracadapter.TracTracRaceTracker; +import com.sap.sse.common.Util; import com.tractrac.clientmodule.ControlPoint; import com.tractrac.clientmodule.Event; import com.tractrac.clientmodule.Race; @@ -203,12 +202,12 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl implements private final Set races; private final DynamicTrackedRegatta trackedRegatta; private TrackedRaceStatus lastStatus; - private HashMap, Pair> lastProgressPerID; + private HashMap, Util.Pair> lastProgressPerID; /** * paramURL, liveURI and storedURI for TracTrac connection */ - private final Triple urls; + private final Util.Triple urls; private final ScheduledFuture controlPointPositionPoller; /** @@ -304,7 +303,7 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl implements this.races = new HashSet(); this.gpsFixStore = gpsFixStore; this.domainFactory = domainFactory; - this.lastProgressPerID = new HashMap, Pair>(); + this.lastProgressPerID = new HashMap, Util.Pair>(); final Simulator simulator; if (simulateWithStartTimeNow) { simulator = new Simulator(windStore); @@ -422,8 +421,8 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl implements return trackedRegatta; } - static Triple createID(URL paramURL, URI liveURI, URI storedURI) { - return new Triple(paramURL, liveURI, storedURI); + static Util.Triple createID(URL paramURL, URI liveURI, URI storedURI) { + return new Util.Triple(paramURL, liveURI, storedURI); } /** @@ -468,7 +467,7 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl implements try { clientParams = new ClientParamsPHP(paramURL, new InputStreamReader(paramURL.openStream())); if (clientParams.getRace() != null) { - List> newCourseControlPointsWithPassingInstruction = getControlPointsWithPassingInstruction( + List> newCourseControlPointsWithPassingInstruction = getControlPointsWithPassingInstruction( clientParams, new ControlPointProducer() { @Override public com.sap.sailing.domain.base.ControlPoint produceControlPoint( @@ -483,7 +482,7 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl implements + ". Creating RaceDefinition."); final Iterable competitors = getCompetitors(clientParams); final Iterable competitorsInClientParams = clientParams.getCompetitors(); - List> ttControlPointsAndPassingInstructions = getControlPointsWithPassingInstruction(clientParams, + List> ttControlPointsAndPassingInstructions = getControlPointsWithPassingInstruction(clientParams, new ControlPointProducer() { @Override public TracTracControlPoint produceControlPoint(TracTracControlPoint ttControlPoint) { @@ -571,11 +570,11 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl implements * If they differ, a {@link Course#update(Iterable, com.sap.sailing.domain.base.DomainFactory) course update} is triggered. */ private void compareAndUpdateCourseIfNecessary( - List> newCourseControlPointsWithPassingInstructions) { + List> newCourseControlPointsWithPassingInstructions) { assert getRaces() != null; // to check if a course update is required, compare to the existing course's control points: List newCourseControlPoints = new ArrayList<>(); - for (Pair controlPointAndPassingInstruction : newCourseControlPointsWithPassingInstructions) { + for (Util.Pair controlPointAndPassingInstruction : newCourseControlPointsWithPassingInstructions) { newCourseControlPoints.add(controlPointAndPassingInstruction.getA()); } List currentCourseControlPoints = new ArrayList<>(); @@ -601,8 +600,8 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl implements T produceControlPoint(TracTracControlPoint ttControlPoint); } - private List> getControlPointsWithPassingInstruction( final ClientParamsPHP clientParams, ControlPointProducer controlPointProducer) { - List> newCourseControlPointsWithPassingInstruction = new ArrayList<>(); + private List> getControlPointsWithPassingInstruction( final ClientParamsPHP clientParams, ControlPointProducer controlPointProducer) { + List> newCourseControlPointsWithPassingInstruction = new ArrayList<>(); final List newTracTracControlPoints = clientParams.getRace().getDefaultRoute().getControlPoints(); Map passingInstructionData = domainFactory.getMetadataParser().parsePassingInstructionData( clientParams.getRace().getDefaultRoute().getMetadata(), newTracTracControlPoints); @@ -610,7 +609,7 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl implements for (TracTracControlPoint newTracTracControlPoint : newTracTracControlPoints) { PassingInstruction passingInstructions = passingInstructionData.containsKey(i) ? passingInstructionData.get(i) : null; final T newControlPoint = controlPointProducer.produceControlPoint(newTracTracControlPoint); - newCourseControlPointsWithPassingInstruction.add(new Pair(newControlPoint, passingInstructions)); + newCourseControlPointsWithPassingInstruction.add(new Util.Pair(newControlPoint, passingInstructions)); i++; } return newCourseControlPointsWithPassingInstruction; @@ -649,7 +648,7 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl implements } @Override - public Triple getID() { + public Util.Triple getID() { return urls; } @@ -812,7 +811,7 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl implements return; } Integer counter = 0; - final Pair lastProgressPair = lastProgressPerID.get(getID()); + final Util.Pair lastProgressPair = lastProgressPerID.get(getID()); if (lastProgressPair != null) { Float lastProgress = lastProgressPair.getB(); counter = lastProgressPair.getA(); @@ -835,7 +834,7 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl implements } logger.info("Stored data progress in tracker "+getID()+" for race(s) "+getRaces()+": "+progress); lastStatus = new TrackedRaceStatusImpl(progress==1.0 ? TrackedRaceStatusEnum.TRACKING : TrackedRaceStatusEnum.LOADING, progress); - lastProgressPerID.put(getID(), new Pair(counter, progress)); + lastProgressPerID.put(getID(), new Util.Pair(counter, progress)); updateStatusOfTrackedRaces(); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Course.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Course.java index 0099a896295..7394353594c 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Course.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/Course.java @@ -3,7 +3,7 @@ package com.sap.sailing.domain.base; import java.util.concurrent.locks.ReentrantReadWriteLock; import com.sap.sailing.domain.common.PassingInstruction; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; import difflib.PatchFailedException; @@ -40,5 +40,5 @@ public interface Course extends CourseBase { * to the registered {@link CourseListener}s as if {@link #addWaypoint(int, Waypoint)} and {@link #removeWaypoint(int)} * had been used. */ - void update(Iterable> newControlPoints, DomainFactory baseDomainFactory) throws PatchFailedException; + void update(Iterable> newControlPoints, DomainFactory baseDomainFactory) throws PatchFailedException; } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/RaceColumn.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/RaceColumn.java index 6f525493686..66442343f96 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/RaceColumn.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/RaceColumn.java @@ -3,7 +3,6 @@ package com.sap.sailing.domain.base; import com.sap.sailing.domain.common.Named; import com.sap.sailing.domain.common.RaceIdentifier; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.RaceLogIdentifier; @@ -126,7 +125,7 @@ public interface RaceColumn extends Named { /** * Constructs a key for maps storing corrections such as score corrections and max points reasons. */ - Pair getKey(Competitor competitor); + com.sap.sse.common.Util.Pair getKey(Competitor competitor); RaceColumnListeners getRaceColumnListeners(); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/SpeedWithBearingWithConfidence.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/SpeedWithBearingWithConfidence.java index 7653ed31731..0706d27a496 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/SpeedWithBearingWithConfidence.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/SpeedWithBearingWithConfidence.java @@ -2,10 +2,10 @@ package com.sap.sailing.domain.base; import com.sap.sailing.domain.common.Speed; import com.sap.sailing.domain.common.SpeedWithBearing; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.confidence.HasConfidence; +import com.sap.sse.common.Util; public interface SpeedWithBearingWithConfidence extends - HasConfidence, SpeedWithBearing, RelativeTo> { + HasConfidence, SpeedWithBearing, RelativeTo> { SpeedWithBearing getObject(); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/CourseImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/CourseImpl.java index 2f27b65719f..cb8032a102a 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/CourseImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/CourseImpl.java @@ -23,10 +23,10 @@ import com.sap.sailing.domain.base.Leg; import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.common.PassingInstruction; import com.sap.sailing.domain.common.impl.NamedImpl; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.util.CourseAsWaypointList; import com.sap.sailing.util.impl.LockUtil; import com.sap.sailing.util.impl.NamedReentrantReadWriteLock; +import com.sap.sse.common.Util; import difflib.DiffUtils; import difflib.Patch; @@ -324,7 +324,7 @@ public class CourseImpl extends NamedImpl implements Course { } @Override - public void update(Iterable> newControlPoints, DomainFactory baseDomainFactory) throws PatchFailedException { + public void update(Iterable> newControlPoints, DomainFactory baseDomainFactory) throws PatchFailedException { Patch patch = null; synchronized (updateMonitor) { lockForRead(); @@ -344,7 +344,7 @@ public class CourseImpl extends NamedImpl implements Course { } wpl.add(waypoint); } - for (Pair newDomainControlPoint : newControlPoints) { + for (Util.Pair newDomainControlPoint : newControlPoints) { List waypoints = existingWaypointsByControlPoint.get(newDomainControlPoint.getA()); Waypoint waypoint; if (waypoints == null || waypoints.isEmpty()) { diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DomainFactoryImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DomainFactoryImpl.java index bfd8502c09f..d8e827a02ea 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DomainFactoryImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DomainFactoryImpl.java @@ -28,7 +28,6 @@ import com.sap.sailing.domain.common.dto.PositionDTO; import com.sap.sailing.domain.common.dto.RaceDTO; import com.sap.sailing.domain.common.dto.RaceStatusDTO; import com.sap.sailing.domain.common.dto.TrackedRaceDTO; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.leaderboard.impl.HighPoint; import com.sap.sailing.domain.leaderboard.impl.HighPointExtremeSailingSeriesOverall; @@ -46,6 +45,7 @@ import com.sap.sailing.domain.tracking.TrackedRegattaRegistry; import com.sap.sailing.domain.tracking.impl.MarkPassingImpl; import com.sap.sailing.domain.tracking.impl.TrackedRaceImpl; import com.sap.sailing.geocoding.ReverseGeocoder; +import com.sap.sse.common.Util; public class DomainFactoryImpl extends SharedDomainFactoryImpl implements DomainFactory { private static Logger logger = Logger.getLogger(DomainFactoryImpl.class.getName()); @@ -142,7 +142,7 @@ public class DomainFactoryImpl extends SharedDomainFactoryImpl implements Domain } private PlacemarkOrderDTO getRacePlaces(TrackedRace trackedRace) { - Pair startAndFinish = getStartFinishPlacemarksForTrackedRace(trackedRace); + Util.Pair startAndFinish = getStartFinishPlacemarksForTrackedRace(trackedRace); PlacemarkOrderDTO racePlaces = new PlacemarkOrderDTO(); if (startAndFinish.getA() != null) { racePlaces.getPlacemarks().add(convertToPlacemarkDTO(startAndFinish.getA())); @@ -156,7 +156,7 @@ public class DomainFactoryImpl extends SharedDomainFactoryImpl implements Domain return racePlaces; } - private Pair getStartFinishPlacemarksForTrackedRace(TrackedRace race) { + private Util.Pair getStartFinishPlacemarksForTrackedRace(TrackedRace race) { double radiusCalculationFactor = 10.0; Placemark startBest = null; Placemark finishBest = null; @@ -208,7 +208,7 @@ public class DomainFactoryImpl extends SharedDomainFactoryImpl implements Domain } } } - Pair placemarks = new Pair(startBest, finishBest); + Util.Pair placemarks = new Util.Pair(startBest, finishBest); return placemarks; } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DouglasPeucker.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DouglasPeucker.java index a5d8d557d52..9b70bda3c90 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DouglasPeucker.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/DouglasPeucker.java @@ -17,9 +17,9 @@ import com.sap.sailing.domain.common.Bearing; import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.domain.tracking.GPSFixTrack; +import com.sap.sse.common.Util; /** * Implements the (Ramer)-Douglas-Peucker algorithm on a segment of a {@link GPSFixTrack} with a configurable distance @@ -47,10 +47,10 @@ public class DouglasPeucker { this.executor = executor; } - private Pair getFixWithGreatestCrossTrackErrorInInterval(TimePoint from, TimePoint to) { + private Util.Pair getFixWithGreatestCrossTrackErrorInInterval(TimePoint from, TimePoint to) { Distance maxDistance = Distance.NULL; FixType firstFixAtOrAfter = track.getFirstFixAtOrAfter(from); - Pair result = null; + Util.Pair result = null; if (firstFixAtOrAfter != null) { final Position fromPosition = firstFixAtOrAfter.getPosition(); FixType toFix = track.getLastFixAtOrBefore(to); @@ -76,7 +76,7 @@ public class DouglasPeucker { fixFurthestAway = fix; } } - result = new Pair(fixFurthestAway, maxDistance); + result = new Util.Pair(fixFurthestAway, maxDistance); } } finally { track.unlockAfterRead(); @@ -86,29 +86,29 @@ public class DouglasPeucker { return result; } - private Pair getFixWithGreatestCrossTrackErrorUsingExecutor(TimePoint to, Distance maxDistance, + private Util.Pair getFixWithGreatestCrossTrackErrorUsingExecutor(TimePoint to, Distance maxDistance, final Position fromPosition, final Bearing bearing, Iterator fixIter) { FixType fixFurthestAway = null; - Pair result; - Collection>> crossTrackErrorFutures = new HashSet>>(); + Util.Pair result; + Collection>> crossTrackErrorFutures = new HashSet>>(); while (fixIter.hasNext()) { final FixType fix = fixIter.next(); if (fix.getTimePoint().compareTo(to) > 0) { break; } - RunnableFuture> crossTrackErrorFuture = new FutureTask>( - new Callable>() { + RunnableFuture> crossTrackErrorFuture = new FutureTask>( + new Callable>() { @Override - public Pair call() throws Exception { - return new Pair(fix, fix.getPosition().absoluteCrossTrackError( + public Util.Pair call() throws Exception { + return new Util.Pair(fix, fix.getPosition().absoluteCrossTrackError( fromPosition, bearing)); } }); executor.execute(crossTrackErrorFuture); crossTrackErrorFutures.add(crossTrackErrorFuture); } - for (Future> crossTrackErrorFuture : crossTrackErrorFutures) { - Pair fixAndCrossTrackError; + for (Future> crossTrackErrorFuture : crossTrackErrorFutures) { + Util.Pair fixAndCrossTrackError; try { fixAndCrossTrackError = crossTrackErrorFuture.get(); } catch (InterruptedException e) { @@ -121,7 +121,7 @@ public class DouglasPeucker { fixFurthestAway = fixAndCrossTrackError.getA(); } } - result = new Pair(fixFurthestAway, maxDistance); + result = new Util.Pair(fixFurthestAway, maxDistance); return result; } @@ -155,7 +155,7 @@ public class DouglasPeucker { */ private List approximateWithoutFirst(Distance maxDistance, TimePoint from, TimePoint to) { List result; - Pair fixAndDistance = getFixWithGreatestCrossTrackErrorInInterval(from, to); + Util.Pair fixAndDistance = getFixWithGreatestCrossTrackErrorInInterval(from, to); if (fixAndDistance == null || fixAndDistance.getB().compareTo(maxDistance) < 0) { // reached desired accuracy for interval from..to FixType lastFixAtOrBefore = track.getLastFixAtOrBefore(to); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RaceColumnRaceLogReplicator.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RaceColumnRaceLogReplicator.java index c540533f9dc..67f0f9dc36f 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RaceColumnRaceLogReplicator.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/RaceColumnRaceLogReplicator.java @@ -22,11 +22,11 @@ import com.sap.sailing.domain.racelog.RaceLogWindFixEvent; import com.sap.sailing.domain.racelog.RevokeEvent; import com.sap.sailing.domain.racelog.tracking.CloseOpenEndedDeviceMappingEvent; import com.sap.sailing.domain.racelog.tracking.DefineMarkEvent; -import com.sap.sailing.domain.racelog.tracking.RegisterCompetitorEvent; -import com.sap.sailing.domain.racelog.tracking.StartTrackingEvent; import com.sap.sailing.domain.racelog.tracking.DenoteForTrackingEvent; import com.sap.sailing.domain.racelog.tracking.DeviceCompetitorMappingEvent; import com.sap.sailing.domain.racelog.tracking.DeviceMarkMappingEvent; +import com.sap.sailing.domain.racelog.tracking.RegisterCompetitorEvent; +import com.sap.sailing.domain.racelog.tracking.StartTrackingEvent; public class RaceColumnRaceLogReplicator implements RaceLogEventVisitor, Serializable { private static final long serialVersionUID = 4752330236765192592L; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/SimpleAbstractRaceColumn.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/SimpleAbstractRaceColumn.java index 0c26ba4c170..93d7a2b6c80 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/SimpleAbstractRaceColumn.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/SimpleAbstractRaceColumn.java @@ -6,7 +6,6 @@ import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.base.RaceColumnListener; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.util.impl.RaceColumnListeners; @@ -32,8 +31,8 @@ public abstract class SimpleAbstractRaceColumn implements RaceColumn { } @Override - public Pair getKey(Competitor competitor) { - return new Pair(competitor, this); + public com.sap.sse.common.Util.Pair getKey(Competitor competitor) { + return new com.sap.sse.common.Util.Pair(competitor, this); } public RaceColumnListeners getRaceColumnListeners() { diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/SpeedWithBearingWithConfidenceImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/SpeedWithBearingWithConfidenceImpl.java index d20414de99b..6b714c6bd72 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/SpeedWithBearingWithConfidenceImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/base/impl/SpeedWithBearingWithConfidenceImpl.java @@ -3,14 +3,14 @@ package com.sap.sailing.domain.base.impl; import com.sap.sailing.domain.base.SpeedWithBearingWithConfidence; import com.sap.sailing.domain.common.Speed; import com.sap.sailing.domain.common.SpeedWithBearing; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.scalablevalue.IsScalable; import com.sap.sailing.domain.common.scalablevalue.ScalableValue; import com.sap.sailing.domain.common.scalablevalue.impl.ScalableSpeedWithBearing; +import com.sap.sse.common.Util; public class SpeedWithBearingWithConfidenceImpl extends - HasConfidenceImpl, SpeedWithBearing, RelativeTo> implements - SpeedWithBearingWithConfidence, IsScalable, SpeedWithBearing> { + HasConfidenceImpl, SpeedWithBearing, RelativeTo> implements + SpeedWithBearingWithConfidence, IsScalable, SpeedWithBearing> { private static final long serialVersionUID = -4811576094614673625L; public SpeedWithBearingWithConfidenceImpl(SpeedWithBearing speedWithBearing, double confidence, RelativeTo relativeTo) { @@ -23,7 +23,7 @@ public class SpeedWithBearingWithConfidenceImpl extends * angle. */ @Override - public ScalableValue, SpeedWithBearing> getScalableValue() { + public ScalableValue, SpeedWithBearing> getScalableValue() { return new ScalableSpeedWithBearing(getObject()); } } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/confidence/impl/PositionAndTimePointWeigher.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/confidence/impl/PositionAndTimePointWeigher.java index c585b828aad..93091ca7c84 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/confidence/impl/PositionAndTimePointWeigher.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/confidence/impl/PositionAndTimePointWeigher.java @@ -2,9 +2,9 @@ package com.sap.sailing.domain.confidence.impl; import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.confidence.ConfidenceFactory; import com.sap.sailing.domain.confidence.Weigher; +import com.sap.sse.common.Util; /** * A weigher that uses a {@link Position} and a {@link TimePoint} to compute a confidence based on @@ -15,7 +15,7 @@ import com.sap.sailing.domain.confidence.Weigher; * @author Axel Uhl (d043530) * */ -public class PositionAndTimePointWeigher implements Weigher> { +public class PositionAndTimePointWeigher implements Weigher> { private static final long serialVersionUID = -262428237738496818L; private final Weigher weigher; @@ -24,7 +24,7 @@ public class PositionAndTimePointWeigher implements Weigher fix, Pair request) { + public double getConfidence(Util.Pair fix, Util.Pair request) { return weigher.getConfidence(fix.getB(), request.getB()); } } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/Leaderboard.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/Leaderboard.java index 9e968758d4c..e4639c3512f 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/Leaderboard.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/Leaderboard.java @@ -21,12 +21,12 @@ import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.Speed; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.dto.LeaderboardDTO; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.caching.LeaderboardDTOCache; import com.sap.sailing.domain.leaderboard.caching.LiveLeaderboardUpdater; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.TrackedRegattaRegistry; +import com.sap.sse.common.Util; /** * A leaderboard is used to display the results of one or more {@link TrackedRace races}. It manages the competitors' @@ -256,7 +256,7 @@ public interface Leaderboard extends Named { * Note that in order to get the {@link #getTotalPoints(Competitor, TimePoint) total points} for a competitor * for the entire leaderboard, the {@link #getCarriedPoints(Competitor) carried-over points} need to be added. */ - Map, Entry> getContent(TimePoint timePoint) throws NoWindException; + Map, Entry> getContent(TimePoint timePoint) throws NoWindException; /** * Retrieves all race columns that were added, either by {@link #addRace(TrackedRace, String, boolean)} or @@ -372,7 +372,7 @@ public interface Leaderboard extends Named { * or the competitor hasn't started sailing a single race at timePoint for any of the tracked * races attached to this leaderboard; the fix where the maximum speed was achieved, and the speed value */ - Pair getMaximumSpeedOverGround(Competitor competitor, TimePoint timePoint); + Util.Pair getMaximumSpeedOverGround(Competitor competitor, TimePoint timePoint); /** * @return null if no tracked race is available in this leaderboard, the competitor hasn't started diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/ScoringScheme.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/ScoringScheme.java index 1e4b9cc90a2..1b5a5d8cccc 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/ScoringScheme.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/ScoringScheme.java @@ -12,8 +12,8 @@ import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.ScoringSchemeType; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.meta.LeaderboardGroupMetaLeaderboard; +import com.sap.sse.common.Util; /** * A leaderboard has a scoring scheme that decides how race ranks map to scores, how penalties are to be scored, @@ -73,8 +73,8 @@ public interface ScoringScheme extends Serializable { * @param competitor1Scores scores of the first competitor, in the order of race columns in the leaderboard * @param competitor2Scores scores of the second competitor, in the order of race columns in the leaderboard */ - int compareByBetterScore(List> competitor1Scores, - List> competitor2Scores, boolean nullScoresAreBetter); + int compareByBetterScore(List> competitor1Scores, + List> competitor2Scores, boolean nullScoresAreBetter); /** * In case two competitors scored in different numbers of races, this scoring scheme decides whether this @@ -88,7 +88,7 @@ public interface ScoringScheme extends Serializable { /** * Usually, when all other sorting criteria end up in a tie, the last race sailed is used to decide. */ - int compareByLastRace(List> o1Scores, List> o2Scores, boolean nullScoresAreBetter); + int compareByLastRace(List> o1Scores, List> o2Scores, boolean nullScoresAreBetter); /** * Under certain circumstances, a scoring scheme may decide that the scores of a column are not (yet) to be used diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LeaderboardDTOCache.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LeaderboardDTOCache.java index 3190c45bf84..69775b22a9b 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LeaderboardDTOCache.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/caching/LeaderboardDTOCache.java @@ -19,7 +19,6 @@ import com.sap.sailing.domain.base.RaceColumnListener; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.dto.LeaderboardDTO; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardCacheManager; import com.sap.sailing.domain.leaderboard.ScoreCorrection; @@ -29,6 +28,7 @@ import com.sap.sailing.domain.tracking.TrackedRegattaRegistry; import com.sap.sailing.util.impl.LockUtil; import com.sap.sailing.util.impl.NamedReentrantReadWriteLock; import com.sap.sailing.util.impl.ThreadFactoryWithPriority; +import com.sap.sse.common.Util; /** * Caches the expensive to compute {@link LeaderboardDTO} results of a @@ -54,7 +54,7 @@ public class LeaderboardDTOCache implements LeaderboardCache { * the time point for the query, the names of the races for which details are requested and the flag telling * whether overall details for the leaderboard are requested. */ - private final Map, Boolean>, FutureTask> leaderboardCache; + private final Map, Boolean>, FutureTask> leaderboardCache; private final NamedReentrantReadWriteLock leaderboardCacheLock; private int leaderboardByNameCacheHitCount; private int leaderboardByNameCacheMissCount; @@ -84,10 +84,10 @@ public class LeaderboardDTOCache implements LeaderboardCache { this.leaderboard = leaderboard; this.waitForLatestAnalyses = waitForLatestAnalyses; // Note: don't use access-based ordering as it turns the get(...) call into a "write" access - this.leaderboardCache = new LinkedHashMap, Boolean>, FutureTask>(16, 0.75f) { + this.leaderboardCache = new LinkedHashMap, Boolean>, FutureTask>(16, 0.75f) { private static final long serialVersionUID = 7287916997229815039L; @Override - protected boolean removeEldestEntry(Map.Entry, Boolean>, FutureTask> e) { + protected boolean removeEldestEntry(Map.Entry, Boolean>, FutureTask> e) { return size() > 10; // remember 10 LeaderboardDTOs per leaderborad } }; @@ -136,7 +136,7 @@ public class LeaderboardDTOCache implements LeaderboardCache { } else { adjustedTimePoint = timePoint; } - Triple, Boolean> key = new Triple, Boolean>(adjustedTimePoint, + Util.Triple, Boolean> key = new Util.Triple, Boolean>(adjustedTimePoint, namesOfRaceColumnsForWhichToLoadLegDetails, addOverallDetails); FutureTask future = null; boolean cacheHit = false; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractScoringSchemeImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractScoringSchemeImpl.java index a980a6f90f4..ab454551f63 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractScoringSchemeImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractScoringSchemeImpl.java @@ -15,7 +15,6 @@ import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.tracking.TrackedRace; @@ -128,16 +127,16 @@ public abstract class AbstractScoringSchemeImpl implements ScoringScheme { * Assuming both competitors scored in the same number of races, compares the sorted scores. */ @Override - public int compareByBetterScore(List> o1Scores, List> o2Scores, boolean nullScoresAreBetter) { + public int compareByBetterScore(List> o1Scores, List> o2Scores, boolean nullScoresAreBetter) { assert o1Scores.size() == o2Scores.size(); final Comparator pureScoreComparator = getScoreComparator(nullScoresAreBetter); // needs to compare net points; therefore, divide the total points by the column factor for comparison: List o1NetScores = new ArrayList<>(); - for (Pair o1ColumnAndScore : o1Scores) { + for (com.sap.sse.common.Util.Pair o1ColumnAndScore : o1Scores) { o1NetScores.add(o1ColumnAndScore.getB()/o1ColumnAndScore.getA().getFactor()); } List o2NetScores = new ArrayList<>(); - for (Pair o2ColumnAndScore : o2Scores) { + for (com.sap.sse.common.Util.Pair o2ColumnAndScore : o2Scores) { o2NetScores.add(o2ColumnAndScore.getB()/o2ColumnAndScore.getA().getFactor()); } Collections.sort(o1NetScores, pureScoreComparator); @@ -162,7 +161,7 @@ public abstract class AbstractScoringSchemeImpl implements ScoringScheme { } @Override - public int compareByLastRace(List> o1Scores, List> o2Scores, boolean nullScoresAreBetter) { + public int compareByLastRace(List> o1Scores, List> o2Scores, boolean nullScoresAreBetter) { int result = 0; if (!o1Scores.isEmpty() && !o2Scores.isEmpty()) { result = getScoreComparator(nullScoresAreBetter).compare(o1Scores.get(o1Scores.size()-1).getB(), diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractSimpleLeaderboardImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractSimpleLeaderboardImpl.java index db519fe829a..18886e46997 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractSimpleLeaderboardImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/AbstractSimpleLeaderboardImpl.java @@ -60,7 +60,6 @@ import com.sap.sailing.domain.common.dto.LegEntryDTO; import com.sap.sailing.domain.common.dto.RaceDTO; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.NumberOfCompetitorsInLeaderboardFetcher; import com.sap.sailing.domain.leaderboard.ResultDiscardingRule; @@ -134,7 +133,7 @@ public abstract class AbstractSimpleLeaderboardImpl implements Leaderboard, Race private final Set suppressedCompetitors; private final NamedReentrantReadWriteLock suppressedCompetitorsLock; - private transient Map, RunnableFuture> raceDetailsAtEndOfTrackingCache; + private transient Map, RunnableFuture> raceDetailsAtEndOfTrackingCache; /** * This executor needs to be a different one than {@link #executor} because the tasks run by {@link #executor} @@ -278,7 +277,7 @@ public abstract class AbstractSimpleLeaderboardImpl implements Leaderboard, Race private void invalidateCacheAndRemoveThisListenerFromTrackedRace() { synchronized (raceDetailsAtEndOfTrackingCache) { - raceDetailsAtEndOfTrackingCache.remove(new Pair(trackedRace, competitor)); + raceDetailsAtEndOfTrackingCache.remove(new com.sap.sse.common.Util.Pair(trackedRace, competitor)); removeFromTrackedRace(); } } @@ -356,7 +355,7 @@ public abstract class AbstractSimpleLeaderboardImpl implements Leaderboard, Race this.suppressedCompetitors = new HashSet(); this.suppressedCompetitorsLock = new NamedReentrantReadWriteLock("suppressedCompetitorsLock", /* fair */ false); this.raceColumnListeners = new RaceColumnListeners(); - this.raceDetailsAtEndOfTrackingCache = new HashMap, RunnableFuture>(); + this.raceDetailsAtEndOfTrackingCache = new HashMap, RunnableFuture>(); initTransientFields(); } @@ -375,7 +374,7 @@ public abstract class AbstractSimpleLeaderboardImpl implements Leaderboard, Race } private void initTransientFields() { - this.raceDetailsAtEndOfTrackingCache = new HashMap, RunnableFuture>(); + this.raceDetailsAtEndOfTrackingCache = new HashMap, RunnableFuture>(); this.raceDetailsExecutor = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors()); this.cacheInvalidationListeners = new HashSet(); // When many updates are triggered in a short period of time by a single thread, ensure that the single thread @@ -548,11 +547,11 @@ public abstract class AbstractSimpleLeaderboardImpl implements Leaderboard, Race */ @Override public List getCompetitorsFromBestToWorst(final RaceColumn raceColumn, TimePoint timePoint) throws NoWindException { - final Map> netPointsAndFleet = new HashMap>(); + final Map> netPointsAndFleet = new HashMap>(); for (Competitor competitor : getCompetitors()) { Double netPoints = getNetPoints(competitor, raceColumn, timePoint); if (netPoints != null) { - netPointsAndFleet.put(competitor, new Pair(netPoints, raceColumn.getFleetOfCompetitor(competitor))); + netPointsAndFleet.put(competitor, new com.sap.sse.common.Util.Pair(netPoints, raceColumn.getFleetOfCompetitor(competitor))); } } List result = new ArrayList(netPointsAndFleet.keySet()); @@ -692,8 +691,8 @@ public abstract class AbstractSimpleLeaderboardImpl implements Leaderboard, Race } @Override - public Map, Entry> getContent(final TimePoint timePoint) throws NoWindException { - Map, Entry> result = new HashMap, Entry>(); + public Map, Entry> getContent(final TimePoint timePoint) throws NoWindException { + Map, Entry> result = new HashMap, Entry>(); Map> discardedRaces = new HashMap>(); for (final RaceColumn raceColumn : getRaceColumns()) { for (final Competitor competitor : getCompetitors()) { @@ -717,7 +716,7 @@ public abstract class AbstractSimpleLeaderboardImpl implements Leaderboard, Race discarded ? DOUBLE_0 : (correctedScore==null?null: Double.valueOf((correctedScore * raceColumn.getFactor()))), correctedResults.getMaxPointsReason(), discarded, raceColumn.getFleetOfCompetitor(competitor)); - result.put(new Pair(competitor, raceColumn), entry); + result.put(new com.sap.sse.common.Util.Pair(competitor, raceColumn), entry); } } return result; @@ -852,8 +851,8 @@ public abstract class AbstractSimpleLeaderboardImpl implements Leaderboard, Race } @Override - public Pair getMaximumSpeedOverGround(Competitor competitor, TimePoint timePoint) { - Pair result = null; + public com.sap.sse.common.Util.Pair getMaximumSpeedOverGround(Competitor competitor, TimePoint timePoint) { + com.sap.sse.common.Util.Pair result = null; // TODO should we ensure that competitor participated in all race columns? for (TrackedRace trackedRace : getTrackedRaces()) { if (Util.contains(trackedRace.getRace().getCompetitors(), competitor)) { @@ -868,7 +867,7 @@ public abstract class AbstractSimpleLeaderboardImpl implements Leaderboard, Race } else { to = timePoint; } - Pair maxSpeed = trackedRace.getTrack(competitor).getMaximumSpeedOverGround(from, to); + com.sap.sse.common.Util.Pair maxSpeed = trackedRace.getTrack(competitor).getMaximumSpeedOverGround(from, to); if (result == null || result.getB() == null || (maxSpeed != null && maxSpeed.getB() != null && maxSpeed.getB().compareTo(result.getB()) > 0)) { result = maxSpeed; @@ -1266,7 +1265,7 @@ public abstract class AbstractSimpleLeaderboardImpl implements Leaderboard, Race private void addOverallDetailsToRow(final TimePoint timePoint, final Competitor competitor, LeaderboardRowDTO row) throws NoWindException { - final Pair maximumSpeedOverGround = this.getMaximumSpeedOverGround(competitor, timePoint); + final com.sap.sse.common.Util.Pair maximumSpeedOverGround = this.getMaximumSpeedOverGround(competitor, timePoint); if (maximumSpeedOverGround != null && maximumSpeedOverGround.getB() != null) { row.maximumSpeedOverGroundInKnots = maximumSpeedOverGround.getB().getKnots(); row.whenMaximumSpeedOverGroundWasAchieved = maximumSpeedOverGround.getA().getTimePoint().asDate(); @@ -1449,7 +1448,7 @@ public abstract class AbstractSimpleLeaderboardImpl implements Leaderboard, Race private RaceDetails getRaceDetailsForEndOfTrackingFromCacheOrCalculateAndCache(final TrackedRace trackedRace, final Competitor competitor, final Map> legRanksCache) throws NoWindException, InterruptedException, ExecutionException { - final Pair key = new Pair(trackedRace, competitor); + final com.sap.sse.common.Util.Pair key = new com.sap.sse.common.Util.Pair(trackedRace, competitor); RunnableFuture raceDetails; synchronized (raceDetailsAtEndOfTrackingCache) { raceDetails = raceDetailsAtEndOfTrackingCache.get(key); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/HighPointExtremeSailingSeriesOverall.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/HighPointExtremeSailingSeriesOverall.java index ee7ecdf16b5..7966fd34878 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/HighPointExtremeSailingSeriesOverall.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/HighPointExtremeSailingSeriesOverall.java @@ -11,7 +11,6 @@ import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.ScoringSchemeType; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.MetaLeaderboard; import com.sap.sailing.domain.leaderboard.NumberOfCompetitorsInLeaderboardFetcher; @@ -52,7 +51,7 @@ public class HighPointExtremeSailingSeriesOverall extends HighPoint { * Implements rule 13.5 of the Extreme Sailing Series notice of race as of August 2012. */ @Override - public int compareByBetterScore(List> o1Scores, List> o2Scores, boolean nullScoresAreBetter) { + public int compareByBetterScore(List> o1Scores, List> o2Scores, boolean nullScoresAreBetter) { assert o1Scores.size() == o2Scores.size(); int o1Wins = getWins(o1Scores); int o2Wins = getWins(o2Scores); @@ -67,9 +66,9 @@ public class HighPointExtremeSailingSeriesOverall extends HighPoint { * Counts a competitor's wins by comparing the scores to {@link #MAX_POINTS} which is the score attributed to a race * won */ - private int getWins(List> scores) { + private int getWins(List> scores) { int wins = 0; - for (Pair score : scores) { + for (com.sap.sse.common.Util.Pair score : scores) { if (Math.abs(score.getB() - MAX_POINTS * score.getA().getFactor()) < 0.0000001) { wins++; } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/HighPointFirstGets10LastBreaksTie.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/HighPointFirstGets10LastBreaksTie.java index e4abd11e21d..41dbe043fcf 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/HighPointFirstGets10LastBreaksTie.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/HighPointFirstGets10LastBreaksTie.java @@ -4,7 +4,7 @@ import java.util.List; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.common.ScoringSchemeType; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; public class HighPointFirstGets10LastBreaksTie extends HighPointFirstGetsFixedScore { private static final long serialVersionUID = 1L; @@ -19,7 +19,7 @@ public class HighPointFirstGets10LastBreaksTie extends HighPointFirstGetsFixedSc } @Override - public int compareByBetterScore(List> o1Scores, List> o2Scores, boolean nullScoresAreBetter) { + public int compareByBetterScore(List> o1Scores, List> o2Scores, boolean nullScoresAreBetter) { return 0; } } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/HighPointFirstGets1LastBreaksTie.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/HighPointFirstGets1LastBreaksTie.java index 7e545cb0d2b..db01a6a8748 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/HighPointFirstGets1LastBreaksTie.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/HighPointFirstGets1LastBreaksTie.java @@ -6,8 +6,8 @@ import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.ScoringSchemeType; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.NumberOfCompetitorsInLeaderboardFetcher; +import com.sap.sse.common.Util; public class HighPointFirstGets1LastBreaksTie extends HighPointFirstGetsFixedScore { private static final long serialVersionUID = 1L; @@ -28,7 +28,7 @@ public class HighPointFirstGets1LastBreaksTie extends HighPointFirstGetsFixedSco } @Override - public int compareByBetterScore(List> o1Scores, List> o2Scores, boolean nullScoresAreBetter) { + public int compareByBetterScore(List> o1Scores, List> o2Scores, boolean nullScoresAreBetter) { return 0; } } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/HighPointLastBreaksTie.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/HighPointLastBreaksTie.java index 6219d68ae36..05ae9f463a4 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/HighPointLastBreaksTie.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/HighPointLastBreaksTie.java @@ -4,7 +4,7 @@ import java.util.List; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.common.ScoringSchemeType; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; /** * In this variant of the {@link HighPoint} scoring scheme, scoring by "better race" (sometimes referred to as a @@ -18,7 +18,7 @@ public class HighPointLastBreaksTie extends HighPoint { private static final long serialVersionUID = -5338636946886101669L; @Override - public int compareByBetterScore(List> o1Scores, List> o2Scores, boolean nullScoresAreBetter) { + public int compareByBetterScore(List> o1Scores, List> o2Scores, boolean nullScoresAreBetter) { return 0; } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LeaderboardTotalRankComparator.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LeaderboardTotalRankComparator.java index ab3b4771a3f..d055c7f8133 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LeaderboardTotalRankComparator.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/LeaderboardTotalRankComparator.java @@ -13,9 +13,9 @@ import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.common.NoWindError; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.ScoringScheme; +import com.sap.sse.common.Util; /** * Compares two competitors that occur in a {@link Leaderboard#getCompetitors()} set in the context of the @@ -49,7 +49,7 @@ import com.sap.sailing.domain.leaderboard.ScoringScheme; public class LeaderboardTotalRankComparator implements Comparator { private final Leaderboard leaderboard; private final ScoringScheme scoringScheme; - private final Map, Double> totalPointsCache; + private final Map, Double> totalPointsCache; private final boolean nullScoresAreBetter; private final TimePoint timePoint; @@ -79,10 +79,10 @@ public class LeaderboardTotalRankComparator implements Comparator { this.timePoint = timePoint; this.scoringScheme = scoringScheme; this.nullScoresAreBetter = nullScoresAreBetter; - totalPointsCache = new HashMap, Double>(); + totalPointsCache = new HashMap, Double>(); for (Competitor competitor : leaderboard.getCompetitors()) { for (RaceColumn raceColumn : raceColumnsToConsider) { - totalPointsCache.put(new Pair(competitor, raceColumn), + totalPointsCache.put(new Util.Pair(competitor, raceColumn), leaderboard.getTotalPoints(competitor, raceColumn, raceColumnsToConsider, timePoint)); } } @@ -94,8 +94,8 @@ public class LeaderboardTotalRankComparator implements Comparator { @Override public int compare(Competitor o1, Competitor o2) { - List> o1Scores = new ArrayList>(); - List> o2Scores = new ArrayList>(); + List> o1Scores = new ArrayList>(); + List> o2Scores = new ArrayList>(); double o1ScoreSum = getLeaderboard().getCarriedPoints(o1); double o2ScoreSum = getLeaderboard().getCarriedPoints(o2); Double o1MedalRaceScore = 0.0; @@ -109,18 +109,18 @@ public class LeaderboardTotalRankComparator implements Comparator { needToResetO2ScoreUponNextValidResult = raceColumn.isStartsWithZeroScore(); if (getLeaderboard().getScoringScheme().isValidInTotalScore(getLeaderboard(), raceColumn, timePoint)) { int preemptiveColumnResult = 0; - final Double o1Score = totalPointsCache.get(new Pair(o1, raceColumn)); + final Double o1Score = totalPointsCache.get(new Util.Pair(o1, raceColumn)); if (o1Score != null) { - o1Scores.add(new Pair(raceColumn, o1Score)); + o1Scores.add(new Util.Pair(raceColumn, o1Score)); if (needToResetO1ScoreUponNextValidResult) { o1ScoreSum = 0; needToResetO1ScoreUponNextValidResult = false; } o1ScoreSum += o1Score; } - final Double o2Score = totalPointsCache.get(new Pair(o2, raceColumn)); + final Double o2Score = totalPointsCache.get(new Util.Pair(o2, raceColumn)); if (o2Score != null) { - o2Scores.add(new Pair(raceColumn, o2Score)); + o2Scores.add(new Util.Pair(raceColumn, o2Score)); if (needToResetO2ScoreUponNextValidResult) { o2ScoreSum = 0; needToResetO2ScoreUponNextValidResult = false; @@ -264,7 +264,7 @@ public class LeaderboardTotalRankComparator implements Comparator { * * @see ScoringScheme#compareByBetterScore(List, List, boolean) */ - protected int compareByBetterScore(List> o1Scores, List> o2Scores) { + protected int compareByBetterScore(List> o1Scores, List> o2Scores) { return scoringScheme.compareByBetterScore(o1Scores, o2Scores, nullScoresAreBetter); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/ScoreCorrectionImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/ScoreCorrectionImpl.java index 3b8fce93ac2..0d2e1671071 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/ScoreCorrectionImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/impl/ScoreCorrectionImpl.java @@ -14,7 +14,6 @@ import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.NumberOfCompetitorsInLeaderboardFetcher; import com.sap.sailing.domain.leaderboard.ScoreCorrectionListener; @@ -38,12 +37,12 @@ public class ScoreCorrectionImpl implements SettableScoreCorrection { /** * If no max point reason is provided for a competitor/race, {@link MaxPointsReason#NONE} should be the default. */ - private final Map, MaxPointsReason> maxPointsReasons; + private final Map, MaxPointsReason> maxPointsReasons; /** * If no score correction is provided here, the uncorrected points are the default. */ - private final Map, Double> correctedScores; + private final Map, Double> correctedScores; /** * If null, despite a non-null {@link #timePointOfLastCorrectionsValidity} value the @@ -65,8 +64,8 @@ public class ScoreCorrectionImpl implements SettableScoreCorrection { public ScoreCorrectionImpl(Leaderboard leaderboard) { this.leaderboard = leaderboard; - this.maxPointsReasons = new HashMap, MaxPointsReason>(); - this.correctedScores = new HashMap, Double>(); + this.maxPointsReasons = new HashMap, MaxPointsReason>(); + this.correctedScores = new HashMap, Double>(); this.scoreCorrectionListeners = new HashSet(); } @@ -124,7 +123,7 @@ public class ScoreCorrectionImpl implements SettableScoreCorrection { @Override public void setMaxPointsReason(Competitor competitor, RaceColumn raceColumn, MaxPointsReason reason) { - Pair key = raceColumn.getKey(competitor); + com.sap.sse.common.Util.Pair key = raceColumn.getKey(competitor); MaxPointsReason oldMaxPointsReason; if (reason == null) { oldMaxPointsReason = maxPointsReasons.remove(key); @@ -142,7 +141,7 @@ public class ScoreCorrectionImpl implements SettableScoreCorrection { @Override public boolean isScoreCorrected(Competitor competitor, RaceColumn raceColumn, TimePoint timePoint) { - Pair key = raceColumn.getKey(competitor); + com.sap.sse.common.Util.Pair key = raceColumn.getKey(competitor); return (correctedScores.containsKey(key) && !isCertainlyBeforeRaceFinish(timePoint, raceColumn, competitor)) || (maxPointsReasons.containsKey(key) && isMaxPointsReasonApplicable(maxPointsReasons.get(key), timePoint, raceColumn, competitor)); } @@ -454,12 +453,12 @@ public class ScoreCorrectionImpl implements SettableScoreCorrection { @Override public boolean hasCorrectionFor(RaceColumn raceInLeaderboard) { - for (Pair correctedScoresKey : correctedScores.keySet()) { + for (com.sap.sse.common.Util.Pair correctedScoresKey : correctedScores.keySet()) { if (correctedScoresKey.getB() == raceInLeaderboard) { return true; } } - for (Pair maxPointsReasonsKey : maxPointsReasons.keySet()) { + for (com.sap.sse.common.Util.Pair maxPointsReasonsKey : maxPointsReasons.keySet()) { if (maxPointsReasonsKey.getB() == raceInLeaderboard) { return true; } @@ -494,10 +493,10 @@ public class ScoreCorrectionImpl implements SettableScoreCorrection { @Override public Iterable getRaceColumnsThatHaveCorrections() { Set result = new HashSet<>(); - for (Pair correctedScoresKey : correctedScores.keySet()) { + for (com.sap.sse.common.Util.Pair correctedScoresKey : correctedScores.keySet()) { result.add(correctedScoresKey.getB()); } - for (Pair maxPointsReasonsKey : maxPointsReasons.keySet()) { + for (com.sap.sse.common.Util.Pair maxPointsReasonsKey : maxPointsReasons.keySet()) { result.add(maxPointsReasonsKey.getB()); } return result; @@ -506,12 +505,12 @@ public class ScoreCorrectionImpl implements SettableScoreCorrection { @Override public Iterable getCompetitorsThatHaveCorrectionsIn(RaceColumn raceColumn) { Set result = new HashSet<>(); - for (Pair correctedScoresKey : correctedScores.keySet()) { + for (com.sap.sse.common.Util.Pair correctedScoresKey : correctedScores.keySet()) { if (raceColumn == correctedScoresKey.getB()) { result.add(correctedScoresKey.getA()); } } - for (Pair maxPointsReasonsKey : maxPointsReasons.keySet()) { + for (com.sap.sse.common.Util.Pair maxPointsReasonsKey : maxPointsReasons.keySet()) { if (raceColumn == maxPointsReasonsKey.getB()) { result.add(maxPointsReasonsKey.getA()); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/meta/LeaderboardGroupMetaLeaderboard.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/meta/LeaderboardGroupMetaLeaderboard.java index 7f3e7ca0fb2..ca5b157dbf2 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/meta/LeaderboardGroupMetaLeaderboard.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/leaderboard/meta/LeaderboardGroupMetaLeaderboard.java @@ -4,6 +4,7 @@ import com.sap.sailing.domain.base.CourseArea; import com.sap.sailing.domain.base.Fleet; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.base.RaceColumnListener; +import com.sap.sailing.domain.base.impl.TrackedRaces; import com.sap.sailing.domain.common.LeaderboardNameConstants; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/AbstractCandidateChooser.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/AbstractCandidateChooser.java index a329c502dd6..f936d476f83 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/AbstractCandidateChooser.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/AbstractCandidateChooser.java @@ -4,8 +4,8 @@ import java.util.LinkedHashMap; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Waypoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.MarkPassing; +import com.sap.sse.common.Util; /** * Takes the {@link Candidate}s from an {@link AbstractCandidateFinder} and calculates any new {@link MarkPassing}s. The @@ -17,7 +17,7 @@ import com.sap.sailing.domain.tracking.MarkPassing; public interface AbstractCandidateChooser { - public void calculateMarkPassDeltas(Competitor c, Pair, Iterable> candidateDeltas); + public void calculateMarkPassDeltas(Competitor c, Util.Pair, Iterable> candidateDeltas); public LinkedHashMap> getAllPasses(); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/AbstractCandidateFinder.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/AbstractCandidateFinder.java index fbed6a4019c..6db9daf73bc 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/AbstractCandidateFinder.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/AbstractCandidateFinder.java @@ -5,8 +5,8 @@ import java.util.List; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Mark; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.GPSFix; +import com.sap.sse.common.Util; /** * A CandidateFinder converts the incoming GPSFixes of competitors and marks into {@link Candidate}s for each @@ -31,7 +31,7 @@ public interface AbstractCandidateFinder { * @param c * @return */ - Pair, Iterable> getCandidateDeltas(Competitor c, Iterable fixes); + Util.Pair, Iterable> getCandidateDeltas(Competitor c, Iterable fixes); /** * When initializing the calculator, the whole race until now is evaluated. For that purpose all of the Candidates @@ -41,5 +41,5 @@ public interface AbstractCandidateFinder { * the competitor whose {@link Candidate}s should be returned * @return all of the Candidates for the specified competitor */ - Pair, Iterable> getAllCandidates(Competitor c); + Util.Pair, Iterable> getAllCandidates(Competitor c); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/CandidateChooser.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/CandidateChooser.java index 7b33f328c6f..261a20eccfa 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/CandidateChooser.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/CandidateChooser.java @@ -16,11 +16,11 @@ import com.sap.sailing.domain.common.LegType; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MeterDistance; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.TrackedLeg; import com.sap.sailing.domain.tracking.impl.MarkPassingImpl; +import com.sap.sse.common.Util; /** * The standard implementation of {@link AbstractCandidateChooser}. A graph is created, with each {@link Candidate} as a @@ -67,7 +67,7 @@ public class CandidateChooser implements AbstractCandidateChooser { } @Override - public void calculateMarkPassDeltas(Competitor c, Pair, Iterable> candidateDeltas) { + public void calculateMarkPassDeltas(Competitor c, Util.Pair, Iterable> candidateDeltas) { if (race.getStartOfRace() != null && (raceStartTime == null || !race.getStartOfRace().minus(2000).equals(raceStartTime))) { raceStartTime = race.getStartOfRace().minus(2000); for (Competitor com : allEdges.keySet()) { @@ -116,23 +116,23 @@ public class CandidateChooser implements AbstractCandidateChooser { for (Edge e : allEdges.get(co)) { all.add(e); } - LinkedHashMap> candidateWithParent = new LinkedHashMap<>(); - candidateWithParent.put(start, new Pair(null, 0.0)); - Pair currentMostLikelyEdge = null; + LinkedHashMap> candidateWithParent = new LinkedHashMap<>(); + candidateWithParent.put(start, new Util.Pair(null, 0.0)); + Util.Pair currentMostLikelyEdge = null; while (!candidateWithParent.containsKey(end)) { currentMostLikelyEdge = null; for (Edge e : all) { if (candidateWithParent.containsKey(e.getStart())) { Double cost = candidateWithParent.get(e.getStart()).getB() + e.getProbability(); if (currentMostLikelyEdge == null) { - currentMostLikelyEdge = new Pair(e, cost); + currentMostLikelyEdge = new Util.Pair(e, cost); } else if (cost < currentMostLikelyEdge.getB()) { - currentMostLikelyEdge = new Pair(e, cost); + currentMostLikelyEdge = new Util.Pair(e, cost); } } } if (!candidateWithParent.containsKey(currentMostLikelyEdge.getA().getEnd())) { - candidateWithParent.put(currentMostLikelyEdge.getA().getEnd(), new Pair(currentMostLikelyEdge.getA().getStart(), currentMostLikelyEdge.getB())); + candidateWithParent.put(currentMostLikelyEdge.getA().getEnd(), new Util.Pair(currentMostLikelyEdge.getA().getStart(), currentMostLikelyEdge.getB())); } all.remove(currentMostLikelyEdge.getA()); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/CandidateFinder.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/CandidateFinder.java index f932e22b999..a6a31d751f9 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/CandidateFinder.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/CandidateFinder.java @@ -22,9 +22,9 @@ import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.MeterDistance; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.GPSFix; +import com.sap.sse.common.Util; /** * The standard implemantation of {@link AbstractCandidateFinder}. There are two ways {@link Candidate}s can be created. @@ -39,7 +39,7 @@ public class CandidateFinder implements AbstractCandidateFinder { private static final Logger logger = Logger.getLogger(CandidateFinder.class.getName()); - private LinkedHashMap>>> crossTrackErrors = new LinkedHashMap<>(); + private LinkedHashMap>>> crossTrackErrors = new LinkedHashMap<>(); private LinkedHashMap>> distances = new LinkedHashMap<>(); private LinkedHashMap, Candidate>>> cteCandidates = new LinkedHashMap<>(); private LinkedHashMap>> distanceCandidates = new LinkedHashMap<>(); @@ -58,7 +58,7 @@ public class CandidateFinder implements AbstractCandidateFinder { public CandidateFinder(DynamicTrackedRace race) { this.race = race; for (Competitor c : race.getRace().getCompetitors()) { - crossTrackErrors.put(c, new TreeMap>>(comp)); + crossTrackErrors.put(c, new TreeMap>>(comp)); distances.put(c, new TreeMap>(comp)); cteCandidates.put(c, new LinkedHashMap, Candidate>>()); distanceCandidates.put(c, new LinkedHashMap>()); @@ -94,7 +94,7 @@ public class CandidateFinder implements AbstractCandidateFinder { } @Override - public Pair, Iterable> getAllCandidates(Competitor c) { + public Util.Pair, Iterable> getAllCandidates(Competitor c) { Set fixes = new TreeSet(comp); try { race.getTrack(c).lockForRead(); @@ -142,14 +142,14 @@ public class CandidateFinder implements AbstractCandidateFinder { } @Override - public Pair, Iterable> getCandidateDeltas(Competitor c, Iterable fixes) { + public Util.Pair, Iterable> getCandidateDeltas(Competitor c, Iterable fixes) { if (logger.getLevel() == Level.FINEST) { logger.finest("Reevaluating MarkPasses for" + c); } Set newCans = new TreeSet<>(); Set wrongCans = new TreeSet<>(); - LinkedHashMap, List>> distanceCandidates = checkForDistanceCandidateChanges(c, fixes); - LinkedHashMap, List>> cteCandidates = checkForCTECandidatesChanges(c, fixes); + LinkedHashMap, List>> distanceCandidates = checkForDistanceCandidateChanges(c, fixes); + LinkedHashMap, List>> cteCandidates = checkForCTECandidatesChanges(c, fixes); for (Waypoint w : passingInstructions.keySet()) { newCans.addAll(cteCandidates.get(w).getA()); newCans.addAll(distanceCandidates.get(w).getA()); @@ -159,14 +159,14 @@ public class CandidateFinder implements AbstractCandidateFinder { if (newCans.size() != 0 || wrongCans.size() != 0) { logger.fine(newCans.size() + " new Candidates and " + wrongCans.size() + " removed Candidates for " + c); } - return new Pair, Iterable>(newCans, wrongCans); + return new Util.Pair, Iterable>(newCans, wrongCans); } - private LinkedHashMap, List>> checkForDistanceCandidateChanges(Competitor c, Iterable fixes) { - LinkedHashMap, List>> result = new LinkedHashMap<>(); + private LinkedHashMap, List>> checkForDistanceCandidateChanges(Competitor c, Iterable fixes) { + LinkedHashMap, List>> result = new LinkedHashMap<>(); calculatesDistances(c, fixes); for (Waypoint w : passingInstructions.keySet()) { - result.put(w, new Pair, List>(new ArrayList(), new ArrayList())); + result.put(w, new Util.Pair, List>(new ArrayList(), new ArrayList())); } Set affectedFixes = new TreeSet(comp); for (GPSFix fix : fixes) { @@ -243,11 +243,11 @@ public class CandidateFinder implements AbstractCandidateFinder { } } - private LinkedHashMap, List>> checkForCTECandidatesChanges(Competitor c, Iterable fixes) { + private LinkedHashMap, List>> checkForCTECandidatesChanges(Competitor c, Iterable fixes) { calculateCrossTrackErrors(c, fixes); - LinkedHashMap, List>> result = new LinkedHashMap<>(); + LinkedHashMap, List>> result = new LinkedHashMap<>(); for (Waypoint w : passingInstructions.keySet()) { - result.put(w, new Pair, List>(new ArrayList(), new ArrayList())); + result.put(w, new Util.Pair, List>(new ArrayList(), new ArrayList())); } for (GPSFix fix : fixes) { GPSFix fixBefore = crossTrackErrors.get(c).lowerKey(fix); @@ -307,14 +307,14 @@ public class CandidateFinder implements AbstractCandidateFinder { private void calculateCrossTrackErrors(Competitor c, Iterable fixes) { for (GPSFix fix : fixes) { - crossTrackErrors.get(c).put(fix, new LinkedHashMap>()); + crossTrackErrors.get(c).put(fix, new LinkedHashMap>()); for (Waypoint w : passingInstructions.keySet()) { Iterator it = w.getMarks().iterator(); List marks = new ArrayList(); while (it.hasNext()) { marks.add(it.next()); } - Pair ctes; + Util.Pair ctes; Position fixPos = fix.getPosition(); Position markPos = race.getOrCreateTrack(marks.get(0)).getEstimatedPosition(fix.getTimePoint(), false); Bearing crossingBearing = race.getCrossingBearing(w, fix.getTimePoint()); @@ -327,7 +327,7 @@ public class CandidateFinder implements AbstractCandidateFinder { } } - ctes = new Pair(cte1, cte2); + ctes = new Util.Pair(cte1, cte2); crossTrackErrors.get(c).get(fix).put(w, ctes); } } @@ -432,7 +432,7 @@ public class CandidateFinder implements AbstractCandidateFinder { Position p2 = null; if (instruction == PassingInstruction.Line) { - Pair pos = race.getPortAndStarboardMarks(t, w); + Util.Pair pos = race.getPortAndStarboardMarks(t, w); p1 = pos.getA() == null ? null : race.getOrCreateTrack(pos.getA()).getEstimatedPosition(t, false); p2 = pos.getB() == null ? null : race.getOrCreateTrack(pos.getB()).getEstimatedPosition(t, false); } else { diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/MarkPassingCalculator.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/MarkPassingCalculator.java index 13d99f47ca5..e91b39f0f37 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/MarkPassingCalculator.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/MarkPassingCalculator.java @@ -20,11 +20,11 @@ import java.util.logging.Logger; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Waypoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.util.impl.ThreadFactoryWithPriority; +import com.sap.sse.common.Util; /** * Calculates the {@link MarkPassing}s for a {@link DynamicTrackedRace} using a {@link AbstractCandidateFinder} and a @@ -43,7 +43,7 @@ import com.sap.sailing.util.impl.ThreadFactoryWithPriority; */ public class MarkPassingCalculator { private static final Logger logger = Logger.getLogger(MarkPassingCalculator.class.getName()); - private final static Pair end = new Pair(null, null); + private final static Util.Pair end = new Util.Pair(null, null); private final static ExecutorService executor = new ThreadPoolExecutor(/* corePoolSize */Math.max(Runtime.getRuntime() .availableProcessors() - 1, 3), /* maximumPoolSize */Math.max(Runtime.getRuntime().availableProcessors() - 1, 3), @@ -76,7 +76,7 @@ public class MarkPassingCalculator { boolean finished = false; LinkedHashMap> combinedFixes = new LinkedHashMap<>(); while (!finished) { - List> allNewFixes = new ArrayList>(); + List> allNewFixes = new ArrayList>(); try { allNewFixes.add(listener.getQueue().take()); } catch (InterruptedException e) { @@ -84,7 +84,7 @@ public class MarkPassingCalculator { + " while waiting for new GPSFixes"); } listener.getQueue().drainTo(allNewFixes); - for (Pair fix : allNewFixes) { + for (Util.Pair fix : allNewFixes) { if (fix == end) { finished = true; continue; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/MarkPassingUpdateListener.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/MarkPassingUpdateListener.java index 3a4e0f03b04..86d441482f8 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/MarkPassingUpdateListener.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/MarkPassingUpdateListener.java @@ -5,12 +5,12 @@ import java.util.concurrent.LinkedBlockingQueue; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.common.TrackedRaceStatusEnum; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.TrackedRaceStatus; import com.sap.sailing.domain.tracking.impl.AbstractRaceChangeListener; +import com.sap.sse.common.Util; /** * Listens for changes that might affect the MarkPassingCalculator: new Fixes of a Competitor or a Mark and when the @@ -21,27 +21,27 @@ import com.sap.sailing.domain.tracking.impl.AbstractRaceChangeListener; * */ public class MarkPassingUpdateListener extends AbstractRaceChangeListener { - private final LinkedBlockingQueue> queue; - private final Pair end; + private final LinkedBlockingQueue> queue; + private final Util.Pair end; - public MarkPassingUpdateListener(TrackedRace race, Pair end) { + public MarkPassingUpdateListener(TrackedRace race, Util.Pair end) { race.addListener(this); queue = new LinkedBlockingQueue<>(); this.end = end; } - public LinkedBlockingQueue> getQueue() { + public LinkedBlockingQueue> getQueue() { return queue; } @Override public void competitorPositionChanged(GPSFixMoving fix, Competitor item) { - queue.add(new Pair(item, fix)); + queue.add(new Util.Pair(item, fix)); } @Override public void markPositionChanged(GPSFix fix, Mark mark) { - queue.add(new Pair(mark, fix)); + queue.add(new Util.Pair(mark, fix)); } @Override diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/polarsheets/PerRaceAndCompetitorPolarSheetGenerationWorker.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/polarsheets/PerRaceAndCompetitorPolarSheetGenerationWorker.java index f844782ba9f..2da28a4f311 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/polarsheets/PerRaceAndCompetitorPolarSheetGenerationWorker.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/polarsheets/PerRaceAndCompetitorPolarSheetGenerationWorker.java @@ -14,12 +14,12 @@ import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.common.WindSourceType; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.GPSFixTrack; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.WindWithConfidence; +import com.sap.sse.common.Util; /** * Iterates through the fixes of one competitor in one tracked race and fills the {@link PolarSheetGenerationWorker} @@ -136,24 +136,24 @@ public class PerRaceAndCompetitorPolarSheetGenerationWorker implements Runnable private void addFixIfValid(GPSFixTrack track, GPSFixMoving fix) { if (!track.hasDirectionChange(fix.getTimePoint(), race.getRace().getBoatClass() .getManeuverDegreeAngleThreshold())) { - List>>> windWithConfidenceList = new ArrayList>>>(); + List>>> windWithConfidenceList = new ArrayList>>>(); if (settings.useOnlyWindGaugesForWindSpeed()) { if (settings.splitByWindgauges()) { windWithConfidenceList.addAll(addAllWindsOfWindGaugesSplitOneByOne(fix)); } else { windWithConfidenceList - .add(new Pair>>( + .add(new Util.Pair>>( createWindGaugesString(race), race.getWindWithConfidence( fix.getPosition(), fix.getTimePoint(), collectWindSourcesToIgnoreForSpeed()))); } } else { - windWithConfidenceList.add(new Pair>>( + windWithConfidenceList.add(new Util.Pair>>( "Combined", race.getWindWithConfidence(fix.getPosition(), fix.getTimePoint()))); } - for (Pair>> windWithSourceIdStringPair : windWithConfidenceList) { - WindWithConfidence> windWithConfidence = windWithSourceIdStringPair + for (Util.Pair>> windWithSourceIdStringPair : windWithConfidenceList) { + WindWithConfidence> windWithConfidence = windWithSourceIdStringPair .getB(); if (windWithConfidence != null && windWithConfidence.useSpeed() && windWithConfidence.getConfidence() >= settings.getMinimumWindConfidence()) { @@ -165,11 +165,11 @@ public class PerRaceAndCompetitorPolarSheetGenerationWorker implements Runnable } } - private Collection>>> addAllWindsOfWindGaugesSplitOneByOne( + private Collection>>> addAllWindsOfWindGaugesSplitOneByOne( GPSFixMoving fix) { Iterable windGaugeSources = race.getWindSources(WindSourceType.EXPEDITION); - List>>> windWithConfidenceList - = new ArrayList>>>(); + List>>> windWithConfidenceList + = new ArrayList>>>(); for (WindSource windGaugeSource : windGaugeSources) { Iterable allSources = race.getWindSources(); List allSourcesButTheSingleWindGaugeSource = new ArrayList(); @@ -178,7 +178,7 @@ public class PerRaceAndCompetitorPolarSheetGenerationWorker implements Runnable allSourcesButTheSingleWindGaugeSource.add(windSource); } } - windWithConfidenceList.add(new Pair>>( + windWithConfidenceList.add(new Util.Pair>>( windGaugeSource.getId().toString(), race.getWindWithConfidence(fix.getPosition(), fix.getTimePoint(), allSourcesButTheSingleWindGaugeSource))); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/RaceLogIdentifier.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/RaceLogIdentifier.java index b20e8651d9a..8e3dbaf1469 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/RaceLogIdentifier.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/RaceLogIdentifier.java @@ -2,7 +2,7 @@ package com.sap.sailing.domain.racelog; import java.io.Serializable; -import com.sap.sailing.domain.common.impl.Util.Triple; +import com.sap.sse.common.Util; public interface RaceLogIdentifier extends Serializable { @@ -10,7 +10,7 @@ public interface RaceLogIdentifier extends Serializable { String getFleetName(); - Triple getIdentifier(); + Util.Triple getIdentifier(); String getDeprecatedIdentifier(); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/RaceLogIdentifierTemplate.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/RaceLogIdentifierTemplate.java index 35d705f030e..0cd245195ab 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/RaceLogIdentifierTemplate.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/RaceLogIdentifierTemplate.java @@ -3,6 +3,10 @@ package com.sap.sailing.domain.racelog; import java.io.Serializable; 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.leaderboard.FlexibleLeaderboard; +import com.sap.sailing.domain.leaderboard.Leaderboard; /** * This interfaces serves as a template for the actual RaceLogIdentifier that is compound as follows: diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/RaceLogIdentifierTemplateResolver.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/RaceLogIdentifierTemplateResolver.java index 2c6eb8c43ab..1424a8eb2de 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/RaceLogIdentifierTemplateResolver.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/RaceLogIdentifierTemplateResolver.java @@ -1,5 +1,7 @@ package com.sap.sailing.domain.racelog; +import com.sap.sailing.domain.base.Regatta; +import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.racelog.impl.RaceLogOnLeaderboardIdentifier; import com.sap.sailing.domain.racelog.impl.RaceLogOnRegattaIdentifier; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/RaceLogInformation.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/RaceLogInformation.java index 97314278f40..a1445b29d9e 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/RaceLogInformation.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/RaceLogInformation.java @@ -2,6 +2,8 @@ package com.sap.sailing.domain.racelog; 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.leaderboard.FlexibleLeaderboard; /** * This interface holds the information for a {@link RaceColumn} needed to have access to its {@link RaceLog}s. diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/impl/RaceLogIdentifierImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/impl/RaceLogIdentifierImpl.java index e80b0bc4e01..59ca01b7270 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/impl/RaceLogIdentifierImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/racelog/impl/RaceLogIdentifierImpl.java @@ -1,8 +1,6 @@ package com.sap.sailing.domain.racelog.impl; import com.sap.sailing.domain.base.Fleet; -import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.racelog.RaceLogIdentifier; import com.sap.sailing.domain.racelog.RaceLogIdentifierTemplate; @@ -21,8 +19,8 @@ public class RaceLogIdentifierImpl implements RaceLogIdentifier { } @Override - public Triple getIdentifier() { - return new Util.Triple(template.getParentObjectName(), raceColumnName, fleetName); + public com.sap.sse.common.Util.Triple getIdentifier() { + return new com.sap.sse.common.Util.Triple(template.getParentObjectName(), raceColumnName, fleetName); } @Override diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/DynamicTrackedRace.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/DynamicTrackedRace.java index ba318aa43e6..ac65dcfec50 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/DynamicTrackedRace.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/DynamicTrackedRace.java @@ -7,7 +7,7 @@ import com.sap.sailing.domain.base.Waypoint; import com.sap.sailing.domain.common.Bearing; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.WindSource; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; public interface DynamicTrackedRace extends TrackedRace { void recordFix(Competitor competitor, GPSFixMoving fix); @@ -103,5 +103,5 @@ public interface DynamicTrackedRace extends TrackedRace { Bearing getCrossingBearing(Waypoint w, TimePoint t); - Pair getPortAndStarboardMarks(TimePoint t, Waypoint w); + Util.Pair getPortAndStarboardMarks(TimePoint t, Waypoint w); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/GPSFixTrack.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/GPSFixTrack.java index 9b0d1613652..dae2bb26eba 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/GPSFixTrack.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/GPSFixTrack.java @@ -9,8 +9,8 @@ import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.Speed; import com.sap.sailing.domain.common.SpeedWithBearing; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.confidence.Weigher; +import com.sap.sse.common.Util; /** * A track records the {@link GPSFix}es received for an object of type @@ -75,7 +75,7 @@ public interface GPSFixTrack extends Tracknull if from is before to */ - Pair getMaximumSpeedOverGround(TimePoint from, TimePoint to); + Util.Pair getMaximumSpeedOverGround(TimePoint from, TimePoint to); /** * Using an averaging / smoothening algorithm, computes the estimated speed determined @@ -118,7 +118,7 @@ public interface GPSFixTrack extends Tracknew MillisecondsTimePoint(0)). If no fix after fix is found, the second * component is the end of time (new MillisecondsTimePoint(Long.MAX_VALUE)). */ - Pair getEstimatedPositionTimePeriodAffectedBy(GPSFix fix); + Util.Pair getEstimatedPositionTimePeriodAffectedBy(GPSFix fix); /** * Same as {@link #getEstimatedPosition(TimePoint, boolean)}, but produces an iterator for all {@link Timed} objects diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/RacesHandle.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/RacesHandle.java index f1aa28916b1..78da6d0bc50 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/RacesHandle.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/RacesHandle.java @@ -2,8 +2,9 @@ package com.sap.sailing.domain.tracking; import java.util.Set; -import com.sap.sailing.domain.base.Regatta; +import com.sap.sailing.domain.base.DomainFactory; import com.sap.sailing.domain.base.RaceDefinition; +import com.sap.sailing.domain.base.Regatta; /** * Gives clients a way to refer to a specific set of races even though the {@link RaceDefinition} objects may not have diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedLegOfCompetitor.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedLegOfCompetitor.java index 500e05acbb3..e6ba98ebee5 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedLegOfCompetitor.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedLegOfCompetitor.java @@ -13,7 +13,7 @@ import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.Speed; import com.sap.sailing.domain.common.SpeedWithBearing; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; public interface TrackedLegOfCompetitor extends Serializable { Leg getLeg(); @@ -75,7 +75,7 @@ public interface TrackedLegOfCompetitor extends Serializable { * achieved and the speed value. In case you provide timepoint that is greater than the time point of the * end of this leg the provided value will be ignored and replaced by the timepoint of the end of the leg. */ - Pair getMaximumSpeedOverGround(TimePoint timePoint); + Util.Pair getMaximumSpeedOverGround(TimePoint timePoint); /** * Infers the maneuvers of the competitor up to timePoint on this leg. If the competitor hasn't started diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java index e168cd4c96e..e5e02abe005 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRace.java @@ -27,9 +27,9 @@ import com.sap.sailing.domain.common.TrackedRaceStatusEnum; import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.common.WindSourceType; import com.sap.sailing.domain.common.dto.TrackedRaceDTO; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.tracking.GPSFixStore; +import com.sap.sse.common.Util; /** * Live tracking data of a single race. The race follows a defined {@link Course} with a sequence of {@link Leg}s. The @@ -87,7 +87,7 @@ public interface TrackedRace extends Serializable { * Returns a list of the first and last mark passing times of all course waypoints. Callers wanting to iterate over * the result must synchronize on the result. */ - Iterable>> getMarkPassingsTimes(); + Iterable>> getMarkPassingsTimes(); /** * Shorthand for {@link #getStart()}.{@link TimePoint#compareTo(TimePoint) compareTo(at)} <= 0 @@ -465,7 +465,7 @@ public interface TrackedRace extends Serializable { * Calls {@link #getWindWithConfidence(Position, TimePoint, Iterable)} and excludes those wind sources listed in * {@link #getWindSourcesToExclude}. */ - WindWithConfidence> getWindWithConfidence(Position p, TimePoint at); + WindWithConfidence> getWindWithConfidence(Position p, TimePoint at); /** * Lists those wind sources which by default are not considered in {@link #getWind(Position, TimePoint)} and @@ -479,7 +479,7 @@ public interface TrackedRace extends Serializable { * by each wind source are used during computing the averaged result across the wind sources. The result has the * averaged confidence attached. */ - WindWithConfidence> getWindWithConfidence(Position p, TimePoint at, + WindWithConfidence> getWindWithConfidence(Position p, TimePoint at, Iterable windSourcesToExclude); /** diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRegatta.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRegatta.java index fa71f4adf61..12bad62fa9f 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRegatta.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/TrackedRegatta.java @@ -7,6 +7,7 @@ import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.Sideline; +import com.sap.sailing.domain.base.impl.TrackedRaces; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.racelog.tracking.GPSFixStore; diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/WindTrack.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/WindTrack.java index 4a5c0fb1550..09fd746d0a1 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/WindTrack.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/WindTrack.java @@ -2,7 +2,7 @@ package com.sap.sailing.domain.tracking; import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; public interface WindTrack extends DynamicTrack { static final long DEFAULT_MILLISECONDS_OVER_WHICH_TO_AVERAGE_WIND = 30000; @@ -22,7 +22,7 @@ public interface WindTrack extends DynamicTrack { */ Wind getAveragedWind(Position p, TimePoint at); - WindWithConfidence> getAveragedWindWithConfidence(Position p, TimePoint at); + WindWithConfidence> getAveragedWindWithConfidence(Position p, TimePoint at); /** * A listener is notified whenever a new fix is added to this track diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/WindTracker.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/WindTracker.java index 34d99e00df8..9ec4757621a 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/WindTracker.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/WindTracker.java @@ -1,5 +1,7 @@ package com.sap.sailing.domain.tracking; +import com.sap.sailing.domain.common.WindSource; + /** * Receives wind information and forwards it to a {@link TrackedRace}'s {@link TrackedRace#getOrCreateWindTrack(WindSource, long) wind * track}. diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/BearingWithConfidenceCluster.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/BearingWithConfidenceCluster.java index daf5d7d2a17..5b0c6efb255 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/BearingWithConfidenceCluster.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/BearingWithConfidenceCluster.java @@ -8,11 +8,11 @@ import com.sap.sailing.domain.base.BearingWithConfidence; import com.sap.sailing.domain.base.impl.BearingWithConfidenceImpl; import com.sap.sailing.domain.common.Bearing; import com.sap.sailing.domain.common.DoublePair; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.confidence.ConfidenceBasedAverager; import com.sap.sailing.domain.confidence.ConfidenceFactory; import com.sap.sailing.domain.confidence.HasConfidence; import com.sap.sailing.domain.confidence.Weigher; +import com.sap.sse.common.Util; /** * Contains a number of {@link Bearing} objects and maintains the average bearing. For a given {@link Bearing} it @@ -65,7 +65,7 @@ public class BearingWithConfidenceCluster { result[0] = createEmptyCluster(); result[1] = createEmptyCluster(); if (bearings.size() >= 2) { - Pair, BearingWithConfidence> extremeBearings = getExtremeBearings(minimumDegreeDifferenceBetweenTacks); + Util.Pair, BearingWithConfidence> extremeBearings = getExtremeBearings(minimumDegreeDifferenceBetweenTacks); if (extremeBearings != null) { result[0].add(extremeBearings.getA()); result[1].add(extremeBearings.getB()); @@ -98,16 +98,16 @@ public class BearingWithConfidenceCluster { * is scaled by their confidences. This scaled distance is then maximized for those bearings at least * minimumDegreeDifferenceBetweenTacks degrees apart. */ - private Pair, BearingWithConfidence> getExtremeBearings(double minimumDegreeDifferenceBetweenTacks) { + private Util.Pair, BearingWithConfidence> getExtremeBearings(double minimumDegreeDifferenceBetweenTacks) { assert bearings.size() >= 2; double maxAbsDegDiff = 0; - Pair, BearingWithConfidence> result = null; + Util.Pair, BearingWithConfidence> result = null; for (int i=0; i= minimumDegreeDifferenceBetweenTacks && confidenceScaledDifference > maxAbsDegDiff) { - result = new Pair, BearingWithConfidence>(bearings.get(i), bearings.get(j)); + result = new Util.Pair, BearingWithConfidence>(bearings.get(i), bearings.get(j)); maxAbsDegDiff = confidenceScaledDifference; assert Math.abs(bearings.get(i).getObject().getDifferenceTo(bearings.get(j).getObject()).getDegrees()) <= 180.; } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CombinedWindTrackImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CombinedWindTrackImpl.java index a20d949f256..3abf99cc582 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CombinedWindTrackImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/CombinedWindTrackImpl.java @@ -3,11 +3,11 @@ package com.sap.sailing.domain.tracking.impl; import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.WindSourceType; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.domain.tracking.WindWithConfidence; import com.sap.sailing.domain.tracking.impl.TrackBasedEstimationWindTrackImpl.EstimatedWindFixesAsNavigableSet; +import com.sap.sse.common.Util; /** * A wind track that delivers the result of @@ -53,7 +53,7 @@ public class CombinedWindTrackImpl extends VirtualWindTrackImpl { } @Override - public WindWithConfidence> getAveragedWindWithConfidence(Position p, TimePoint at) { + public WindWithConfidence> getAveragedWindWithConfidence(Position p, TimePoint at) { return getTrackedRace().getWindWithConfidence(p, at); } } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DistanceCache.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DistanceCache.java index 58c05ef75ce..33742217036 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DistanceCache.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DistanceCache.java @@ -6,11 +6,11 @@ import java.util.NavigableSet; import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.util.impl.ArrayListNavigableSet; import com.sap.sailing.util.impl.LockUtil; import com.sap.sailing.util.impl.NamedReentrantReadWriteLock; +import com.sap.sse.common.Util; /** * Computing {@link #getDistanceTraveled(TimePoint, TimePoint)} is more expensive the longer the track is and the @@ -68,20 +68,20 @@ import com.sap.sailing.util.impl.NamedReentrantReadWriteLock; * @author Axel Uhl (D043530) */ public class DistanceCache { - private final NavigableSet>>> distanceCache; + private final NavigableSet>>> distanceCache; private final NamedReentrantReadWriteLock lock; - private static final Comparator> timePointInPairComparator = new Comparator>() { + private static final Comparator> timePointInPairComparator = new Comparator>() { @Override - public int compare(Pair o1, Pair o2) { + public int compare(Util.Pair o1, Util.Pair o2) { return o1.getA().compareTo(o2.getA()); } }; public DistanceCache(String nameForLockLogging) { lock = new NamedReentrantReadWriteLock("lock for DistanceCache for "+nameForLockLogging, /* fair */ true); - this.distanceCache = new ArrayListNavigableSet>>>(timePointInPairComparator); + this.distanceCache = new ArrayListNavigableSet>>>(timePointInPairComparator); } /** @@ -90,15 +90,15 @@ public class DistanceCache { * the to value of the entry. If there is no entry that is at or after from, * null is returned. */ - public Pair> getEarliestFromAndDistanceAtOrAfterFrom(TimePoint from, TimePoint to) { + public Util.Pair> getEarliestFromAndDistanceAtOrAfterFrom(TimePoint from, TimePoint to) { LockUtil.lockForRead(lock); try { - Pair> result = null; - Pair>> entryForTo = distanceCache.floor(createDummy(to)); + Util.Pair> result = null; + Util.Pair>> entryForTo = distanceCache.floor(createDummy(to)); if (entryForTo != null) { - final Pair fromCeiling = entryForTo.getB().ceiling(new Pair(from, null)); + final Util.Pair fromCeiling = entryForTo.getB().ceiling(new Util.Pair(from, null)); if (fromCeiling != null) { - result = new Pair>(entryForTo.getA(), fromCeiling); + result = new Util.Pair>(entryForTo.getA(), fromCeiling); } } return result; @@ -113,10 +113,10 @@ public class DistanceCache { public void invalidateAllAtOrLaterThan(TimePoint timePoint) { LockUtil.lockForWrite(lock); try { - Pair>> dummy = createDummy(timePoint); - NavigableSet>>> toRemove = distanceCache.tailSet(dummy, /* inclusive */ true); - for (Iterator>>> i=toRemove.iterator(); i.hasNext(); ) { - Pair>> entryToRemove = i.next(); + Util.Pair>> dummy = createDummy(timePoint); + NavigableSet>>> toRemove = distanceCache.tailSet(dummy, /* inclusive */ true); + for (Iterator>>> i=toRemove.iterator(); i.hasNext(); ) { + Util.Pair>> entryToRemove = i.next(); assert entryToRemove.getA().compareTo(timePoint) >= 0; i.remove(); } @@ -125,10 +125,10 @@ public class DistanceCache { } } - private NavigableSet> getEntryForTo(TimePoint to) { - NavigableSet> result = null; - Pair>> dummyForTo = createDummy(to); - Pair>> entryForTo = distanceCache.floor(dummyForTo); + private NavigableSet> getEntryForTo(TimePoint to) { + NavigableSet> result = null; + Util.Pair>> dummyForTo = createDummy(to); + Util.Pair>> entryForTo = distanceCache.floor(dummyForTo); if (entryForTo != null && entryForTo.getA().equals(to)) { result = entryForTo.getB(); } @@ -138,20 +138,20 @@ public class DistanceCache { public void cache(TimePoint from, TimePoint to, Distance distance) { LockUtil.lockForWrite(lock); try { - NavigableSet> entryForTo = getEntryForTo(to); + NavigableSet> entryForTo = getEntryForTo(to); if (entryForTo == null) { - entryForTo = new ArrayListNavigableSet>(timePointInPairComparator); - Pair>> pairForTo = new Pair>>( + entryForTo = new ArrayListNavigableSet>(timePointInPairComparator); + Util.Pair>> pairForTo = new Util.Pair>>( to, entryForTo); distanceCache.add(pairForTo); } - entryForTo.add(new Pair(from, distance)); + entryForTo.add(new Util.Pair(from, distance)); } finally { LockUtil.unlockAfterWrite(lock); } } - private Pair>> createDummy(TimePoint to) { - return new Pair>>(to, null); + private Util.Pair>> createDummy(TimePoint to) { + return new Util.Pair>>(to, null); } } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java index 486c6c4ef2a..ca93eca6605 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/DynamicTrackedRaceImpl.java @@ -34,7 +34,6 @@ import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.common.WindSourceType; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.tracking.GPSFixStore; @@ -851,7 +850,7 @@ DynamicTrackedRace, GPSTrackListener { result = before.middle(after.reverse()); } } else if (instruction == PassingInstruction.Line) { - Pair pos = getPortAndStarboardMarks(t, w); + com.sap.sse.common.Util.Pair pos = getPortAndStarboardMarks(t, w); if (pos.getA() != null && pos.getB() != null) { Position portPosition = getOrCreateTrack(pos.getA()).getEstimatedPosition(t, false); Position starboardPosition = getOrCreateTrack(pos.getB()).getEstimatedPosition(t, false); @@ -865,13 +864,13 @@ DynamicTrackedRace, GPSTrackListener { return result; } @Override - public Pair getPortAndStarboardMarks(TimePoint t, Waypoint w) { + public com.sap.sse.common.Util.Pair getPortAndStarboardMarks(TimePoint t, Waypoint w) { List markPositions = new ArrayList(); for (Mark lineMark : w.getMarks()) { final Position estimatedMarkPosition = getOrCreateTrack(lineMark).getEstimatedPosition(t, /* extrapolate */ false); if (estimatedMarkPosition == null) { - return new Pair(null,null); + return new com.sap.sse.common.Util.Pair(null,null); } markPositions.add(estimatedMarkPosition); } @@ -880,7 +879,7 @@ DynamicTrackedRace, GPSTrackListener { final boolean isStartLine = indexOfWaypoint == 0; final Bearing legDeterminingDirectionBearing = getTrackedLeg(legs.get(isStartLine ? 0 : indexOfWaypoint - 1)).getLegBearing(t); if (legDeterminingDirectionBearing == null) { - return new Pair(null, null); + return new com.sap.sse.common.Util.Pair(null, null); } Distance crossTrackErrorOfMark0OnLineFromMark1ToNextWaypoint = markPositions.get(0).crossTrackError(markPositions.get(1), legDeterminingDirectionBearing); final Mark starboardMarkWhileApproachingLine; @@ -892,6 +891,6 @@ DynamicTrackedRace, GPSTrackListener { portMarkWhileApproachingLine = Util.get(w.getMarks(), 1); starboardMarkWhileApproachingLine = Util.get(w.getMarks(), 0); } - return new Pair(portMarkWhileApproachingLine, starboardMarkWhileApproachingLine); + return new com.sap.sse.common.Util.Pair(portMarkWhileApproachingLine, starboardMarkWhileApproachingLine); } } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/GPSFixTrackImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/GPSFixTrackImpl.java index 3c20fe1a1d2..4e674af4197 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/GPSFixTrackImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/GPSFixTrackImpl.java @@ -34,7 +34,6 @@ import com.sap.sailing.domain.common.impl.KnotSpeedImpl; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.NauticalMileDistance; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.confidence.ConfidenceBasedAverager; import com.sap.sailing.domain.confidence.ConfidenceFactory; import com.sap.sailing.domain.confidence.HasConfidence; @@ -45,6 +44,7 @@ import com.sap.sailing.domain.tracking.GPSFixTrack; import com.sap.sailing.domain.tracking.GPSTrackListener; import com.sap.sailing.domain.tracking.WithValidityCache; import com.sap.sailing.util.impl.ArrayListNavigableSet; +import com.sap.sse.common.Util; public class GPSFixTrackImpl extends TrackImpl implements GPSFixTrack { private static final Logger logger = Logger.getLogger(GPSFixTrackImpl.class.getName()); @@ -260,12 +260,12 @@ public class GPSFixTrackImpl extends TrackImpl return millisecondsOverWhichToAverage; } - private Pair getFixesForPositionEstimation(TimePoint timePoint, boolean inclusive) { + private Util.Pair getFixesForPositionEstimation(TimePoint timePoint, boolean inclusive) { lockForRead(); try { FixType lastFixBefore = inclusive ? getLastFixAtOrBefore(timePoint) : getLastFixBefore(timePoint); FixType firstFixAfter = inclusive ? getFirstFixAtOrAfter(timePoint) : getFirstFixAfter(timePoint); - return new Pair(lastFixBefore, firstFixAfter); + return new Util.Pair(lastFixBefore, firstFixAfter); } finally { unlockAfterRead(); } @@ -322,7 +322,7 @@ public class GPSFixTrackImpl extends TrackImpl public Position getEstimatedPosition(TimePoint timePoint, boolean extrapolate) { lockForRead(); try { - Pair fixesForPositionEstimation = getFixesForPositionEstimation(timePoint, /* inclusive */ true); + Util.Pair fixesForPositionEstimation = getFixesForPositionEstimation(timePoint, /* inclusive */ true); return getEstimatedPosition(timePoint, extrapolate, fixesForPositionEstimation.getA(), fixesForPositionEstimation.getB()); } finally { unlockAfterRead(); @@ -330,13 +330,13 @@ public class GPSFixTrackImpl extends TrackImpl } @Override - public Pair getEstimatedPositionTimePeriodAffectedBy(GPSFix fix) { + public Util.Pair getEstimatedPositionTimePeriodAffectedBy(GPSFix fix) { if (fix == null) { throw new IllegalArgumentException("fix must not be null"); } lockForRead(); try { - Pair fixesForPositionEstimation = getFixesForPositionEstimation(fix.getTimePoint(), /* inclusive */ true); + Util.Pair fixesForPositionEstimation = getFixesForPositionEstimation(fix.getTimePoint(), /* inclusive */ true); final TimePoint start; if (fix.equals(fixesForPositionEstimation.getA())) { if (getLastFixBefore(fix.getTimePoint()) == null) { @@ -367,7 +367,7 @@ public class GPSFixTrackImpl extends TrackImpl end = fixesForPositionEstimation.getB().getTimePoint(); } } - return new Pair(start, end); + return new Util.Pair(start, end); } finally { unlockAfterRead(); } @@ -424,7 +424,7 @@ public class GPSFixTrackImpl extends TrackImpl } @Override - public Pair getMaximumSpeedOverGround(TimePoint from, TimePoint to) { + public Util.Pair getMaximumSpeedOverGround(TimePoint from, TimePoint to) { return maxSpeedCache.getMaxSpeed(from, to); } @@ -478,7 +478,7 @@ public class GPSFixTrackImpl extends TrackImpl } else { lockForRead(); try { - Pair> bestCacheEntry = getDistanceCache() + Util.Pair> bestCacheEntry = getDistanceCache() .getEarliestFromAndDistanceAtOrAfterFrom(from, to); if (bestCacheEntry != null) { // compute the missing stretches between best cache entry's "from" and our "from" and the cache @@ -691,7 +691,7 @@ public class GPSFixTrackImpl extends TrackImpl * then the next fix is added to the result interval. This is because for that next fix, fix in that case will be relevant * for speed estimation because it's the closest fix. */ - protected Pair getTimeIntervalWhoseEstimatedSpeedMayHaveChangedAfterAddingFix(FixType fix) { + protected Util.Pair getTimeIntervalWhoseEstimatedSpeedMayHaveChangedAfterAddingFix(FixType fix) { TimePoint intervalStart = null; TimePoint intervalEnd = null; lockForRead(); @@ -751,7 +751,7 @@ public class GPSFixTrackImpl extends TrackImpl } finally { unlockAfterRead(); } - return new Pair(intervalStart, intervalEnd); + return new Util.Pair(intervalStart, intervalEnd); } protected FixType createDummyGPSFix(TimePoint at) { diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/MaxSpeedCache.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/MaxSpeedCache.java index ac6352853e9..4ad78203d83 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/MaxSpeedCache.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/MaxSpeedCache.java @@ -9,13 +9,14 @@ import java.util.NavigableSet; import com.sap.sailing.domain.common.Speed; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.domain.tracking.GPSFixTrack; import com.sap.sailing.domain.tracking.GPSTrackListener; import com.sap.sailing.util.impl.ArrayListNavigableSet; import com.sap.sailing.util.impl.LockUtil; import com.sap.sailing.util.impl.NamedReentrantReadWriteLock; +import com.sap.sse.common.Util; +import com.sap.sse.common.Util.Pair; /** * Re-calculating the maximum speed over a {@link GPSFixTrack} is time consuming. When the track grows the way it @@ -60,14 +61,14 @@ public class MaxSpeedCache implements GPSTrack * navigable set is ordered according to ascending to time points, yielding shorter cache intervals * before longer intervals. */ - private final Map>>> cache; + private final Map>>> cache; private final NamedReentrantReadWriteLock lock; public MaxSpeedCache(GPSFixTrackImpl track) { this.track = track; track.addListener(this); - cache = new HashMap>>>(); + cache = new HashMap>>>(); lock = new NamedReentrantReadWriteLock(MaxSpeedCache.class.getSimpleName()+" for track of "+track.getTrackedItem(), /* fair */ false); } @@ -79,14 +80,14 @@ public class MaxSpeedCache implements GPSTrack @Override public void gpsFixReceived(FixType fix, ItemType item) { // find the invalidation interval such that getFixesRelevantForSpeedEstimation, when passed any time point from that interval, produces "fix" - Pair invalidationInterval = track.getTimeIntervalWhoseEstimatedSpeedMayHaveChangedAfterAddingFix(fix); + Util.Pair invalidationInterval = track.getTimeIntervalWhoseEstimatedSpeedMayHaveChangedAfterAddingFix(fix); LockUtil.lockForWrite(lock); - HashMap>>> additionalCacheEntries = - new HashMap>>>(); + HashMap>>> additionalCacheEntries = + new HashMap>>>(); try { // find all cache entries that overlap with this interval - for (Iterator>>>> i = cache.entrySet().iterator(); i.hasNext(); ) { - Entry>>> next = i.next(); + for (Iterator>>>> i = cache.entrySet().iterator(); i.hasNext(); ) { + Entry>>> next = i.next(); additionalCacheEntries.putAll(invalidateEntriesAndReturnAdditionalCacheEntries(next, invalidationInterval)); if (next.getValue().isEmpty()) { i.remove(); @@ -108,10 +109,10 @@ public class MaxSpeedCache implements GPSTrack } private void mergeAdditionalCacheEntries( - Map>>> additionalCacheEntries) { + Map>>> additionalCacheEntries) { assert lock.writeLock().isHeldByCurrentThread(); - for (Map.Entry>>> additionalCacheEntry : additionalCacheEntries.entrySet()) { - NavigableSet>> existingEntry = cache.get(additionalCacheEntry.getKey()); + for (Map.Entry>>> additionalCacheEntry : additionalCacheEntries.entrySet()) { + NavigableSet>> existingEntry = cache.get(additionalCacheEntry.getKey()); if (existingEntry == null) { cache.put(additionalCacheEntry.getKey(), additionalCacheEntry.getValue()); } else { @@ -120,12 +121,12 @@ public class MaxSpeedCache implements GPSTrack } } - private Map>>> invalidateEntriesAndReturnAdditionalCacheEntries( - Entry>>> cacheEntry, - Pair invalidationInterval) { + private Map>>> invalidateEntriesAndReturnAdditionalCacheEntries( + Entry>>> cacheEntry, + Util.Pair invalidationInterval) { assert lock.writeLock().isHeldByCurrentThread(); // cannot modify cache here because caller is in an iteration over cache's entry set; request additions by returning them - Map>>> result = new HashMap<>(); + Map>>> result = new HashMap<>(); if (!cacheEntry.getKey().after(invalidationInterval.getB())) { // invalidation can only become necessary if the cache entry doesn't start after the end of the invalidation interval TimePoint croppedFrom; // start of the remaining valid part of the cache entries @@ -135,10 +136,10 @@ public class MaxSpeedCache implements GPSTrack croppedFrom = invalidationInterval.getB(); // cache entry starts in the invalidationInterval; earliest valid point is end of invalidation interval } // now scan all entries whose "to" is at or after the invalidationInterval's start: - for (Iterator>> toAndResultIter = cacheEntry.getValue().tailSet( - new Pair>(invalidationInterval.getA(), null), /* inclusive */ true).iterator(); + for (Iterator>> toAndResultIter = cacheEntry.getValue().tailSet( + new Util.Pair>(invalidationInterval.getA(), null), /* inclusive */ true).iterator(); toAndResultIter.hasNext(); ) { - Pair> toAndResult = toAndResultIter.next(); + Util.Pair> toAndResult = toAndResultIter.next(); // cacheEntry's from is before or in the invalidation interval; the current "to" in this loop iteration is in or after the interval // and at or after "from"; in any case the record needs to be deleted: toAndResultIter.remove(); @@ -166,8 +167,8 @@ public class MaxSpeedCache implements GPSTrack } } - public Pair getMaxSpeed(TimePoint from, TimePoint to) { - Pair result = null; + public Util.Pair getMaxSpeed(TimePoint from, TimePoint to) { + Util.Pair result = null; if (!to.before(from)) { result = cacheLookup(from, to); if (result == null) { @@ -183,16 +184,16 @@ public class MaxSpeedCache implements GPSTrack * maximum in the missing tail, producing another cache entry for both, the tail and the extended interval. Otherwise, null * is returned. */ - private Pair cacheLookup(TimePoint from, TimePoint to) { + private Util.Pair cacheLookup(TimePoint from, TimePoint to) { assert !from.after(to); - Pair result = null; - NavigableSet>> entry; - Pair> entryForLongestSubseries = null; + Util.Pair result = null; + NavigableSet>> entry; + Util.Pair> entryForLongestSubseries = null; LockUtil.lockForRead(lock); try { entry = cache.get(from); if (entry != null) { - entryForLongestSubseries = entry.floor(new Pair>(to, null)); + entryForLongestSubseries = entry.floor(new Util.Pair>(to, null)); } } finally { LockUtil.unlockAfterRead(lock); @@ -202,7 +203,7 @@ public class MaxSpeedCache implements GPSTrack // avoid endless recursion in case entryTo is not after from: if (entryTo.equals(to) || entryTo.after(from)) { if (entryTo.before(to)) { - Pair maxInMissingTail = getMaxSpeed(entryTo, to); + Util.Pair maxInMissingTail = getMaxSpeed(entryTo, to); if (maxInMissingTail != null && maxInMissingTail.getB().compareTo(entryForLongestSubseries.getB().getB()) > 0) { // the maximum speed is in the tail that was not part of the interval retrieved from the cache result = maxInMissingTail; @@ -219,7 +220,7 @@ public class MaxSpeedCache implements GPSTrack return result; } - private void cache(TimePoint from, TimePoint to, Pair fixAtMaxSpeed) { + private void cache(TimePoint from, TimePoint to, Util.Pair fixAtMaxSpeed) { LockUtil.lockForWrite(lock); try { addEntryToMap(from, to, fixAtMaxSpeed, cache); @@ -228,27 +229,27 @@ public class MaxSpeedCache implements GPSTrack } } - private void addEntryToMap(TimePoint from, TimePoint to, Pair fixAtMaxSpeed, - Map>>> map) { - NavigableSet>> setForFrom = map.get(from); + private void addEntryToMap(TimePoint from, TimePoint to, Util.Pair fixAtMaxSpeed, + Map>>> map) { + NavigableSet>> setForFrom = map.get(from); if (setForFrom == null) { - setForFrom = new ArrayListNavigableSet>>( - new Comparator>>() { + setForFrom = new ArrayListNavigableSet>>( + new Comparator>>() { @Override - public int compare(Pair> o1, - Pair> o2) { + public int compare(Util.Pair> o1, + Util.Pair> o2) { return o1.getA().compareTo(o2.getA()); } }); map.put(from, setForFrom); } - setForFrom.add(new Pair>(to, fixAtMaxSpeed)); + setForFrom.add(new Util.Pair>(to, fixAtMaxSpeed)); } /** * @return null, if no fix exists in the interval specified */ - private Pair computeMaxSpeed(TimePoint from, TimePoint to) { + private Util.Pair computeMaxSpeed(TimePoint from, TimePoint to) { track.lockForRead(); try { // fetch all fixes on this leg so far and determine their maximum speed @@ -268,7 +269,7 @@ public class MaxSpeedCache implements GPSTrack } } } - return maxSpeedFix == null ? null : new Pair(maxSpeedFix, max); + return maxSpeedFix == null ? null : new Util.Pair(maxSpeedFix, max); } finally { track.unlockAfterRead(); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackBasedEstimationWindTrackImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackBasedEstimationWindTrackImpl.java index 3f895051bfb..94d338e81ca 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackBasedEstimationWindTrackImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackBasedEstimationWindTrackImpl.java @@ -27,7 +27,6 @@ import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.SerializableComparator; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.confidence.ConfidenceFactory; import com.sap.sailing.domain.confidence.Weigher; import com.sap.sailing.domain.tracking.GPSFix; @@ -42,6 +41,7 @@ import com.sap.sailing.domain.tracking.WindWithConfidence; import com.sap.sailing.util.impl.ArrayListNavigableSet; import com.sap.sailing.util.impl.LockUtil; import com.sap.sailing.util.impl.NamedReentrantReadWriteLock; +import com.sap.sse.common.Util; /** * A virtual wind track that computes and caches the wind bearing based on the boat tracks recorded in the tracked race @@ -682,7 +682,7 @@ public class TrackBasedEstimationWindTrackImpl extends VirtualWindTrackImpl impl assert fix != null && fix.getTimePoint() != null; // A mark position change can mean a leg type change. The interval over which the wind estimation is affected // depends on how the GPS track computes the estimated mark position. Ask it: - Pair interval = getTrackedRace().getOrCreateTrack(mark).getEstimatedPositionTimePeriodAffectedBy(fix); + Util.Pair interval = getTrackedRace().getOrCreateTrack(mark).getEstimatedPositionTimePeriodAffectedBy(fix); WindWithConfidence startOfInvalidation = getDummyFixWithConfidence(interval.getA()); TimePoint endOfInvalidation = interval.getB(); scheduleCacheRefresh(startOfInvalidation, endOfInvalidation); @@ -697,7 +697,7 @@ public class TrackBasedEstimationWindTrackImpl extends VirtualWindTrackImpl impl * result type suggests it. */ @Override - protected WindWithConfidence> getAveragedWindUnsynchronized(Position p, TimePoint at) { + protected WindWithConfidence> getAveragedWindUnsynchronized(Position p, TimePoint at) { lockForRead(); try { TimePoint floorTimePoint = virtualInternalRawFixes.floorToResolution(at); @@ -712,10 +712,10 @@ public class TrackBasedEstimationWindTrackImpl extends VirtualWindTrackImpl impl WindWithConfidence preResult = virtualInternalRawFixes.getWindWithConfidence(p, timePoint); // reduce confidence depending on how far *at* is away from the time point of the fix obtained double confidenceMultiplier = weigher.getConfidence(timePoint, at); - WindWithConfidenceImpl> result = preResult == null ? null - : new WindWithConfidenceImpl>(preResult.getObject(), confidenceMultiplier + WindWithConfidenceImpl> result = preResult == null ? null + : new WindWithConfidenceImpl>(preResult.getObject(), confidenceMultiplier * preResult.getConfidence(), - /* relativeTo */new Pair(p, at), preResult.useSpeed()); + /* relativeTo */new Util.Pair(p, at), preResult.useSpeed()); return result; } finally { unlockAfterRead(); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedLegOfCompetitorImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedLegOfCompetitorImpl.java index b35fc25f05d..5c14d315541 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedLegOfCompetitorImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedLegOfCompetitorImpl.java @@ -21,7 +21,6 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.KnotSpeedImpl; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MeterDistance; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.GPSFixTrack; import com.sap.sailing.domain.tracking.Maneuver; @@ -30,6 +29,7 @@ import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.util.impl.ArrayListNavigableSet; +import com.sap.sse.common.Util; /** * Provides a convenient view on the tracked leg, projecting to a single competitor's performance. @@ -150,7 +150,7 @@ public class TrackedLegOfCompetitorImpl implements TrackedLegOfCompetitor { } @Override - public Pair getMaximumSpeedOverGround(TimePoint timePoint) { + public Util.Pair getMaximumSpeedOverGround(TimePoint timePoint) { // fetch all fixes on this leg so far and determine their maximum speed MarkPassing legStart = getMarkPassingForLegStart(); if (legStart == null) { diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java index 039807f3845..0cfc6468c9d 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java @@ -72,8 +72,6 @@ import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.NauticalMileDistance; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.domain.confidence.ConfidenceBasedWindAverager; import com.sap.sailing.domain.confidence.ConfidenceFactory; @@ -163,7 +161,7 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl /** * The first and last passing times of all course waypoints */ - private transient List>> markPassingsTimes; + private transient List>> markPassingsTimes; /** * The latest time point contained by any of the events received and processed @@ -206,7 +204,7 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl * computed. Clients wanting to know maneuvers for the competitor outside of this time interval need to (re-)compute * them. */ - private transient SmartFutureCache>, EmptyUpdateInterval> maneuverCache; + private transient SmartFutureCache>, EmptyUpdateInterval> maneuverCache; private transient Map> directionFromStartToNextMarkCache; @@ -325,7 +323,7 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl markPassingsForWaypoint.put(waypoint, new ConcurrentSkipListSet( MarkPassingByTimeComparator.INSTANCE)); } - markPassingsTimes = new ArrayList>>(); + markPassingsTimes = new ArrayList>>(); loadingFromWindStoreState = LoadingFromStoresState.NOT_STARTED; // When this tracked race is to be serialized, wait for the loading from stores to complete. new Thread("Mongo wind loader for tracked race " + getRace().getName()) { @@ -416,7 +414,7 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException { ois.defaultReadObject(); attachedRaceLogs = new HashMap<>(); - markPassingsTimes = new ArrayList>>(); + markPassingsTimes = new ArrayList>>(); cacheInvalidationTimerLock = new Object(); windStore = EmptyWindStore.INSTANCE; competitorRankings = new HashMap>(); @@ -441,11 +439,11 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl } } - private SmartFutureCache>, EmptyUpdateInterval> createManeuverCache() { - return new SmartFutureCache>, EmptyUpdateInterval>( - new AbstractCacheUpdater>, EmptyUpdateInterval>() { + private SmartFutureCache>, EmptyUpdateInterval> createManeuverCache() { + return new SmartFutureCache>, EmptyUpdateInterval>( + new AbstractCacheUpdater>, EmptyUpdateInterval>() { @Override - public Triple> computeCacheUpdate(Competitor competitor, + public com.sap.sse.common.Util.Triple> computeCacheUpdate(Competitor competitor, EmptyUpdateInterval updateInterval) throws NoWindException { return computeManeuvers(competitor); } @@ -744,7 +742,7 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl } @Override - public Iterable>> getMarkPassingsTimes() { + public Iterable>> getMarkPassingsTimes() { getRace().getCourse().lockForRead(); // ensure the list of waypoints doesn't change while we're updating the // markPassingTimes structure try { @@ -779,9 +777,9 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl unlockAfterRead(markPassings); } } - Pair timesPair = new Pair(firstPassingTime, + com.sap.sse.common.Util.Pair timesPair = new com.sap.sse.common.Util.Pair(firstPassingTime, lastPassingTime); - markPassingsTimes.add(new Pair>(waypoint, timesPair)); + markPassingsTimes.add(new com.sap.sse.common.Util.Pair>(waypoint, timesPair)); } } return markPassingsTimes; @@ -1237,13 +1235,13 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl @Override public Wind getWind(Position p, TimePoint at, Iterable windSourcesToExclude) { - final WindWithConfidence> windWithConfidence = getWindWithConfidence(p, at, + final WindWithConfidence> windWithConfidence = getWindWithConfidence(p, at, windSourcesToExclude); return windWithConfidence == null ? null : windWithConfidence.getObject(); } @Override - public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at) { + public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at) { return getWindWithConfidence(p, at, getWindSourcesToExclude()); } @@ -1275,19 +1273,19 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl } @Override - public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at, + public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at, Iterable windSourcesToExclude) { boolean canUseSpeedOfAtLeastOneWindSource = false; - Weigher> timeWeigherThatPretendsToAlsoWeighPositions = new PositionAndTimePointWeigher( + Weigher> timeWeigherThatPretendsToAlsoWeighPositions = new PositionAndTimePointWeigher( /* halfConfidenceAfterMilliseconds */10000l); - ConfidenceBasedWindAverager> averager = ConfidenceFactory.INSTANCE + ConfidenceBasedWindAverager> averager = ConfidenceFactory.INSTANCE .createWindAverager(timeWeigherThatPretendsToAlsoWeighPositions); - List>> windFixesWithConfidences = new ArrayList>>(); + List>> windFixesWithConfidences = new ArrayList>>(); for (WindSource windSource : getWindSources()) { // TODO consider parallelizing and consider caching if (!Util.contains(windSourcesToExclude, windSource)) { WindTrack track = getOrCreateWindTrack(windSource); - WindWithConfidence> windWithConfidence = track.getAveragedWindWithConfidence(p, at); + WindWithConfidence> windWithConfidence = track.getAveragedWindWithConfidence(p, at); if (windWithConfidence != null) { windFixesWithConfidences.add(windWithConfidence); canUseSpeedOfAtLeastOneWindSource = canUseSpeedOfAtLeastOneWindSource @@ -1295,11 +1293,11 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl } } } - HasConfidence> average = averager.getAverage( - windFixesWithConfidences, new Pair(p, at)); - WindWithConfidence> result = average == null ? null - : new WindWithConfidenceImpl>(average.getObject(), average.getConfidence(), - new Pair(p, at), canUseSpeedOfAtLeastOneWindSource); + HasConfidence> average = averager.getAverage( + windFixesWithConfidences, new com.sap.sse.common.Util.Pair(p, at)); + WindWithConfidence> result = average == null ? null + : new WindWithConfidenceImpl>(average.getObject(), average.getConfidence(), + new com.sap.sse.common.Util.Pair(p, at), canUseSpeedOfAtLeastOneWindSource); return result; } @@ -1892,11 +1890,11 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl maneuverCache.triggerUpdate(competitor, /* updateInterval */null); } - private Triple> computeManeuvers(Competitor competitor) throws NoWindException { + private com.sap.sse.common.Util.Triple> computeManeuvers(Competitor competitor) throws NoWindException { logger.finest("computeManeuvers(" + competitor.getName() + ") called in tracked race " + this); long startedAt = System.currentTimeMillis(); // compute the maneuvers for competitor - Triple> result = null; + com.sap.sse.common.Util.Triple> result = null; NavigableSet markPassings = getMarkPassings(competitor); boolean markPassingsNotEmpty; TimePoint extendedFrom = null; @@ -1929,7 +1927,7 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl if (extendedTo != null) { try { List extendedResultForCache = detectManeuvers(competitor, extendedFrom, extendedTo, /* ignoreMarkPassings */ false); - result = new Triple>(extendedFrom, extendedTo, + result = new com.sap.sse.common.Util.Triple>(extendedFrom, extendedTo, extendedResultForCache); } catch (NoWindException ex) { // Catching the NoWindException here without letting it propagate thru other handlers. @@ -2005,7 +2003,7 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl throws NoWindException { List result = new ArrayList(); if (approximatingFixesToAnalyze.size() > 2) { - List> courseChangeSequenceInSameDirection = new ArrayList>(); + List> courseChangeSequenceInSameDirection = new ArrayList>(); Iterator approximationPointsIter = approximatingFixesToAnalyze.iterator(); GPSFixMoving previous = approximationPointsIter.next(); GPSFixMoving current = approximationPointsIter.next(); @@ -2021,7 +2019,7 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl // compute course change on "approximation track" CourseChange courseChange = speedWithBearingOnApproximationFromPreviousToCurrent .getCourseChangeRequiredToReach(speedWithBearingOnApproximationFromCurrentToNext); - Pair courseChangeAtFix = new Pair(current, + com.sap.sse.common.Util.Pair courseChangeAtFix = new com.sap.sse.common.Util.Pair(current, courseChange); if (!courseChangeSequenceInSameDirection.isEmpty() && Math.signum(courseChangeSequenceInSameDirection.get(0).getB().getCourseChangeInDegrees()) != Math @@ -2064,7 +2062,7 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl @Override public List getManeuvers(Competitor competitor, TimePoint from, TimePoint to, boolean waitForLatest) throws NoWindException { - Triple> allManeuvers = maneuverCache.get(competitor, waitForLatest); + com.sap.sse.common.Util.Triple> allManeuvers = maneuverCache.get(competitor, waitForLatest); List result; if (allManeuvers == null) { result = Collections.emptyList(); @@ -2120,10 +2118,10 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl */ private List groupChangesInSameDirectionIntoManeuvers(Competitor competitor, SpeedWithBearing speedWithBearingOnApproximationAtBeginning, - List> courseChangeSequenceInSameDirection, boolean ignoreMarkPassings, + List> courseChangeSequenceInSameDirection, boolean ignoreMarkPassings, TimePoint earliestManeuverStart, TimePoint latestManeuverEnd) throws NoWindException { List result = new ArrayList(); - List> group = new ArrayList>(); + List> group = new ArrayList>(); if (!courseChangeSequenceInSameDirection.isEmpty()) { Distance threeHullLengths = competitor.getBoat().getBoatClass().getHullLength().scale(3); SpeedWithBearing beforeGroupOnApproximation = speedWithBearingOnApproximationAtBeginning; // speed/bearing @@ -2131,13 +2129,13 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl SpeedWithBearing beforeCurrentCourseChangeOnApproximation = beforeGroupOnApproximation; // speed/bearing // before current // course change - Iterator> iter = courseChangeSequenceInSameDirection.iterator(); + Iterator> iter = courseChangeSequenceInSameDirection.iterator(); double totalCourseChangeInDegrees = 0.0; long totalMilliseconds = 0l; SpeedWithBearing afterCurrentCourseChange = null; // sure to be set because iter's collection is not empty // and the first use requires group not to be empty which can only happen after the first group.add do { - Pair currentFixAndCourseChange = iter.next(); + com.sap.sse.common.Util.Pair currentFixAndCourseChange = iter.next(); if (!group.isEmpty() // TODO use different maneuver times for upwind / reaching / downwind / cross-leg (mark passing) // group contains complete maneuver if the next fix is too late or too far away to belong to the @@ -2175,7 +2173,7 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl } private Iterable createManeuverFromGroupOfCourseChanges(Competitor competitor, - SpeedWithBearing speedWithBearingOnApproximationAtBeginning, List> group, + SpeedWithBearing speedWithBearingOnApproximationAtBeginning, List> group, SpeedWithBearing speedWithBearingOnApproximationAtEnd, double totalCourseChangeInDegrees, long totalMilliseconds, TimePoint earliestManeuverStart, TimePoint latestManeuverEnd) throws NoWindException { List result = new ArrayList<>(); @@ -2798,7 +2796,7 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl WindTrack windTrack = getOrCreateWindTrack(windSource); TimePoint timePoint = fromTimePoint; for (int i = 0; i < numberOfFixes && toTimePoint != null && timePoint.compareTo(toTimePoint) < 0; i++) { - WindWithConfidence> averagedWindWithConfidence = windTrack + WindWithConfidence> averagedWindWithConfidence = windTrack .getAveragedWindWithConfidence(null, timePoint); if (averagedWindWithConfidence != null) { double windSpeedinKnots = averagedWindWithConfidence.getObject().getKnots(); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/VirtualWindTrackImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/VirtualWindTrackImpl.java index 2d606a27eec..83f46f02258 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/VirtualWindTrackImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/VirtualWindTrackImpl.java @@ -4,10 +4,10 @@ import java.util.NavigableSet; import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.domain.tracking.WindWithConfidence; +import com.sap.sse.common.Util; /** * A virtual wind track based on some virtual sequence of raw wind fixes. Subclasses should override @@ -46,7 +46,7 @@ public abstract class VirtualWindTrackImpl extends WindTrackImpl { */ @Override public Wind getAveragedWind(Position p, TimePoint at) { - final WindWithConfidence> windWithConfidence = getAveragedWindUnsynchronized(p, at); + final WindWithConfidence> windWithConfidence = getAveragedWindUnsynchronized(p, at); return windWithConfidence == null ? null : windWithConfidence.getObject(); } @@ -57,8 +57,8 @@ public abstract class VirtualWindTrackImpl extends WindTrackImpl { * time point is used instead. If both time points are not known, null is returned immediately. */ @Override - public WindWithConfidence> getAveragedWindWithConfidence(Position p, TimePoint at) { - WindWithConfidence> result = null; + public WindWithConfidence> getAveragedWindWithConfidence(Position p, TimePoint at) { + WindWithConfidence> result = null; TimePoint adjustedAt; final TimePoint startOfRace = getTrackedRace().getStartOfRace(); TimePoint timePointOfNewestEvent = getTrackedRace().getTimePointOfNewestEvent(); diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java index 5d7a0621cbd..204f3d40ad2 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/WindTrackImpl.java @@ -19,7 +19,6 @@ import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.Speed; import com.sap.sailing.domain.common.SpeedWithBearing; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.confidence.ConfidenceBasedWindAverager; import com.sap.sailing.domain.confidence.ConfidenceFactory; import com.sap.sailing.domain.confidence.impl.PositionAndTimePointWeigher; @@ -28,6 +27,7 @@ import com.sap.sailing.domain.tracking.WindListener; import com.sap.sailing.domain.tracking.WindTrack; import com.sap.sailing.domain.tracking.WindWithConfidence; import com.sap.sailing.util.impl.ArrayListNavigableSet; +import com.sap.sse.common.Util; /** * Records {@link Wind} objects over time and offers to average the last so many of them into an @@ -154,12 +154,12 @@ public class WindTrackImpl extends TrackImpl implements WindTrack { */ @Override public Wind getAveragedWind(Position p, TimePoint at) { - final WindWithConfidence> estimatedWindUnsynchronized = getAveragedWindUnsynchronized(p, at); + final WindWithConfidence> estimatedWindUnsynchronized = getAveragedWindUnsynchronized(p, at); return estimatedWindUnsynchronized == null ? null : estimatedWindUnsynchronized.getObject(); } @Override - public WindWithConfidence> getAveragedWindWithConfidence(Position p, TimePoint at) { + public WindWithConfidence> getAveragedWindWithConfidence(Position p, TimePoint at) { return getAveragedWindUnsynchronized(p, at); } @@ -179,16 +179,16 @@ public class WindTrackImpl extends TrackImpl implements WindTrack { * if null, the averaged position of the original wind fixes is returned; otherwise, * p is used as the result's position and may be used for confidence determination. */ - protected WindWithConfidence> getAveragedWindUnsynchronized(Position p, TimePoint at) { + protected WindWithConfidence> getAveragedWindUnsynchronized(Position p, TimePoint at) { lockForRead(); try { - List>> windFixesToAverage = new ArrayList>>(); + List>> windFixesToAverage = new ArrayList>>(); // don't measure speed with separate confidence; return confidence obtained from averaging bearings - ConfidenceBasedWindAverager> windAverager = ConfidenceFactory.INSTANCE + ConfidenceBasedWindAverager> windAverager = ConfidenceFactory.INSTANCE .createWindAverager(new PositionAndTimePointWeigher( /* halfConfidenceAfterMilliseconds */getMillisecondsOverWhichToAverageWind() / 10)); DummyWind atTimed = new DummyWind(at); - Pair relativeTo = new Pair(p, at); + Util.Pair relativeTo = new Util.Pair(p, at); NavigableSet beforeSet = getInternalFixes().headSet(atTimed, /* inclusive */false); NavigableSet afterSet = getInternalFixes().tailSet(atTimed, /* inclusive */true); Iterator beforeIter = beforeSet.descendingIterator(); @@ -211,8 +211,8 @@ public class WindTrackImpl extends TrackImpl implements WindTrack { } do { if (beforeWind != null && (beforeDistanceToAt <= afterDistanceToAt || afterWind == null)) { - windFixesToAverage.add(new WindWithConfidenceImpl>(beforeWind, - getBaseConfidence(), new Pair(beforeWind.getPosition(), beforeWind + windFixesToAverage.add(new WindWithConfidenceImpl>(beforeWind, + getBaseConfidence(), new Util.Pair(beforeWind.getPosition(), beforeWind .getTimePoint()), useSpeed)); if (beforeIntervalEnd == null) { beforeIntervalEnd = beforeWind.getTimePoint(); @@ -225,8 +225,8 @@ public class WindTrackImpl extends TrackImpl implements WindTrack { beforeWind = null; } } else if (afterWind != null) { - windFixesToAverage.add(new WindWithConfidenceImpl>(afterWind, - getBaseConfidence(), new Pair(afterWind.getPosition(), afterWind + windFixesToAverage.add(new WindWithConfidenceImpl>(afterWind, + getBaseConfidence(), new Util.Pair(afterWind.getPosition(), afterWind .getTimePoint()), useSpeed)); if (afterIntervalStart == null) { afterIntervalStart = afterWind.getTimePoint(); @@ -244,7 +244,7 @@ public class WindTrackImpl extends TrackImpl implements WindTrack { if (windFixesToAverage.isEmpty()) { return null; } else { - WindWithConfidence> average = windAverager.getAverage(windFixesToAverage, relativeTo); + WindWithConfidence> average = windAverager.getAverage(windFixesToAverage, relativeTo); return average; } } finally { diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/util/WeakIdentityHashMap.java b/java/com.sap.sailing.domain/src/com/sap/sailing/util/WeakIdentityHashMap.java index 2f43544d5f9..efaf06a3cba 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/util/WeakIdentityHashMap.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/util/WeakIdentityHashMap.java @@ -7,7 +7,6 @@ package com.sap.sailing.util; import java.lang.ref.Reference; import java.lang.ref.ReferenceQueue; import java.lang.ref.WeakReference; - import java.util.HashMap; import java.util.Map; diff --git a/java/com.sap.sailing.ess40.resultimport.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.ess40.resultimport.test/META-INF/MANIFEST.MF index c52f09cfd60..90e8497974d 100755 --- a/java/com.sap.sailing.ess40.resultimport.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.ess40.resultimport.test/META-INF/MANIFEST.MF @@ -8,4 +8,5 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Fragment-Host: com.sap.sailing.ess40.resultimport Import-Package: org.osgi.framework;version="1.3.0" Bundle-ActivationPolicy: lazy -Require-Bundle: org.junit4;bundle-version="4.8.2" +Require-Bundle: org.junit4;bundle-version="4.8.2", + com.sap.sse.common diff --git a/java/com.sap.sailing.ess40.resultimport.test/src/com/sap/sailing/ess40/resultimport/test/SimpleESS40ResultImportTest.java b/java/com.sap.sailing.ess40.resultimport.test/src/com/sap/sailing/ess40/resultimport/test/SimpleESS40ResultImportTest.java index 7691ccbfc39..4cbd45a6293 100755 --- a/java/com.sap.sailing.ess40.resultimport.test/src/com/sap/sailing/ess40/resultimport/test/SimpleESS40ResultImportTest.java +++ b/java/com.sap.sailing.ess40.resultimport.test/src/com/sap/sailing/ess40/resultimport/test/SimpleESS40ResultImportTest.java @@ -16,21 +16,21 @@ import com.sap.sailing.domain.common.RegattaScoreCorrections.ScoreCorrectionForC import com.sap.sailing.domain.common.RegattaScoreCorrections.ScoreCorrectionsForRace; import com.sap.sailing.domain.common.ScoreCorrectionProvider; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.ess40.resultimport.impl.ScoreCorrectionProviderImpl; +import com.sap.sse.common.Util; public class SimpleESS40ResultImportTest { @Test public void testProviderFound() throws Exception { ScoreCorrectionProvider scp = new ScoreCorrectionProviderImpl(); - Map>> hasResult = scp.getHasResultsForBoatClassFromDateByEventName(); + Map>> hasResult = scp.getHasResultsForBoatClassFromDateByEventName(); assertTrue(hasResult.containsKey("qingdao")); } @Test public void testQingdaoResults() throws Exception { ScoreCorrectionProvider scp = new ScoreCorrectionProviderImpl(); - Map>> hasResult = scp.getHasResultsForBoatClassFromDateByEventName(); + Map>> hasResult = scp.getHasResultsForBoatClassFromDateByEventName(); RegattaScoreCorrections qingdaoResults = scp.getScoreCorrections("qingdao", "extreme 40", hasResult.get("qingdao").iterator().next().getB()); assertNotNull(qingdaoResults); for (ScoreCorrectionsForRace scfr : qingdaoResults.getScoreCorrectionsForRaces()) { diff --git a/java/com.sap.sailing.ess40.resultimport/META-INF/MANIFEST.MF b/java/com.sap.sailing.ess40.resultimport/META-INF/MANIFEST.MF index 60f0ad63256..e2e38baeab3 100755 --- a/java/com.sap.sailing.ess40.resultimport/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.ess40.resultimport/META-INF/MANIFEST.MF @@ -9,5 +9,6 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Import-Package: org.osgi.framework;version="1.3.0" Bundle-ActivationPolicy: lazy Require-Bundle: com.sap.sailing.domain, - com.sap.sailing.domain.common + com.sap.sailing.domain.common, + com.sap.sse.common Export-Package: com.sap.sailing.ess40.resultimport diff --git a/java/com.sap.sailing.ess40.resultimport/src/com/sap/sailing/ess40/resultimport/impl/RegattaScoreCorrectionsImpl.java b/java/com.sap.sailing.ess40.resultimport/src/com/sap/sailing/ess40/resultimport/impl/RegattaScoreCorrectionsImpl.java index 5478c8b4823..c6f263acec8 100755 --- a/java/com.sap.sailing.ess40.resultimport/src/com/sap/sailing/ess40/resultimport/impl/RegattaScoreCorrectionsImpl.java +++ b/java/com.sap.sailing.ess40.resultimport/src/com/sap/sailing/ess40/resultimport/impl/RegattaScoreCorrectionsImpl.java @@ -6,14 +6,14 @@ import java.util.Map; import com.sap.sailing.domain.common.RegattaScoreCorrections; import com.sap.sailing.domain.common.ScoreCorrectionProvider; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; public class RegattaScoreCorrectionsImpl implements RegattaScoreCorrections { private final ScoreCorrectionProviderImpl provider; private final Iterable scoreCorrectionsForRaces; public RegattaScoreCorrectionsImpl(ScoreCorrectionProviderImpl scoreCorrectionProviderImpl, - Map>> actResults) { + Map>> actResults) { this.provider = scoreCorrectionProviderImpl; List scfr = new ArrayList(); int maxSize = getMaxListSize(actResults); @@ -23,9 +23,9 @@ public class RegattaScoreCorrectionsImpl implements RegattaScoreCorrections { this.scoreCorrectionsForRaces = scfr; } - private int getMaxListSize(Map>> actResults) { + private int getMaxListSize(Map>> actResults) { int result = 0; - for (Map.Entry>> e : actResults.entrySet()) { + for (Map.Entry>> e : actResults.entrySet()) { result = Math.max(result, e.getValue().size()); } return result; diff --git a/java/com.sap.sailing.ess40.resultimport/src/com/sap/sailing/ess40/resultimport/impl/ScoreCorrectionForCompetitorInRaceImpl.java b/java/com.sap.sailing.ess40.resultimport/src/com/sap/sailing/ess40/resultimport/impl/ScoreCorrectionForCompetitorInRaceImpl.java index e9f3b92bc1b..6ce1c32f655 100755 --- a/java/com.sap.sailing.ess40.resultimport/src/com/sap/sailing/ess40/resultimport/impl/ScoreCorrectionForCompetitorInRaceImpl.java +++ b/java/com.sap.sailing.ess40.resultimport/src/com/sap/sailing/ess40/resultimport/impl/ScoreCorrectionForCompetitorInRaceImpl.java @@ -4,7 +4,7 @@ import java.util.logging.Logger; import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.RegattaScoreCorrections.ScoreCorrectionForCompetitorInRace; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; public class ScoreCorrectionForCompetitorInRaceImpl implements ScoreCorrectionForCompetitorInRace { private static final Logger logger = Logger.getLogger(ScoreCorrectionForCompetitorInRaceImpl.class.getName()); @@ -13,7 +13,7 @@ public class ScoreCorrectionForCompetitorInRaceImpl implements ScoreCorrectionFo private final Double points; private final MaxPointsReason maxPointsReason; - public ScoreCorrectionForCompetitorInRaceImpl(String teamName, Pair rankAndPoints) { + public ScoreCorrectionForCompetitorInRaceImpl(String teamName, Util.Pair rankAndPoints) { this.teamName = teamName; if (rankAndPoints == null) { points = 0.0; diff --git a/java/com.sap.sailing.ess40.resultimport/src/com/sap/sailing/ess40/resultimport/impl/ScoreCorrectionForRaceImpl.java b/java/com.sap.sailing.ess40.resultimport/src/com/sap/sailing/ess40/resultimport/impl/ScoreCorrectionForRaceImpl.java index 9b693cf4e15..d44f7e8e192 100755 --- a/java/com.sap.sailing.ess40.resultimport/src/com/sap/sailing/ess40/resultimport/impl/ScoreCorrectionForRaceImpl.java +++ b/java/com.sap.sailing.ess40.resultimport/src/com/sap/sailing/ess40/resultimport/impl/ScoreCorrectionForRaceImpl.java @@ -7,18 +7,18 @@ import java.util.Set; import com.sap.sailing.domain.common.RegattaScoreCorrections.ScoreCorrectionForCompetitorInRace; import com.sap.sailing.domain.common.RegattaScoreCorrections.ScoreCorrectionsForRace; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; public class ScoreCorrectionForRaceImpl implements ScoreCorrectionsForRace { private final int raceNumberStartingWithOne; private final Map scoreCorrectionsByTeamName; - public ScoreCorrectionForRaceImpl(Map>> actResults, int raceNumberStartingWithZero) { + public ScoreCorrectionForRaceImpl(Map>> actResults, int raceNumberStartingWithZero) { this.raceNumberStartingWithOne = raceNumberStartingWithZero+1; this.scoreCorrectionsByTeamName = new HashMap(); - for (Map.Entry>> e : actResults.entrySet()) { + for (Map.Entry>> e : actResults.entrySet()) { String teamName = e.getKey(); - Pair rankAndPoints; + Util.Pair rankAndPoints; if (raceNumberStartingWithZero < e.getValue().size()) { rankAndPoints = e.getValue().get(raceNumberStartingWithZero); } else { diff --git a/java/com.sap.sailing.ess40.resultimport/src/com/sap/sailing/ess40/resultimport/impl/ScoreCorrectionProviderImpl.java b/java/com.sap.sailing.ess40.resultimport/src/com/sap/sailing/ess40/resultimport/impl/ScoreCorrectionProviderImpl.java index 96d647e5bc0..d3202a1614b 100755 --- a/java/com.sap.sailing.ess40.resultimport/src/com/sap/sailing/ess40/resultimport/impl/ScoreCorrectionProviderImpl.java +++ b/java/com.sap.sailing.ess40.resultimport/src/com/sap/sailing/ess40/resultimport/impl/ScoreCorrectionProviderImpl.java @@ -21,7 +21,7 @@ import com.sap.sailing.domain.common.RegattaScoreCorrections; import com.sap.sailing.domain.common.ScoreCorrectionProvider; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider { private static final long serialVersionUID = -4870646572106575667L; @@ -45,15 +45,15 @@ public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider { * @return A pair whose first component is the time point of the last modification to the act results, the second * element is a map whose keys are the sail IDs (in the Extreme Sailing Series we'll use the team names as * the sail IDs, such as "SAP Extreme Sailing Team" or just "SAP" for short); values with be a list - * representing the act's races, from first to last, where each {@link Pair} holds in its first component a + * representing the act's races, from first to last, where each {@link Util.Pair} holds in its first component a * string describing the rank, which could be an integer number formatted as a string, or a three-letter * disqualification reason such as "DNC", "DNF" or "DNS"; the second component is the points the competitor * scored in that race. Usually, if the first component is a number, the score can be expected to be * #competitors+1 - rank. A disqualification gets 0 points. */ - private Pair>>> getActResults(URL actUrl) throws IOException { + private Util.Pair>>> getActResults(URL actUrl) throws IOException { Pattern quotedCompetitorNameAndAllTheRest = Pattern.compile("^\"([^\"]*)\",(.*)$"); - Map>> result = new HashMap>>(); + Map>> result = new HashMap>>(); HttpURLConnection conn = (HttpURLConnection) actUrl.openConnection(); authenticate(conn); TimePoint lastModified = new MillisecondsTimePoint(conn.getLastModified()); @@ -75,16 +75,16 @@ public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider { split = new String[preSplit.length-1]; System.arraycopy(preSplit, 1, split, 0, split.length); } - List> competitorEntry = new ArrayList>(); + List> competitorEntry = new ArrayList>(); result.put(sailID, competitorEntry); for (int i=0; i(rankOrMaxPointsReason, points)); + competitorEntry.add(new Util.Pair(rankOrMaxPointsReason, points)); } line = br.readLine(); } - return new Pair>>>(lastModified, result); + return new Util.Pair>>>(lastModified, result); } private void authenticate(HttpURLConnection conn) { @@ -93,12 +93,12 @@ public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider { } @Override - public Map>> getHasResultsForBoatClassFromDateByEventName() throws Exception { - Map>> result = new HashMap>>(); + public Map>> getHasResultsForBoatClassFromDateByEventName() throws Exception { + Map>> result = new HashMap>>(); for (String actName : getAvailableActNames()) { URL actUrl = getCsvUrls(actName).iterator().next(); - Pair>>> actResults = getActResults(actUrl); - result.put(actName, Collections.singleton(new Pair(EXTREME_40_CLASS_NAME, actResults.getA()))); + Util.Pair>>> actResults = getActResults(actUrl); + result.put(actName, Collections.singleton(new Util.Pair(EXTREME_40_CLASS_NAME, actResults.getA()))); } return result; } @@ -124,7 +124,7 @@ public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider { public RegattaScoreCorrections getScoreCorrections(String actName, String boatClassName, TimePoint timePoint) throws Exception { URL actUrl = getCsvUrls(actName).iterator().next(); - Pair>>> actResults = getActResults(actUrl); + Util.Pair>>> actResults = getActResults(actUrl); return new RegattaScoreCorrectionsImpl(this, actResults.getB()); } diff --git a/java/com.sap.sailing.expeditionconnector/META-INF/MANIFEST.MF b/java/com.sap.sailing.expeditionconnector/META-INF/MANIFEST.MF index c09e3b27727..c7b71d71f64 100755 --- a/java/com.sap.sailing.expeditionconnector/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.expeditionconnector/META-INF/MANIFEST.MF @@ -10,7 +10,8 @@ Export-Package: com.sap.sailing.expeditionconnector, Require-Bundle: com.sap.sailing.domain, com.sap.sailing.declination, com.sap.sailing.udpconnector, - com.sap.sailing.domain.common + com.sap.sailing.domain.common, + com.sap.sse.common Bundle-ActivationPolicy: lazy Import-Package: org.osgi.framework Bundle-Activator: com.sap.sailing.expeditionconnector.impl.Activator diff --git a/java/com.sap.sailing.freg.resultimport/META-INF/MANIFEST.MF b/java/com.sap.sailing.freg.resultimport/META-INF/MANIFEST.MF index 5031590c631..e5a16da45d5 100755 --- a/java/com.sap.sailing.freg.resultimport/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.freg.resultimport/META-INF/MANIFEST.MF @@ -11,4 +11,5 @@ Import-Package: com.sap.sailing.resultimport, org.osgi.framework;version="1.3.0" Bundle-ActivationPolicy: lazy Require-Bundle: com.sap.sailing.domain.common, - com.sap.sailing.domain + com.sap.sailing.domain, + com.sap.sse.common diff --git a/java/com.sap.sailing.freg.resultimport/src/com/sap/sailing/freg/resultimport/impl/ScoreCorrectionProviderImpl.java b/java/com.sap.sailing.freg.resultimport/src/com/sap/sailing/freg/resultimport/impl/ScoreCorrectionProviderImpl.java index 36a04c31f29..f62f98967fb 100755 --- a/java/com.sap.sailing.freg.resultimport/src/com/sap/sailing/freg/resultimport/impl/ScoreCorrectionProviderImpl.java +++ b/java/com.sap.sailing.freg.resultimport/src/com/sap/sailing/freg/resultimport/impl/ScoreCorrectionProviderImpl.java @@ -13,11 +13,11 @@ import com.sap.sailing.domain.common.RegattaScoreCorrections; import com.sap.sailing.domain.common.ScoreCorrectionProvider; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.resultimport.RegattaResults; import com.sap.sailing.resultimport.ResultUrlProvider; import com.sap.sailing.resultimport.ResultUrlRegistry; import com.sap.sailing.resultimport.impl.RegattaScoreCorrectionsImpl; +import com.sap.sse.common.Util; public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider, ResultUrlProvider { private static final long serialVersionUID = 5853404150107387702L; @@ -35,8 +35,8 @@ public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider, Res } @Override - public Map>> getHasResultsForBoatClassFromDateByEventName() { - Map>> result = new HashMap>>(); + public Map>> getHasResultsForBoatClassFromDateByEventName() { + Map>> result = new HashMap>>(); FregHtmlParser parser = new FregHtmlParser(); for (URL url : getUrls()) { URLConnection conn; @@ -45,7 +45,7 @@ public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider, Res TimePoint lastModified = new MillisecondsTimePoint(conn.getLastModified()); RegattaResults regattaResult = parser.getRegattaResults((InputStream) conn.getContent()); final String boatClassName = getBoatClassName(regattaResult); - result.put(boatClassName, Collections.singleton(new Pair(boatClassName, lastModified))); + result.put(boatClassName, Collections.singleton(new Util.Pair(boatClassName, lastModified))); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); diff --git a/java/com.sap.sailing.geocoding/META-INF/MANIFEST.MF b/java/com.sap.sailing.geocoding/META-INF/MANIFEST.MF index 6bbb017622d..99298bdc409 100644 --- a/java/com.sap.sailing.geocoding/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.geocoding/META-INF/MANIFEST.MF @@ -8,4 +8,5 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Bundle-ActivationPolicy: lazy Export-Package: com.sap.sailing.geocoding Require-Bundle: org.json.simple;bundle-version="1.1.0", - com.sap.sailing.domain.common + com.sap.sailing.domain.common, + com.sap.sse.common diff --git a/java/com.sap.sailing.geocoding/src/com/sap/sailing/geocoding/impl/ReverseGeocoderImpl.java b/java/com.sap.sailing.geocoding/src/com/sap/sailing/geocoding/impl/ReverseGeocoderImpl.java index a3a8ecec0c0..577e4d1fe9a 100644 --- a/java/com.sap.sailing.geocoding/src/com/sap/sailing/geocoding/impl/ReverseGeocoderImpl.java +++ b/java/com.sap.sailing.geocoding/src/com/sap/sailing/geocoding/impl/ReverseGeocoderImpl.java @@ -24,9 +24,9 @@ import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.SerializablePosition; import com.sap.sailing.domain.common.impl.PlacemarkImpl; import com.sap.sailing.domain.common.impl.SerializablePositionImpl; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.quadtree.QuadTree; import com.sap.sailing.geocoding.ReverseGeocoder; +import com.sap.sse.common.Util; public class ReverseGeocoderImpl implements ReverseGeocoder { @@ -43,12 +43,12 @@ public class ReverseGeocoderImpl implements ReverseGeocoder { private final int MAX_ROW_NUMBER = 1000; private final int MAX_RADIUS = 300; - private QuadTree>> cache = new QuadTree>>();; + private QuadTree>> cache = new QuadTree>>();; @Override public Placemark getPlacemarkNearest(Position position) throws IOException, ParseException { Placemark p = null; - Triple> cachedPlacemarks = checkCache(position); + Util.Triple> cachedPlacemarks = checkCache(position); if (cachedPlacemarks != null && cachedPlacemarks.getC() != null && !cachedPlacemarks.getC().isEmpty()) { p = cachedPlacemarks.getC().get(0); @@ -71,7 +71,7 @@ public class ReverseGeocoderImpl implements ReverseGeocoder { @Override public List getPlacemarksNear(Position position, double radius) throws IOException, ParseException { List placemarks = null; - Triple> cachedPlacemarks = checkCache(position); + Util.Triple> cachedPlacemarks = checkCache(position); //Calculating the search radius and the maximum number of returning Placemarks double limitedRadius = Math.min(radius, MAX_RADIUS); @@ -198,7 +198,7 @@ public class ReverseGeocoderImpl implements ReverseGeocoder { Collections.sort(placemarks, new Placemark.ByDistance(position)); if (position != null) { synchronized (cache) { - cache.put(position, new Triple>(position, radius, placemarks)); + cache.put(position, new Util.Triple>(position, radius, placemarks)); } } } @@ -217,7 +217,7 @@ public class ReverseGeocoderImpl implements ReverseGeocoder { private void updateCachedPlacemarks(Position cachedPoint, Double newRadius, List newPlacemarks) { if (cachedPoint != null) { synchronized (cache) { - cache.replace(cachedPoint, new Triple>(cachedPoint, newRadius, newPlacemarks)); + cache.replace(cachedPoint, new Util.Triple>(cachedPoint, newRadius, newPlacemarks)); } } } @@ -229,7 +229,7 @@ public class ReverseGeocoderImpl implements ReverseGeocoder { * null, if there's nothing cached around position within * {@link ReverseGeocoderImpl#POSITION_CACHE_DISTANCE_LIMIT the distance limit} */ - private Triple> checkCache(Position position) { + private Util.Triple> checkCache(Position position) { synchronized (cache) { return cache.get(position, POSITION_CACHE_DISTANCE_LIMIT); } diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/GwtTestCaseColumnToggling.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/GwtTestCaseColumnToggling.java index 1009a7a4ff2..42afd4c8605 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/GwtTestCaseColumnToggling.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/GwtTestCaseColumnToggling.java @@ -18,12 +18,12 @@ import com.sap.sailing.domain.common.dto.IncrementalOrFullLeaderboardDTO; import com.sap.sailing.domain.common.dto.LeaderboardDTO; import com.sap.sailing.domain.common.dto.LeaderboardRowDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tractracadapter.TracTracConnectionConstants; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.leaderboard.ExpandableSortableColumn; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; import com.sap.sailing.gwt.ui.shared.TracTracRaceRecordDTO; +import com.sap.sse.common.Util; public class GwtTestCaseColumnToggling extends GWTTestCase { @@ -65,7 +65,7 @@ public class GwtTestCaseColumnToggling extends GWTTestCase { } private void listRacesInEvent(){ - service.listTracTracRacesInEvent(JSON_URL, /* hidden */ true, new AsyncCallback>>() { + service.listTracTracRacesInEvent(JSON_URL, /* hidden */ true, new AsyncCallback>>() { @Override public void onFailure(Throwable caught) { @@ -73,7 +73,7 @@ public class GwtTestCaseColumnToggling extends GWTTestCase { } @Override - public void onSuccess(Pair> result) { + public void onSuccess(Util.Pair> result) { System.out.println("Listed races."); for (TracTracRaceRecordDTO rr : result.getB()){ if (rr.name.equals(TRACKED_RACE)){ diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/LineSegmentTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/LineSegmentTest.java index 11b90dd4b07..8ae2a248e10 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/LineSegmentTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/LineSegmentTest.java @@ -1,6 +1,6 @@ package com.sap.sailing.gwt.ui.test; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; import org.junit.Test; diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java index b9e9afdc60f..76342bbc535 100755 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/MockedTrackedRace.java @@ -31,7 +31,6 @@ import com.sap.sailing.domain.common.Tack; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.WindSource; import com.sap.sailing.domain.common.WindSourceType; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.ScoringScheme; import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.tracking.GPSFixStore; @@ -57,6 +56,7 @@ import com.sap.sailing.domain.tracking.WindStore; import com.sap.sailing.domain.tracking.WindTrack; import com.sap.sailing.domain.tracking.WindWithConfidence; import com.sap.sailing.domain.tracking.impl.WindTrackImpl; +import com.sap.sse.common.Util; public class MockedTrackedRace implements DynamicTrackedRace { private static final long serialVersionUID = 5827912985564121181L; @@ -619,7 +619,7 @@ public class MockedTrackedRace implements DynamicTrackedRace { } @Override - public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at, + public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at, Iterable windSourcesToExclude) { // TODO Auto-generated method stub return null; @@ -632,7 +632,7 @@ public class MockedTrackedRace implements DynamicTrackedRace { } @Override - public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at) { + public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at) { // TODO Auto-generated method stub return null; } @@ -668,7 +668,7 @@ public class MockedTrackedRace implements DynamicTrackedRace { } @Override - public Iterable>> getMarkPassingsTimes() { + public Iterable>> getMarkPassingsTimes() { // TODO Auto-generated method stub return null; } @@ -946,7 +946,7 @@ public class MockedTrackedRace implements DynamicTrackedRace { } @Override - public Pair getPortAndStarboardMarks(TimePoint t, Waypoint w) { + public Util.Pair getPortAndStarboardMarks(TimePoint t, Waypoint w) { // TODO Auto-generated method stub return null; } diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PolarSheetGenerationServiceTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PolarSheetGenerationServiceTest.java index db44811d05b..db4b3ba8ab5 100755 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PolarSheetGenerationServiceTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/PolarSheetGenerationServiceTest.java @@ -37,8 +37,6 @@ import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.PolarSheetGenerationSettingsImpl; -import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.domain.common.impl.WindSteppingWithMaxDistance; import com.sap.sailing.domain.tracking.DynamicGPSFixTrack; @@ -140,14 +138,14 @@ public class PolarSheetGenerationServiceTest { } @Override - public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at) { - return new WindWithConfidenceImpl>(new WindImpl(p, at, + public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at) { + return new WindWithConfidenceImpl>(new WindImpl(p, at, new KnotSpeedWithBearingImpl(2.0, new DegreeBearingImpl(180.0))), 0.9, - new Pair(p, at), true); + new com.sap.sse.common.Util.Pair(p, at), true); } @Override - public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at, + public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at, Iterable windSourcesToExclude) { return getWindWithConfidence(p, at); } diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SafeHtmlHeaderWithTooltipTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SafeHtmlHeaderWithTooltipTest.java index 40609bb9e49..6f9bfb42580 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SafeHtmlHeaderWithTooltipTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SafeHtmlHeaderWithTooltipTest.java @@ -1,6 +1,6 @@ package com.sap.sailing.gwt.ui.test; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; import org.junit.Test; diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SailingServiceImplMock.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SailingServiceImplMock.java index 6859c85452d..b96966f39d1 100755 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SailingServiceImplMock.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/SailingServiceImplMock.java @@ -20,9 +20,9 @@ import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.ScoreCorrectionProvider; import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.racelog.tracking.test.mock.MockSmartphoneImeiServiceFinderFactory; -import com.sap.sailing.domain.swisstimingadapter.StartList; import com.sap.sailing.domain.racelogtracking.RaceLogTrackingAdapterFactory; import com.sap.sailing.domain.racelogtracking.impl.RaceLogTrackingAdapterFactoryImpl; +import com.sap.sailing.domain.swisstimingadapter.StartList; import com.sap.sailing.domain.swisstimingadapter.SwissTimingAdapter; import com.sap.sailing.domain.swisstimingadapter.SwissTimingAdapterFactory; import com.sap.sailing.domain.swisstimingadapter.SwissTimingFactory; diff --git a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/WindGridColorPaletteTest.java b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/WindGridColorPaletteTest.java index 09860775f37..47afd6a2753 100644 --- a/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/WindGridColorPaletteTest.java +++ b/java/com.sap.sailing.gwt.ui.test/src/com/sap/sailing/gwt/ui/test/WindGridColorPaletteTest.java @@ -1,9 +1,10 @@ package com.sap.sailing.gwt.ui.test; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; import org.junit.Test; -import com.sap.sailing.gwt.ui.simulator.util.*; + +import com.sap.sailing.gwt.ui.simulator.util.WindGridColorPalette; public class WindGridColorPaletteTest { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/actions/GetLeaderboardDataEntriesAction.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/actions/GetLeaderboardDataEntriesAction.java index e3f63ecff29..46b335e4bbb 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/actions/GetLeaderboardDataEntriesAction.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/actions/GetLeaderboardDataEntriesAction.java @@ -6,11 +6,11 @@ import java.util.List; import com.google.gwt.user.client.rpc.AsyncCallback; import com.sap.sailing.domain.common.DetailType; import com.sap.sailing.domain.common.dto.CompetitorDTO; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; +import com.sap.sse.common.Util; import com.sap.sse.gwt.client.async.AsyncAction; -public class GetLeaderboardDataEntriesAction implements AsyncAction, List>>> { +public class GetLeaderboardDataEntriesAction implements AsyncAction, List>>> { private final SailingServiceAsync sailingService; private final DetailType detailType; private final String leaderboardName; @@ -24,7 +24,7 @@ public class GetLeaderboardDataEntriesAction implements AsyncAction, List>>> callback) { + public void execute(AsyncCallback, List>>> callback) { sailingService.getLeaderboardDataEntriesForAllRaceColumns(leaderboardName, date, detailType, callback); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractTrackedRacesListComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractTrackedRacesListComposite.java index d8764dbc781..e82ca1d0aef 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractTrackedRacesListComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/AbstractTrackedRacesListComposite.java @@ -38,8 +38,8 @@ import com.sap.sailing.domain.common.impl.NaturalComparator; import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener; import com.sap.sailing.gwt.ui.client.RaceSelectionProvider; -import com.sap.sailing.gwt.ui.client.RegattasDisplayer; import com.sap.sailing.gwt.ui.client.RegattaRefresher; +import com.sap.sailing.gwt.ui.client.RegattasDisplayer; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.Component; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorEditDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorEditDialog.java index 0a1c26f5339..362571ace38 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorEditDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CompetitorEditDialog.java @@ -18,7 +18,6 @@ import com.sap.sailing.domain.common.dto.CompetitorDTO; import com.sap.sailing.domain.common.dto.CompetitorDTOImpl; import com.sap.sailing.domain.common.impl.RGBColor; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sse.gwt.client.dialog.DataEntryDialog; @@ -141,12 +140,12 @@ public class CompetitorEditDialog extends DataEntryDialog { } @Override - public Triple getAsRGB() { + public com.sap.sse.common.Util.Triple getAsRGB() { return null; } @Override - public Triple getAsHSV() { + public com.sap.sse.common.Util.Triple getAsHSV() { return null; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseManagementWidget.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseManagementWidget.java index c3c1725292c..c823af68a0f 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseManagementWidget.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/CourseManagementWidget.java @@ -22,7 +22,6 @@ import com.google.gwt.view.client.SelectionChangeEvent.Handler; import com.google.gwt.view.client.SetSelectionModel; import com.google.gwt.view.client.SingleSelectionModel; import com.sap.sailing.domain.common.PassingInstruction; -import com.sap.sailing.domain.common.impl.Util; import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; @@ -263,10 +262,10 @@ public abstract class CourseManagementWidget implements IsWidget { updateWaypointButtons(); } - protected List> createWaypointPairs() { - List> result = new ArrayList<>(); + protected List> createWaypointPairs() { + List> result = new ArrayList<>(); for (WaypointDTO waypoint : waypoints.getDataProvider().getList()) { - result.add(new Util.Pair<>(waypoint.controlPoint, waypoint.passingInstructions)); + result.add(new com.sap.sse.common.Util.Pair<>(waypoint.controlPoint, waypoint.passingInstructions)); } return result; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java index b35f438d930..caef5f0b85a 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardConfigPanel.java @@ -35,7 +35,6 @@ import com.sap.sailing.domain.common.dto.AbstractLeaderboardDTO; import com.sap.sailing.domain.common.dto.CompetitorDTO; import com.sap.sailing.domain.common.dto.FleetDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.gwt.ui.adminconsole.DisablableCheckboxCell.IsEnabled; import com.sap.sailing.gwt.ui.adminconsole.RaceColumnInLeaderboardDialog.RaceColumnDescriptor; import com.sap.sailing.gwt.ui.client.ErrorReporter; @@ -55,6 +54,7 @@ import com.sap.sailing.gwt.ui.shared.EventDTO; import com.sap.sailing.gwt.ui.shared.RaceLogDTO; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; +import com.sap.sse.common.Util; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; @@ -687,11 +687,11 @@ TrackedRaceChangedListener, LeaderboardsDisplayer { } private void updateRaceColumnsOfLeaderboard(final String leaderboardName, List existingRaceColumns, List newRaceColumns) { - final List> raceColumnsToAdd = new ArrayList>(); + final List> raceColumnsToAdd = new ArrayList>(); for (RaceColumnDTO newRaceColumn : newRaceColumns) { if (!existingRaceColumns.contains(newRaceColumn)) { - raceColumnsToAdd.add(new Pair(newRaceColumn.getName(), newRaceColumn.isMedalRace())); + raceColumnsToAdd.add(new Util.Pair(newRaceColumn.getName(), newRaceColumn.isMedalRace())); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigPanel.java index 53486792fb4..a44dbc32414 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/LeaderboardGroupConfigPanel.java @@ -39,8 +39,8 @@ import com.sap.sailing.gwt.ui.adminconsole.LeaderboardConfigPanel.AnchorCell; import com.sap.sailing.gwt.ui.adminconsole.LeaderboardGroupDialog.LeaderboardGroupDescriptor; import com.sap.sailing.gwt.ui.client.AbstractRegattaPanel; import com.sap.sailing.gwt.ui.client.ErrorReporter; -import com.sap.sailing.gwt.ui.client.LeaderboardGroupsRefresher; import com.sap.sailing.gwt.ui.client.LeaderboardGroupsDisplayer; +import com.sap.sailing.gwt.ui.client.LeaderboardGroupsRefresher; import com.sap.sailing.gwt.ui.client.LeaderboardsDisplayer; import com.sap.sailing.gwt.ui.client.LeaderboardsRefresher; import com.sap.sailing.gwt.ui.client.RegattaRefresher; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementPanel.java index bcc5c39304e..c8ced0d8b97 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RaceLogTrackingEventManagementPanel.java @@ -23,7 +23,6 @@ import com.google.gwt.view.client.SelectionChangeEvent; import com.google.gwt.view.client.SelectionChangeEvent.Handler; import com.sap.sailing.domain.common.dto.FleetDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.racelog.tracking.RaceLogTrackingState; import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.LeaderboardsDisplayer; @@ -33,6 +32,7 @@ import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.RaceLogSetStartTimeAndProcedureDTO; import com.sap.sailing.gwt.ui.shared.StrippedLeaderboardDTO; +import com.sap.sse.common.Util; import com.sap.sse.gwt.client.dialog.DataEntryDialog; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; @@ -166,7 +166,7 @@ public class RaceLogTrackingEventManagementPanel extends AbstractLeaderboardConf new DialogCallback>() { @Override public void ok(Set editedObject) { - Set> toRaceLogs = new HashSet<>(); + Set> toRaceLogs = new HashSet<>(); for (RaceColumnDTOAndFleetDTOWithNameBasedEquality race : editedObject) { toRaceLogs.add(toTriple(leaderboardName, race)); } @@ -200,9 +200,9 @@ public class RaceLogTrackingEventManagementPanel extends AbstractLeaderboardConf racesTable.setWidth("600px"); } - private Triple toTriple(String leaderboardName, + private Util.Triple toTriple(String leaderboardName, RaceColumnDTOAndFleetDTOWithNameBasedEquality race) { - return new Triple(leaderboardName, race.getA().getName(), race.getB().getName()); + return new Util.Triple(leaderboardName, race.getA().getName(), race.getB().getName()); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RacesListBoxPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RacesListBoxPanel.java index 81c7631165c..bb1203bee4d 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RacesListBoxPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/RacesListBoxPanel.java @@ -20,8 +20,8 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.dto.RaceDTO; import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener; import com.sap.sailing.gwt.ui.client.RaceSelectionProvider; -import com.sap.sailing.gwt.ui.client.RegattasDisplayer; import com.sap.sailing.gwt.ui.client.RegattaRefresher; +import com.sap.sailing.gwt.ui.client.RegattasDisplayer; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.RegattaDTO; 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 f36145e4c15..1ad5a20b5fa 100644 --- 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 @@ -28,9 +28,9 @@ import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.RegattaName; import com.sap.sailing.domain.common.impl.NaturalComparator; import com.sap.sailing.gwt.ui.client.ErrorReporter; -import com.sap.sailing.gwt.ui.client.RegattasDisplayer; import com.sap.sailing.gwt.ui.client.RegattaRefresher; import com.sap.sailing.gwt.ui.client.RegattaSelectionProvider; +import com.sap.sailing.gwt.ui.client.RegattasDisplayer; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.panels.LabeledAbstractFilterablePanel; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ReplicationPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ReplicationPanel.java index ded0c7aad27..00226b4eb71 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ReplicationPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/ReplicationPanel.java @@ -14,13 +14,13 @@ 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.domain.common.impl.Util.Triple; import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.ReplicaDTO; import com.sap.sailing.gwt.ui.shared.ReplicationMasterDTO; import com.sap.sailing.gwt.ui.shared.ReplicationStateDTO; +import com.sap.sse.common.Util; import com.sap.sse.gwt.client.controls.IntegerBox; import com.sap.sse.gwt.client.dialog.DataEntryDialog; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; @@ -145,9 +145,9 @@ public class ReplicationPanel extends FlowPanel { private void addReplication() { AddReplicationDialog dialog = new AddReplicationDialog(null, - new DialogCallback, Integer, Integer>>() { + new DialogCallback, Integer, Integer>>() { @Override - public void ok(final Triple, Integer, Integer> masterNameAndExchangeNameAndMessagingPortNumberAndServletPortNumber) { + public void ok(final Util.Triple, Integer, Integer> masterNameAndExchangeNameAndMessagingPortNumberAndServletPortNumber) { registeredMasters.removeRow(0); registeredMasters.insertRow(0); registeredMasters.setWidget(0, 0, new Label(stringMessages.loading())); @@ -275,15 +275,15 @@ public class ReplicationPanel extends FlowPanel { * @author Axel Uhl (d043530) * */ - private class AddReplicationDialog extends DataEntryDialog, Integer, Integer>> { + private class AddReplicationDialog extends DataEntryDialog, Integer, Integer>> { private final TextBox hostnameEntryField; private final TextBox exchangeHostnameEntryField; private final TextBox exchangenameEntryField; private final IntegerBox messagingPortField; private final IntegerBox servletPortField; - public AddReplicationDialog(final Validator, Integer, Integer>> validator, - final DialogCallback, Integer, Integer>> callback) { + public AddReplicationDialog(final Validator, Integer, Integer>> validator, + final DialogCallback, Integer, Integer>> callback) { super(stringMessages.connect(), stringMessages.enterMaster(), stringMessages.ok(), stringMessages.cancel(), validator, callback); hostnameEntryField = createTextBox("localhost"); @@ -329,9 +329,9 @@ public class ReplicationPanel extends FlowPanel { } @Override - protected Triple, Integer, Integer> getResult() { - return new Triple, Integer, Integer>( - new Triple(exchangeHostnameEntryField.getText(), hostnameEntryField.getText(), exchangenameEntryField.getText()), + protected Util.Triple, Integer, Integer> getResult() { + return new Util.Triple, Integer, Integer>( + new Util.Triple(exchangeHostnameEntryField.getText(), hostnameEntryField.getText(), exchangenameEntryField.getText()), messagingPortField.getValue(), servletPortField.getValue()); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java index 7b52b28bfbc..4c1c99253a9 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/SetStartTimeDialog.java @@ -23,7 +23,6 @@ import com.google.gwt.user.client.ui.PushButton; 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.domain.common.impl.Util; import com.sap.sailing.domain.common.racelog.RacingProcedureType; import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; @@ -157,10 +156,10 @@ public class SetStartTimeDialog extends DataEntryDialog>() { + service.getStartTimeAndProcedure(leaderboardName, raceColumnName, fleetName, new AsyncCallback>() { @Override - public void onSuccess(Util.Triple result) { + public void onSuccess(com.sap.sse.common.Util.Triple result) { if (result == null) { currentStartTimeLabel.setText(stringMessages.notAvailable()); currentPassIdBox.setText(stringMessages.notAvailable()); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TracTracEventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TracTracEventManagementPanel.java index ee8ccad96c9..38cfdc3505c 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TracTracEventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TracTracEventManagementPanel.java @@ -37,7 +37,6 @@ import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.RegattaName; import com.sap.sailing.domain.common.impl.NaturalComparator; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionModel; import com.sap.sailing.gwt.ui.client.RegattaRefresher; @@ -466,8 +465,8 @@ public class TracTracEventManagementPanel extends AbstractEventManagementPanel { final String tractracUsername = tractracUsernameTextBox.getValue(); final String tractracPassword = tractracPasswordTextBox.getValue(); - sailingService.listTracTracRacesInEvent(jsonURL, listHiddenRaces, new MarkedAsyncCallback>>( - new AsyncCallback>>() { + sailingService.listTracTracRacesInEvent(jsonURL, listHiddenRaces, new MarkedAsyncCallback>>( + new AsyncCallback>>() { @Override public void onFailure(Throwable caught) { loadingMessageLabel.setText(""); @@ -475,7 +474,7 @@ public class TracTracEventManagementPanel extends AbstractEventManagementPanel { } @Override - public void onSuccess(final Pair> result) { + public void onSuccess(final com.sap.sse.common.Util.Pair> result) { loadingMessageLabel.setText("Building resultset and saving configuration..."); TracTracEventManagementPanel.this.availableTracTracRaces.clear(); final String eventName = result.getA(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackedRacesListComposite.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackedRacesListComposite.java index e575f731afb..dd14590c951 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackedRacesListComposite.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TrackedRacesListComposite.java @@ -15,8 +15,8 @@ import com.sap.sailing.domain.common.RegattaNameAndRaceName; import com.sap.sailing.domain.common.dto.RaceDTO; import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionProvider; -import com.sap.sailing.gwt.ui.client.RegattasDisplayer; import com.sap.sailing.gwt.ui.client.RegattaRefresher; +import com.sap.sailing.gwt.ui.client.RegattasDisplayer; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialog; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindPanel.java index d6782034940..3264791d6d6 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/WindPanel.java @@ -55,8 +55,8 @@ import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.RaceSelectionChangeListener; import com.sap.sailing.gwt.ui.client.RaceSelectionModel; import com.sap.sailing.gwt.ui.client.RaceSelectionProvider; -import com.sap.sailing.gwt.ui.client.RegattasDisplayer; import com.sap.sailing.gwt.ui.client.RegattaRefresher; +import com.sap.sailing.gwt.ui.client.RegattasDisplayer; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java index 0c32be0d723..a1d879b6e76 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimePanel.java @@ -5,11 +5,11 @@ import java.util.List; import java.util.Map; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent; import com.sap.sailing.gwt.ui.common.client.DateAndTimeFormatterUtil; import com.sap.sailing.gwt.ui.shared.MarkPassingTimesDTO; import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; +import com.sap.sse.common.Util; import com.sap.sse.gwt.client.player.TimeRangeWithZoomProvider; import com.sap.sse.gwt.client.player.Timer; import com.sap.sse.gwt.client.player.Timer.PlayModes; @@ -170,7 +170,7 @@ public class RaceTimePanel extends TimePanel implements R * was null before, or extended to a later point in time. */ private void updateMinMax(RaceTimesInfoDTO newRaceTimesInfo) { - Pair raceMinMax = RaceTimesCalculationUtil.caluclateRaceMinMax(timer, newRaceTimesInfo); + Util.Pair raceMinMax = RaceTimesCalculationUtil.caluclateRaceMinMax(timer, newRaceTimesInfo); Date min = raceMinMax.getA(); Date max = raceMinMax.getB(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimesCalculationUtil.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimesCalculationUtil.java index 23a928e9e0d..79d2e640c21 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimesCalculationUtil.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/RaceTimesCalculationUtil.java @@ -2,13 +2,13 @@ package com.sap.sailing.gwt.ui.client; import java.util.Date; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.gwt.ui.shared.RaceTimesInfoDTO; +import com.sap.sse.common.Util; import com.sap.sse.gwt.client.player.Timer; public class RaceTimesCalculationUtil { - public static Pair caluclateRaceMinMax(Timer timer, RaceTimesInfoDTO raceTimesInfo) { + public static Util.Pair caluclateRaceMinMax(Timer timer, RaceTimesInfoDTO raceTimesInfo) { Date min = null; Date max = null; @@ -55,7 +55,7 @@ public class RaceTimesCalculationUtil { break; } - return new Pair(min, max); + return new Util.Pair(min, max); } private static long calculateRaceExtensionTime(Date startTime, Date endTime) { 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 1984ec0788a..cc6866c8a81 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 @@ -31,8 +31,6 @@ import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.domain.common.dto.RaceColumnInSeriesDTO; import com.sap.sailing.domain.common.dto.RaceDTO; import com.sap.sailing.domain.common.dto.RegattaCreationParametersDTO; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.racelog.RacingProcedureType; import com.sap.sailing.domain.common.racelog.tracking.NoCorrespondingServiceRegisteredException; import com.sap.sailing.domain.common.racelog.tracking.NotDenotedForRaceLogTrackingException; @@ -82,6 +80,8 @@ import com.sap.sailing.gwt.ui.shared.TracTracRaceRecordDTO; import com.sap.sailing.gwt.ui.shared.VenueDTO; import com.sap.sailing.gwt.ui.shared.WindDTO; import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO; +import com.sap.sse.common.Util; +import com.sap.sse.common.Util.Pair; /** * The client side stub for the RPC service. Usually, when a null date is passed to @@ -96,7 +96,7 @@ public interface SailingService extends RemoteService { List getPublicEventsOfAllSailingServers() throws Exception; - Pair> listTracTracRacesInEvent(String eventJsonURL, boolean listHiddenRaces) throws Exception; + Util.Pair> listTracTracRacesInEvent(String eventJsonURL, boolean listHiddenRaces) throws Exception; void trackWithTracTrac(RegattaIdentifier regattaToAddTo, Iterable rrs, String liveURI, String storedURI, String courseDesignUpdateURI, boolean trackWind, boolean correctWindByDeclination, boolean simulateWithStartTimeNow, String tracTracUsername, String tracTracPassword) throws Exception; @@ -216,10 +216,10 @@ public interface SailingService extends RemoteService { * @return the new net points in {@link Pair#getA()} and the new total points in {@link Pair#getB()} for time point * date after the max points reason has been updated to maxPointsReasonAsString. */ - Triple updateLeaderboardMaxPointsReason(String leaderboardName, String competitorIdAsString, + Util.Triple updateLeaderboardMaxPointsReason(String leaderboardName, String competitorIdAsString, String raceColumnName, MaxPointsReason maxPointsReason, Date date) throws NoWindException; - Triple updateLeaderboardScoreCorrection(String leaderboardName, String competitorIdAsString, + Util.Triple updateLeaderboardScoreCorrection(String leaderboardName, String competitorIdAsString, String columnName, Double correctedScore, Date date) throws NoWindException; void updateCompetitorDisplayNameInLeaderboard(String leaderboardName, String competitorIdAsString, String displayName); @@ -316,9 +316,9 @@ public interface SailingService extends RemoteService { List getUrlResultProviderNames(); - void updateRaceCourse(RegattaAndRaceIdentifier raceIdentifier, List> controlPoints); + void updateRaceCourse(RegattaAndRaceIdentifier raceIdentifier, List> controlPoints); - void addColumnsToLeaderboard(String leaderboardName, List> columnsToAdd); + void addColumnsToLeaderboard(String leaderboardName, List> columnsToAdd); void removeLeaderboardColumns(String leaderboardName, List columnsToRemove); @@ -330,7 +330,7 @@ public interface SailingService extends RemoteService { List listSwissTiminigReplayRaces(String swissTimingUrl); - List, List>> getLeaderboardDataEntriesForAllRaceColumns(String leaderboardName, + List, List>> getLeaderboardDataEntriesForAllRaceColumns(String leaderboardName, Date date, DetailType detailType) throws Exception; List getOverallLeaderboardNamesContaining(String leaderboardName); @@ -344,9 +344,9 @@ public interface SailingService extends RemoteService { CourseAreaDTO createCourseArea(UUID eventId, String courseAreaName); - List> getLeaderboardsNamesOfMetaleaderboard(String metaLeaderboardName); + List> getLeaderboardsNamesOfMetaleaderboard(String metaLeaderboardName); - Pair checkLeaderboardName(String leaderboardName); + Util.Pair checkLeaderboardName(String leaderboardName); List getRegattaStructureForEvent(UUID eventId); @@ -401,7 +401,7 @@ public interface SailingService extends RemoteService { boolean setStartTimeAndProcedure(RaceLogSetStartTimeAndProcedureDTO dto); - Triple getStartTimeAndProcedure(String leaderboardName, String raceColumnName, String fleetName); + Util.Triple getStartTimeAndProcedure(String leaderboardName, String raceColumnName, String fleetName); Iterable getAllIgtimiAccountEmailAddresses(); @@ -446,7 +446,7 @@ public interface SailingService extends RemoteService { * Adds the course definition to the racelog, while trying to reuse existing marks, controlpoints and waypoints * from the previous course definition in the racelog. */ - void addCourseDefinitionToRaceLog(String leaderboardName, String raceColumnName, String fleetName, List> course); + void addCourseDefinitionToRaceLog(String leaderboardName, String raceColumnName, String fleetName, List> course); RaceCourseDTO getLastCourseDefinitionInRaceLog(String leaderboardName, String raceColumnName, String fleetName); @@ -455,8 +455,8 @@ public interface SailingService extends RemoteService { */ void pingMarkViaRaceLogTracking(String leaderboardName, String raceColumnName, String fleetName, MarkDTO mark, PositionDTO position); - void copyCourseAndCompetitorsToOtherRaceLogs(Triple raceLogFrom, - Set> raceLogsTo); + void copyCourseAndCompetitorsToOtherRaceLogs(Util.Triple raceLogFrom, + Set> raceLogsTo); void addDeviceMappingToRaceLog(String leaderboardName, String raceColumnName, String fleetName, DeviceMappingDTO mapping) throws TransformationException; 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 275d6e2ffeb..c327c15e66e 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 @@ -31,8 +31,6 @@ import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.domain.common.dto.RaceColumnInSeriesDTO; import com.sap.sailing.domain.common.dto.RaceDTO; import com.sap.sailing.domain.common.dto.RegattaCreationParametersDTO; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.racelog.RacingProcedureType; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.gwt.ui.shared.BulkScoreCorrectionDTO; @@ -73,6 +71,7 @@ import com.sap.sailing.gwt.ui.shared.TracTracRaceRecordDTO; import com.sap.sailing.gwt.ui.shared.VenueDTO; import com.sap.sailing.gwt.ui.shared.WindDTO; import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO; +import com.sap.sse.common.Util; /** * The async counterpart of {@link SailingService} @@ -85,7 +84,7 @@ public interface SailingServiceAsync { * The string returned in the callback's pair is the common event name * @param listHiddenRaces */ - void listTracTracRacesInEvent(String eventJsonURL, boolean listHiddenRaces, AsyncCallback>> callback); + void listTracTracRacesInEvent(String eventJsonURL, boolean listHiddenRaces, AsyncCallback>> callback); /** * @param regattaToAddTo @@ -233,10 +232,10 @@ public interface SailingServiceAsync { void updateLeaderboardCarryValue(String leaderboardName, String competitorIdAsString, Double carriedPoints, AsyncCallback callback); void updateLeaderboardMaxPointsReason(String leaderboardName, String competitorIdAsString, String raceColumnName, - MaxPointsReason maxPointsReason, Date date, AsyncCallback> asyncCallback); + MaxPointsReason maxPointsReason, Date date, AsyncCallback> asyncCallback); void updateLeaderboardScoreCorrection(String leaderboardName, String competitorIdAsString, String columnName, - Double correctedScore, Date date, AsyncCallback> asyncCallback); + Double correctedScore, Date date, AsyncCallback> asyncCallback); void updateLeaderboardScoreCorrectionMetadata(String leaderboardName, Date timePointOfLastCorrectionValidity, String comment, AsyncCallback callback); @@ -399,7 +398,7 @@ public interface SailingServiceAsync { void getRaceCourse(RegattaAndRaceIdentifier raceIdentifier, Date date, AsyncCallback callback); - void updateRaceCourse(RegattaAndRaceIdentifier raceIdentifier, List> controlPoints, AsyncCallback callback); + void updateRaceCourse(RegattaAndRaceIdentifier raceIdentifier, List> controlPoints, AsyncCallback callback); void getRemoteSailingServerReferences(AsyncCallback> callback); @@ -415,7 +414,7 @@ public interface SailingServiceAsync { void getUrlResultProviderNames(AsyncCallback> callback); - void addColumnsToLeaderboard(String leaderboardName, List> columnsToAdd, + void addColumnsToLeaderboard(String leaderboardName, List> columnsToAdd, AsyncCallback callback); void removeLeaderboardColumns(String leaderboardName, List columnsToRemove, AsyncCallback callback); @@ -460,12 +459,12 @@ public interface SailingServiceAsync { * list of values whose indices correspond with the elements in the {@link CompetitorDTO} list. */ void getLeaderboardDataEntriesForAllRaceColumns(String leaderboardName, Date date, DetailType detailType, - AsyncCallback, List>>> callback); + AsyncCallback, List>>> callback); void getLeaderboardsNamesOfMetaleaderboard(String metaLeaderboardName, - AsyncCallback>> callback); + AsyncCallback>> callback); - void checkLeaderboardName(String leaderboardName, AsyncCallback> callback); + void checkLeaderboardName(String leaderboardName, AsyncCallback> callback); void getBuildVersion(AsyncCallback callback); @@ -527,7 +526,7 @@ public interface SailingServiceAsync { * pass identifier will still be returned, but the start time field will be null. */ void getStartTimeAndProcedure(String leaderboardName, String raceColumnName, String fleetName, - AsyncCallback> callback); + AsyncCallback> callback); void getAllIgtimiAccountEmailAddresses(AsyncCallback> callback); @@ -565,7 +564,7 @@ public interface SailingServiceAsync { AsyncCallback> callback); void addCourseDefinitionToRaceLog(String leaderboardName, String raceColumnName, String fleetName, - List> course, AsyncCallback callback); + List> course, AsyncCallback callback); void getLastCourseDefinitionInRaceLog(String leaderboardName, String raceColumnName, String fleetName, AsyncCallback callback); @@ -592,8 +591,8 @@ public interface SailingServiceAsync { void removeDenotationForRaceLogTracking(String leaderboardName, String raceColumnName, String fleetName, AsyncCallback callback); - void copyCourseAndCompetitorsToOtherRaceLogs(Triple raceLogFrom, - Set> raceLogsTo, AsyncCallback callback); + void copyCourseAndCompetitorsToOtherRaceLogs(Util.Triple raceLogFrom, + Set> raceLogsTo, AsyncCallback callback); void getGPSFixImporterTypes(AsyncCallback> callback); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TextfieldEntryDialogWithCheckbox.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TextfieldEntryDialogWithCheckbox.java index 03b0b820700..cab62ac29ec 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TextfieldEntryDialogWithCheckbox.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/TextfieldEntryDialogWithCheckbox.java @@ -4,15 +4,15 @@ import com.google.gwt.user.client.ui.CheckBox; 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.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; import com.sap.sse.gwt.client.dialog.DataEntryDialog; -public class TextfieldEntryDialogWithCheckbox extends DataEntryDialog> { +public class TextfieldEntryDialogWithCheckbox extends DataEntryDialog> { private final CheckBox checkbox; private final TextBox entryField; public TextfieldEntryDialogWithCheckbox(String title, String message, String okButtonName, String cancelButtonName, - String checkboxLabel, String initialValue, Validator> validator, DialogCallback> callback) { + String checkboxLabel, String initialValue, Validator> validator, DialogCallback> callback) { super(title, message, okButtonName, cancelButtonName, validator, callback); checkbox = createCheckbox(checkboxLabel); entryField = createTextBox(initialValue); @@ -31,8 +31,8 @@ public class TextfieldEntryDialogWithCheckbox extends DataEntryDialog getResult() { - return new Pair(entryField.getValue(), checkbox.getValue()); + protected Util.Pair getResult() { + return new Util.Pair(entryField.getValue(), checkbox.getValue()); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorLeaderboardChart.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorLeaderboardChart.java index da1b2b0303f..179084ebf7c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorLeaderboardChart.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorLeaderboardChart.java @@ -33,7 +33,6 @@ import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.DetailType; import com.sap.sailing.domain.common.dto.CompetitorDTO; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.gwt.ui.actions.GetLeaderboardDataEntriesAction; import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener; import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider; @@ -224,9 +223,9 @@ public abstract class AbstractCompetitorLeaderboardChart extends A sailingService, leaderboardName, /* date */ null, selectedDetailType); asyncActionsExecutor.execute(getLeaderboardDataEntriesAction, LODA_LEADERBOARD_CHART_DATA_CATEGORY, - new AsyncCallback, List>>>() { + new AsyncCallback, List>>>() { @Override - public void onSuccess(List, List>> result) { + public void onSuccess(List, List>> result) { List chartSeries = new ArrayList(Arrays.asList(chart.getSeries())); chart.hideLoading(); setWidget(chart); @@ -260,7 +259,7 @@ public abstract class AbstractCompetitorLeaderboardChart extends A }); } - private void fillTotalRanksSeries(List, List>> result, List chartSeries) { + private void fillTotalRanksSeries(List, List>> result, List chartSeries) { Set unusedSeries = new HashSet(competitorSeries.values()); for (Series series : competitorSeries.values()) { for (Point p : new ArrayList(Arrays.asList(series.getPoints()))) { @@ -269,7 +268,7 @@ public abstract class AbstractCompetitorLeaderboardChart extends A } int raceColumnNumber = 0; int maxCompetitorCount = 0; - for (Triple, List> entry : result) { + for (com.sap.sse.common.Util.Triple, List> entry : result) { List dataValues = entry.getC(); raceColumnNames.add(entry.getA()); if(hasValidValues(dataValues)) { @@ -299,7 +298,7 @@ public abstract class AbstractCompetitorLeaderboardChart extends A chart.setHeight(maxCompetitorCount * 30 + 100 + "px"); } - private void fillTotalPointsSeries(List, List>> result, List chartSeries) { + private void fillTotalPointsSeries(List, List>> result, List chartSeries) { Double maxTotalPoints = 0.0; Set unusedSeries = new HashSet(competitorSeries.values()); for (Series series : competitorSeries.values()) { @@ -310,7 +309,7 @@ public abstract class AbstractCompetitorLeaderboardChart extends A int raceColumnNumber = 0; int maxCompetitorCount = 0; Map sumTotalPointsMap = new HashMap(); - for (Triple, List> entry : result) { + for (com.sap.sse.common.Util.Triple, List> entry : result) { List dataValues = entry.getC(); raceColumnNames.add(entry.getA()); if(hasValidValues(dataValues)) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java index 66b5f2fb9b6..0875b0759a6 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/charts/AbstractCompetitorRaceChart.java @@ -41,8 +41,6 @@ import com.sap.sailing.domain.common.RaceIdentifier; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.dto.CompetitorDTO; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.gwt.ui.actions.GetCompetitorsRaceDataAction; import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener; import com.sap.sailing.gwt.ui.client.CompetitorSelectionProvider; @@ -304,9 +302,9 @@ public abstract class AbstractCompetitorRaceChart> markPassingsData = competitorData.getMarkPassingsData(); + List> markPassingsData = competitorData.getMarkPassingsData(); List markPassingPoints = new ArrayList(); - for (Triple markPassingData : markPassingsData) { + for (com.sap.sse.common.Util.Triple markPassingData : markPassingsData) { if (markPassingData.getB() != null && markPassingData.getC() != null) { if (markPassingData.getB().before(toDate)) { Point markPassingPoint = new Point(markPassingData.getB().getTime(), @@ -319,11 +317,11 @@ public abstract class AbstractCompetitorRaceChart> raceData = competitorData.getRaceData(); + List> raceData = competitorData.getRaceData(); Point[] raceDataPointsToAdd = new Point[raceData.size()]; int currentPointIndex = 0; - for (Pair raceDataPoint : raceData) { + for (com.sap.sse.common.Util.Pair raceDataPoint : raceData) { Double dataPointValue = raceDataPoint.getB(); if(dataPointValue != null) { long dataPointTimeAsMillis = raceDataPoint.getA().getTime(); @@ -567,7 +565,7 @@ public abstract class AbstractCompetitorRaceChartnull. */ - public Pair checkPassingRelationToSelection(ArrayList> markPassingInRange) { + public com.sap.sse.common.Util.Pair checkPassingRelationToSelection(ArrayList> markPassingInRange) { boolean everyPassingInRange = true; Boolean twoPassingsInRangeBeforeError = null; ArrayList competitorPassings = markPassingInRange.get(0); @@ -592,7 +590,7 @@ public abstract class AbstractCompetitorRaceChart(everyPassingInRange, twoPassingsInRangeBeforeError); + return new com.sap.sse.common.Util.Pair(everyPassingInRange, twoPassingsInRangeBeforeError); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/components/CompositeSettings.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/components/CompositeSettings.java index 42b433dcb80..ca2c1e9e88e 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/components/CompositeSettings.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/components/CompositeSettings.java @@ -1,9 +1,9 @@ package com.sap.sailing.gwt.ui.client.shared.components; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; public class CompositeSettings { - public static class ComponentAndSettingsPair extends Pair, SettingsType> { + public static class ComponentAndSettingsPair extends Util.Pair, SettingsType> { private static final long serialVersionUID = -569811233041583043L; public ComponentAndSettingsPair(Component a, SettingsType b) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/components/CompositeValidator.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/components/CompositeValidator.java index 4eea20f65d9..d9f996553ae 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/components/CompositeValidator.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/components/CompositeValidator.java @@ -2,12 +2,12 @@ package com.sap.sailing.gwt.ui.client.shared.components; import java.util.ArrayList; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.gwt.ui.client.shared.components.CompositeSettings.ComponentAndSettingsPair; +import com.sap.sse.common.Util; import com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator; public class CompositeValidator implements Validator { - private static class ComponentAndValidator extends Pair, Validator> { + private static class ComponentAndValidator extends Util.Pair, Validator> { private static final long serialVersionUID = -4190322565836849861L; public ComponentAndValidator(Component a, Validator b) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/BoatOverlay.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/BoatOverlay.java index e0657294f8a..c25717ce397 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/BoatOverlay.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/BoatOverlay.java @@ -12,11 +12,11 @@ import com.sap.sailing.domain.common.LegType; import com.sap.sailing.domain.common.Tack; import com.sap.sailing.domain.common.dto.BoatClassDTO; import com.sap.sailing.domain.common.dto.CompetitorDTO; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.gwt.ui.shared.GPSFixDTO; import com.sap.sailing.gwt.ui.shared.SpeedWithBearingDTO; import com.sap.sailing.gwt.ui.shared.racemap.BoatClassVectorGraphics; import com.sap.sailing.gwt.ui.shared.racemap.CanvasOverlayV3; +import com.sap.sse.common.Util; /** * A google map overlay based on a HTML5 canvas for drawing boats (images) @@ -44,7 +44,7 @@ public class BoatOverlay extends CanvasOverlayV3 { private Color color; - private Map> boatScaleAndSizePerZoomCache; + private Map> boatScaleAndSizePerZoomCache; private final BoatClassVectorGraphics boatVectorGraphics; @@ -70,7 +70,7 @@ public class BoatOverlay extends CanvasOverlayV3 { this.boatClass = competitorDTO.getBoatClass(); this.color = color; - boatScaleAndSizePerZoomCache = new HashMap>(); + boatScaleAndSizePerZoomCache = new HashMap>(); boatVectorGraphics = BoatClassVectorGraphicsResolver.resolveBoatClassVectorGraphics(boatClass.getName()); } @@ -79,7 +79,7 @@ public class BoatOverlay extends CanvasOverlayV3 { if (mapProjection != null && boatFix != null) { // the possible zoom level range is 0 to 21 (zoom level 0 would show the whole world) int zoom = map.getZoom(); - Pair boatScaleAndSize = boatScaleAndSizePerZoomCache.get(zoom); + Util.Pair boatScaleAndSize = boatScaleAndSizePerZoomCache.get(zoom); if (boatScaleAndSize == null) { boatScaleAndSize = getBoatScaleAndSize(boatClass); boatScaleAndSizePerZoomCache.put(zoom, boatScaleAndSize); @@ -152,7 +152,7 @@ public class BoatOverlay extends CanvasOverlayV3 { this.boatFix = boatFix; } - public Pair getBoatScaleAndSize(BoatClassDTO boatClass) { + public Util.Pair getBoatScaleAndSize(BoatClassDTO boatClass) { // the minimum boat length is related to the hull of the boat, not the overall length double minBoatHullLengthInPx = boatVectorGraphics.getMinHullLengthInPx(); @@ -168,6 +168,6 @@ public class BoatOverlay extends CanvasOverlayV3 { // as the canvas contains the whole boat the canvas size relates to the overall length, not the hull length double scaledCanvasSize = (boatVectorGraphics.getOverallLengthInPx()) * boatSizeScaleFactor; - return new Pair(boatSizeScaleFactor, Size.newInstance(scaledCanvasSize + scaledCanvasSize / 2.0, scaledCanvasSize + scaledCanvasSize / 2.0)); + return new Util.Pair(boatSizeScaleFactor, Size.newInstance(scaledCanvasSize + scaledCanvasSize / 2.0, scaledCanvasSize + scaledCanvasSize / 2.0)); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/CourseMarkOverlay.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/CourseMarkOverlay.java index b45db1899a1..73764c14668 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/CourseMarkOverlay.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/CourseMarkOverlay.java @@ -11,10 +11,10 @@ import com.google.gwt.maps.client.base.Point; import com.google.gwt.maps.client.base.Size; import com.sap.sailing.domain.common.MarkType; import com.sap.sailing.domain.common.dto.PositionDTO; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.gwt.ui.shared.MarkDTO; import com.sap.sailing.gwt.ui.shared.racemap.CanvasOverlayV3; import com.sap.sailing.gwt.ui.shared.racemap.MarkVectorGraphics; +import com.sap.sse.common.Util; /** * A google map overlay based on a HTML5 canvas for drawing course marks (images) and the buoy zone if the mark is a buoy. @@ -36,7 +36,7 @@ public class CourseMarkOverlay extends CanvasOverlayV3 { private final MarkVectorGraphics markVectorGraphics; - private Map> markScaleAndSizePerZoomCache; + private Map> markScaleAndSizePerZoomCache; public CourseMarkOverlay(MapWidget map, int zIndex, MarkDTO markDTO) { super(map, zIndex); @@ -46,7 +46,7 @@ public class CourseMarkOverlay extends CanvasOverlayV3 { this.showBuoyZone = false; markVectorGraphics = new MarkVectorGraphics(markDTO.type, markDTO.color, markDTO.shape, markDTO.pattern); - markScaleAndSizePerZoomCache = new HashMap>(); + markScaleAndSizePerZoomCache = new HashMap>(); setCanvasSize(50, 50); } @@ -57,7 +57,7 @@ public class CourseMarkOverlay extends CanvasOverlayV3 { if (mapProjection != null && mark != null && position != null) { int zoom = map.getZoom(); - Pair markScaleAndSize = markScaleAndSizePerZoomCache.get(zoom); + Util.Pair markScaleAndSize = markScaleAndSizePerZoomCache.get(zoom); if(markScaleAndSize == null) { markScaleAndSize = getMarkScaleAndSize(position); markScaleAndSizePerZoomCache.put(zoom, markScaleAndSize); @@ -107,7 +107,7 @@ public class CourseMarkOverlay extends CanvasOverlayV3 { } } - public Pair getMarkScaleAndSize(PositionDTO markPosition) { + public Util.Pair getMarkScaleAndSize(PositionDTO markPosition) { double minMarkHeight = 20; // the original buoy vector graphics is too small (2.1m x 1.5m) for higher zoom levels @@ -126,7 +126,7 @@ public class CourseMarkOverlay extends CanvasOverlayV3 { // To calculate the display real mark size the scale factor from canvas units to the real double markSizeScaleFactor = markHeightInPixel / (markVectorGraphics.getMarkHeightInMeters() * 100); - return new Pair(markSizeScaleFactor, Size.newInstance(markHeightInPixel * 2.0, markHeightInPixel * 2.0)); + return new Util.Pair(markSizeScaleFactor, Size.newInstance(markHeightInPixel * 2.0, markHeightInPixel * 2.0)); } private String getTitle() { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/FixesAndTails.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/FixesAndTails.java index 9f4e17f6210..75a95143493 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/FixesAndTails.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/FixesAndTails.java @@ -15,9 +15,10 @@ import com.google.gwt.maps.client.overlays.Polyline; import com.google.gwt.user.client.Timer; import com.google.gwt.user.client.rpc.AsyncCallback; import com.sap.sailing.domain.common.dto.CompetitorDTO; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.shared.GPSFixDTO; +import com.sap.sse.common.Util; +import com.sap.sse.common.Util.Triple; /** * Manages the cache of {@link GPSFixDTO}s for the competitors and the polylines encoding the tails that visualize the @@ -432,7 +433,7 @@ public class FixesAndTails { * {@link Triple#getC() third} component tells whether the existing fixes can remain and be augmented by * those requested or need to be replaced */ - protected Triple, Map, Map> computeFromAndTo( + protected Util.Triple, Map, Map> computeFromAndTo( Date upTo, Iterable competitorsToShow, long effectiveTailLengthInMilliseconds) { Date tailstart = new Date(upTo.getTime() - effectiveTailLengthInMilliseconds); Map from = new HashMap(); @@ -472,7 +473,7 @@ public class FixesAndTails { overlapWithKnownFixes.put(competitor, overlap); } } - return new Triple, Map, Map>(from, to, + return new Util.Triple, Map, Map>(from, to, overlapWithKnownFixes); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java index afb9e7042e2..f19cbad0efc 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMap.java @@ -67,8 +67,6 @@ import com.sap.sailing.domain.common.dto.PositionDTO; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.RGBColor; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.scalablevalue.impl.ScalableBearing; import com.sap.sailing.gwt.ui.actions.GetRaceMapDataAction; import com.sap.sailing.gwt.ui.actions.GetWindInfoAction; @@ -426,7 +424,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe final Iterable competitorsToShow = getCompetitorsToShow(); if (race != null) { - final Triple, Map, Map> fromAndToAndOverlap = + final com.sap.sse.common.Util.Triple, Map, Map> fromAndToAndOverlap = fixesAndTails.computeFromAndTo(newTime, competitorsToShow, settings.getEffectiveTailLengthInMilliseconds()); final int requestID = ++boatPositionRequestIDCounter; @@ -503,7 +501,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe @Override public void onSuccess(WindInfoForRaceDTO windInfo) { - List> windSourcesToShow = new ArrayList>(); + List> windSourcesToShow = new ArrayList>(); if (windInfo != null) { for (WindSource windSource: windInfo.windTrackInfoByWindSource.keySet()) { WindTrackInfoDTO windTrackInfoDTO = windInfo.windTrackInfoByWindSource.get(windSource); @@ -511,7 +509,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe case EXPEDITION: // we filter out measured wind sources with a very little confidence if (windTrackInfoDTO.minWindConfidence > 0.01) { - windSourcesToShow.add(new Pair(windSource, windTrackInfoDTO)); + windSourcesToShow.add(new com.sap.sse.common.Util.Pair(windSource, windTrackInfoDTO)); } break; case COMBINED: @@ -631,10 +629,10 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe } } - protected void showWindSensorsOnMap(List> windSensorsList) { + protected void showWindSensorsOnMap(List> windSensorsList) { if (map != null) { Set toRemoveWindSources = new HashSet(windSensorOverlays.keySet()); - for (Pair windSourcePair : windSensorsList) { + for (com.sap.sse.common.Util.Pair windSourcePair : windSensorsList) { WindSource windSource = windSourcePair.getA(); WindTrackInfoDTO windTrackInfoDTO = windSourcePair.getB(); @@ -765,7 +763,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe return LatLng.newInstance(lat2 / Math.PI * 180., lon2 / Math.PI * 180.); } - private Pair getLeadingVisibleCompetitorInfo(Iterable competitorsToShow) { + private com.sap.sse.common.Util.Pair getLeadingVisibleCompetitorInfo(Iterable competitorsToShow) { CompetitorDTO leadingCompetitorDTO = null; int legOfLeaderCompetitor = -1; // this only works because the quickRanks are sorted @@ -773,7 +771,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe if (Util.contains(competitorsToShow, quickRank.competitor)) { leadingCompetitorDTO = quickRank.competitor; legOfLeaderCompetitor = quickRank.legNumber; - return new Pair(legOfLeaderCompetitor, leadingCompetitorDTO); + return new com.sap.sse.common.Util.Pair(legOfLeaderCompetitor, leadingCompetitorDTO); } } return null; @@ -785,7 +783,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe boolean drawAdvantageLine = false; if (settings.getHelpLinesSettings().isVisible(HelpLineTypes.ADVANTAGELINE)) { // find competitor with highest rank - Pair visibleLeaderInfo = getLeadingVisibleCompetitorInfo(competitorsToShow); + com.sap.sse.common.Util.Pair visibleLeaderInfo = getLeadingVisibleCompetitorInfo(competitorsToShow); // the boat fix may be null; may mean that no positions were loaded yet for the leading visible boat; // don't show anything GPSFixDTO lastBoatFix = null; @@ -899,7 +897,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe private void showStartAndFinishLines(final CoursePositionsDTO courseDTO) { if (map != null && courseDTO != null && lastRaceTimesInfo != null) { - Pair leadingVisibleCompetitorInfo = getLeadingVisibleCompetitorInfo(getCompetitorsToShow()); + com.sap.sse.common.Util.Pair leadingVisibleCompetitorInfo = getLeadingVisibleCompetitorInfo(getCompetitorsToShow()); int legOfLeadingCompetitor = leadingVisibleCompetitorInfo == null ? -1 : leadingVisibleCompetitorInfo.getA(); int numberOfLegs = lastRaceTimesInfo.legInfos.size(); // draw the start line @@ -1431,7 +1429,7 @@ public class RaceMap extends AbsolutePanel implements TimeListener, CompetitorSe for (ManeuverDTO maneuver : maneuversForCompetitor) { if (settings.isShowManeuverType(maneuver.type)) { LatLng latLng = LatLng.newInstance(maneuver.position.latDeg, maneuver.position.lngDeg); - Marker maneuverMarker = raceMapImageManager.maneuverIconsForTypeAndTargetTack.get(new Util.Pair(maneuver.type, maneuver.newTack)); + Marker maneuverMarker = raceMapImageManager.maneuverIconsForTypeAndTargetTack.get(new com.sap.sse.common.Util.Pair(maneuver.type, maneuver.newTack)); MarkerOptions options = MarkerOptions.newInstance(); options.setTitle(maneuver.toString(stringMessages)); options.setIcon(maneuverMarker.getIcon_MarkerImage()); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapImageManager.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapImageManager.java index e68d25917f4..9b62a85c315 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapImageManager.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapImageManager.java @@ -11,7 +11,7 @@ import com.google.gwt.maps.client.overlays.MarkerImage; import com.google.gwt.maps.client.overlays.MarkerOptions; import com.sap.sailing.domain.common.ManeuverType; import com.sap.sailing.domain.common.Tack; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; public class RaceMapImageManager { @@ -25,12 +25,12 @@ public class RaceMapImageManager { */ protected ImageTransformer windSensorIconTransformer; - protected Map, Marker> maneuverIconsForTypeAndTargetTack; + protected Map, Marker> maneuverIconsForTypeAndTargetTack; private static RaceMapResources resources = GWT.create(RaceMapResources.class); public RaceMapImageManager() { - maneuverIconsForTypeAndTargetTack = new HashMap, Marker>(); + maneuverIconsForTypeAndTargetTack = new HashMap, Marker>(); combinedWindIconTransformer = new ImageTransformer(resources.combinedWindIcon()); windSensorIconTransformer = new ImageTransformer(resources.expeditionWindIcon()); @@ -43,44 +43,44 @@ public class RaceMapImageManager { public void loadMapIcons(MapWidget map) { if(map != null) { Marker tackToStarboardIcon = createMarker("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=T|71bf44|000000", 10, 33); - maneuverIconsForTypeAndTargetTack.put(new Pair(ManeuverType.TACK, Tack.STARBOARD), tackToStarboardIcon); + maneuverIconsForTypeAndTargetTack.put(new Util.Pair(ManeuverType.TACK, Tack.STARBOARD), tackToStarboardIcon); Marker tackToPortIcon = createMarker("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=T|d95252|000000", 10, 33); - maneuverIconsForTypeAndTargetTack.put(new Pair(ManeuverType.TACK, Tack.PORT), tackToPortIcon); + maneuverIconsForTypeAndTargetTack.put(new Util.Pair(ManeuverType.TACK, Tack.PORT), tackToPortIcon); Marker jibeToStarboardIcon = createMarker("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=J|71bf44|000000", 10, 33); - maneuverIconsForTypeAndTargetTack.put(new Pair(ManeuverType.JIBE, Tack.STARBOARD), jibeToStarboardIcon); + maneuverIconsForTypeAndTargetTack.put(new Util.Pair(ManeuverType.JIBE, Tack.STARBOARD), jibeToStarboardIcon); Marker jibeToPortIcon = createMarker("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=J|d95252|000000", 10, 33); - maneuverIconsForTypeAndTargetTack.put(new Pair(ManeuverType.JIBE, Tack.PORT), jibeToPortIcon); + maneuverIconsForTypeAndTargetTack.put(new Util.Pair(ManeuverType.JIBE, Tack.PORT), jibeToPortIcon); Marker headUpOnStarboardIcon = createMarker("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=H|71bf44|000000", 10, 33); - maneuverIconsForTypeAndTargetTack.put(new Pair(ManeuverType.HEAD_UP, Tack.STARBOARD), headUpOnStarboardIcon); + maneuverIconsForTypeAndTargetTack.put(new Util.Pair(ManeuverType.HEAD_UP, Tack.STARBOARD), headUpOnStarboardIcon); Marker headUpOnPortIcon = createMarker("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=H|d95252|000000", 10, 33); - maneuverIconsForTypeAndTargetTack.put(new Pair(ManeuverType.HEAD_UP, Tack.PORT), headUpOnPortIcon); + maneuverIconsForTypeAndTargetTack.put(new Util.Pair(ManeuverType.HEAD_UP, Tack.PORT), headUpOnPortIcon); Marker bearAwayOnStarboardIcon = createMarker("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=B|71bf44|000000", 10, 33); - maneuverIconsForTypeAndTargetTack.put(new Pair(ManeuverType.BEAR_AWAY, Tack.STARBOARD), bearAwayOnStarboardIcon); + maneuverIconsForTypeAndTargetTack.put(new Util.Pair(ManeuverType.BEAR_AWAY, Tack.STARBOARD), bearAwayOnStarboardIcon); Marker bearAwayOnPortIcon = createMarker("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=B|d95252|000000", 10, 33); - maneuverIconsForTypeAndTargetTack.put(new Pair(ManeuverType.BEAR_AWAY, Tack.PORT), bearAwayOnPortIcon); + maneuverIconsForTypeAndTargetTack.put(new Util.Pair(ManeuverType.BEAR_AWAY, Tack.PORT), bearAwayOnPortIcon); Marker markPassingToStarboardIcon = createMarker("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=M|71bf44|000000", 10, 33); - maneuverIconsForTypeAndTargetTack.put(new Pair(ManeuverType.MARK_PASSING, Tack.STARBOARD), markPassingToStarboardIcon); + maneuverIconsForTypeAndTargetTack.put(new Util.Pair(ManeuverType.MARK_PASSING, Tack.STARBOARD), markPassingToStarboardIcon); Marker markPassingToPortIcon = createMarker("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=M|d95252|000000", 10, 33); - maneuverIconsForTypeAndTargetTack.put(new Pair(ManeuverType.MARK_PASSING, Tack.PORT), markPassingToPortIcon); + maneuverIconsForTypeAndTargetTack.put(new Util.Pair(ManeuverType.MARK_PASSING, Tack.PORT), markPassingToPortIcon); Marker unknownManeuverIcon = createMarker("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=?|FFFFFF|000000", 10, 33); - maneuverIconsForTypeAndTargetTack.put(new Pair(ManeuverType.UNKNOWN, Tack.STARBOARD), unknownManeuverIcon); - maneuverIconsForTypeAndTargetTack.put(new Pair(ManeuverType.UNKNOWN, Tack.PORT), unknownManeuverIcon); + maneuverIconsForTypeAndTargetTack.put(new Util.Pair(ManeuverType.UNKNOWN, Tack.STARBOARD), unknownManeuverIcon); + maneuverIconsForTypeAndTargetTack.put(new Util.Pair(ManeuverType.UNKNOWN, Tack.PORT), unknownManeuverIcon); Marker penaltyCircleToStarboardIcon = createMarker("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=P|71bf44|000000", 10, 33); - maneuverIconsForTypeAndTargetTack.put(new Pair(ManeuverType.PENALTY_CIRCLE, Tack.STARBOARD), penaltyCircleToStarboardIcon); + maneuverIconsForTypeAndTargetTack.put(new Util.Pair(ManeuverType.PENALTY_CIRCLE, Tack.STARBOARD), penaltyCircleToStarboardIcon); Marker penaltyCircleToPortIcon = createMarker("http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=P|d95252|000000", 10, 33); - maneuverIconsForTypeAndTargetTack.put(new Pair(ManeuverType.PENALTY_CIRCLE, Tack.PORT), penaltyCircleToPortIcon); + maneuverIconsForTypeAndTargetTack.put(new Util.Pair(ManeuverType.PENALTY_CIRCLE, Tack.PORT), penaltyCircleToPortIcon); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapSettingsDialogComponent.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapSettingsDialogComponent.java index 14f5e8eb0b9..a52f4406db8 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapSettingsDialogComponent.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/shared/racemap/RaceMapSettingsDialogComponent.java @@ -18,20 +18,20 @@ import com.google.gwt.user.client.ui.LongBox; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.ManeuverType; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.gwt.ui.client.ManeuverTypeFormatter; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent; import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapHelpLinesSettings.HelpLineTypes; import com.sap.sailing.gwt.ui.client.shared.racemap.RaceMapZoomSettings.ZoomTypes; +import com.sap.sse.common.Util; import com.sap.sse.gwt.client.dialog.DataEntryDialog; import com.sap.sse.gwt.client.dialog.DataEntryDialog.Validator; public class RaceMapSettingsDialogComponent implements SettingsDialogComponent { //Initializing the lists to prevent a null pointer exception in the first validation call - private List> checkboxAndManeuverType = new ArrayList>(); - private List> checkboxAndZoomType = new ArrayList>(); - private List> checkboxAndHelpLineType = new ArrayList>(); + private List> checkboxAndManeuverType = new ArrayList>(); + private List> checkboxAndZoomType = new ArrayList>(); + private List> checkboxAndHelpLineType = new ArrayList>(); private CheckBox zoomOnlyToSelectedCompetitorsCheckBox; private CheckBox showDouglasPeuckerPointsCheckBox; private CheckBox showOnlySelectedCompetitorsCheckBox; @@ -76,7 +76,7 @@ public class RaceMapSettingsDialogComponent implements SettingsDialogComponent(cb, zoomType)); + checkboxAndZoomType.add(new Util.Pair(cb, zoomType)); zoomSettingsBoxesPanel.add(cb); //Save specific checkboxes for easier value change handling @@ -105,7 +105,7 @@ public class RaceMapSettingsDialogComponent implements SettingsDialogComponent(checkbox, maneuverType)); + checkboxAndManeuverType.add(new Util.Pair(checkbox, maneuverType)); vp.add(checkbox); } showDouglasPeuckerPointsCheckBox = dialog.createCheckbox(stringMessages.douglasPeuckerPoints()); @@ -168,13 +168,13 @@ public class RaceMapSettingsDialogComponent implements SettingsDialogComponent dialog, HelpLineTypes helpLineType) { CheckBox cb = dialog.createCheckbox(RaceMapSettingsTypeFormatter.formatHelpLineType(helpLineType, stringMessages)); cb.setValue(initialSettings.getHelpLinesSettings().isVisible(helpLineType)); - checkboxAndHelpLineType.add(new Pair(cb, helpLineType)); + checkboxAndHelpLineType.add(new Util.Pair(cb, helpLineType)); return cb; } private void zoomSettingsChanged() { boolean disableOnlySelected = true; - for (Pair pair : checkboxAndZoomType) { + for (Util.Pair pair : checkboxAndZoomType) { pair.getA().setEnabled(true); if (disableOnlySelectedWhenAreFalse.contains(pair.getA())) { if (pair.getA().getValue()) { @@ -192,7 +192,7 @@ public class RaceMapSettingsDialogComponent implements SettingsDialogComponent p : checkboxAndManeuverType) { + for (Util.Pair p : checkboxAndManeuverType) { result.showManeuverType(p.getB(), p.getA().getValue()); } RaceMapHelpLinesSettings helpLinesSettings = getHelpLinesSettings(); @@ -214,7 +214,7 @@ public class RaceMapSettingsDialogComponent implements SettingsDialogComponent zoomTypes = new ArrayList(); boolean noAutoZoomSelected = true; - for (Pair pair : checkboxAndZoomType) { + for (Util.Pair pair : checkboxAndZoomType) { if (pair.getA().getValue()) { zoomTypes.add(pair.getB()); noAutoZoomSelected = false; @@ -228,7 +228,7 @@ public class RaceMapSettingsDialogComponent implements SettingsDialogComponent helpLineTypes = new HashSet(); - for (Pair pair : checkboxAndHelpLineType) { + for (Util.Pair pair : checkboxAndHelpLineType) { if (pair.getA().getValue()) { helpLineTypes.add(pair.getB()); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardEntryPoint.java index e2406b08cdc..4f7769a6fb9 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardEntryPoint.java @@ -22,7 +22,6 @@ import com.sap.sailing.domain.common.LeaderboardType; import com.sap.sailing.domain.common.RaceIdentifier; import com.sap.sailing.domain.common.RegattaNameAndRaceName; import com.sap.sailing.domain.common.dto.AbstractLeaderboardDTO; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.gwt.ui.client.AbstractEntryPoint; import com.sap.sailing.gwt.ui.client.GlobalNavigationPanel; import com.sap.sailing.gwt.ui.client.LogoAndTitlePanel; @@ -32,6 +31,7 @@ import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.URLEncoder; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings.RaceColumnSelectionStrategies; +import com.sap.sse.common.Util; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.async.MarkedAsyncCallback; import com.sap.sse.gwt.client.dialog.DataEntryDialog; @@ -97,10 +97,10 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint { leaderboardGroupName = Window.Location.getParameter(PARAM_LEADERBOARD_GROUP_NAME); if (leaderboardName != null) { - sailingService.checkLeaderboardName(leaderboardName, new MarkedAsyncCallback>( - new AsyncCallback>() { + sailingService.checkLeaderboardName(leaderboardName, new MarkedAsyncCallback>( + new AsyncCallback>() { @Override - public void onSuccess(Pair leaderboardNameAndType) { + public void onSuccess(Util.Pair leaderboardNameAndType) { if (leaderboardNameAndType != null && leaderboardName.equals(leaderboardNameAndType.getA())) { Window.setTitle(leaderboardName); leaderboardType = leaderboardNameAndType.getB(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java index b3593c01bd3..27ea6c3c1b8 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/LeaderboardPanel.java @@ -67,7 +67,6 @@ import com.sap.sailing.domain.common.dto.LegEntryDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.domain.common.impl.InvertibleComparatorAdapter; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.gwt.ui.actions.GetLeaderboardByNameAction; import com.sap.sailing.gwt.ui.client.Collator; import com.sap.sailing.gwt.ui.client.CompetitorSelectionChangeListener; @@ -1934,16 +1933,16 @@ public class LeaderboardPanel extends SimplePanel implements TimeListener, PlayS scoreCorrectionLastUpdateTimeLabel.setText(""); } - List> liveRaces = leaderboard.getLiveRaces(timer.getLiveTimePointInMillis()); + List> liveRaces = leaderboard.getLiveRaces(timer.getLiveTimePointInMillis()); boolean hasLiveRace = !liveRaces.isEmpty(); if (hasLiveRace) { String liveRaceText = ""; if(liveRaces.size() == 1) { - Pair liveRace = liveRaces.get(0); + com.sap.sse.common.Util.Pair liveRace = liveRaces.get(0); liveRaceText = stringMessages.raceIsLive("'" + liveRace.getA().getRaceColumnName() + "'"); } else { String raceNames = ""; - for(Pair liveRace: liveRaces) { + for(com.sap.sse.common.Util.Pair liveRace: liveRaces) { raceNames += "'" + liveRace.getA().getRaceColumnName() + "', "; } // remove last ", " diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiLeaderboardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiLeaderboardPanel.java index 232b437b6ce..0d2e6a8bf93 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiLeaderboardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboard/MultiLeaderboardPanel.java @@ -17,13 +17,13 @@ import com.google.gwt.user.client.ui.TabPanel; import com.google.gwt.user.client.ui.VerticalPanel; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.RaceIdentifier; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel; import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.client.shared.components.AbstractLazyComponent; import com.sap.sailing.gwt.ui.client.shared.components.SettingsDialogComponent; +import com.sap.sse.common.Util; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.player.TimeListener; import com.sap.sse.gwt.client.player.Timer; @@ -50,7 +50,7 @@ public class MultiLeaderboardPanel extends AbstractLazyComponent> leaderboardNamesAndDisplayNames; + private final List> leaderboardNamesAndDisplayNames; private final Map leaderboardNamesAndSettings; private TabPanel leaderboardsTabPanel; @@ -73,7 +73,7 @@ public class MultiLeaderboardPanel extends AbstractLazyComponent>(); + leaderboardNamesAndDisplayNames = new ArrayList>(); leaderboardNamesAndSettings = new HashMap(); } @@ -142,7 +142,7 @@ public class MultiLeaderboardPanel extends AbstractLazyComponent> newLeaderboardNamesAndDisplayNames) { + public void setLeaderboardNames(List> newLeaderboardNamesAndDisplayNames) { leaderboardNamesAndDisplayNames.clear(); leaderboardNamesAndDisplayNames.addAll(newLeaderboardNamesAndDisplayNames); @@ -150,10 +150,10 @@ public class MultiLeaderboardPanel extends AbstractLazyComponent>>() { + sailingService.getLeaderboardsNamesOfMetaleaderboard(metaLeaderboardName, new AsyncCallback>>() { @Override - public void onSuccess(List> leaderboardNamesAndDisplayNames) { + public void onSuccess(List> leaderboardNamesAndDisplayNames) { setLeaderboardNames(leaderboardNamesAndDisplayNames); } @@ -169,7 +169,7 @@ public class MultiLeaderboardPanel extends AbstractLazyComponent leaderboardNameAndDisplayName : leaderboardNamesAndDisplayNames) { + for (Util.Pair leaderboardNameAndDisplayName : leaderboardNamesAndDisplayNames) { FlowPanel tabFlowPanel = new FlowPanel(); leaderboardsTabPanel.add(tabFlowPanel, leaderboardNameAndDisplayName.getB(), false); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/EditScoreDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/EditScoreDialog.java index 3e9b99e621e..0f92ade7c65 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/EditScoreDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/EditScoreDialog.java @@ -8,17 +8,17 @@ import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.ListBox; import com.google.gwt.user.client.ui.Widget; import com.sap.sailing.domain.common.MaxPointsReason; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.gwt.ui.client.StringMessages; +import com.sap.sse.common.Util; import com.sap.sse.gwt.client.dialog.DataEntryDialog; -public class EditScoreDialog extends DataEntryDialog> { +public class EditScoreDialog extends DataEntryDialog> { private final ListBox maxPointsBox; private final DoubleBox netPointsBox; private final StringMessages stringMessages; public EditScoreDialog(StringMessages stringMessages, String competitorName, String raceColumnName, - MaxPointsReason oldMaxPointsReason, Double oldNetPoints, DialogCallback> callback) { + MaxPointsReason oldMaxPointsReason, Double oldNetPoints, DialogCallback> callback) { super(stringMessages.correctScore(), stringMessages.correctScoreFor(competitorName, raceColumnName), stringMessages.ok(), stringMessages.cancel(), /* validator */ null, /* animationEnabled */ true, callback); @@ -40,7 +40,7 @@ public class EditScoreDialog extends DataEntryDialog getResult() { + protected Util.Pair getResult() { final MaxPointsReason maxPointsReason; if ("".equals(maxPointsBox.getItemText(maxPointsBox.getSelectedIndex()))) { maxPointsReason = null; @@ -48,7 +48,7 @@ public class EditScoreDialog extends DataEntryDialog(maxPointsReason, netScore); + return new Util.Pair(maxPointsReason, netScore); } @Override diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/EditableLeaderboardPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/EditableLeaderboardPanel.java index baec2077b43..1f287ee81af 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/EditableLeaderboardPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/EditableLeaderboardPanel.java @@ -49,8 +49,6 @@ import com.sap.sailing.domain.common.dto.LeaderboardEntryDTO; import com.sap.sailing.domain.common.dto.LeaderboardRowDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.domain.common.impl.InvertibleComparatorAdapter; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.gwt.ui.adminconsole.AdminConsoleTableResources; import com.sap.sailing.gwt.ui.client.Collator; import com.sap.sailing.gwt.ui.client.CompetitorSelectionModel; @@ -65,6 +63,7 @@ import com.sap.sailing.gwt.ui.leaderboard.LeaderboardPanel; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettings; import com.sap.sailing.gwt.ui.leaderboard.LeaderboardSettingsFactory; import com.sap.sailing.gwt.ui.leaderboard.SortableColumn; +import com.sap.sse.common.Util; import com.sap.sse.gwt.client.async.AsyncActionsExecutor; import com.sap.sse.gwt.client.dialog.DataEntryDialog.DialogCallback; import com.sap.sse.gwt.client.useragent.UserAgentDetails; @@ -339,7 +338,7 @@ public class EditableLeaderboardPanel extends LeaderboardPanel { getBusyIndicator().setBusy(true); getSailingService().updateLeaderboardMaxPointsReason(getLeaderboardName(), row.competitor.getIdAsString(), raceColumnName, value == null || value.trim().length() == 0 ? null : MaxPointsReason.valueOf(value.trim()), - getLeaderboardDisplayDate(), new AsyncCallback>() { + getLeaderboardDisplayDate(), new AsyncCallback>() { @Override public void onFailure(Throwable t) { getBusyIndicator().setBusy(false); @@ -350,7 +349,7 @@ public class EditableLeaderboardPanel extends LeaderboardPanel { } @Override - public void onSuccess(Triple newNetAndTotalPointsAndIsCorrected) { + public void onSuccess(Util.Triple newNetAndTotalPointsAndIsCorrected) { getBusyIndicator().setBusy(false); row.fieldsByRaceColumnName.get(raceColumnName).reasonForMaxPoints = value == null || value.length() == 0 ? null : MaxPointsReason.valueOf(value.trim()); @@ -465,7 +464,7 @@ public class EditableLeaderboardPanel extends LeaderboardPanel { getSailingService().updateLeaderboardScoreCorrection(getLeaderboardName(), row.competitor.getIdAsString(), raceColumnName, value == null || value.trim().length() == 0 ? null : value.trim().equals("n/a") ? null : Double.valueOf(value.trim()), getLeaderboardDisplayDate(), - new AsyncCallback>() { + new AsyncCallback>() { @Override public void onFailure(Throwable t) { getBusyIndicator().setBusy(false); @@ -476,7 +475,7 @@ public class EditableLeaderboardPanel extends LeaderboardPanel { } @Override - public void onSuccess(Triple newNetAndTotalPointsAndIsCorrected) { + public void onSuccess(Util.Triple newNetAndTotalPointsAndIsCorrected) { getBusyIndicator().setBusy(false); final LeaderboardEntryDTO leaderboardEntryDTO = row.fieldsByRaceColumnName.get(raceColumnName); leaderboardEntryDTO.netPoints = value == null || value.length() == 0 ? newNetAndTotalPointsAndIsCorrected @@ -537,13 +536,13 @@ public class EditableLeaderboardPanel extends LeaderboardPanel { getWhiteboardOwner().whiteboardProduced(whiteboard); new EditScoreDialog(stringMessages, row.competitor.getName(), raceColumnName, row.fieldsByRaceColumnName.get(raceColumnName).reasonForMaxPoints, - row.fieldsByRaceColumnName.get(raceColumnName).netPoints, new DialogCallback>() { + row.fieldsByRaceColumnName.get(raceColumnName).netPoints, new DialogCallback>() { @Override - public void ok(final Pair editedObject) { + public void ok(final Util.Pair editedObject) { getBusyIndicator().setBusy(true); getSailingService().updateLeaderboardScoreCorrection(getLeaderboardName(), row.competitor.getIdAsString(), raceColumnName, editedObject.getB(), getLeaderboardDisplayDate(), - new AsyncCallback>() { + new AsyncCallback>() { @Override public void onFailure(Throwable t) { getBusyIndicator().setBusy(false); @@ -554,10 +553,10 @@ public class EditableLeaderboardPanel extends LeaderboardPanel { } @Override - public void onSuccess(Triple newNetAndTotalPointsAndIsCorrected) { + public void onSuccess(Util.Triple newNetAndTotalPointsAndIsCorrected) { getSailingService().updateLeaderboardMaxPointsReason(getLeaderboardName(), row.competitor.getIdAsString(), raceColumnName, editedObject.getA(), getLeaderboardDisplayDate(), - new AsyncCallback>() { + new AsyncCallback>() { @Override public void onFailure(Throwable t) { getBusyIndicator().setBusy(false); @@ -568,7 +567,7 @@ public class EditableLeaderboardPanel extends LeaderboardPanel { } @Override - public void onSuccess(Triple newNetAndTotalPointsAndIsCorrected) { + public void onSuccess(Util.Triple newNetAndTotalPointsAndIsCorrected) { getBusyIndicator().setBusy(false); final LeaderboardEntryDTO leaderboardEntryDTO = row.fieldsByRaceColumnName.get(raceColumnName); leaderboardEntryDTO.reasonForMaxPoints = editedObject.getA(); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/MatchAndApplyScoreCorrectionsDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/MatchAndApplyScoreCorrectionsDialog.java index c096a45d483..4f4a72f13c7 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/MatchAndApplyScoreCorrectionsDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/MatchAndApplyScoreCorrectionsDialog.java @@ -31,13 +31,13 @@ import com.sap.sailing.domain.common.dto.LeaderboardDTO; import com.sap.sailing.domain.common.dto.LeaderboardEntryDTO; import com.sap.sailing.domain.common.dto.LeaderboardRowDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.BulkScoreCorrectionDTO; import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO; import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO.ScoreCorrectionEntryDTO; +import com.sap.sse.common.Util; import com.sap.sse.gwt.client.dialog.DataEntryDialog; public class MatchAndApplyScoreCorrectionsDialog extends DataEntryDialog { @@ -50,7 +50,7 @@ public class MatchAndApplyScoreCorrectionsDialog extends DataEntryDialog competitorCheckboxes; private final Map raceColumnCheckboxes; - private final Map, CheckBox> cellCheckboxes; + private final Map, CheckBox> cellCheckboxes; private final Grid grid; private final Map raceNameOrNumberChoosers; private final Map officialSailIDChoosers; @@ -74,7 +74,7 @@ public class MatchAndApplyScoreCorrectionsDialog extends DataEntryDialog event) { for (RaceColumnDTO raceColumn : MatchAndApplyScoreCorrectionsDialog.this.leaderboard.getRaceList()) { - cellCheckboxes.get(new Pair(competitor, raceColumn)).setValue(event.getValue()); + cellCheckboxes.get(new Util.Pair(competitor, raceColumn)).setValue(event.getValue()); } } }); @@ -87,16 +87,16 @@ public class MatchAndApplyScoreCorrectionsDialog extends DataEntryDialog event) { for (CompetitorDTO competitor : MatchAndApplyScoreCorrectionsDialog.this.leaderboard.competitors) { - cellCheckboxes.get(new Pair(competitor, raceColumn)).setValue(event.getValue()); + cellCheckboxes.get(new Util.Pair(competitor, raceColumn)).setValue(event.getValue()); } } }); raceColumnCheckboxes.put(raceColumn, checkbox); } - cellCheckboxes = new HashMap, CheckBox>(); + cellCheckboxes = new HashMap, CheckBox>(); for (final CompetitorDTO competitor : leaderboard.competitors) { for (RaceColumnDTO raceColumn : leaderboard.getRaceList()) { - cellCheckboxes.put(new Pair(competitor, raceColumn), createCheckbox(stringMessages.apply())); + cellCheckboxes.put(new Util.Pair(competitor, raceColumn), createCheckbox(stringMessages.apply())); } } allAllCheckbox = createCheckbox(stringMessages.selectAll()); @@ -106,7 +106,7 @@ public class MatchAndApplyScoreCorrectionsDialog extends DataEntryDialog(competitor, raceColumn)).setValue(event.getValue()); + cellCheckboxes.get(new Util.Pair(competitor, raceColumn)).setValue(event.getValue()); } } for (RaceColumnDTO raceColumn : leaderboard.getRaceList()) { @@ -244,7 +244,7 @@ public class MatchAndApplyScoreCorrectionsDialog extends DataEntryDialog key = new Pair(competitor, raceColumn); + Util.Pair key = new Util.Pair(competitor, raceColumn); CheckBox cellCheckbox = cellCheckboxes.get(key); if (cellCheckbox.getValue()) { // apply the score correction of the cell: @@ -357,7 +357,7 @@ public class MatchAndApplyScoreCorrectionsDialog extends DataEntryDialog(competitor, raceColumn))); + cell.add(cellCheckboxes.get(new Util.Pair(competitor, raceColumn))); grid.setWidget(row, column++, cell); } row++; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/ResultSelectionAndApplyDialog.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/ResultSelectionAndApplyDialog.java index e0c5b211ea3..77c85aca899 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/ResultSelectionAndApplyDialog.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/leaderboardedit/ResultSelectionAndApplyDialog.java @@ -17,22 +17,21 @@ 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.dto.BoatClassDTO; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.gwt.ui.client.ErrorReporter; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; import com.sap.sailing.gwt.ui.client.StringMessages; import com.sap.sailing.gwt.ui.shared.RegattaScoreCorrectionDTO; import com.sap.sailing.gwt.ui.shared.ScoreCorrectionProviderDTO; +import com.sap.sse.common.Util; import com.sap.sse.gwt.client.controls.busyindicator.BusyIndicator; import com.sap.sse.gwt.client.controls.busyindicator.SimpleBusyIndicator; import com.sap.sse.gwt.client.dialog.DataEntryDialog; -public class ResultSelectionAndApplyDialog extends DataEntryDialog>> { +public class ResultSelectionAndApplyDialog extends DataEntryDialog>> { /** * a unique and human-readable string key for a eventNameBoatClassNameAndLastModfied pair */ - private final LinkedHashMap>> scoreCorrections; + private final LinkedHashMap>> scoreCorrections; private final ListBox scoreCorrectionListBox; private final ListBox scoreCorrectionProviderListBox; private final BusyIndicator busyIndicator; @@ -53,7 +52,7 @@ public class ResultSelectionAndApplyDialog extends DataEntryDialog>>(); + this.scoreCorrections = new LinkedHashMap>>(); scoreCorrectionProviderListBox = createListBox(/* isMultipleSelect */ false); scoreCorrectionListBox = createListBox(/* isMultipleSelect */ false); @@ -119,17 +118,17 @@ public class ResultSelectionAndApplyDialog extends DataEntryDialog>> eventNameBoatClassNameAndLastModified = new ArrayList>>(); - for (Entry>> entry : scp.getHasResultsForBoatClassFromDateByEventName().entrySet()) { - for (Pair se : entry.getValue()) { - eventNameBoatClassNameAndLastModified.add(new Pair>(entry.getKey(), se)); + List>> eventNameBoatClassNameAndLastModified = new ArrayList>>(); + for (Entry>> entry : scp.getHasResultsForBoatClassFromDateByEventName().entrySet()) { + for (Util.Pair se : entry.getValue()) { + eventNameBoatClassNameAndLastModified.add(new Util.Pair>(entry.getKey(), se)); } } sortOfficialResultsByRelevance(eventNameBoatClassNameAndLastModified); - for (Pair> pair : eventNameBoatClassNameAndLastModified) { + for (Util.Pair> pair : eventNameBoatClassNameAndLastModified) { String eventName = pair.getA(); - Pair boatClassAndLastModified = pair.getB(); + Util.Pair boatClassAndLastModified = pair.getB(); String scoreCorrectionName = eventName + ", " + boatClassAndLastModified.getA() + ", " + boatClassAndLastModified.getB(); scoreCorrections.put(scoreCorrectionName, pair); @@ -138,15 +137,15 @@ public class ResultSelectionAndApplyDialog extends DataEntryDialog>> eventNameBoatClassNameCapturedWhen) { + private void sortOfficialResultsByRelevance(List>> eventNameBoatClassNameCapturedWhen) { final Set lowercaseBoatClassNames = new HashSet(); for (BoatClassDTO boatClass : boatClasses) { lowercaseBoatClassNames.add(boatClass.getName().toLowerCase()); } Collections.sort(eventNameBoatClassNameCapturedWhen, - new Comparator>>() { + new Comparator>>() { @Override - public int compare(Pair> o1, Pair> o2) { + public int compare(Util.Pair> o1, Util.Pair> o2) { int result; // TODO consider looking for longest common substring to handle things like "470 M" vs. // "470 Men" @@ -169,9 +168,9 @@ public class ResultSelectionAndApplyDialog extends DataEntryDialog>> { + private static class Validator implements DataEntryDialog.Validator>> { @Override - public String getErrorMessage(Triple> valueToValidate) { + public String getErrorMessage(Util.Triple> valueToValidate) { String errorMessage = null; if(valueToValidate == null) { errorMessage = ""; @@ -180,7 +179,7 @@ public class ResultSelectionAndApplyDialog extends DataEntryDialog>> { + private static class Callback implements DialogCallback>> { private final EditableLeaderboardPanel leaderboardPanel; private final SailingServiceAsync sailingService; private final StringMessages stringMessages; @@ -200,7 +199,7 @@ public class ResultSelectionAndApplyDialog extends DataEntryDialog> providerNameAndEventNameBoatClassNameCapturedWhen) { + public void ok(Util.Triple> providerNameAndEventNameBoatClassNameCapturedWhen) { final String scoreCorrectionProviderName = providerNameAndEventNameBoatClassNameCapturedWhen.getA(); final String eventName = providerNameAndEventNameBoatClassNameCapturedWhen.getB(); final String boatClassName = providerNameAndEventNameBoatClassNameCapturedWhen.getC().getA(); @@ -241,16 +240,16 @@ public class ResultSelectionAndApplyDialog extends DataEntryDialog> getResult() { - Triple> result = null; + protected Util.Triple> getResult() { + Util.Triple> result = null; int selectedProviderIndex = scoreCorrectionProviderListBox.getSelectedIndex(); if (selectedProviderIndex > 0) { String selectedProviderName = scoreCorrectionProviderListBox.getItemText(selectedProviderIndex); int selectedScoreCorrectionIndex = scoreCorrectionListBox.getSelectedIndex(); if(selectedScoreCorrectionIndex > 0) { - Pair> pair = scoreCorrections.get(scoreCorrectionListBox.getValue(selectedScoreCorrectionIndex)); - result = new Triple>(selectedProviderName, pair.getA(), pair.getB()); + Util.Pair> pair = scoreCorrections.get(scoreCorrectionListBox.getValue(selectedScoreCorrectionIndex)); + result = new Util.Triple>(selectedProviderName, pair.getA(), pair.getB()); } } return result; diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/PolarSheetsEntryPoint.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/PolarSheetsEntryPoint.java index ae8f8715d4e..745909cfcd6 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/PolarSheetsEntryPoint.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/polarsheets/PolarSheetsEntryPoint.java @@ -9,8 +9,8 @@ import com.google.gwt.user.client.rpc.AsyncCallback; import com.google.gwt.user.client.rpc.ServiceDefTarget; import com.google.gwt.user.client.ui.RootLayoutPanel; import com.sap.sailing.gwt.ui.client.AbstractEntryPoint; -import com.sap.sailing.gwt.ui.client.RegattasDisplayer; import com.sap.sailing.gwt.ui.client.RegattaRefresher; +import com.sap.sailing.gwt.ui.client.RegattasDisplayer; import com.sap.sailing.gwt.ui.client.RemoteServiceMappingConstants; import com.sap.sailing.gwt.ui.client.SailingService; import com.sap.sailing.gwt.ui.client.SailingServiceAsync; 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 7b6a7ea2142..9960e767f5e 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 @@ -159,8 +159,6 @@ import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.PolarSheetGenerationResponseImpl; import com.sap.sailing.domain.common.impl.TimeRangeImpl; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.domain.common.racelog.FlagPole; import com.sap.sailing.domain.common.racelog.Flags; @@ -434,7 +432,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S * have been obtained by {@link IncrementalLeaderboardDTO#strip(LeaderboardDTO)}. The cache size is limited to * {@link #LEADERBOARD_DIFFERENCE_CACHE_SIZE}. */ - private final LinkedHashMap, IncrementalLeaderboardDTO> leaderboardDifferenceCacheByIdPair; + private final LinkedHashMap, IncrementalLeaderboardDTO> leaderboardDifferenceCacheByIdPair; private final SwissTimingReplayService swissTimingReplayService; @@ -462,10 +460,10 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S tractracMongoObjectFactory = com.sap.sailing.domain.tractracadapter.persistence.MongoObjectFactory.INSTANCE; swissTimingFactory = SwissTimingFactory.INSTANCE; countryCodeFactory = com.sap.sailing.domain.common.CountryCodeFactory.INSTANCE; - leaderboardDifferenceCacheByIdPair = new LinkedHashMap, IncrementalLeaderboardDTO>(LEADERBOARD_DIFFERENCE_CACHE_SIZE, 0.75f, /* accessOrder */ true) { + leaderboardDifferenceCacheByIdPair = new LinkedHashMap, IncrementalLeaderboardDTO>(LEADERBOARD_DIFFERENCE_CACHE_SIZE, 0.75f, /* accessOrder */ true) { private static final long serialVersionUID = 3775119859130148488L; @Override - protected boolean removeEldestEntry(Entry, IncrementalLeaderboardDTO> eldest) { + protected boolean removeEldestEntry(Entry, IncrementalLeaderboardDTO> eldest) { return this.size() > LEADERBOARD_DIFFERENCE_CACHE_SIZE; } }; @@ -595,12 +593,12 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S private ScoreCorrectionProviderDTO convertScoreCorrectionProviderDTO(ScoreCorrectionProvider scoreCorrectionProvider) throws Exception { - Map>> hasResultsForBoatClassFromDateByEventName = new HashMap>>(); - for (Map.Entry>> e : scoreCorrectionProvider + Map>> hasResultsForBoatClassFromDateByEventName = new HashMap>>(); + for (Map.Entry>> e : scoreCorrectionProvider .getHasResultsForBoatClassFromDateByEventName().entrySet()) { - Set> set = new HashSet>(); - for (Pair p : e.getValue()) { - set.add(new Pair(p.getA(), p.getB().asDate())); + Set> set = new HashSet>(); + for (com.sap.sse.common.Util.Pair p : e.getValue()) { + set.add(new com.sap.sse.common.Util.Pair(p.getA(), p.getB().asDate())); } hasResultsForBoatClassFromDateByEventName.put(e.getKey(), set); } @@ -666,7 +664,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S final IncrementalLeaderboardDTO cachedDiff; if (previousLeaderboardId != null) { synchronized (leaderboardDifferenceCacheByIdPair) { - cachedDiff = leaderboardDifferenceCacheByIdPair.get(new Pair(previousLeaderboardId, leaderboardDTO.getId())); + cachedDiff = leaderboardDifferenceCacheByIdPair.get(new com.sap.sse.common.Util.Pair(previousLeaderboardId, leaderboardDTO.getId())); } if (cachedDiff == null) { leaderboardDifferenceCacheByIdPairMisses++; @@ -683,7 +681,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S if (cachedDiff == null) { IncrementalLeaderboardDTO preResult = new IncrementalLeaderboardDTOCloner().clone(leaderboardDTO).strip(previousLeaderboardDTO); synchronized (leaderboardDifferenceCacheByIdPair) { - leaderboardDifferenceCacheByIdPair.put(new Pair(previousLeaderboardId, leaderboardDTO.getId()), preResult); + leaderboardDifferenceCacheByIdPair.put(new com.sap.sse.common.Util.Pair(previousLeaderboardId, leaderboardDTO.getId()), preResult); } incrementalResult = preResult; } else { @@ -930,8 +928,8 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } @Override - public Pair> listTracTracRacesInEvent(String eventJsonURL, boolean listHiddenRaces) throws MalformedURLException, IOException, ParseException, org.json.simple.parser.ParseException, URISyntaxException { - com.sap.sailing.domain.common.impl.Util.Pair> raceRecords; + public com.sap.sse.common.Util.Pair> listTracTracRacesInEvent(String eventJsonURL, boolean listHiddenRaces) throws MalformedURLException, IOException, ParseException, org.json.simple.parser.ParseException, URISyntaxException { + com.sap.sse.common.Util.Pair> raceRecords; raceRecords = getTracTracAdapter().getTracTracRaceRecords(new URL(eventJsonURL), /*loadClientParam*/ false); List result = new ArrayList(); for (RaceRecord raceRecord : raceRecords.getB()) { @@ -945,7 +943,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S .getTrackingEndTime().asDate(), raceRecord.getRaceStartTime().asDate(), raceRecord.getBoatClassNames(), raceRecord.getRaceStatus(), raceRecord.getJsonURL().toString())); } - return new Pair>(raceRecords.getA(), result); + return new com.sap.sse.common.Util.Pair>(raceRecords.getA(), result); } @Override @@ -1195,7 +1193,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S Double minWindConfidence = 2.0; Double maxWindConfidence = -1.0; for (int i = 0; i < numberOfFixes; i++) { - WindWithConfidence> averagedWindWithConfidence = windTrack.getAveragedWindWithConfidence(position, timePoint); + WindWithConfidence> averagedWindWithConfidence = windTrack.getAveragedWindWithConfidence(position, timePoint); if (averagedWindWithConfidence != null) { WindDTO windDTO = createWindDTOFromAlreadyAveraged(averagedWindWithConfidence.getObject(), timePoint); double confidence = averagedWindWithConfidence.getConfidence(); @@ -1278,7 +1276,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S Double maxWindConfidence = -1.0; for (int i = 0; i < numberOfFixes && (!onlyUpToNewestEvent || (newestEvent != null && timePoint.before(newestEvent))); i++) { - WindWithConfidence> averagedWindWithConfidence = windTrack.getAveragedWindWithConfidence(null, timePoint); + WindWithConfidence> averagedWindWithConfidence = windTrack.getAveragedWindWithConfidence(null, timePoint); if (averagedWindWithConfidence != null) { if (logger.getLevel() != null && logger.getLevel().equals(Level.FINEST)) { logger.finest("Found averaged wind: " + averagedWindWithConfidence); @@ -1533,18 +1531,18 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S raceTimesInfo.endOfRace = trackedRace.getEndOfRace() == null ? null : trackedRace.getEndOfRace().asDate(); raceTimesInfo.delayToLiveInMs = trackedRace.getDelayToLiveInMillis(); - Iterable>> markPassingsTimes = trackedRace.getMarkPassingsTimes(); + Iterable>> markPassingsTimes = trackedRace.getMarkPassingsTimes(); synchronized (markPassingsTimes) { int numberOfWaypoints = Util.size(markPassingsTimes); int wayPointNumber = 1; - for (Pair> markPassingTimes : markPassingsTimes) { + for (com.sap.sse.common.Util.Pair> markPassingTimes : markPassingsTimes) { MarkPassingTimesDTO markPassingTimesDTO = new MarkPassingTimesDTO(); String name = "M" + (wayPointNumber - 1); if (wayPointNumber == numberOfWaypoints) { name = "F"; } markPassingTimesDTO.setName(name); - Pair timesPair = markPassingTimes.getB(); + com.sap.sse.common.Util.Pair timesPair = markPassingTimes.getB(); TimePoint firstPassingTime = timesPair.getA(); TimePoint lastPassingTime = timesPair.getB(); markPassingTimesDTO.firstPassingDate = firstPassingTime == null ? null : firstPassingTime.asDate(); @@ -1741,12 +1739,12 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S * Otherwise, a new control point is created using the default {@link com.sap.sailing.domain.base.DomainFactory} * instance. */ - private List> resolveControlPoints( - CourseBase old, List> controlPoints) { + private List> resolveControlPoints( + CourseBase old, List> controlPoints) { Map newlyCreatedCache = new HashMap(); Iterable waypoints = old.getWaypoints(); - List> newControlPoints = new ArrayList>(); - for (Pair controlPointAndPassingInstruction : controlPoints) { + List> newControlPoints = new ArrayList>(); + for (com.sap.sse.common.Util.Pair controlPointAndPassingInstruction : controlPoints) { ControlPointDTO controlPointDTO = controlPointAndPassingInstruction.getA(); ControlPoint match = null; if (newlyCreatedCache.containsKey(controlPointDTO)) { @@ -1762,7 +1760,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } } if (match != null) { - newControlPoints.add(new Pair(match, controlPointAndPassingInstruction.getB())); + newControlPoints.add(new com.sap.sse.common.Util.Pair(match, controlPointAndPassingInstruction.getB())); } else { // no match found; create new control point: ControlPoint newControlPoint; @@ -1777,11 +1775,11 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S Mark left = baseDomainFactory.getOrCreateMark(gateDTO.getLeft().getIdAsString(), gateDTO.getLeft().getName()); Mark right = baseDomainFactory.getOrCreateMark(gateDTO.getRight().getIdAsString(), gateDTO.getRight().getName()); newControlPoint = baseDomainFactory.createControlPointWithTwoMarks(id, left, right, gateDTO.getName()); - newControlPoints.add(new Pair(newControlPoint, null)); + newControlPoints.add(new com.sap.sse.common.Util.Pair(newControlPoint, null)); } else { newControlPoint = baseDomainFactory.getOrCreateMark(controlPointDTO.getIdAsString(), controlPointDTO.getName()); PassingInstruction passingInstructions = controlPointAndPassingInstruction.getB(); - newControlPoints.add(new Pair(newControlPoint, passingInstructions)); + newControlPoints.add(new com.sap.sse.common.Util.Pair(newControlPoint, passingInstructions)); } newlyCreatedCache.put(controlPointDTO, newControlPoint); } @@ -1798,11 +1796,11 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S * the course of the race identified by raceIdentifier. */ @Override - public void updateRaceCourse(RegattaAndRaceIdentifier raceIdentifier, List> controlPoints) { + public void updateRaceCourse(RegattaAndRaceIdentifier raceIdentifier, List> controlPoints) { TrackedRace trackedRace = getExistingTrackedRace(raceIdentifier); if (trackedRace != null) { Course course = trackedRace.getRace().getCourse(); - List> newControlPoints = resolveControlPoints(course, controlPoints); + List> newControlPoints = resolveControlPoints(course, controlPoints); try { course.update(newControlPoints, baseDomainFactory); } catch (Exception e) { @@ -1948,8 +1946,8 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } @Override - public Pair checkLeaderboardName(String leaderboardName) { - Pair result = null; + public com.sap.sse.common.Util.Pair checkLeaderboardName(String leaderboardName) { + com.sap.sse.common.Util.Pair result = null; if(getService().getLeaderboards().containsKey(leaderboardName)) { Leaderboard leaderboard = getService().getLeaderboards().get(leaderboardName); @@ -1961,7 +1959,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } else { type = isRegattaLeaderboard ? LeaderboardType.RegattaLeaderboard : LeaderboardType.FlexibleLeaderboard; } - result = new Pair(leaderboard.getName(), type); + result = new com.sap.sse.common.Util.Pair(leaderboard.getName(), type); } return result; @@ -2150,8 +2148,8 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } @Override - public void addColumnsToLeaderboard(String leaderboardName, List> columnsToAdd) { - for(Pair columnToAdd: columnsToAdd) { + public void addColumnsToLeaderboard(String leaderboardName, List> columnsToAdd) { + for(com.sap.sse.common.Util.Pair columnToAdd: columnsToAdd) { getService().apply(new AddColumnToLeaderboard(columnToAdd.getA(), leaderboardName, columnToAdd.getB())); } } @@ -2220,7 +2218,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } @Override - public Triple updateLeaderboardMaxPointsReason(String leaderboardName, String competitorIdAsString, String raceColumnName, + public com.sap.sse.common.Util.Triple updateLeaderboardMaxPointsReason(String leaderboardName, String competitorIdAsString, String raceColumnName, MaxPointsReason maxPointsReason, Date date) throws NoWindException { return getService().apply( new UpdateLeaderboardMaxPointsReason(leaderboardName, raceColumnName, competitorIdAsString, @@ -2228,7 +2226,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } @Override - public Triple updateLeaderboardScoreCorrection(String leaderboardName, + public com.sap.sse.common.Util.Triple updateLeaderboardScoreCorrection(String leaderboardName, String competitorIdAsString, String columnName, Double correctedScore, Date date) throws NoWindException { return getService().apply( new UpdateLeaderboardScoreCorrection(leaderboardName, columnName, competitorIdAsString, correctedScore, @@ -2554,8 +2552,8 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S public CompetitorRaceDataDTO call() throws NoWindException { Competitor competitor = getCompetitorByIdAsString(trackedRace.getRace().getCompetitors(), competitorDTO.getIdAsString()); - ArrayList> markPassingsData = new ArrayList>(); - ArrayList> raceData = new ArrayList>(); + ArrayList> markPassingsData = new ArrayList>(); + ArrayList> raceData = new ArrayList>(); // Filling the mark passings Set competitorMarkPassings = trackedRace.getMarkPassings(competitor); if (competitorMarkPassings != null) { @@ -2566,7 +2564,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S Double competitorMarkPassingsData = getCompetitorRaceDataEntry(detailType, trackedRace, competitor, time, leaderboardGroupName, leaderboardName); if (competitorMarkPassingsData != null) { - markPassingsData.add(new Triple(markPassing + markPassingsData.add(new com.sap.sse.common.Util.Triple(markPassing .getWaypoint().getName(), time.asDate(), competitorMarkPassingsData)); } } @@ -2580,7 +2578,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S Double competitorRaceData = getCompetitorRaceDataEntry(detailType, trackedRace, competitor, time, leaderboardGroupName, leaderboardName); if (competitorRaceData != null) { - raceData.add(new Pair(time.asDate(), competitorRaceData)); + raceData.add(new com.sap.sse.common.Util.Pair(time.asDate(), competitorRaceData)); } } } @@ -2607,7 +2605,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S return result; } - private Triple, List> getTotalPointsForRaceColumn(LeaderboardDTO leaderboard, + private com.sap.sse.common.Util.Triple, List> getTotalPointsForRaceColumn(LeaderboardDTO leaderboard, RaceColumnDTO raceColumn) throws NoWindException { List values = new ArrayList(); List competitorDTOs = new ArrayList(); @@ -2616,13 +2614,13 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S values.add(leaderboardEntryDTO != null ? leaderboardEntryDTO.totalPoints : null); competitorDTOs.add(entry.getKey()); } - return new Triple, List>(raceColumn.getName(), competitorDTOs, values); + return new com.sap.sse.common.Util.Triple, List>(raceColumn.getName(), competitorDTOs, values); } @Override - public List, List>> getLeaderboardDataEntriesForAllRaceColumns(String leaderboardName, + public List, List>> getLeaderboardDataEntriesForAllRaceColumns(String leaderboardName, Date date, DetailType detailType) throws Exception { - List, List>> result = new ArrayList,List>>(); + List, List>> result = new ArrayList,List>>(); // Attention: The reason why we read the data from the LeaderboardDTO and not from the leaderboard directly is to ensure // the use of the leaderboard cache. final Leaderboard leaderboard = getService().getLeaderboardByName(leaderboardName); @@ -2657,7 +2655,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S competitorDTOs.add(baseDomainFactory.convertToCompetitorDTO(competitor)); rank++; } - result.add(new Triple, List>(e.getKey().getName(), competitorDTOs, values)); + result.add(new com.sap.sse.common.Util.Triple, List>(e.getKey().getName(), competitorDTOs, values)); } break; default: @@ -2670,7 +2668,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } @Override - public List> getLeaderboardsNamesOfMetaleaderboard(String metaLeaderboardName) { + public List> getLeaderboardsNamesOfMetaleaderboard(String metaLeaderboardName) { Leaderboard leaderboard = getService().getLeaderboardByName(metaLeaderboardName); if (leaderboard == null) { throw new IllegalArgumentException("Couldn't find leaderboard named "+metaLeaderboardName); @@ -2678,10 +2676,10 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S if(!(leaderboard instanceof MetaLeaderboard)) { throw new IllegalArgumentException("The leaderboard "+metaLeaderboardName + " is not a metaleaderboard"); } - List> result = new ArrayList>(); + List> result = new ArrayList>(); MetaLeaderboard metaLeaderboard = (MetaLeaderboard) leaderboard; for(Leaderboard containedLeaderboard: metaLeaderboard.getLeaderboards()) { - result.add(new Pair(containedLeaderboard.getName(), + result.add(new com.sap.sse.common.Util.Pair(containedLeaderboard.getName(), containedLeaderboard.getDisplayName() != null ? containedLeaderboard.getDisplayName() : containedLeaderboard.getName())); } return result; @@ -2965,9 +2963,9 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S for (EventDTO localEvent : getEvents()) { result.add(localEvent); } - for (Entry, Exception>> serverRefAndEventsOrException : + for (Entry, Exception>> serverRefAndEventsOrException : getService().getPublicEventsOfAllSailingServers().entrySet()) { - final Pair, Exception> eventsOrException = serverRefAndEventsOrException.getValue(); + final com.sap.sse.common.Util.Pair, Exception> eventsOrException = serverRefAndEventsOrException.getValue(); final RemoteSailingServerReference serverRef = serverRefAndEventsOrException.getKey(); final Iterable remoteEvents = eventsOrException.getA(); String baseURL = getBaseURL(serverRef.getURL()).toString(); @@ -2999,7 +2997,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S private RemoteSailingServerReferenceDTO createRemoteSailingServerReferenceDTO( final RemoteSailingServerReference serverRef, - final Pair, Exception> eventsOrException) { + final com.sap.sse.common.Util.Pair, Exception> eventsOrException) { final Iterable events = eventsOrException.getA(); final Iterable eventDTOs; final RemoteSailingServerReferenceDTO sailingServerDTO; @@ -3381,7 +3379,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S @Override public List getRemoteSailingServerReferences() { List result = new ArrayList(); - for (Entry, Exception>> remoteSailingServerRefAndItsCachedEvent : + for (Entry, Exception>> remoteSailingServerRefAndItsCachedEvent : getService().getPublicEventsOfAllSailingServers().entrySet()) { RemoteSailingServerReferenceDTO dto = createRemoteSailingServerReferenceDTO( remoteSailingServerRefAndItsCachedEvent.getKey(), @@ -3408,7 +3406,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } URL serverURL = new URL(expandedURL); RemoteSailingServerReference serverRef = getService().apply(new AddRemoteSailingServerReference(sailingServer.getName(), serverURL)); - Pair, Exception> eventsOrException = getService().updateRemoteServerEventCacheSynchronously(serverRef); + com.sap.sse.common.Util.Pair, Exception> eventsOrException = getService().updateRemoteServerEventCacheSynchronously(serverRef); return createRemoteSailingServerReferenceDTO(serverRef, eventsOrException); } @@ -3729,7 +3727,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S @Override public List getLeaderboardGroupNamesFromRemoteServer(String url) { - Pair hostnameAndPort = parseHostAndPort(url); + com.sap.sse.common.Util.Pair hostnameAndPort = parseHostAndPort(url); String hostname = hostnameAndPort.getA(); int port = hostnameAndPort.getB(); final String path = "/sailingserver/api/v1/leaderboardgroups"; @@ -3779,7 +3777,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } - private Pair parseHostAndPort(String urlAsString) { + private com.sap.sse.common.Util.Pair parseHostAndPort(String urlAsString) { String hostname; Integer port = 80; try { @@ -3805,7 +3803,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } } } - return new Pair(hostname, port); + return new com.sap.sse.common.Util.Pair(hostname, port); } @Override @@ -3822,7 +3820,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S long startTime = System.currentTimeMillis(); getService().createOrUpdateDataImportProgressWithReplication(importOperationId, 0.01, "Setting up connection", 0.5); - Pair hostnameAndPort = parseHostAndPort(urlAsString); + com.sap.sse.common.Util.Pair hostnameAndPort = parseHostAndPort(urlAsString); String hostname = hostnameAndPort.getA(); int port = hostnameAndPort.getB(); String query; @@ -4126,12 +4124,12 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } @Override - public Triple getStartTimeAndProcedure(String leaderboardName, String raceColumnName, String fleetName) { - Triple result = getService().getStartTimeAndProcedure(leaderboardName, raceColumnName, fleetName); + public com.sap.sse.common.Util.Triple getStartTimeAndProcedure(String leaderboardName, String raceColumnName, String fleetName) { + com.sap.sse.common.Util.Triple result = getService().getStartTimeAndProcedure(leaderboardName, raceColumnName, fleetName); if (result == null || result.getA() == null) { return null; } - return new Triple(result.getA() == null ? null : result.getA().asDate(), result.getB(), result.getC()); + return new com.sap.sse.common.Util.Triple(result.getA() == null ? null : result.getA().asDate(), result.getB(), result.getC()); } @Override @@ -4268,7 +4266,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S * @param triple leaderboard and racecolumn and fleet names * @return */ - private RaceLog getRaceLog(Triple triple) { + private RaceLog getRaceLog(com.sap.sse.common.Util.Triple triple) { return getRaceLog(triple.getA(), triple.getB(), triple.getC()); } @@ -4349,7 +4347,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S @Override public void addCourseDefinitionToRaceLog(String leaderboardName, String raceColumnName, String fleetName, - List> courseDTO) { + List> courseDTO) { RaceLog raceLog = getRaceLog(leaderboardName, raceColumnName, fleetName); String name = String.format("Course for %s - %s - %s", leaderboardName, raceColumnName, fleetName); @@ -4358,7 +4356,7 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S lastPublishedCourse = new CourseDataImpl(name); } - List> waypoints = resolveControlPoints(lastPublishedCourse, courseDTO); + List> waypoints = resolveControlPoints(lastPublishedCourse, courseDTO); Course course = new CourseImpl(name, lastPublishedCourse.getWaypoints()); try { @@ -4421,11 +4419,11 @@ public class SailingServiceImpl extends ProxiedRemoteServiceServlet implements S } @Override - public void copyCourseAndCompetitorsToOtherRaceLogs(Triple fromTriple, - Set> toTriples) { + public void copyCourseAndCompetitorsToOtherRaceLogs(com.sap.sse.common.Util.Triple fromTriple, + Set> toTriples) { RaceLog fromRaceLog = getRaceLog(fromTriple); Set toRaceLogs = new HashSet<>(); - for (Triple toTriple : toTriples) { + for (com.sap.sse.common.Util.Triple toTriple : toTriples) { toRaceLogs.add(getRaceLog(toTriple)); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SimulatorServiceImpl.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SimulatorServiceImpl.java index 907931e80f6..2065925c1c8 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SimulatorServiceImpl.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/server/SimulatorServiceImpl.java @@ -24,7 +24,6 @@ import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.NauticalMileDistance; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.gwt.ui.client.SimulatorService; import com.sap.sailing.gwt.ui.shared.BoatClassDTOsAndNotificationMessage; @@ -75,6 +74,7 @@ import com.sap.sailing.simulator.windfield.WindControlParameters; import com.sap.sailing.simulator.windfield.WindFieldGenerator; import com.sap.sailing.simulator.windfield.WindFieldGeneratorFactory; import com.sap.sailing.simulator.windfield.impl.WindFieldGeneratorMeasured; +import com.sap.sse.common.Util; public class SimulatorServiceImpl extends RemoteServiceServlet implements SimulatorService { private static final long serialVersionUID = 4445427185387524086L; @@ -336,7 +336,7 @@ public class SimulatorServiceImpl extends RemoteServiceServlet implements Simula public PolarDiagramDTOAndNotificationMessage getPolarDiagram(Double bearingStep, int boatClassIndex) throws ConfigurationException { - Pair polarDiagramAndNotificationMessage = this.getPolarDiagram(boatClassIndex); + Util.Pair polarDiagramAndNotificationMessage = this.getPolarDiagram(boatClassIndex); NavigableMap> navMap = polarDiagramAndNotificationMessage.getA() .polarDiagramPlot(bearingStep); @@ -377,7 +377,7 @@ public class SimulatorServiceImpl extends RemoteServiceServlet implements Simula // this.stepSizeMeters); // int noOfPointsMinus1 = points.size() - 1; - Pair polarDiagramAndNotificationMessage = this.getPolarDiagram(requestData.selection.boatClassIndex); + Util.Pair polarDiagramAndNotificationMessage = this.getPolarDiagram(requestData.selection.boatClassIndex); PolarDiagram polarDiagram = polarDiagramAndNotificationMessage.getA(); String notificationMessage = polarDiagramAndNotificationMessage.getB(); @@ -470,7 +470,7 @@ public class SimulatorServiceImpl extends RemoteServiceServlet implements Simula List points = SimulatorServiceUtils.getIntermediatePoints2(requestData.turnPoints, this.stepSizeMeters); int noOfPointsMinus1 = points.size() - 1; - Pair polarDiagramAndNotificationMessage = this.getPolarDiagram(requestData.selection.boatClassIndex); + Util.Pair polarDiagramAndNotificationMessage = this.getPolarDiagram(requestData.selection.boatClassIndex); PolarDiagram polarDiagram = polarDiagramAndNotificationMessage.getA(); String notificationMessage = polarDiagramAndNotificationMessage.getB(); @@ -531,7 +531,7 @@ public class SimulatorServiceImpl extends RemoteServiceServlet implements Simula @Override public Response1TurnerDTO get1Turner(Request1TurnerDTO requestData) throws ConfigurationException { - Pair polarDiagramAndNotificationMessage = this.getPolarDiagram(requestData.selection.boatClassIndex); + Util.Pair polarDiagramAndNotificationMessage = this.getPolarDiagram(requestData.selection.boatClassIndex); PolarDiagram polarDiagram = polarDiagramAndNotificationMessage.getA(); String notificationMessage = polarDiagramAndNotificationMessage.getB(); @@ -947,7 +947,7 @@ public class SimulatorServiceImpl extends RemoteServiceServlet implements Simula LOGGER.info("Retrieving simulated paths"); - Pair polarDiagramAndNotificationMessage = this.getPolarDiagram(selection.boatClassIndex); + Util.Pair polarDiagramAndNotificationMessage = this.getPolarDiagram(selection.boatClassIndex); PolarDiagram pd = polarDiagramAndNotificationMessage.getA(); SimulationParameters sp = new SimulationParametersImpl(course, pd, wf, mode, showOmniscient, showOpportunist); @@ -1008,7 +1008,7 @@ public class SimulatorServiceImpl extends RemoteServiceServlet implements Simula return new SimulatedPathsEvenTimedResultDTO(pathDTOs, rcDTO, null, polarDiagramAndNotificationMessage.getB()); } - private Pair getPolarDiagram(int boatClassIndex) throws ConfigurationException { + private Util.Pair getPolarDiagram(int boatClassIndex) throws ConfigurationException { ConfigurationManager config = ConfigurationManager.INSTANCE; PolarDiagram polarDiagram = null; @@ -1034,7 +1034,7 @@ public class SimulatorServiceImpl extends RemoteServiceServlet implements Simula + exception.getMessage()); } - return new Pair(polarDiagram, notificationMessage); + return new Util.Pair(polarDiagram, notificationMessage); } private PathDTO getPolylinePathDTO(Path gpsPoly, Path gpsTrack) { diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CompetitorRaceDataDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CompetitorRaceDataDTO.java index a9a15adb904..3065876e0cf 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CompetitorRaceDataDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/CompetitorRaceDataDTO.java @@ -10,8 +10,9 @@ import java.util.List; import com.google.gwt.user.client.rpc.IsSerializable; import com.sap.sailing.domain.common.DetailType; import com.sap.sailing.domain.common.dto.CompetitorDTO; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; +import com.sap.sse.common.Util; +import com.sap.sse.common.Util.Pair; +import com.sap.sse.common.Util.Triple; public class CompetitorRaceDataDTO implements IsSerializable { @@ -21,21 +22,21 @@ public class CompetitorRaceDataDTO implements IsSerializable { /** * A: mark name; B: mark passing time; C: data as defined by {@link #detailType} for {@link #competitor} for time point B */ - private List> markPassingsData; + private List> markPassingsData; /** * A: time for B; B: data as defined by {@link #detailType} for {@link #competitor} for time point A */ - private List> raceData; + private List> raceData; CompetitorRaceDataDTO() {} public CompetitorRaceDataDTO(CompetitorDTO competitor, DetailType detailType, - Collection> markPassingsData, Collection> raceData) { + Collection> markPassingsData, Collection> raceData) { this.competitor = competitor; this.detailType = detailType; - this.markPassingsData = new ArrayList>(); + this.markPassingsData = new ArrayList>(); addAllMarkPassingsData(markPassingsData); - this.raceData = new ArrayList>(); + this.raceData = new ArrayList>(); addAllRaceData(raceData); } @@ -59,15 +60,15 @@ public class CompetitorRaceDataDTO implements IsSerializable { * Clears the old {@link #markPassingsData} and {@link #addAllMarkPassingsData(Collection) adds} the data in markPassingsData afterwards. * @param markPassingsData */ - public void setMarkPassingsData(List> markPassingsData) { - this.markPassingsData = new ArrayList>(); + public void setMarkPassingsData(List> markPassingsData) { + this.markPassingsData = new ArrayList>(); addAllMarkPassingsData(markPassingsData); } /** * @return An unmodifiable list of the {@link #markPassingsData}. */ - public List> getMarkPassingsData() { + public List> getMarkPassingsData() { return Collections.unmodifiableList(markPassingsData); } @@ -77,8 +78,8 @@ public class CompetitorRaceDataDTO implements IsSerializable { * * @param markPassingsDataToAdd */ - public void addAllMarkPassingsData(Collection> markPassingsDataToAdd) { - for (Triple data : markPassingsDataToAdd) { + public void addAllMarkPassingsData(Collection> markPassingsDataToAdd) { + for (Util.Triple data : markPassingsDataToAdd) { addMarkPassingsData(data); } } @@ -89,7 +90,7 @@ public class CompetitorRaceDataDTO implements IsSerializable { * * @param markPassingsDataToAdd */ - public void addMarkPassingsData(Triple markPassingsDataToAdd) { + public void addMarkPassingsData(Util.Triple markPassingsDataToAdd) { int index = Collections.binarySearch(markPassingsData, markPassingsDataToAdd, new MarkPassingsByTime()); //binarySearch returns a value smaller then 0 if the key isn't contained if (index < 0) { @@ -100,7 +101,7 @@ public class CompetitorRaceDataDTO implements IsSerializable { /** * @return An unmodifiable list of the {@link #raceData} */ - public List> getRaceData() { + public List> getRaceData() { return Collections.unmodifiableList(raceData); } @@ -110,8 +111,8 @@ public class CompetitorRaceDataDTO implements IsSerializable { * * @param raceDataToAdd */ - public void addAllRaceData(Collection> raceDataToAdd) { - for (Pair data : raceDataToAdd) { + public void addAllRaceData(Collection> raceDataToAdd) { + for (Util.Pair data : raceDataToAdd) { addRaceData(data); } } @@ -122,7 +123,7 @@ public class CompetitorRaceDataDTO implements IsSerializable { * * @param raceDataToAdd */ - public void addRaceData(Pair raceDataToAdd) { + public void addRaceData(Util.Pair raceDataToAdd) { int index = Collections.binarySearch(raceData, raceDataToAdd, new RaceDataByTime()); //binarySearch returns a value smaller then 0 if the key isn't contained if (index < 0) { @@ -147,21 +148,21 @@ public class CompetitorRaceDataDTO implements IsSerializable { * @param after The date, exclusive, from where the data should be returned * @return An unmodifiable sublist of {@link #raceData} */ - public List> getRaceDataAfterDate(Date after) { - int from = Collections.binarySearch(raceData, new Pair(after, 0.0), new RaceDataByTime()); + public List> getRaceDataAfterDate(Date after) { + int from = Collections.binarySearch(raceData, new Util.Pair(after, 0.0), new RaceDataByTime()); return Collections.unmodifiableList(raceData.subList(from + 1, raceData.size())); } - public class RaceDataByTime implements Comparator> { + public class RaceDataByTime implements Comparator> { @Override - public int compare(Pair d1, Pair d2) { + public int compare(Util.Pair d1, Util.Pair d2) { return d1.getA().compareTo(d2.getA()); } } - public class MarkPassingsByTime implements Comparator> { + public class MarkPassingsByTime implements Comparator> { @Override - public int compare(Triple m1, Triple m2) { + public int compare(Util.Triple m1, Util.Triple m2) { return m1.getB().compareTo(m2.getB()); } } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/ScoreCorrectionProviderDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/ScoreCorrectionProviderDTO.java index 0ada0e685d0..2c063b38c9f 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/ScoreCorrectionProviderDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/ScoreCorrectionProviderDTO.java @@ -5,20 +5,20 @@ import java.util.Map; import java.util.Set; import com.sap.sailing.domain.common.dto.NamedDTO; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; public class ScoreCorrectionProviderDTO extends NamedDTO { private static final long serialVersionUID = -636159261445539142L; - private Map>> hasResultsForBoatClassFromDateByEventName; + private Map>> hasResultsForBoatClassFromDateByEventName; public ScoreCorrectionProviderDTO() {} - public ScoreCorrectionProviderDTO(String name, Map>> hasResultsForBoatClassFromDateByEventName2) { + public ScoreCorrectionProviderDTO(String name, Map>> hasResultsForBoatClassFromDateByEventName2) { super(name); this.hasResultsForBoatClassFromDateByEventName = hasResultsForBoatClassFromDateByEventName2; } - public Map>> getHasResultsForBoatClassFromDateByEventName() { + public Map>> getHasResultsForBoatClassFromDateByEventName() { return hasResultsForBoatClassFromDateByEventName; } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/WindGridCanvasOverlay.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/WindGridCanvasOverlay.java index a5ec6af5430..f87e1e8195c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/WindGridCanvasOverlay.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/simulator/WindGridCanvasOverlay.java @@ -19,11 +19,11 @@ import com.google.gwt.maps.client.MapWidget; import com.google.gwt.maps.client.base.LatLng; import com.google.gwt.maps.client.base.Point; import com.sap.sailing.domain.common.dto.PositionDTO; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.gwt.ui.shared.SimulatorWindDTO; import com.sap.sailing.gwt.ui.shared.WindFieldDTO; import com.sap.sailing.gwt.ui.simulator.racemap.FullCanvasOverlay; import com.sap.sailing.gwt.ui.simulator.util.WindGridColorPalette; +import com.sap.sse.common.Util; import com.sap.sse.gwt.client.player.Timer; /** @@ -47,7 +47,7 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList private int xRes; private int yRes; private SimulatorWindDTO[][] windMatrix; - private Map, GridCell> gridCellMap; + private Map, GridCell> gridCellMap; private WindGridColorPalette colorPalette; private static Logger logger = Logger.getLogger(WindFieldCanvasOverlay.class.getName()); @@ -359,7 +359,7 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList if (numRow >= 4) { final int numCol = windMatrix[0].length; if (numCol >= 2) { - gridCellMap = new HashMap, GridCell>(); + gridCellMap = new HashMap, GridCell>(); for (int i = 1; i < numRow - 1; ++i) { for (int j = 1; j < numCol - 1; ++j) { final PositionDTO bl = getCenter(windMatrix[i - 1][j - 1].position, windMatrix[i - 1][j].position, @@ -371,7 +371,7 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList final PositionDTO tr = getCenter(windMatrix[i][j].position, windMatrix[i][j + 1].position, windMatrix[i + 1][j].position, windMatrix[i + 1][j + 1].position); final GridCell cell = new GridCell(bl, br, tl, tr, windMatrix[i - 1][j].trueWindSpeedInKnots); - final Pair cellPair = new Pair(i, j); + final Util.Pair cellPair = new Util.Pair(i, j); gridCellMap.put(cellPair, cell); // drawGridCell(cell); } @@ -390,7 +390,7 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList if (numCol >= 2) { for (int i = 1; i < numRow - 1; ++i) { for (int j = 1; j < numCol - 1; ++j) { - final Pair cellPair = new Pair(i, j); + final Util.Pair cellPair = new Util.Pair(i, j); final GridCell cell = gridCellMap.get(cellPair); cell.windSpeedInKnots = windMatrix[i - 1][j].trueWindSpeedInKnots; } @@ -403,7 +403,7 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList private void drawGridCell() { if (gridCellMap != null & !gridCellMap.isEmpty()) { - for (final Entry, GridCell> cell : gridCellMap.entrySet()) { + for (final Entry, GridCell> cell : gridCellMap.entrySet()) { drawGridCell(cell.getValue()); } } @@ -460,16 +460,16 @@ public class WindGridCanvasOverlay extends FullCanvasOverlay implements TimeList final PositionDTO[] corners = new PositionDTO[4]; final int numRow = windMatrix.length; final int numCol = windMatrix[0].length; - final Pair cellPair1 = new Pair(1, 1); + final Util.Pair cellPair1 = new Util.Pair(1, 1); corners[0] = gridCellMap.get(cellPair1).bottomLeft; - final Pair cellPair2 = new Pair(1, numCol-2); + final Util.Pair cellPair2 = new Util.Pair(1, numCol-2); corners[1] = gridCellMap.get(cellPair2).bottomRight; - final Pair cellPair3 = new Pair(numRow-2, numCol-2); + final Util.Pair cellPair3 = new Util.Pair(numRow-2, numCol-2); corners[2] = gridCellMap.get(cellPair3).topRight; - final Pair cellPair4 = new Pair(numRow-2, 1); + final Util.Pair cellPair4 = new Util.Pair(numRow-2, 1); corners[3] = gridCellMap.get(cellPair4).topLeft; return corners; diff --git a/java/com.sap.sailing.kiworesultimport/META-INF/MANIFEST.MF b/java/com.sap.sailing.kiworesultimport/META-INF/MANIFEST.MF index fae374631e3..790121dfd29 100755 --- a/java/com.sap.sailing.kiworesultimport/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.kiworesultimport/META-INF/MANIFEST.MF @@ -9,7 +9,8 @@ Bundle-ActivationPolicy: lazy Require-Bundle: com.sap.sailing.server, com.sap.sailing.domain.common, com.sap.sailing.domain, - com.sap.sailing.resultimport + com.sap.sailing.resultimport, + com.sap.sse.common Export-Package: com.sap.sailing.kiworesultimport Bundle-Activator: com.sap.sailing.kiworesultimport.impl.Activator Import-Package: org.osgi.framework diff --git a/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/BoatImpl.java b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/BoatImpl.java index 69e194a8f94..6db473add38 100755 --- a/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/BoatImpl.java +++ b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/BoatImpl.java @@ -8,8 +8,8 @@ import org.w3c.dom.Node; import org.w3c.dom.NodeList; import com.sap.sailing.kiworesultimport.Boat; -import com.sap.sailing.kiworesultimport.Crew; import com.sap.sailing.kiworesultimport.BoatResultInRace; +import com.sap.sailing.kiworesultimport.Crew; public class BoatImpl extends NamedImpl implements Boat { diff --git a/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/ScoreCorrectionProviderImpl.java b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/ScoreCorrectionProviderImpl.java index 10d50cf7bd1..eb9ef508dc4 100755 --- a/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/ScoreCorrectionProviderImpl.java +++ b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/ScoreCorrectionProviderImpl.java @@ -15,13 +15,13 @@ import org.xml.sax.SAXException; import com.sap.sailing.domain.common.RegattaScoreCorrections; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.kiworesultimport.ParserFactory; import com.sap.sailing.kiworesultimport.RegattaSummary; import com.sap.sailing.kiworesultimport.ZipFile; import com.sap.sailing.kiworesultimport.ZipFileParser; import com.sap.sailing.resultimport.ResultDocumentDescriptor; import com.sap.sailing.resultimport.impl.AbstractFileBasedScoreCorrectionProvider; +import com.sap.sse.common.Util; public class ScoreCorrectionProviderImpl extends AbstractFileBasedScoreCorrectionProvider { private static final long serialVersionUID = -4596215011753860781L; @@ -38,17 +38,17 @@ public class ScoreCorrectionProviderImpl extends AbstractFileBasedScoreCorrectio } @Override - public Map>> getHasResultsForBoatClassFromDateByEventName() + public Map>> getHasResultsForBoatClassFromDateByEventName() throws IOException, SAXException, ParserConfigurationException { - Map>> result = new HashMap>>(); + Map>> result = new HashMap>>(); for (RegattaSummary regattaSummary : getAllRegattaSummaries()) { String eventName = regattaSummary.getEventName(); - Set> resultTimesForBoatClassNames = result.get(eventName); + Set> resultTimesForBoatClassNames = result.get(eventName); if (resultTimesForBoatClassNames == null) { - resultTimesForBoatClassNames = new HashSet>(); + resultTimesForBoatClassNames = new HashSet>(); result.put(eventName, resultTimesForBoatClassNames); } - resultTimesForBoatClassNames.add(new Pair(regattaSummary.getBoatClassName(), + resultTimesForBoatClassNames.add(new Util.Pair(regattaSummary.getBoatClassName(), regattaSummary.getTimePointPublished())); } return result; diff --git a/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/ZipFileImpl.java b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/ZipFileImpl.java index 41c71800977..b29e0b9bd92 100755 --- a/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/ZipFileImpl.java +++ b/java/com.sap.sailing.kiworesultimport/src/com/sap/sailing/kiworesultimport/impl/ZipFileImpl.java @@ -7,7 +7,6 @@ import java.util.List; import java.util.Map; import java.util.Set; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.kiworesultimport.Boat; import com.sap.sailing.kiworesultimport.BoatResultInRace; import com.sap.sailing.kiworesultimport.RaceSummary; @@ -16,10 +15,11 @@ import com.sap.sailing.kiworesultimport.ResultList; import com.sap.sailing.kiworesultimport.Start; import com.sap.sailing.kiworesultimport.StartReport; import com.sap.sailing.kiworesultimport.ZipFile; +import com.sap.sse.common.Util; public class ZipFileImpl implements ZipFile { private final Iterable startReports; - private final Map, Start> startsByBoatclassAndRaceNumberAndFleetName; + private final Map, Start> startsByBoatclassAndRaceNumberAndFleetName; private final Iterable resultLists; private final Map regattaSummaryByBoatClass; @@ -28,12 +28,12 @@ public class ZipFileImpl implements ZipFile { Map latestResultListForBoatClass = new HashMap<>(); HashMap>> fleetNamesPerBoatClassAndRaceNumber = new HashMap>>(); this.startReports = startReports; - this.startsByBoatclassAndRaceNumberAndFleetName = new HashMap, Start>(); + this.startsByBoatclassAndRaceNumberAndFleetName = new HashMap, Start>(); this.resultLists = resultLists; for (StartReport startReport : startReports) { for (Start start : startReport.getStarts()) { startsByBoatclassAndRaceNumberAndFleetName.put( - new Triple(start.getBoatClass(), start.getRaceNumber(), start + new Util.Triple(start.getBoatClass(), start.getRaceNumber(), start .getFleetName()), start); Map> fleetsForBoatClass = fleetNamesPerBoatClassAndRaceNumber.get(start.getBoatClass()); if (fleetsForBoatClass == null) { diff --git a/java/com.sap.sailing.manage2sail.resultimport.test/src/com/sap/sailing/manage2sail/resultimport/test/ParserTest.java b/java/com.sap.sailing.manage2sail.resultimport.test/src/com/sap/sailing/manage2sail/resultimport/test/ParserTest.java index 1151dfab1e9..84ba887d912 100644 --- a/java/com.sap.sailing.manage2sail.resultimport.test/src/com/sap/sailing/manage2sail/resultimport/test/ParserTest.java +++ b/java/com.sap.sailing.manage2sail.resultimport.test/src/com/sap/sailing/manage2sail/resultimport/test/ParserTest.java @@ -26,7 +26,6 @@ import com.sap.sailing.domain.common.RegattaScoreCorrections.ScoreCorrectionsFor import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.manage2sail.resultimport.ScoreCorrectionProviderImpl; import com.sap.sailing.resultimport.ResultDocumentDescriptor; import com.sap.sailing.resultimport.ResultDocumentProvider; @@ -98,9 +97,9 @@ public class ParserTest { ParserConfigurationException, JAXBException { ScoreCorrectionProviderImpl scoreCorrectionProvider = new ScoreCorrectionProviderImpl(getTestDocumentProvider(), ParserFactory.INSTANCE, ResultUrlRegistry.INSTANCE); - Map>> hasResultsFor = scoreCorrectionProvider.getHasResultsForBoatClassFromDateByEventName(); + Map>> hasResultsFor = scoreCorrectionProvider.getHasResultsForBoatClassFromDateByEventName(); - Set> resultsForYES = hasResultsFor.get(YES_EVENT_NAME); + Set> resultsForYES = hasResultsFor.get(YES_EVENT_NAME); assertNotNull(resultsForYES); assertEquals(3, resultsForYES.size()); @@ -110,10 +109,10 @@ public class ParserTest { public void testScoreCorrectionProvider() throws Exception { ScoreCorrectionProviderImpl scoreCorrectionProvider = new ScoreCorrectionProviderImpl(getTestDocumentProvider(), ParserFactory.INSTANCE, ResultUrlRegistry.INSTANCE); - Map>> hasResultsFor = scoreCorrectionProvider.getHasResultsForBoatClassFromDateByEventName(); - Set> resultsForYES = hasResultsFor.get(YES_EVENT_NAME); - Pair resultFor29er = null; - for(Pair result: resultsForYES) { + Map>> hasResultsFor = scoreCorrectionProvider.getHasResultsForBoatClassFromDateByEventName(); + Set> resultsForYES = hasResultsFor.get(YES_EVENT_NAME); + com.sap.sse.common.Util.Pair resultFor29er = null; + for(com.sap.sse.common.Util.Pair result: resultsForYES) { if(result.getA().equals(ISAF_ID_29ER)) { resultFor29er = result; break; diff --git a/java/com.sap.sailing.manage2sail.resultimport/META-INF/MANIFEST.MF b/java/com.sap.sailing.manage2sail.resultimport/META-INF/MANIFEST.MF index 0b986110d20..f6797725212 100644 --- a/java/com.sap.sailing.manage2sail.resultimport/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.manage2sail.resultimport/META-INF/MANIFEST.MF @@ -11,4 +11,5 @@ Bundle-ActivationPolicy: lazy Require-Bundle: com.sap.sailing.manage2sail, com.sap.sailing.domain.common, com.sap.sailing.resultimport, - com.sap.sailing.xrr.resultimport + com.sap.sailing.xrr.resultimport, + com.sap.sse.common diff --git a/java/com.sap.sailing.manage2sail.resultimport/src/com/sap/sailing/manage2sail/resultimport/ScoreCorrectionProviderImpl.java b/java/com.sap.sailing.manage2sail.resultimport/src/com/sap/sailing/manage2sail/resultimport/ScoreCorrectionProviderImpl.java index a1e5336f5c0..4faaf62e25c 100644 --- a/java/com.sap.sailing.manage2sail.resultimport/src/com/sap/sailing/manage2sail/resultimport/ScoreCorrectionProviderImpl.java +++ b/java/com.sap.sailing.manage2sail.resultimport/src/com/sap/sailing/manage2sail/resultimport/ScoreCorrectionProviderImpl.java @@ -16,7 +16,6 @@ import org.xml.sax.SAXException; import com.sap.sailing.domain.common.RegattaScoreCorrections; import com.sap.sailing.domain.common.ScoreCorrectionProvider; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.resultimport.ResultDocumentDescriptor; import com.sap.sailing.resultimport.ResultDocumentProvider; import com.sap.sailing.resultimport.ResultUrlProvider; @@ -28,6 +27,7 @@ import com.sap.sailing.xrr.resultimport.schema.Division; import com.sap.sailing.xrr.resultimport.schema.Event; import com.sap.sailing.xrr.resultimport.schema.EventGender; import com.sap.sailing.xrr.resultimport.schema.RegattaResults; +import com.sap.sse.common.Util; public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider, ResultUrlProvider { private static final Logger logger = Logger.getLogger(ScoreCorrectionProviderImpl.class.getName()); @@ -57,8 +57,8 @@ public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider, Res } @Override - public Map>> getHasResultsForBoatClassFromDateByEventName() { - Map>> result = new HashMap>>(); + public Map>> getHasResultsForBoatClassFromDateByEventName() { + Map>> result = new HashMap>>(); try { for (ResultDocumentDescriptor resultDocDescr : documentProvider.getResultDocumentDescriptors()) { String eventName = resultDocDescr.getEventName() != null ? resultDocDescr.getEventName() : resultDocDescr.getRegattaName(); @@ -67,12 +67,12 @@ public class ScoreCorrectionProviderImpl implements ScoreCorrectionProvider, Res if(resultDocDescr.getCompetitorGenderType() != null) { boatClass += ", " + resultDocDescr.getCompetitorGenderType().name(); } - Set> eventResultsSet = result.get(eventName); + Set> eventResultsSet = result.get(eventName); if(eventResultsSet == null) { - eventResultsSet = new HashSet>(); + eventResultsSet = new HashSet>(); result.put(eventName, eventResultsSet); } - eventResultsSet.add(new Pair(boatClass, resultDocDescr.getLastModified())); + eventResultsSet.add(new Util.Pair(boatClass, resultDocDescr.getLastModified())); } } } catch (IOException e) { diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadDeviceIdentifierTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadDeviceIdentifierTest.java index 9a0b280e418..eb12f1ec6f3 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadDeviceIdentifierTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadDeviceIdentifierTest.java @@ -18,7 +18,6 @@ import com.sap.sailing.domain.base.impl.CompetitorImpl; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.racelog.tracking.NoCorrespondingServiceRegisteredException; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinderFactory; @@ -63,7 +62,7 @@ public class StoreAndLoadDeviceIdentifierTest extends AbstractMongoDBTest { dropTestDB(); logIdentifier = mock(RaceLogIdentifier.class); - Triple triple = new Triple("a", "b", UUID.randomUUID().toString()); + com.sap.sse.common.Util.Triple triple = new com.sap.sse.common.Util.Triple("a", "b", UUID.randomUUID().toString()); when(logIdentifier.getIdentifier()).thenReturn(triple); when(logIdentifier.getDeprecatedIdentifier()).thenReturn(""); } diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadRaceLogEventsTest.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadRaceLogEventsTest.java index c12802eead7..675dfaa2d48 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadRaceLogEventsTest.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/StoreAndLoadRaceLogEventsTest.java @@ -25,7 +25,6 @@ import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.racelog.Flags; import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; import com.sap.sailing.domain.persistence.PersistenceFactory; @@ -77,7 +76,7 @@ public class StoreAndLoadRaceLogEventsTest extends AbstractMongoDBTest { @Before public void setUp() { logIdentifier = mock(RaceLogIdentifier.class); - when(logIdentifier.getIdentifier()).thenReturn(new Triple("a", "b", UUID.randomUUID().toString())); + when(logIdentifier.getIdentifier()).thenReturn(new com.sap.sse.common.Util.Triple("a", "b", UUID.randomUUID().toString())); } public void assertBaseFields(RaceLogEvent expectedEvent, RaceLogEvent actualEvent) { diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java index 1ac2badf085..36c01c9ad91 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInLeaderboards.java @@ -28,7 +28,6 @@ import com.sap.sailing.domain.common.Color; import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.racelog.Flags; import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; import com.sap.sailing.domain.common.racelog.RacingProcedureType; @@ -278,7 +277,7 @@ public class TestStoringAndRetrievingRaceLogInLeaderboards extends RaceLogMongoD public void testStoreAndRetrieveSimpleLeaderboardWithRaceLogFinishPositioningConfirmedEvent() { Competitor storedCompetitor = DomainFactory.INSTANCE.getOrCreateCompetitor(UUID.randomUUID(), "SAP Extreme Sailing Team", Color.RED, null, null); CompetitorResults storedPositioningList = new CompetitorResultsImpl(); - storedPositioningList.add(new Triple(storedCompetitor.getId(), storedCompetitor.getName(), MaxPointsReason.NONE)); + storedPositioningList.add(new com.sap.sse.common.Util.Triple(storedCompetitor.getId(), storedCompetitor.getName(), MaxPointsReason.NONE)); RaceLogFinishPositioningConfirmedEvent event = RaceLogEventFactory.INSTANCE.createFinishPositioningConfirmedEvent(now, author, 0, storedPositioningList); @@ -347,7 +346,7 @@ public class TestStoringAndRetrievingRaceLogInLeaderboards extends RaceLogMongoD public void testStoreAndRetrieveSimpleLeaderboardWithRaceLogFinishPositioningListChangeEvent() { Competitor storedCompetitor = DomainFactory.INSTANCE.getOrCreateCompetitor(UUID.randomUUID(), "SAP Extreme Sailing Team", Color.RED, null, null); CompetitorResults storedPositioningList = new CompetitorResultsImpl(); - storedPositioningList.add(new Triple(storedCompetitor.getId(), storedCompetitor.getName(), MaxPointsReason.NONE)); + storedPositioningList.add(new com.sap.sse.common.Util.Triple(storedCompetitor.getId(), storedCompetitor.getName(), MaxPointsReason.NONE)); RaceLogFinishPositioningListChangedEvent event = RaceLogEventFactory.INSTANCE.createFinishPositioningListChangedEvent(now, author, 0, storedPositioningList); diff --git a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java index cca342e9a36..31b63d50353 100644 --- a/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java +++ b/java/com.sap.sailing.mongodb.test/src/com/sap/sailing/mongodb/test/TestStoringAndRetrievingRaceLogInRegatta.java @@ -27,7 +27,6 @@ import com.sap.sailing.domain.common.Color; import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.racelog.Flags; import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; import com.sap.sailing.domain.common.racelog.RacingProcedureType; @@ -190,7 +189,7 @@ public class TestStoringAndRetrievingRaceLogInRegatta extends AbstractTestStorin public void testStoreAndRetrieveRegattaWithRaceLogFinishPositioningListChangeEvent() { Competitor storedCompetitor = DomainFactory.INSTANCE.getOrCreateCompetitor(UUID.randomUUID(), "SAP Extreme Sailing Team", Color.RED, null, null); CompetitorResults storedPositioningList = new CompetitorResultsImpl(); - storedPositioningList.add(new Triple(storedCompetitor.getId(), storedCompetitor.getName(), MaxPointsReason.NONE)); + storedPositioningList.add(new com.sap.sse.common.Util.Triple(storedCompetitor.getId(), storedCompetitor.getName(), MaxPointsReason.NONE)); RaceLogFinishPositioningListChangedEvent event = RaceLogEventFactory.INSTANCE.createFinishPositioningListChangedEvent(now, author, 0, storedPositioningList); @@ -220,7 +219,7 @@ public class TestStoringAndRetrievingRaceLogInRegatta extends AbstractTestStorin public void testStoreAndRetrieveRegattaWithRaceLogFinishPositioningConfirmedEvent() { Competitor storedCompetitor = DomainFactory.INSTANCE.getOrCreateCompetitor(UUID.randomUUID(), "SAP Extreme Sailing Team", Color.RED, null, null); CompetitorResults storedPositioningList = new CompetitorResultsImpl(); - storedPositioningList.add(new Triple(storedCompetitor.getId(), storedCompetitor.getName(), MaxPointsReason.NONE)); + storedPositioningList.add(new com.sap.sse.common.Util.Triple(storedCompetitor.getId(), storedCompetitor.getName(), MaxPointsReason.NONE)); RaceLogFinishPositioningConfirmedEvent event = RaceLogEventFactory.INSTANCE.createFinishPositioningConfirmedEvent(now, author, 0, storedPositioningList); diff --git a/java/com.sap.sailing.mongodb/META-INF/MANIFEST.MF b/java/com.sap.sailing.mongodb/META-INF/MANIFEST.MF index 4959083c125..9e769298271 100755 --- a/java/com.sap.sailing.mongodb/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.mongodb/META-INF/MANIFEST.MF @@ -6,7 +6,8 @@ Bundle-Version: 1.0.0.qualifier Bundle-Vendor: SAP Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Require-Bundle: com.mongodb.driver;bundle-version="2.6.2", - com.sap.sailing.domain.common + com.sap.sailing.domain.common, + com.sap.sse.common Export-Package: com.sap.sailing.mongodb Bundle-ActivationPolicy: lazy Import-Package: com.sap.sailing.util, diff --git a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/internal/MongoDBServiceImpl.java b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/internal/MongoDBServiceImpl.java index 016b166be12..d6ef6bc0283 100644 --- a/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/internal/MongoDBServiceImpl.java +++ b/java/com.sap.sailing.mongodb/src/com/sap/sailing/mongodb/internal/MongoDBServiceImpl.java @@ -8,7 +8,6 @@ import java.util.logging.Logger; import com.mongodb.DB; import com.mongodb.Mongo; -import com.sap.sailing.domain.common.impl.Util; import com.sap.sailing.mongodb.AlreadyRegisteredException; import com.sap.sailing.mongodb.MongoDBConfiguration; import com.sap.sailing.mongodb.MongoDBService; @@ -19,13 +18,13 @@ public class MongoDBServiceImpl implements MongoDBService { private MongoDBConfiguration configuration; - private final Map, Mongo> mongos; + private final Map, Mongo> mongos; - private final Map, DB> dbs; + private final Map, DB> dbs; public MongoDBServiceImpl() { - mongos = new HashMap, Mongo>(); - dbs = new HashMap, DB>(); + mongos = new HashMap, Mongo>(); + dbs = new HashMap, DB>(); } public MongoDBServiceImpl(MongoDBConfiguration configuration) { @@ -55,7 +54,7 @@ public class MongoDBServiceImpl implements MongoDBService { } private synchronized DB getDB(MongoDBConfiguration mongoDBConfiguration) throws UnknownHostException { - Util.Pair key = new Util.Pair(mongoDBConfiguration.getHostName(), mongoDBConfiguration.getPort()); + com.sap.sse.common.Util.Pair key = new com.sap.sse.common.Util.Pair(mongoDBConfiguration.getHostName(), mongoDBConfiguration.getPort()); DB db = dbs.get(key); if (db == null) { Mongo mongo = mongos.get(key); diff --git a/java/com.sap.sailing.sailwave.resultimport.test/src/com/sap/sailing/sailwave/resultimport/test/ParserTest.java b/java/com.sap.sailing.sailwave.resultimport.test/src/com/sap/sailing/sailwave/resultimport/test/ParserTest.java index 85e9f55ce96..debc1f53fa5 100644 --- a/java/com.sap.sailing.sailwave.resultimport.test/src/com/sap/sailing/sailwave/resultimport/test/ParserTest.java +++ b/java/com.sap.sailing.sailwave.resultimport.test/src/com/sap/sailing/sailwave/resultimport/test/ParserTest.java @@ -22,7 +22,6 @@ import com.sap.sailing.domain.common.RegattaScoreCorrections.ScoreCorrectionsFor import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.resultimport.RegattaResults; import com.sap.sailing.resultimport.ResultDocumentDescriptor; import com.sap.sailing.resultimport.ResultDocumentProvider; @@ -75,7 +74,7 @@ public class ParserTest { public void testScoreCorrectionProvider49er() throws Exception { ScoreCorrectionProviderImpl scoreCorrectionProvider = new ScoreCorrectionProviderImpl(getTestDocumentProvider(), CsvParserFactory.INSTANCE); - Map>> hasResultsFor = scoreCorrectionProvider.getHasResultsForBoatClassFromDateByEventName(); + Map>> hasResultsFor = scoreCorrectionProvider.getHasResultsForBoatClassFromDateByEventName(); RegattaScoreCorrections result49er = scoreCorrectionProvider.getScoreCorrections(SAMPLE_INPUT_NAME_49er, "49er", hasResultsFor.get(SAMPLE_INPUT_NAME_49er).iterator().next().getB()); assertNotNull(result49er); diff --git a/java/com.sap.sailing.sailwave.resultimport/META-INF/MANIFEST.MF b/java/com.sap.sailing.sailwave.resultimport/META-INF/MANIFEST.MF index dc1756ec399..25c193e4ce3 100644 --- a/java/com.sap.sailing.sailwave.resultimport/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.sailwave.resultimport/META-INF/MANIFEST.MF @@ -11,4 +11,5 @@ Bundle-ActivationPolicy: lazy Require-Bundle: com.sap.sailing.server, com.sap.sailing.domain.common, com.sap.sailing.domain, - com.sap.sailing.resultimport + com.sap.sailing.resultimport, + com.sap.sse.common diff --git a/java/com.sap.sailing.sailwave.resultimport/src/com/sap/sailing/sailwave/resultimport/impl/ScoreCorrectionProviderImpl.java b/java/com.sap.sailing.sailwave.resultimport/src/com/sap/sailing/sailwave/resultimport/impl/ScoreCorrectionProviderImpl.java index ec42d0a643a..e845e6506b6 100644 --- a/java/com.sap.sailing.sailwave.resultimport/src/com/sap/sailing/sailwave/resultimport/impl/ScoreCorrectionProviderImpl.java +++ b/java/com.sap.sailing.sailwave.resultimport/src/com/sap/sailing/sailwave/resultimport/impl/ScoreCorrectionProviderImpl.java @@ -10,7 +10,6 @@ import java.util.logging.Logger; import com.sap.sailing.domain.common.RegattaScoreCorrections; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.resultimport.RegattaResults; import com.sap.sailing.resultimport.ResultDocumentDescriptor; import com.sap.sailing.resultimport.ResultDocumentProvider; @@ -18,6 +17,7 @@ import com.sap.sailing.resultimport.impl.AbstractDocumentBasedScoreCorrectionPro import com.sap.sailing.resultimport.impl.RegattaScoreCorrectionsImpl; import com.sap.sailing.sailwave.resultimport.CsvParser; import com.sap.sailing.sailwave.resultimport.CsvParserFactory; +import com.sap.sse.common.Util; public class ScoreCorrectionProviderImpl extends AbstractDocumentBasedScoreCorrectionProvider { private static final long serialVersionUID = 4767200739966995306L; @@ -39,15 +39,15 @@ public class ScoreCorrectionProviderImpl extends AbstractDocumentBasedScoreCorre } @Override - public Map>> getHasResultsForBoatClassFromDateByEventName() throws Exception { - Map>> result = new HashMap>>(); + public Map>> getHasResultsForBoatClassFromDateByEventName() throws Exception { + Map>> result = new HashMap>>(); for (CsvParser parser : getAllRegattaResults()) { try { parser.parseResults(); String boatClass = parser.getBoatClass(); result.put(/* use document name as "event" name */ parser.getFilename(), - Collections.singleton(new Pair(boatClass, parser.getLastModified()))); + Collections.singleton(new Util.Pair(boatClass, parser.getLastModified()))); } catch (Exception e) { logger.info("Parse error during CSV import. Ignoring document " + parser.toString()); diff --git a/java/com.sap.sailing.server.gateway.ess40/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.gateway.ess40/META-INF/MANIFEST.MF index eebec1d5af1..253005154c1 100644 --- a/java/com.sap.sailing.server.gateway.ess40/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.gateway.ess40/META-INF/MANIFEST.MF @@ -16,6 +16,7 @@ Require-Bundle: com.sap.sailing.domain, com.mongodb.driver;bundle-version="2.6.2", javax.servlet;bundle-version="2.6.0", com.sap.sailing.domain.common, - com.sap.sailing.server.gateway + com.sap.sailing.server.gateway, + com.sap.sse.common Bundle-ClassPath: . Web-ContextPath: /gateway-ess40 diff --git a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerTest.java b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerTest.java index f63e9e8c44d..2c57dcda30d 100755 --- a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerTest.java +++ b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EventDataJsonSerializerTest.java @@ -1,9 +1,9 @@ package com.sap.sailing.server.gateway.serialization.test; import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -import static org.mockito.Mockito.doReturn; import java.net.URL; import java.util.Collections; diff --git a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogCourseDesignChangedEventSerializerTest.java b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogCourseDesignChangedEventSerializerTest.java index 309b4e4a5dc..9823797a121 100644 --- a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogCourseDesignChangedEventSerializerTest.java +++ b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogCourseDesignChangedEventSerializerTest.java @@ -10,13 +10,13 @@ import org.json.simple.JSONObject; import org.junit.Before; import org.junit.Test; +import com.sap.sailing.domain.base.ControlPointWithTwoMarks; import com.sap.sailing.domain.base.CourseBase; import com.sap.sailing.domain.base.DomainFactory; -import com.sap.sailing.domain.base.ControlPointWithTwoMarks; import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.SharedDomainFactory; -import com.sap.sailing.domain.base.impl.CourseDataImpl; import com.sap.sailing.domain.base.impl.ControlPointWithTwoMarksImpl; +import com.sap.sailing.domain.base.impl.CourseDataImpl; import com.sap.sailing.domain.base.impl.MarkImpl; import com.sap.sailing.domain.base.impl.WaypointImpl; import com.sap.sailing.domain.common.MarkType; diff --git a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogFinishPositioningConfirmedEventSerializerTest.java b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogFinishPositioningConfirmedEventSerializerTest.java index ad5abeb852e..bb60a5091cb 100644 --- a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogFinishPositioningConfirmedEventSerializerTest.java +++ b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/racelog/RaceLogFinishPositioningConfirmedEventSerializerTest.java @@ -17,7 +17,6 @@ import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.racelog.CompetitorResults; import com.sap.sailing.domain.racelog.RaceLogEventAuthor; import com.sap.sailing.domain.racelog.RaceLogEventFactory; @@ -55,7 +54,7 @@ public class RaceLogFinishPositioningConfirmedEventSerializerTest { @Test public void testSerializeAndDeserializeRaceLogFinishPositioningConfirmedEvent() throws JsonDeserializationException { - positioningList.add(new Triple(UUID.randomUUID(), "SAP Extreme", + positioningList.add(new com.sap.sse.common.Util.Triple(UUID.randomUUID(), "SAP Extreme", MaxPointsReason.NONE)); event = RaceLogEventFactory.INSTANCE.createFinishPositioningConfirmedEvent(now, author, 0, positioningList); JSONObject jsonConfirmationEvent = serializer.serialize(event); diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/DeviceAndSessionIdentifierWithGPSFixesDeserializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/DeviceAndSessionIdentifierWithGPSFixesDeserializer.java index 82aeb55ba2e..b9f677f3d66 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/DeviceAndSessionIdentifierWithGPSFixesDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/DeviceAndSessionIdentifierWithGPSFixesDeserializer.java @@ -7,7 +7,6 @@ import java.util.List; import org.json.simple.JSONArray; import org.json.simple.JSONObject; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinder; import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; @@ -16,9 +15,10 @@ import com.sap.sailing.server.gateway.deserialization.JsonDeserializationExcepti import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; import com.sap.sailing.server.gateway.deserialization.TypeBasedJsonDeserializer; import com.sap.sailing.server.gateway.serialization.racelog.tracking.GPSFixJsonHandler; +import com.sap.sse.common.Util; public class DeviceAndSessionIdentifierWithGPSFixesDeserializer -implements JsonDeserializer>> { +implements JsonDeserializer>> { public static final String FIELD_DEVICE = "device"; public static final String FIELD_SESSION_UUID = "sessionId"; @@ -35,7 +35,7 @@ implements JsonDeserializer> } @Override - public Triple> deserialize(JSONObject object) throws JsonDeserializationException { + public Util.Triple> deserialize(JSONObject object) throws JsonDeserializationException { JSONObject deviceIdObject = Helpers.toJSONObjectSafe(object.get(FIELD_DEVICE)); DeviceIdentifier deviceId = deviceDeserializer.deserialize(deviceIdObject); @@ -56,7 +56,7 @@ implements JsonDeserializer> fixes.add(fix); } - return new Triple>(deviceId, sessionId, fixes); + return new Util.Triple>(deviceId, sessionId, fixes); } } diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RRS26ConfigurationJsonDeserializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RRS26ConfigurationJsonDeserializer.java index 796c959cd44..9a5d105fb32 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RRS26ConfigurationJsonDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RRS26ConfigurationJsonDeserializer.java @@ -1,17 +1,17 @@ package com.sap.sailing.server.gateway.deserialization.impl; -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; - import java.util.ArrayList; import java.util.List; +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; + +import com.sap.sailing.domain.base.configuration.RacingProcedureConfiguration; import com.sap.sailing.domain.base.configuration.impl.RRS26ConfigurationImpl; import com.sap.sailing.domain.base.configuration.procedures.RRS26Configuration; -import com.sap.sailing.domain.base.configuration.RacingProcedureConfiguration; import com.sap.sailing.domain.common.racelog.Flags; -import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; +import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; import com.sap.sailing.server.gateway.serialization.impl.RRS26ConfigurationJsonSerializer; public class RRS26ConfigurationJsonDeserializer extends RacingProcedureConfigurationJsonDeserializer implements diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogFinishPositioningConfirmedEventDeserializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogFinishPositioningConfirmedEventDeserializer.java index 5175ee85db2..b279bcf6bf8 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogFinishPositioningConfirmedEventDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogFinishPositioningConfirmedEventDeserializer.java @@ -9,7 +9,6 @@ import org.json.simple.JSONObject; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.racelog.CompetitorResults; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.RaceLogEventAuthor; @@ -18,6 +17,7 @@ import com.sap.sailing.server.gateway.deserialization.JsonDeserializationExcepti import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.Helpers; import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogFinishPositioningConfirmedEventSerializer; +import com.sap.sse.common.Util; public class RaceLogFinishPositioningConfirmedEventDeserializer extends BaseRaceLogEventDeserializer { @@ -48,7 +48,7 @@ public class RaceLogFinishPositioningConfirmedEventDeserializer extends BaseRace String maxPointsReasonName = (String) jsonPositionedCompetitor.get(RaceLogFinishPositioningConfirmedEventSerializer.FIELD_SCORE_CORRECTIONS_MAX_POINTS_REASON); MaxPointsReason maxPointsReason = MaxPointsReason.valueOf(maxPointsReasonName); - Triple positionedCompetitor = new Triple(competitorId, competitorName, maxPointsReason); + Util.Triple positionedCompetitor = new Util.Triple(competitorId, competitorName, maxPointsReason); positionedCompetitors.add(positionedCompetitor); } diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogFinishPositioningListChangedEventDeserializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogFinishPositioningListChangedEventDeserializer.java index 7716b582aba..27df1c8ef6b 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogFinishPositioningListChangedEventDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/racelog/impl/RaceLogFinishPositioningListChangedEventDeserializer.java @@ -9,7 +9,6 @@ import org.json.simple.JSONObject; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.racelog.CompetitorResults; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.RaceLogEventAuthor; @@ -18,6 +17,7 @@ import com.sap.sailing.server.gateway.deserialization.JsonDeserializationExcepti import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.Helpers; import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogFinishPositioningListChangedEventSerializer; +import com.sap.sse.common.Util; public class RaceLogFinishPositioningListChangedEventDeserializer extends BaseRaceLogEventDeserializer { @@ -48,7 +48,7 @@ public class RaceLogFinishPositioningListChangedEventDeserializer extends BaseRa String maxPointsReasonName = (String) jsonPositionedCompetitor.get(RaceLogFinishPositioningListChangedEventSerializer.FIELD_SCORE_CORRECTIONS_MAX_POINTS_REASON); MaxPointsReason maxPointsReason = MaxPointsReason.valueOf(maxPointsReasonName); - Triple positionedCompetitor = new Triple(competitorId, competitorName, maxPointsReason); + Util.Triple positionedCompetitor = new Util.Triple(competitorId, competitorName, maxPointsReason); positionedCompetitors.add(positionedCompetitor); } diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/ColorJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/ColorJsonSerializer.java index a584cd98f2e..6202db3c072 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/ColorJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/ColorJsonSerializer.java @@ -3,8 +3,8 @@ package com.sap.sailing.server.gateway.serialization.impl; import org.json.simple.JSONObject; import com.sap.sailing.domain.common.Color; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.server.gateway.serialization.JsonSerializer; +import com.sap.sse.common.Util; public class ColorJsonSerializer implements JsonSerializer { public static final String FIELD_RED = "r"; @@ -15,7 +15,7 @@ public class ColorJsonSerializer implements JsonSerializer { public JSONObject serialize(Color color) { JSONObject result = new JSONObject(); - Triple rgb = color.getAsRGB(); + Util.Triple rgb = color.getAsRGB(); result.put(FIELD_RED, rgb.getA()); result.put(FIELD_GREEN, rgb.getB()); result.put(FIELD_BLUE, rgb.getC()); diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/DeviceAndSessionIdentifierWithGPSFixesSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/DeviceAndSessionIdentifierWithGPSFixesSerializer.java index bf2671f0976..64defde666b 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/DeviceAndSessionIdentifierWithGPSFixesSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/DeviceAndSessionIdentifierWithGPSFixesSerializer.java @@ -6,14 +6,14 @@ import java.util.List; import org.json.simple.JSONArray; import org.json.simple.JSONObject; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.server.gateway.deserialization.impl.DeviceAndSessionIdentifierWithGPSFixesDeserializer; import com.sap.sailing.server.gateway.serialization.JsonSerializer; +import com.sap.sse.common.Util; public class DeviceAndSessionIdentifierWithGPSFixesSerializer implements - JsonSerializer>> { + JsonSerializer>> { private final JsonSerializer deviceSerializer; private final JsonSerializer fixSerializer; @@ -25,7 +25,7 @@ public class DeviceAndSessionIdentifierWithGPSFixesSerializer> data) { + public JSONObject serialize(Util.Triple> data) { JSONObject result = new JSONObject(); JSONObject deviceIdJson = deviceSerializer.serialize(data.getA()); diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/DeviceIdentifierJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/DeviceIdentifierJsonSerializer.java index e8c36409965..74f553b00cb 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/DeviceIdentifierJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/DeviceIdentifierJsonSerializer.java @@ -5,7 +5,6 @@ import java.util.logging.Logger; import org.json.simple.JSONObject; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.racelog.tracking.SingleTypeBasedServiceFinderImpl; import com.sap.sailing.domain.common.racelog.tracking.TransformationException; import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinder; @@ -15,6 +14,7 @@ import com.sap.sailing.server.gateway.deserialization.impl.DeviceIdentifierJsonD import com.sap.sailing.server.gateway.serialization.JsonSerializer; import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; import com.sap.sailing.server.gateway.serialization.racelog.tracking.impl.PlaceHolderDeviceIdentifierJsonHandler; +import com.sap.sse.common.Util; public class DeviceIdentifierJsonSerializer implements JsonSerializer { private static final Logger logger = Logger.getLogger(DeviceIdentifierJsonSerializer.class.getName()); @@ -38,7 +38,7 @@ public class DeviceIdentifierJsonSerializer implements JsonSerializer pair; + Util.Pair pair; try { pair = handler.serialize(object); result.put(DeviceIdentifierJsonDeserializer.FIELD_DEVICE_TYPE, pair.getA()); diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/PositionedMarkJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/PositionedMarkJsonSerializer.java index 30d237c07cb..54f1d697376 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/PositionedMarkJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/PositionedMarkJsonSerializer.java @@ -5,10 +5,10 @@ import org.json.simple.JSONObject; import com.sap.sailing.domain.base.ControlPoint; import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.common.Position; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.server.gateway.serialization.JsonSerializer; +import com.sap.sse.common.Util; -public class PositionedMarkJsonSerializer implements JsonSerializer> { +public class PositionedMarkJsonSerializer implements JsonSerializer> { public static final String FIELD_MARK = "mark"; public static final String FIELD_POSITION = "position"; @@ -21,7 +21,7 @@ public class PositionedMarkJsonSerializer implements JsonSerializer positionedMark) { + public JSONObject serialize(Util.Pair positionedMark) { JSONObject result = new JSONObject(); result.put(FIELD_MARK, markSerializer.serialize(positionedMark.getA())); diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogFinishPositioningConfirmedEventSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogFinishPositioningConfirmedEventSerializer.java index 98949013e14..6a726ffcda9 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogFinishPositioningConfirmedEventSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogFinishPositioningConfirmedEventSerializer.java @@ -8,10 +8,10 @@ import org.json.simple.JSONObject; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.common.MaxPointsReason; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.RaceLogFinishPositioningConfirmedEvent; import com.sap.sailing.server.gateway.serialization.JsonSerializer; +import com.sap.sse.common.Util; public class RaceLogFinishPositioningConfirmedEventSerializer extends BaseRaceLogEventSerializer { @@ -42,11 +42,11 @@ public class RaceLogFinishPositioningConfirmedEventSerializer extends BaseRaceLo return result; } - private JSONArray serializePositionedCompetitors(List> positionedCompetitors) { + private JSONArray serializePositionedCompetitors(List> positionedCompetitors) { JSONArray jsonPositionedCompetitors = new JSONArray(); if (positionedCompetitors != null) { // for backwards compatibility reasons - for (Triple positionedCompetitor : positionedCompetitors) { + for (Util.Triple positionedCompetitor : positionedCompetitors) { JSONObject jsonPositionedCompetitor = new JSONObject(); jsonPositionedCompetitor.put(FIELD_COMPETITOR_ID, positionedCompetitor.getA().toString()); diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogFinishPositioningListChangedEventSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogFinishPositioningListChangedEventSerializer.java index 185fd440dd6..6eb9bc48bfd 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogFinishPositioningListChangedEventSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/racelog/impl/RaceLogFinishPositioningListChangedEventSerializer.java @@ -8,10 +8,10 @@ import org.json.simple.JSONObject; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.common.MaxPointsReason; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.RaceLogFinishPositioningListChangedEvent; import com.sap.sailing.server.gateway.serialization.JsonSerializer; +import com.sap.sse.common.Util; public class RaceLogFinishPositioningListChangedEventSerializer extends BaseRaceLogEventSerializer { @@ -41,10 +41,10 @@ public class RaceLogFinishPositioningListChangedEventSerializer extends BaseRace return result; } - private JSONArray serializePositionedCompetitors(List> positionedCompetitors) { + private JSONArray serializePositionedCompetitors(List> positionedCompetitors) { JSONArray jsonPositionedCompetitors = new JSONArray(); - for (Triple positionedCompetitor : positionedCompetitors) { + for (Util.Triple positionedCompetitor : positionedCompetitors) { JSONObject jsonPositionedCompetitor = new JSONObject(); jsonPositionedCompetitor.put(FIELD_COMPETITOR_ID, positionedCompetitor.getA().toString()); diff --git a/java/com.sap.sailing.server.gateway.test.support/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.gateway.test.support/META-INF/MANIFEST.MF index f1f63c84a35..bca7ade2de8 100644 --- a/java/com.sap.sailing.server.gateway.test.support/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.gateway.test.support/META-INF/MANIFEST.MF @@ -9,7 +9,8 @@ Require-Bundle: javax.servlet;bundle-version="2.6.0", com.sap.sailing.domain;bundle-version="1.0.0", com.sap.sailing.domain.common;bundle-version="1.0.0", com.sap.sailing.server;bundle-version="1.0.0", - com.sap.sailing.mongodb;bundle-version="1.0.0" + com.sap.sailing.mongodb;bundle-version="1.0.0", + com.sap.sse.common Bundle-ClassPath: . Web-ContextPath: /sailingserver/test-support Import-Package: org.osgi.framework, diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/expeditionimport/TestWindLogParser.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/expeditionimport/TestWindLogParser.java index d79bef55c6a..945d85807f7 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/expeditionimport/TestWindLogParser.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/expeditionimport/TestWindLogParser.java @@ -1,16 +1,14 @@ package com.sap.sailing.server.gateway.expeditionimport; +import static org.hamcrest.CoreMatchers.is; +import static org.hamcrest.number.IsCloseTo.closeTo; +import static org.junit.Assert.assertThat; + import java.util.List; import org.junit.Test; import com.sap.sailing.domain.tracking.Wind; -import com.sap.sailing.server.gateway.expeditionimport.WindLogParser; - -import static org.junit.Assert.*; - -import static org.hamcrest.CoreMatchers.*; -import static org.hamcrest.number.IsCloseTo.*; public class TestWindLogParser { diff --git a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/impl/GPSFixImportTest.java b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/impl/GPSFixImportTest.java index 3b4cd7086c2..47b1d8452a8 100644 --- a/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/impl/GPSFixImportTest.java +++ b/java/com.sap.sailing.server.gateway.test/src/com/sap/sailing/server/gateway/impl/GPSFixImportTest.java @@ -14,12 +14,12 @@ import org.junit.Test; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; import com.sap.sailing.domain.trackimport.GPSFixImporter; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.server.gateway.trackfiles.impl.TrackFilesImportServlet; import com.sap.sailing.server.trackfiles.RouteConverterGPSFixImporterFactory; +import com.sap.sse.common.Util; public class GPSFixImportTest { @@ -36,7 +36,7 @@ public class GPSFixImportTest { }).when(servlet).storeFix(any(GPSFix.class), any(DeviceIdentifier.class)); InputStream in = getClass().getResourceAsStream("/Cardiff Race17 - COMPETITORS.gpx"); - servlet.importFiles(Arrays.asList(new Pair<>("test.gpx", in)), new AlwaysFailingGPSFixImporter()); + servlet.importFiles(Arrays.asList(new Util.Pair<>("test.gpx", in)), new AlwaysFailingGPSFixImporter()); // getting to here without errors is good enough } } diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/AdminApp.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/AdminApp.java index d9bf652e15b..af62dd7e22e 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/AdminApp.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/AdminApp.java @@ -32,7 +32,6 @@ import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.impl.WindSourceImpl; import com.sap.sailing.domain.tracking.DynamicTrackedRace; import com.sap.sailing.domain.tracking.TrackedRace; @@ -42,6 +41,7 @@ import com.sap.sailing.domain.tracking.impl.WindImpl; import com.sap.sailing.domain.tractracadapter.RaceRecord; import com.sap.sailing.server.gateway.SailingServerHttpServlet; import com.sap.sailing.util.InvalidDateException; +import com.sap.sse.common.Util; public class AdminApp extends SailingServerHttpServlet { private static final long serialVersionUID = -6849138354941569249L; @@ -382,7 +382,7 @@ public class AdminApp extends SailingServerHttpServlet { private void listWindTrackers(HttpServletRequest req, HttpServletResponse resp) throws IOException { JSONArray windTrackers = new JSONArray(); - for (Triple regattaAndRaceAndPort : getService().getWindTrackedRaces()) { + for (Util.Triple regattaAndRaceAndPort : getService().getWindTrackedRaces()) { JSONObject windTracker = new JSONObject(); windTracker.put("regattaname", regattaAndRaceAndPort.getA().getName()); windTracker.put("racename", regattaAndRaceAndPort.getB().getName()); diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/LeaderboardJsonGetServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/LeaderboardJsonGetServlet.java index 97c615d8483..ee282e267a8 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/LeaderboardJsonGetServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/LeaderboardJsonGetServlet.java @@ -29,7 +29,6 @@ import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardCacheManager; import com.sap.sailing.domain.leaderboard.SettableScoreCorrection; @@ -76,7 +75,7 @@ public class LeaderboardJsonGetServlet extends AbstractJsonHttpServlet implement * computing cache updates, new values are appended "at the end" and therefore tend to survive longer than any value appended * earlier. */ - private final SmartFutureCache, StringBuffer>, LeaderboardJsonCacheUpdateInterval> cache; + private final SmartFutureCache, StringBuffer>, LeaderboardJsonCacheUpdateInterval> cache; /** * Used to observe the leaderboards cached so far and triggering {@link #cache} updates. @@ -84,15 +83,15 @@ public class LeaderboardJsonGetServlet extends AbstractJsonHttpServlet implement private final LeaderboardCacheManager cacheManager; private static class LeaderboardJsonCacheUpdateInterval implements UpdateInterval { - private final LinkedHashSet> timePointsAndResultStates; + private final LinkedHashSet> timePointsAndResultStates; - public LeaderboardJsonCacheUpdateInterval(Iterable> timePointsAndResultStates) { + public LeaderboardJsonCacheUpdateInterval(Iterable> timePointsAndResultStates) { assert timePointsAndResultStates != null; this.timePointsAndResultStates = new LinkedHashSet<>(); Util.addAll(timePointsAndResultStates, this.timePointsAndResultStates); } - public LinkedHashSet> getTimePointsAndResultStates() { + public LinkedHashSet> getTimePointsAndResultStates() { return timePointsAndResultStates; } @@ -104,7 +103,7 @@ public class LeaderboardJsonGetServlet extends AbstractJsonHttpServlet implement */ @Override public LeaderboardJsonCacheUpdateInterval join(LeaderboardJsonCacheUpdateInterval otherUpdateInterval) { - LinkedHashSet> newTimePointsAndResultStates = new LinkedHashSet<>(); + LinkedHashSet> newTimePointsAndResultStates = new LinkedHashSet<>(); newTimePointsAndResultStates.addAll(getTimePointsAndResultStates()); newTimePointsAndResultStates.addAll(otherUpdateInterval.getTimePointsAndResultStates()); return new LeaderboardJsonCacheUpdateInterval(newTimePointsAndResultStates); @@ -114,17 +113,17 @@ public class LeaderboardJsonGetServlet extends AbstractJsonHttpServlet implement private class LeaderboardJsonCacheUpdater implements - CacheUpdater, StringBuffer>, LeaderboardJsonCacheUpdateInterval> { + CacheUpdater, StringBuffer>, LeaderboardJsonCacheUpdateInterval> { @Override - public LinkedHashMap, StringBuffer> computeCacheUpdate(Leaderboard key, + public LinkedHashMap, StringBuffer> computeCacheUpdate(Leaderboard key, LeaderboardJsonCacheUpdateInterval updateInterval) throws Exception { - final LinkedHashMap, StringBuffer> result; + final LinkedHashMap, StringBuffer> result; if (updateInterval == null) { result = null; } else { // no removeEldestEntry override required here; map is merged into another LinkedHashMap created in provideNewCacheValue result = new LinkedHashMap<>(); - for (Triple timePointAndResultState : updateInterval.getTimePointsAndResultStates()) { + for (com.sap.sse.common.Util.Triple timePointAndResultState : updateInterval.getTimePointsAndResultStates()) { StringWriter sw = new StringWriter(); computeLeaderboardJson(key, timePointAndResultState).writeJSONString(sw); result.put(timePointAndResultState, sw.getBuffer()); @@ -134,11 +133,11 @@ public class LeaderboardJsonGetServlet extends AbstractJsonHttpServlet implement } @Override - public LinkedHashMap, StringBuffer> provideNewCacheValue(Leaderboard leaderboard, - LinkedHashMap, StringBuffer> oldCacheValue, - LinkedHashMap, StringBuffer> computedCacheUpdate, + public LinkedHashMap, StringBuffer> provideNewCacheValue(Leaderboard leaderboard, + LinkedHashMap, StringBuffer> oldCacheValue, + LinkedHashMap, StringBuffer> computedCacheUpdate, LeaderboardJsonCacheUpdateInterval updateInterval) { - final LinkedHashMap, StringBuffer> result; + final LinkedHashMap, StringBuffer> result; if (computedCacheUpdate == null) { result = null; if (oldCacheValue != null) { @@ -146,10 +145,10 @@ public class LeaderboardJsonGetServlet extends AbstractJsonHttpServlet implement } } else { // Note: don't use access-based ordering as it turns the get(...) call into a "write" access - result = new LinkedHashMap, StringBuffer>(16, 0.75f) { + result = new LinkedHashMap, StringBuffer>(16, 0.75f) { private static final long serialVersionUID = -6197983565575024084L; @Override - protected boolean removeEldestEntry(Entry, StringBuffer> eldest) { + protected boolean removeEldestEntry(Entry, StringBuffer> eldest) { final boolean result; if (totalNumberOfCacheEntries > MAX_TOTAL_NUMBER_OF_CACHE_ENTRIES) { totalNumberOfCacheEntries--; @@ -207,8 +206,8 @@ public class LeaderboardJsonGetServlet extends AbstractJsonHttpServlet implement TimePoint resultTimePoint = calculateTimePointForResultState(leaderboard, resultState); StringBuffer jsonLeaderboardAsString; if (resultTimePoint != null) { - Triple resultStateAndTimePointAndMaxCompetitorsCount = - new Triple<>(resultTimePoint, resultState, maxCompetitorsCount); + com.sap.sse.common.Util.Triple resultStateAndTimePointAndMaxCompetitorsCount = + new com.sap.sse.common.Util.Triple<>(resultTimePoint, resultState, maxCompetitorsCount); if (useCache) { jsonLeaderboardAsString = getLeaderboardJsonFromCacheOrCompute(leaderboard, resultStateAndTimePointAndMaxCompetitorsCount); } else { @@ -241,12 +240,12 @@ public class LeaderboardJsonGetServlet extends AbstractJsonHttpServlet implement } private StringBuffer getLeaderboardJsonFromCacheOrCompute(Leaderboard leaderboard, - Triple timePointAndResultStateAndMaxCompetitorsCount) throws NoWindException { + com.sap.sse.common.Util.Triple timePointAndResultStateAndMaxCompetitorsCount) throws NoWindException { final StringBuffer result; - Map, StringBuffer> cacheEntry = cache.get(leaderboard, /* waitForLatest */ false); + Map, StringBuffer> cacheEntry = cache.get(leaderboard, /* waitForLatest */ false); if (cacheEntry == null || !cacheEntry.containsKey(timePointAndResultStateAndMaxCompetitorsCount)) { cacheMisses++; - LinkedHashSet> timePointsAndResultStatesAndMaxCompetitorsCount = new LinkedHashSet<>(); + LinkedHashSet> timePointsAndResultStatesAndMaxCompetitorsCount = new LinkedHashSet<>(); timePointsAndResultStatesAndMaxCompetitorsCount.add(timePointAndResultStateAndMaxCompetitorsCount); cache.triggerUpdate(leaderboard, new LeaderboardJsonCacheUpdateInterval(timePointsAndResultStatesAndMaxCompetitorsCount)); // now wait for this entry to be computed @@ -262,7 +261,7 @@ public class LeaderboardJsonGetServlet extends AbstractJsonHttpServlet implement } private JSONObject computeLeaderboardJson(Leaderboard leaderboard, - Triple timePointAndResultStateAndMaxCompetitorsCount) throws NoWindException { + com.sap.sse.common.Util.Triple timePointAndResultStateAndMaxCompetitorsCount) throws NoWindException { TimePoint resultTimePoint = timePointAndResultStateAndMaxCompetitorsCount.getA(); ResultStates resultState = timePointAndResultStateAndMaxCompetitorsCount.getB(); Integer maxCompetitorsCount = timePointAndResultStateAndMaxCompetitorsCount.getC(); @@ -477,7 +476,7 @@ public class LeaderboardJsonGetServlet extends AbstractJsonHttpServlet implement */ @Override public void invalidate(Leaderboard leaderboard) { - final LinkedHashMap, StringBuffer> currentCachedValueForLeaderboard = + final LinkedHashMap, StringBuffer> currentCachedValueForLeaderboard = cache.get(leaderboard, /* waitForLatest */ false); cache.triggerUpdate(leaderboard, new LeaderboardJsonCacheUpdateInterval(currentCachedValueForLeaderboard.keySet())); } diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/RegattaAndRaceDataJsonGetServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/RegattaAndRaceDataJsonGetServlet.java index ce4622e3f33..1aaec8d4e67 100755 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/RegattaAndRaceDataJsonGetServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/RegattaAndRaceDataJsonGetServlet.java @@ -12,9 +12,9 @@ import javax.servlet.http.HttpServletResponse; import org.json.simple.JSONArray; import org.json.simple.JSONObject; -import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.Leg; +import com.sap.sailing.domain.base.Mark; import com.sap.sailing.domain.base.Nationality; import com.sap.sailing.domain.base.Person; import com.sap.sailing.domain.base.RaceDefinition; diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/MarkPositionsJsonExportServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/MarkPositionsJsonExportServlet.java index b98510c8c6c..afb2230ea43 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/MarkPositionsJsonExportServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/MarkPositionsJsonExportServlet.java @@ -15,7 +15,6 @@ import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.racelog.RaceLogServletConstants; import com.sap.sailing.domain.tracking.TrackedRace; @@ -24,6 +23,7 @@ import com.sap.sailing.server.gateway.AbstractJsonHttpServlet; import com.sap.sailing.server.gateway.serialization.coursedata.impl.MarkJsonSerializer; import com.sap.sailing.server.gateway.serialization.impl.PositionJsonSerializer; import com.sap.sailing.server.gateway.serialization.impl.PositionedMarkJsonSerializer; +import com.sap.sse.common.Util; public class MarkPositionsJsonExportServlet extends AbstractJsonHttpServlet { @@ -91,7 +91,7 @@ public class MarkPositionsJsonExportServlet extends AbstractJsonHttpServlet { //The position of the mark needs to be in the course area //if (isMarkInCourseArea(courseAreaCenterPosition, courseAreaRadius, position)) { - result.add(positionedMarkSerializer.serialize(new Pair(mark, position))); + result.add(positionedMarkSerializer.serialize(new Util.Pair(mark, position))); //} } diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java index 9436c1077bd..0695afcada4 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/jaxrs/api/LeaderboardsResource.java @@ -38,12 +38,12 @@ import com.sap.sailing.domain.common.dto.LeaderboardEntryDTO; import com.sap.sailing.domain.common.dto.LeaderboardRowDTO; import com.sap.sailing.domain.common.dto.RaceColumnDTO; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.SettableScoreCorrection; import com.sap.sailing.domain.tracking.MarkPassing; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource; +import com.sap.sse.common.Util; @Path("/v1/leaderboards") public class LeaderboardsResource extends AbstractSailingServerResource { @@ -82,7 +82,7 @@ public class LeaderboardsResource extends AbstractSailingServerResource { TimePoint resultTimePoint = calculateTimePointForResultState(leaderboard, resultState); JSONObject jsonLeaderboard; if (resultTimePoint != null) { - Triple resultStateAndTimePoint = new Triple<>(resultTimePoint, resultState, maxCompetitorsCount); + Util.Triple resultStateAndTimePoint = new Util.Triple<>(resultTimePoint, resultState, maxCompetitorsCount); jsonLeaderboard = getLeaderboardJson(leaderboard, resultStateAndTimePoint); } else { jsonLeaderboard = createEmptyLeaderboardJson(leaderboard, resultState, requestTimePoint, maxCompetitorsCount); @@ -101,7 +101,7 @@ public class LeaderboardsResource extends AbstractSailingServerResource { return response; } - private JSONObject getLeaderboardJson(Leaderboard leaderboard, Triple timePointAndResultStateAndMaxCompetitorsCount) + private JSONObject getLeaderboardJson(Leaderboard leaderboard, Util.Triple timePointAndResultStateAndMaxCompetitorsCount) throws NoWindException, InterruptedException, ExecutionException { LeaderboardDTO leaderboardDTO = leaderboard.getLeaderboardDTO(timePointAndResultStateAndMaxCompetitorsCount.getA(), Collections. emptyList(), /* addOverallDetails */ false, getService(), getService().getBaseDomainFactory()); 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 f13653141dd..4af19c96da6 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 com.sap.sailing.domain.common.Tack; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.GPSFix; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.GPSFixTrack; @@ -383,18 +382,18 @@ public class RegattasResource extends AbstractSailingServerResource { JSONArray jsonMarkPassingTimes = new JSONArray(); List firstPassingTimepoints = new ArrayList<>(); - Iterable>> markPassingsTimes = trackedRace.getMarkPassingsTimes(); + Iterable>> markPassingsTimes = trackedRace.getMarkPassingsTimes(); synchronized (markPassingsTimes) { int numberOfWaypoints = Util.size(markPassingsTimes); int wayPointNumber = 1; - for (Pair> markPassingTimes : markPassingsTimes) { + for (com.sap.sse.common.Util.Pair> markPassingTimes : markPassingsTimes) { JSONObject jsonMarkPassing = new JSONObject(); String name = "M" + (wayPointNumber - 1); if (wayPointNumber == numberOfWaypoints) { name = "F"; } jsonMarkPassing.put("name", name); - Pair timesPair = markPassingTimes.getB(); + com.sap.sse.common.Util.Pair timesPair = markPassingTimes.getB(); TimePoint firstPassingTime = timesPair.getA(); TimePoint lastPassingTime = timesPair.getB(); jsonMarkPassing.put("firstPassing-ms", firstPassingTime == null ? null : firstPassingTime.asMillis()); diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/TrackFilesImportServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/TrackFilesImportServlet.java index 3f54b157515..969e80a38ae 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/TrackFilesImportServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/TrackFilesImportServlet.java @@ -31,7 +31,6 @@ import org.osgi.framework.ServiceReference; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.TimeRangeImpl; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinder; import com.sap.sailing.domain.racelog.tracking.DeviceIdentifier; import com.sap.sailing.domain.racelog.tracking.DeviceWithTimeRange; @@ -44,6 +43,7 @@ import com.sap.sailing.server.gateway.serialization.JsonSerializer; import com.sap.sailing.server.gateway.serialization.impl.DeviceIdentifierJsonSerializer; import com.sap.sailing.server.gateway.serialization.impl.DeviceWithTimeRangeJsonSerializer; import com.sap.sailing.server.gateway.serialization.racelog.tracking.DeviceIdentifierJsonHandler; +import com.sap.sse.common.Util; /** * Servlet that processes uploaded track files by adding their fixes to the GPSFixStore. @@ -90,13 +90,13 @@ public class TrackFilesImportServlet extends AbstractJsonHttpServlet { return result; } - public Iterable importFiles(Iterable> files, GPSFixImporter preferredImporter) + public Iterable importFiles(Iterable> files, GPSFixImporter preferredImporter) throws IOException { final Set deviceIds = new HashSet<>(); final Map from = new HashMap<>(); final Map to = new HashMap<>(); - for (Pair file : files) { + for (Util.Pair file : files) { final String fileName = file.getA(); String fileExt = null; if (fileName.contains(".")) { @@ -175,7 +175,7 @@ public class TrackFilesImportServlet extends AbstractJsonHttpServlet { return; } - Set> files = new HashSet<>(); + Set> files = new HashSet<>(); FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); List items; @@ -188,7 +188,7 @@ public class TrackFilesImportServlet extends AbstractJsonHttpServlet { String prefImporterType = null; for (FileItem item : items) { if (!item.isFormField()) - files.add(new Pair(item.getName(), item.getInputStream())); + files.add(new Util.Pair(item.getName(), item.getInputStream())); else { if (item.getFieldName() != null && item.getFieldName().equals(PREFERRED_IMPORTER)) { prefImporterType = item.getString(); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractServerReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractServerReplicationTest.java index 71bf6e20ace..de177c4e191 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractServerReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/AbstractServerReplicationTest.java @@ -26,7 +26,6 @@ import org.junit.rules.Timeout; import com.rabbitmq.client.QueueingConsumer; import com.sap.sailing.domain.base.DomainFactory; import com.sap.sailing.domain.base.impl.DomainFactoryImpl; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.persistence.MongoObjectFactory; import com.sap.sailing.domain.persistence.PersistenceFactory; import com.sap.sailing.domain.persistence.media.MediaDBFactory; @@ -43,6 +42,7 @@ import com.sap.sailing.server.replication.impl.ReplicationInstancesManager; import com.sap.sailing.server.replication.impl.ReplicationMasterDescriptorImpl; import com.sap.sailing.server.replication.impl.ReplicationServiceImpl; import com.sap.sailing.server.replication.impl.Replicator; +import com.sap.sse.common.Util; public abstract class AbstractServerReplicationTest { protected static final int SERVLET_PORT = 9990; @@ -62,7 +62,7 @@ public abstract class AbstractServerReplicationTest { @Before public void setUp() throws Exception { try { - Pair result = basicSetUp( + Util.Pair result = basicSetUp( true, /* master=null means create a new one */ null, /* replica=null means create a new one */null); result.getA().startToReplicateFrom(result.getB()); @@ -82,7 +82,7 @@ public abstract class AbstractServerReplicationTest { * if not null, the value will be used for {@link #replica}; otherwise, a new racing event * service will be created as replica */ - protected Pair basicSetUp( + protected Util.Pair basicSetUp( boolean dropDB, RacingEventServiceImpl master, RacingEventServiceImpl replica) throws IOException, InterruptedException { String exchangeName = "test-sapsailinganalytics-exchange"; String exchangeHost = "localhost"; @@ -118,7 +118,7 @@ public abstract class AbstractServerReplicationTest { masterDescriptor = new ReplicationMasterDescriptorImpl(exchangeHost, "localhost", exchangeName, SERVLET_PORT, 0, UUID.randomUUID().toString()); ReplicationServiceTestImpl replicaReplicator = new ReplicationServiceTestImpl(exchangeName, exchangeHost, resolveAgainst, rim, replicaDescriptor, this.replica, this.master, masterReplicator, masterDescriptor); - Pair result = new Pair<>(replicaReplicator, masterDescriptor); + Util.Pair result = new Util.Pair<>(replicaReplicator, masterDescriptor); replicaReplicator.startInitialLoadTransmissionServlet(); this.replicaReplicator = replicaReplicator; return result; diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/ConnectionResetAndReconnectTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/ConnectionResetAndReconnectTest.java index fc2e170cb1c..6a24c2640aa 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/ConnectionResetAndReconnectTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/ConnectionResetAndReconnectTest.java @@ -25,7 +25,6 @@ import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.server.replication.ReplicationMasterDescriptor; import com.sap.sailing.server.replication.impl.ReplicationMasterDescriptorImpl; @@ -86,7 +85,7 @@ public class ConnectionResetAndReconnectTest extends AbstractServerReplicationTe @Before public void setUp() throws Exception { try { - Pair result = basicSetUp( + com.sap.sse.common.Util.Pair result = basicSetUp( true, /* master=null means create a new one */ null, /* replica=null means create a new one */null); masterReplicationDescriptor = MasterReplicationDescriptorMock.from(result.getB()); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/DelayedLeaderboardCorrectionsReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/DelayedLeaderboardCorrectionsReplicationTest.java index ad40898d515..41ee8bc722b 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/DelayedLeaderboardCorrectionsReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/DelayedLeaderboardCorrectionsReplicationTest.java @@ -24,7 +24,6 @@ import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.RegattaNameAndRaceName; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.DelayedLeaderboardCorrections; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.SettableScoreCorrection; @@ -114,7 +113,7 @@ public class DelayedLeaderboardCorrectionsReplicationTest extends AbstractServer masterLeaderboardReloaded.getRaceColumnByName(Q2), MillisecondsTimePoint.now())); // replicate the re-loaded environment - Pair descriptors = basicSetUp(/* dropDB */ false, master, replica); + com.sap.sse.common.Util.Pair descriptors = basicSetUp(/* dropDB */ false, master, replica); replicaReplicator = descriptors.getA(); masterDescriptor = descriptors.getB(); // starting to replicate will clear the competitor store used by the replica in this test; 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 8bf07541421..ce23db48a96 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 @@ -30,7 +30,6 @@ import com.sap.sailing.domain.common.RegattaName; import com.sap.sailing.domain.common.ScoringSchemeType; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.media.MediaTrack; import com.sap.sailing.domain.common.media.MediaTrack.MimeType; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; @@ -47,9 +46,10 @@ import com.sap.sailing.server.operationaltransformation.AddRaceDefinition; import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard; import com.sap.sailing.server.replication.ReplicationMasterDescriptor; import com.sap.sailing.server.replication.impl.Replicator; +import com.sap.sse.common.Util; public class InitialLoadReplicationObjectIdentityTest extends AbstractServerReplicationTest { - private Pair replicationDescriptorPair; + private Util.Pair replicationDescriptorPair; /** * Drops the test DB. Sets up master and replica, starts the JMS message broker and registers the replica with the master. diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/MediaReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/MediaReplicationTest.java index 256399d5421..6220b9128c7 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/MediaReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/MediaReplicationTest.java @@ -1,5 +1,10 @@ package com.sap.sailing.server.replication.test; +import static org.hamcrest.core.Is.is; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotSame; +import static org.junit.Assert.assertThat; + import java.util.Date; import org.junit.Test; @@ -7,12 +12,6 @@ import org.junit.Test; import com.sap.sailing.domain.common.media.MediaTrack; import com.sap.sailing.domain.common.media.MediaTrack.MimeType; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotSame; -import static org.junit.Assert.assertThat; - -import static org.hamcrest.core.Is.is; - public class MediaReplicationTest extends AbstractServerReplicationTest { private void waitSomeTime() throws InterruptedException { diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/PrematureOperationReceiptTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/PrematureOperationReceiptTest.java index 83b0952d94a..794f70a6d2f 100755 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/PrematureOperationReceiptTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/PrematureOperationReceiptTest.java @@ -8,12 +8,12 @@ import java.io.IOException; import org.junit.Before; import org.junit.Test; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.impl.LowPoint; import com.sap.sailing.server.operationaltransformation.CreateFlexibleLeaderboard; import com.sap.sailing.server.replication.ReplicationMasterDescriptor; import com.sap.sailing.server.replication.impl.Replicator; +import com.sap.sse.common.Util; public class PrematureOperationReceiptTest extends AbstractServerReplicationTest { private Replicator replicator; @@ -25,7 +25,7 @@ public class PrematureOperationReceiptTest extends AbstractServerReplicationTest @Before @Override public void setUp() throws Exception { - Pair result = basicSetUp(true, /* master=null means create a new one */ null, + Util.Pair result = basicSetUp(true, /* master=null means create a new one */ null, /* replica=null means create a new one */ null); replicationService = result.getA(); replicator = replicationService.startToReplicateFromButDontYetFetchInitialLoad(result.getB(), /* startReplicatorSuspended */ true); diff --git a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RaceLogReplicationTest.java b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RaceLogReplicationTest.java index 599f435786f..e93906764bb 100644 --- a/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RaceLogReplicationTest.java +++ b/java/com.sap.sailing.server.replication.test/src/com/sap/sailing/server/replication/test/RaceLogReplicationTest.java @@ -36,7 +36,6 @@ import com.sap.sailing.domain.common.dto.RegattaCreationParametersDTO; import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus; import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard; @@ -65,7 +64,7 @@ import com.sap.sailing.server.replication.ReplicationMasterDescriptor; public class RaceLogReplicationTest extends AbstractServerReplicationTest { private static final String BOAT_CLASS_NAME_49er = "49er"; - private Pair replicationDescriptorPair; + private com.sap.sse.common.Util.Pair replicationDescriptorPair; private RaceLogEvent raceLogEvent; private RaceLogEvent anotherRaceLogEvent; diff --git a/java/com.sap.sailing.server.replication/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.replication/META-INF/MANIFEST.MF index 6cf79d28ceb..c8b11ac6c1a 100644 --- a/java/com.sap.sailing.server.replication/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.replication/META-INF/MANIFEST.MF @@ -15,7 +15,8 @@ Require-Bundle: com.sap.sailing.server, com.sap.sailing.domain, com.sap.sailing.operationaltransformation, com.sap.sailing.domain.persistence, - com.sap.sailing.domain.shared.android;bundle-version="1.0.0" + com.sap.sailing.domain.shared.android;bundle-version="1.0.0", + com.sap.sse.common Bundle-ClassPath: . Web-ContextPath: /replication Import-Package: com.rabbitmq.client;version="2.8.4", diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/impl/MediaLibaryTest.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/impl/MediaLibaryTest.java index bde15f8cea1..c54a38a75be 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/impl/MediaLibaryTest.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/impl/MediaLibaryTest.java @@ -1,5 +1,11 @@ package com.sap.sailing.server.impl; +import static org.hamcrest.core.Is.is; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; + import java.util.Collection; import java.util.Date; import java.util.Iterator; @@ -12,13 +18,6 @@ import com.sap.sailing.domain.common.media.MediaTrack; import com.sap.sailing.domain.common.media.MediaTrack.MimeType; import com.sap.sailing.server.impl.MediaLibrary.Interval; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; - -import static org.hamcrest.core.Is.is; - public class MediaLibaryTest { 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 eb1cd4f4d9d..9b50dc8a410 100755 --- 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 @@ -67,7 +67,6 @@ import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.media.MediaTrack; import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard; @@ -103,6 +102,7 @@ import com.sap.sailing.server.gateway.jaxrs.spi.MasterDataResource; import com.sap.sailing.server.impl.RacingEventServiceImpl; import com.sap.sailing.server.masterdata.DummyTrackedRace; import com.sap.sailing.server.masterdata.MasterDataImporter; +import com.sap.sse.common.Util; public class MasterDataImportTest { @@ -713,9 +713,9 @@ public class MasterDataImportTest { // Add a competitor-related race log event to ensure that no competitor resolution is attempted while receiving TimePoint logTimePoint2 = logTimePoint.plus(10); CompetitorResults positionedCompetitors = new CompetitorResultsImpl(); - positionedCompetitors.add(new Triple(competitor.getId(), competitor + positionedCompetitors.add(new Util.Triple(competitor.getId(), competitor .getName(), MaxPointsReason.DNS)); - positionedCompetitors.add(new Triple(competitor2.getId(), competitor2 + positionedCompetitors.add(new Util.Triple(competitor2.getId(), competitor2 .getName(), MaxPointsReason.NONE)); RaceLogFinishPositioningConfirmedEvent finishPositioningConfirmedEvent = factory .createFinishPositioningConfirmedEvent(logTimePoint2, author, 1, positionedCompetitors); diff --git a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java index 225f734e42d..c43742e1160 100644 --- a/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java +++ b/java/com.sap.sailing.server.test/src/com/sap/sailing/server/test/RaceTrackerMock.java @@ -4,8 +4,8 @@ import java.io.IOException; import java.net.MalformedURLException; import java.util.Set; -import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.RaceDefinition; +import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.racelog.tracking.GPSFixStore; import com.sap.sailing.domain.tracking.DynamicTrackedRegatta; diff --git a/java/com.sap.sailing.server.trackfiles.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.trackfiles.test/META-INF/MANIFEST.MF index 68d08fea7a9..c7d30b3601f 100644 --- a/java/com.sap.sailing.server.trackfiles.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.trackfiles.test/META-INF/MANIFEST.MF @@ -15,6 +15,7 @@ Require-Bundle: com.tractrac.clientmodule;bundle-version="2.0.0", com.sap.sailing.server;bundle-version="1.0.0", org.junit4;bundle-version="4.8.2", org.mockito.mockito-core;bundle-version="1.9.5", - org.objenesis;bundle-version="1.3.0" + org.objenesis;bundle-version="1.3.0", + com.sap.sse.common Import-Package: org.json.simple, org.json.simple.parser diff --git a/java/com.sap.sailing.server.trackfiles/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.trackfiles/META-INF/MANIFEST.MF index 9c99cdbfc04..31b1f0bcd09 100644 --- a/java/com.sap.sailing.server.trackfiles/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.trackfiles/META-INF/MANIFEST.MF @@ -11,7 +11,8 @@ Export-Package: com.sap.sailing.server.trackfiles, Require-Bundle: com.sap.sailing.domain, com.sap.sailing.domain.common, - routeconverter + routeconverter, + com.sap.sse.common Import-Package: org.osgi.framework;version="1.7.0" Bundle-Activator: com.sap.sailing.server.trackfiles.impl.Activator 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 9ec87d2a4d2..99eb6fd1a27 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 @@ -39,8 +39,6 @@ import com.sap.sailing.domain.common.RegattaIdentifier; import com.sap.sailing.domain.common.RegattaName; import com.sap.sailing.domain.common.ScoringSchemeType; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.media.MediaTrack; import com.sap.sailing.domain.common.racelog.RacingProcedureType; import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinderFactory; @@ -67,6 +65,8 @@ import com.sap.sailing.domain.tracking.TrackedRegattaRegistry; import com.sap.sailing.domain.tracking.TrackerManager; import com.sap.sailing.domain.tracking.WindStore; import com.sap.sailing.server.masterdata.DataImportLockWithProgress; +import com.sap.sse.common.Util; +import com.sap.sse.common.Util.Triple; /** * An OSGi service that can be used to track boat races using a TracTrac connector that pushes @@ -157,7 +157,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch * comment where a wind tracker may provide information such as its type name or, if applicable, * connectivity information such as the network port on which it receives wind information. */ - Iterable> getWindTrackedRaces(); + Iterable> getWindTrackedRaces(); /** * Creates a new leaderboard with the name specified. @@ -384,11 +384,11 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch /** * @return a thread-safe copy of the events (or the exception that occurred trying to obtain the events; arranged in - * a {@link Pair}) of from all sailing server instances currently known by the service; it's safe for + * a {@link Util.Pair}) of from all sailing server instances currently known by the service; it's safe for * callers to iterate over the iterable returned, and no risk of a {@link ConcurrentModificationException} * exists */ - Map, Exception>> getPublicEventsOfAllSailingServers(); + Map, Exception>> getPublicEventsOfAllSailingServers(); RemoteSailingServerReference addRemoteSailingServerReference(String name, URL url); @@ -446,7 +446,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch * @return a pair with the found or created regatta, and a boolean that tells whether the regatta was created during * the call */ - Pair getOrCreateRegattaWithoutReplication(String baseRegattaName, String boatClassName, Serializable id, + Util.Pair getOrCreateRegattaWithoutReplication(String baseRegattaName, String boatClassName, Serializable id, Iterable series, boolean persistent, ScoringScheme scoringScheme, Serializable defaultCourseAreaId); @@ -507,7 +507,7 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch /** * Gets the start time, pass identifier and racing procedure for the queried race. Start time might be null. */ - Triple getStartTimeAndProcedure(String leaderboardName, String raceColumnName, String fleetName); + Util.Triple getStartTimeAndProcedure(String leaderboardName, String raceColumnName, String fleetName); MongoObjectFactory getMongoObjectFactory(); @@ -551,5 +551,5 @@ public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetch * For the reference to a remote sailing server, updates its events cache and returns the event list * or, if fetching the event list from the remote server did fail, the exception for which it failed. */ - Pair, Exception> updateRemoteServerEventCacheSynchronously(RemoteSailingServerReference ref); + Util.Pair, Exception> updateRemoteServerEventCacheSynchronously(RemoteSailingServerReference ref); } diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java index 07321aa48d9..4cab8cacfb9 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/Activator.java @@ -14,7 +14,6 @@ import org.osgi.framework.ServiceRegistration; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.racelog.tracking.TypeBasedServiceFinder; import com.sap.sailing.domain.persistence.racelog.tracking.GPSFixMongoHandler; import com.sap.sailing.domain.persistence.racelog.tracking.impl.GPSFixMongoHandlerImpl; @@ -24,6 +23,7 @@ import com.sap.sailing.domain.tracking.impl.GPSFixMovingImpl; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.racelog.tracking.CachedOsgiTypeBasedServiceFinderFactory; import com.sap.sailing.server.test.support.RacingEventServiceWithTestSupport; +import com.sap.sse.common.Util; public class Activator implements BundleActivator { private static final Logger logger = Logger.getLogger(Activator.class.getName()); @@ -85,7 +85,7 @@ public class Activator implements BundleActivator { serviceFinderFactory.close(); } // stop the tracking of the wind and all races - for (Triple windTracker : racingEventService.getWindTrackedRaces()) { + for (Util.Triple windTracker : racingEventService.getWindTrackedRaces()) { racingEventService.stopTrackingWind(windTracker.getA(), windTracker.getB()); } for (Regatta regatta : racingEventService.getAllRegattas()) { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/CourseChangeReplicator.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/CourseChangeReplicator.java index 679b994c626..c32de3e49be 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/CourseChangeReplicator.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/CourseChangeReplicator.java @@ -1,8 +1,8 @@ package com.sap.sailing.server.impl; import com.sap.sailing.domain.base.CourseListener; -import com.sap.sailing.domain.base.Regatta; 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.common.RegattaAndRaceIdentifier; import com.sap.sailing.domain.common.RegattaNameAndRaceName; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RaceLogReplicator.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RaceLogReplicator.java index 172be55caf1..eff077957c8 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RaceLogReplicator.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RaceLogReplicator.java @@ -5,6 +5,7 @@ import com.sap.sailing.domain.base.Fleet; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.base.RaceColumnListener; import com.sap.sailing.domain.leaderboard.ResultDiscardingRule; +import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.RaceLogIdentifier; import com.sap.sailing.domain.racelog.RaceLogIdentifierTemplateResolver; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RaceLogScoringReplicator.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RaceLogScoringReplicator.java index d1ea8b9a85c..29ed7b3cde0 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RaceLogScoringReplicator.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RaceLogScoringReplicator.java @@ -12,7 +12,6 @@ import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.ResultDiscardingRule; import com.sap.sailing.domain.racelog.RaceLog; @@ -127,7 +126,7 @@ public class RaceLogScoringReplicator implements RaceColumnListener { int numberOfCompetitorsInLeaderboard = Util.size(leaderboard.getCompetitors()); int numberOfCompetitorsInRace; - List> positioningList; + List> positioningList; numberOfCompetitorsInRace = getNumberOfCompetitorsInRace(raceColumn, fleet, numberOfCompetitorsInLeaderboard); @@ -142,7 +141,7 @@ public class RaceLogScoringReplicator implements RaceColumnListener { } if (positioningList != null) { - for (Triple positionedCompetitor : positioningList) { + for (com.sap.sse.common.Util.Triple positionedCompetitor : positioningList) { Competitor competitor = service.getBaseDomainFactory().getExistingCompetitorById(positionedCompetitor.getA()); if (positionedCompetitor.getC().equals(MaxPointsReason.NONE)) { @@ -166,7 +165,7 @@ public class RaceLogScoringReplicator implements RaceColumnListener { } private boolean setMaxPointsReasonInLeaderboardIfNecessary(Leaderboard leaderboard, RaceColumn raceColumn, - TimePoint timePoint, Triple positionedCompetitor, Competitor competitor) { + TimePoint timePoint, com.sap.sse.common.Util.Triple positionedCompetitor, Competitor competitor) { boolean scoreHasBeenCorrected = false; MaxPointsReason trackedMaxPointsReason = leaderboard.getMaxPointsReason(competitor, raceColumn, timePoint); @@ -227,7 +226,7 @@ public class RaceLogScoringReplicator implements RaceColumnListener { * @param positionedCompetitor the competitor whose rank shall be determined * @return the rank of the given positionedCompetitor */ - private int getRankInPositioningListByRaceCommittee(List> positioningList, Triple positionedCompetitor) { + private int getRankInPositioningListByRaceCommittee(List> positioningList, com.sap.sse.common.Util.Triple positionedCompetitor) { return positioningList.indexOf(positionedCompetitor) + 1; // indexOf gives the zero-based position requested competitor in the list, + 1 gives the one-based rank } 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 1a9ac279e43..5020ef3a346 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 @@ -72,8 +72,6 @@ import com.sap.sailing.domain.common.dto.RegattaCreationParametersDTO; import com.sap.sailing.domain.common.dto.SeriesCreationParametersDTO; import com.sap.sailing.domain.common.impl.DataImportProgressImpl; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.media.MediaTrack; import com.sap.sailing.domain.common.media.MediaTrack.MimeType; import com.sap.sailing.domain.common.racelog.RacingProcedureType; @@ -869,7 +867,7 @@ public class RacingEventServiceImpl implements RacingEventServiceWithTestSupport } @Override - public Map, Exception>> getPublicEventsOfAllSailingServers() { + public Map, Exception>> getPublicEventsOfAllSailingServers() { return remoteSailingServerSet.getCachedEventsForRemoteSailingServers(); // FIXME should probably add our own stuff here... Is it enough to pass on the remote reference URL to the client for leaderboard group URL construction? } @@ -882,7 +880,7 @@ public class RacingEventServiceImpl implements RacingEventServiceWithTestSupport } @Override - public Pair, Exception> updateRemoteServerEventCacheSynchronously(RemoteSailingServerReference ref) { + public com.sap.sse.common.Util.Pair, Exception> updateRemoteServerEventCacheSynchronously(RemoteSailingServerReference ref) { return remoteSailingServerSet.getEventsOrException(ref); } @@ -950,7 +948,7 @@ public class RacingEventServiceImpl implements RacingEventServiceWithTestSupport public Regatta createRegatta(String baseRegattaName, String boatClassName, Serializable id, Iterable series, boolean persistent, ScoringScheme scoringScheme, Serializable defaultCourseAreaId) { - Pair regattaWithCreatedFlag = getOrCreateRegattaWithoutReplication(baseRegattaName, + com.sap.sse.common.Util.Pair regattaWithCreatedFlag = getOrCreateRegattaWithoutReplication(baseRegattaName, boatClassName, id, series, persistent, scoringScheme, defaultCourseAreaId); Regatta regatta = regattaWithCreatedFlag.getA(); if (regattaWithCreatedFlag.getB()) { @@ -960,7 +958,7 @@ public class RacingEventServiceImpl implements RacingEventServiceWithTestSupport } @Override - public Pair getOrCreateRegattaWithoutReplication(String baseRegattaName, String boatClassName, + public com.sap.sse.common.Util.Pair getOrCreateRegattaWithoutReplication(String baseRegattaName, String boatClassName, Serializable id, Iterable series, boolean persistent, ScoringScheme scoringScheme, Serializable defaultCourseAreaId) { RaceLogStore raceLogStore = MongoRaceLogStoreFactory.INSTANCE.getMongoRaceLogStore(mongoObjectFactory, @@ -998,7 +996,7 @@ public class RacingEventServiceImpl implements RacingEventServiceWithTestSupport } } } - return new Pair(regatta, wasCreated); + return new com.sap.sse.common.Util.Pair(regatta, wasCreated); } @Override @@ -1684,14 +1682,14 @@ public class RacingEventServiceImpl implements RacingEventServiceWithTestSupport } @Override - public Iterable> getWindTrackedRaces() { - List> result = new ArrayList>(); + public Iterable> getWindTrackedRaces() { + List> result = new ArrayList>(); for (Regatta regatta : getAllRegattas()) { for (RaceDefinition race : regatta.getAllRaces()) { for (WindTrackerFactory windTrackerFactory : getWindTrackerFactories()) { WindTracker windTracker = windTrackerFactory.getExistingWindTracker(race); if (windTracker != null) { - result.add(new Triple(regatta, race, windTracker.toString())); + result.add(new com.sap.sse.common.Util.Triple(regatta, race, windTracker.toString())); } } } @@ -2480,11 +2478,11 @@ public class RacingEventServiceImpl implements RacingEventServiceWithTestSupport } @Override - public Triple getStartTimeAndProcedure(String leaderboardName, String raceColumnName, String fleetName) { + public com.sap.sse.common.Util.Triple getStartTimeAndProcedure(String leaderboardName, String raceColumnName, String fleetName) { RaceLog raceLog = getRaceLog(leaderboardName, raceColumnName, fleetName); if (raceLog != null) { ReadonlyRaceState state = ReadonlyRaceStateImpl.create(raceLog); - return new Triple(state.getStartTime(), raceLog.getCurrentPassId(), state.getRacingProcedure().getType()); + return new com.sap.sse.common.Util.Triple(state.getStartTime(), raceLog.getCurrentPassId(), state.getRacingProcedure().getType()); } return null; } diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RemoteSailingServerSet.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RemoteSailingServerSet.java index 835fdbea52a..cae67699a95 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RemoteSailingServerSet.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/impl/RemoteSailingServerSet.java @@ -25,11 +25,11 @@ import com.sap.sailing.domain.base.DomainFactory; import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.base.EventBase; import com.sap.sailing.domain.base.RemoteSailingServerReference; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.server.gateway.deserialization.impl.CourseAreaJsonDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.EventBaseJsonDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.LeaderboardGroupBaseJsonDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.VenueJsonDeserializer; +import com.sap.sse.common.Util; /** * A set of {@link RemoteSailingServerReference}s including a cache of their {@link EventBase events} that is @@ -48,7 +48,7 @@ public class RemoteSailingServerSet { */ private final ConcurrentHashMap remoteSailingServers; - private final ConcurrentHashMap, Exception>> cachedEventsForRemoteSailingServers; + private final ConcurrentHashMap, Exception>> cachedEventsForRemoteSailingServers; /** * @param scheduler @@ -83,9 +83,9 @@ public class RemoteSailingServerSet { }.start(); } - private Pair, Exception> updateRemoteServerEventCacheSynchronously(RemoteSailingServerReference ref) { + private Util.Pair, Exception> updateRemoteServerEventCacheSynchronously(RemoteSailingServerReference ref) { BufferedReader bufferedReader = null; - Pair, Exception> result; + Util.Pair, Exception> result; try { try { final URL eventsURL = getEventsURL(ref.getURL()); @@ -104,7 +104,7 @@ public class RemoteSailingServerSet { EventBase event = deserializer.deserialize(eventAsJson); events.add(event); } - result = new Pair, Exception>(events, /* exception */ null); + result = new Util.Pair, Exception>(events, /* exception */ null); } finally { if (bufferedReader != null) { bufferedReader.close(); @@ -112,7 +112,7 @@ public class RemoteSailingServerSet { } } catch (IOException | ParseException e) { logger.log(Level.INFO, "Exception trying to fetch events from remote server "+ref+": "+e.getMessage(), e); - result = new Pair, Exception>(/* events */ null, e); + result = new Util.Pair, Exception>(/* events */ null, e); } cachedEventsForRemoteSailingServers.put(ref, result); return result; @@ -127,7 +127,7 @@ public class RemoteSailingServerSet { return new URL(getEventsUrl); } - public Map, Exception>> getCachedEventsForRemoteSailingServers() { + public Map, Exception>> getCachedEventsForRemoteSailingServers() { return Collections.unmodifiableMap(cachedEventsForRemoteSailingServers); } @@ -144,7 +144,7 @@ public class RemoteSailingServerSet { * result is cached. If ref was not yet part of this remote sailing server reference set, * it is automatically added. */ - public Pair, Exception> getEventsOrException(RemoteSailingServerReference ref) { + public Util.Pair, Exception> getEventsOrException(RemoteSailingServerReference ref) { if (!remoteSailingServers.containsKey(ref.getName())) { remoteSailingServers.put(ref.getName(), ref); } diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/masterdata/DummyTrackedRace.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/masterdata/DummyTrackedRace.java index 88cd340fcf7..2c953f78852 100644 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/masterdata/DummyTrackedRace.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/masterdata/DummyTrackedRace.java @@ -22,7 +22,6 @@ import com.sap.sailing.domain.common.Speed; import com.sap.sailing.domain.common.Tack; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.WindSource; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.racelog.RaceLog; import com.sap.sailing.domain.racelog.tracking.GPSFixStore; import com.sap.sailing.domain.tracking.CourseDesignChangedListener; @@ -44,6 +43,7 @@ import com.sap.sailing.domain.tracking.WindStore; import com.sap.sailing.domain.tracking.WindWithConfidence; import com.sap.sailing.domain.tracking.impl.EmptyWindStore; import com.sap.sailing.domain.tracking.impl.TrackedRegattaImpl; +import com.sap.sse.common.Util; public class DummyTrackedRace extends TrackedRaceWithWindEssentials { private static final long serialVersionUID = -11522605089325440L; @@ -85,7 +85,7 @@ public class DummyTrackedRace extends TrackedRaceWithWindEssentials { } @Override - public Iterable>> getMarkPassingsTimes() { + public Iterable>> getMarkPassingsTimes() { return null; } @@ -353,7 +353,7 @@ public class DummyTrackedRace extends TrackedRaceWithWindEssentials { } @Override - public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at) { + public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at) { // TODO Auto-generated method stub return null; } @@ -365,7 +365,7 @@ public class DummyTrackedRace extends TrackedRaceWithWindEssentials { } @Override - public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at, + public WindWithConfidence> getWindWithConfidence(Position p, TimePoint at, Iterable windSourcesToExclude) { // TODO Auto-generated method stub return null; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/ImportMasterDataOperation.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/ImportMasterDataOperation.java index 45fa8d47d90..c9e25b89521 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/ImportMasterDataOperation.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/ImportMasterDataOperation.java @@ -27,7 +27,6 @@ import com.sap.sailing.domain.common.ScoringSchemeType; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MasterDataImportObjectCreationCountImpl; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.FlexibleLeaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.LeaderboardGroup; @@ -303,7 +302,7 @@ public class ImportMasterDataOperation extends * @param leaderboard * @return the race column and fleet the dummy was attached to */ - public Pair addDummyTrackedRace(Leaderboard leaderboard, + public com.sap.sse.common.Util.Pair addDummyTrackedRace(Leaderboard leaderboard, Regatta regatta) { RaceColumn raceColumn = null; Fleet fleet = null; @@ -319,7 +318,7 @@ public class ImportMasterDataOperation extends raceColumn.setTrackedRace(fleet, dummy); } } - return new Pair(raceColumn, fleet); + return new com.sap.sse.common.Util.Pair(raceColumn, fleet); } private void createWindTracks(RacingEventService toState) { diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveAndUntrackRace.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveAndUntrackRace.java index b20f36b8467..21066f7de99 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveAndUntrackRace.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/RemoveAndUntrackRace.java @@ -2,8 +2,8 @@ package com.sap.sailing.server.operationaltransformation; import java.io.IOException; -import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.RaceDefinition; +import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.RacingEventServiceOperation; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/StopTrackingRace.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/StopTrackingRace.java index 0457d309ee4..f2375e87c89 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/StopTrackingRace.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/StopTrackingRace.java @@ -1,7 +1,7 @@ package com.sap.sailing.server.operationaltransformation; -import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.RaceDefinition; +import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.common.RegattaAndRaceIdentifier; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.RacingEventServiceOperation; diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardMaxPointsReason.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardMaxPointsReason.java index 2a1cce83097..782f7b34654 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardMaxPointsReason.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardMaxPointsReason.java @@ -5,13 +5,13 @@ import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.Leaderboard.Entry; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sse.common.Util; -public class UpdateLeaderboardMaxPointsReason extends AbstractLeaderboardColumnOperation> { +public class UpdateLeaderboardMaxPointsReason extends AbstractLeaderboardColumnOperation> { private static final long serialVersionUID = -492130952256848047L; private final String competitorIdAsString; private final MaxPointsReason newMaxPointsReason; @@ -38,7 +38,7 @@ public class UpdateLeaderboardMaxPointsReason extends AbstractLeaderboardColumnO } @Override - public Triple internalApplyTo(RacingEventService toState) throws NoWindException { + public Util.Triple internalApplyTo(RacingEventService toState) throws NoWindException { Leaderboard leaderboard = toState.getLeaderboardByName(getLeaderboardName()); if (leaderboard != null) { Competitor competitor = leaderboard.getCompetitorByIdAsString(competitorIdAsString); @@ -51,7 +51,7 @@ public class UpdateLeaderboardMaxPointsReason extends AbstractLeaderboardColumnO updateStoredLeaderboard(toState, leaderboard); Entry updatedEntry = leaderboard.getEntry(competitor, raceColumn, timePoint); boolean isScoreCorrected = leaderboard.getScoreCorrection().isScoreCorrected(competitor, raceColumn, timePoint); - return new Triple(updatedEntry.getNetPoints(), updatedEntry.getTotalPoints(), isScoreCorrected); + return new Util.Triple(updatedEntry.getNetPoints(), updatedEntry.getTotalPoints(), isScoreCorrected); } else { throw new IllegalArgumentException("Didn't find competitor with ID "+competitorIdAsString+" in leaderboard "+getLeaderboardName()); } diff --git a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardScoreCorrection.java b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardScoreCorrection.java index 31c073f27e0..5383df3a2f7 100755 --- a/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardScoreCorrection.java +++ b/java/com.sap.sailing.server/src/com/sap/sailing/server/operationaltransformation/UpdateLeaderboardScoreCorrection.java @@ -4,12 +4,12 @@ import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.base.RaceColumn; import com.sap.sailing.domain.common.NoWindException; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.RacingEventServiceOperation; +import com.sap.sse.common.Util; -public class UpdateLeaderboardScoreCorrection extends AbstractLeaderboardColumnOperation> { +public class UpdateLeaderboardScoreCorrection extends AbstractLeaderboardColumnOperation> { private static final long serialVersionUID = -977025759476022993L; private final String competitorIdAsString; private final Double correctedScore; @@ -39,7 +39,7 @@ public class UpdateLeaderboardScoreCorrection extends AbstractLeaderboardColumnO } @Override - public Triple internalApplyTo(RacingEventService toState) throws NoWindException { + public Util.Triple internalApplyTo(RacingEventService toState) throws NoWindException { Leaderboard leaderboard = toState.getLeaderboardByName(getLeaderboardName()); Double newNetPoints; Double newTotalPoints; @@ -64,7 +64,7 @@ public class UpdateLeaderboardScoreCorrection extends AbstractLeaderboardColumnO throw new IllegalArgumentException("Didn't find leaderboard "+getLeaderboardName()); } updateStoredLeaderboard(toState, leaderboard); - return new Triple(newNetPoints, newTotalPoints, isScoreCorrected); + return new Util.Triple(newNetPoints, newTotalPoints, isScoreCorrected); } } diff --git a/java/com.sap.sailing.simulator.test/META-INF/MANIFEST.MF b/java/com.sap.sailing.simulator.test/META-INF/MANIFEST.MF index 2077d7f4b90..c3560a6603c 100755 --- a/java/com.sap.sailing.simulator.test/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.simulator.test/META-INF/MANIFEST.MF @@ -10,4 +10,5 @@ Require-Bundle: com.sap.sailing.simulator;bundle-version="1.0.0", com.sap.sailing.domain;bundle-version="1.0.0", com.sap.sailing.domain.common;bundle-version="1.0.0", com.sap.sailing.server;bundle-version="1.0.0", - com.sap.sailing.domain.tractracadapter + com.sap.sailing.domain.tractracadapter, + com.sap.sse.common diff --git a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/RectangularBoundaryTest.java b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/RectangularBoundaryTest.java index 09dc3634743..b5c6ca5b64c 100644 --- a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/RectangularBoundaryTest.java +++ b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/RectangularBoundaryTest.java @@ -1,6 +1,6 @@ package com.sap.sailing.simulator.test; -import static org.junit.Assert.*; +import static org.junit.Assert.assertEquals; import org.junit.Test; diff --git a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/WindFieldGeneratorTest.java b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/WindFieldGeneratorTest.java index fc415ac9122..23d2d19eb8e 100644 --- a/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/WindFieldGeneratorTest.java +++ b/java/com.sap.sailing.simulator.test/src/com/sap/sailing/simulator/test/WindFieldGeneratorTest.java @@ -20,7 +20,6 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.DegreePosition; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.simulator.impl.RectangularBoundary; import com.sap.sailing.simulator.impl.TimedPositionWithSpeedImpl; @@ -29,6 +28,7 @@ import com.sap.sailing.simulator.windfield.impl.WindFieldGeneratorBlastImpl; import com.sap.sailing.simulator.windfield.impl.WindFieldGeneratorCombined; import com.sap.sailing.simulator.windfield.impl.WindFieldGeneratorImpl; import com.sap.sailing.simulator.windfield.impl.WindFieldGeneratorOscillationImpl; +import com.sap.sse.common.Util; /** * Test for @WindFieldGenerator @@ -128,7 +128,7 @@ public class WindFieldGeneratorTest { assertEquals("StartTime Last Wind Speed ", 9, windList.get(windList.size() - 1).getKnots(), 0); // Check the angle assertEquals("StartTime First Wind Angle ", 0, windList.get(0).getBearing().getRadians(), 0); - Pair pairIndex = getIndex(windList.size(), hSteps); + Util.Pair pairIndex = getIndex(windList.size(), hSteps); logger.info(pairIndex.toString()); assertEquals("StartTime One before Middle Wind Angle ", 0.3224948, windList.get(windList.size() / 2 - 2).getBearing() .getRadians(), epsilon); @@ -274,15 +274,15 @@ public class WindFieldGeneratorTest { } - private Pair getIndex(int listIndex, int numCols) { - Pair indexPair = new Pair(1 + (listIndex - 1) / numCols, 1 + private Util.Pair getIndex(int listIndex, int numCols) { + Util.Pair indexPair = new Util.Pair(1 + (listIndex - 1) / numCols, 1 + (listIndex - 1) % numCols); return indexPair; } @Test public void testIndex() { - Pair pairIndex = getIndex(1, 30); + Util.Pair pairIndex = getIndex(1, 30); assertEquals("Index 1 RowIndex ", 1, (int) pairIndex.getA()); assertEquals("Index 1 ColIndex ", 1, (int) pairIndex.getB()); pairIndex = getIndex(30, 30); diff --git a/java/com.sap.sailing.simulator/META-INF/MANIFEST.MF b/java/com.sap.sailing.simulator/META-INF/MANIFEST.MF index 7ca2d90b68a..27845ca67c5 100644 --- a/java/com.sap.sailing.simulator/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.simulator/META-INF/MANIFEST.MF @@ -8,7 +8,8 @@ Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Require-Bundle: com.sap.sailing.domain.common;bundle-version="1.0.0", com.sap.sailing.domain;bundle-version="1.0.0", com.sap.sailing.server;bundle-version="1.0.0", - com.sap.sailing.domain.tractracadapter + com.sap.sailing.domain.tractracadapter, + com.sap.sse.common Bundle-ActivationPolicy: lazy Import-Package: org.osgi.framework;version="1.6.0" Bundle-ClassPath: ., diff --git a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/Boundary.java b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/Boundary.java index e981ed95df4..d89f2dab8bc 100644 --- a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/Boundary.java +++ b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/Boundary.java @@ -7,7 +7,7 @@ import com.sap.sailing.domain.common.Bearing; import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; public interface Boundary extends Serializable { @@ -25,7 +25,7 @@ public interface Boundary extends Serializable { //List extractLattice(int hPoints, int vPoints); Position[][] extractGrid(int hPoints, int vPoints, int borderY, int borderX); //List extractLattice(Distance hStep, Distance vstep); - public Pair getGridIndex(Position x); + public Util.Pair getGridIndex(Position x); public int getResY(); public int getResX(); diff --git a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorDijkstra.java b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorDijkstra.java index 48ec11ee7e6..3e17816a5cb 100644 --- a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorDijkstra.java +++ b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorDijkstra.java @@ -14,7 +14,6 @@ import com.sap.sailing.domain.common.Speed; import com.sap.sailing.domain.common.SpeedWithBearing; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.simulator.Boundary; import com.sap.sailing.simulator.Path; import com.sap.sailing.simulator.PolarDiagram; @@ -22,6 +21,7 @@ import com.sap.sailing.simulator.SimulationParameters; import com.sap.sailing.simulator.TimedPosition; import com.sap.sailing.simulator.TimedPositionWithSpeed; import com.sap.sailing.simulator.windfield.WindFieldGenerator; +import com.sap.sse.common.Util; public class PathGeneratorDijkstra extends PathGeneratorBase { @@ -73,12 +73,12 @@ public class PathGeneratorDijkstra extends PathGeneratorBase { // create tentative distance matrix // additional to tentative distances, the matrix also contains the root of each position // that can be if unavailable - Map> tentativeDistances = new HashMap>(); + Map> tentativeDistances = new HashMap>(); for (Position p : graph.keySet()) { - tentativeDistances.put(p, new Pair(Long.MAX_VALUE, null)); + tentativeDistances.put(p, new Util.Pair(Long.MAX_VALUE, null)); } - tentativeDistances.put(start, new Pair(startTime.asMillis(), null)); - tentativeDistances.put(end, new Pair(Long.MAX_VALUE, null)); + tentativeDistances.put(start, new Util.Pair(startTime.asMillis(), null)); + tentativeDistances.put(end, new Util.Pair(Long.MAX_VALUE, null)); // create set of unvisited nodes List unvisited = new ArrayList(graph.keySet()); @@ -118,7 +118,7 @@ public class PathGeneratorDijkstra extends PathGeneratorBase { Long tentativeDistanceToP = currentTime.asMillis() + timeToP; if (tentativeDistanceToP < tentativeDistances.get(p).getA()) { - tentativeDistances.put(p, new Pair(tentativeDistanceToP, currentPosition)); + tentativeDistances.put(p, new Util.Pair(tentativeDistanceToP, currentPosition)); } } diff --git a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTreeGrowWind.java b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTreeGrowWind.java index 6b468896d4e..6e843497337 100644 --- a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTreeGrowWind.java +++ b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTreeGrowWind.java @@ -12,7 +12,6 @@ import com.sap.sailing.domain.common.SpeedWithBearing; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.domain.tracking.impl.WindImpl; import com.sap.sailing.simulator.Path; @@ -21,6 +20,7 @@ import com.sap.sailing.simulator.SimulationParameters; import com.sap.sailing.simulator.TimedPosition; import com.sap.sailing.simulator.TimedPositionWithSpeed; import com.sap.sailing.simulator.windfield.WindFieldGenerator; +import com.sap.sse.common.Util; public class PathGeneratorTreeGrowWind extends PathGeneratorBase { @@ -91,7 +91,7 @@ public class PathGeneratorTreeGrowWind extends PathGeneratorBase { // generate step in one of the possible directions // default: L - left, R - right // extended: M - wide left, S - wide right - Pair getStep(TimedPosition pos, long timeStep, long turnLoss, boolean sameBaseDirection, char nextDirection) { + Util.Pair getStep(TimedPosition pos, long timeStep, long turnLoss, boolean sameBaseDirection, char nextDirection) { double offDeg = 5.0; WindFieldGenerator wf = this.parameters.getWindField(); @@ -129,7 +129,7 @@ public class PathGeneratorTreeGrowWind extends PathGeneratorBase { travelTime = new MillisecondsTimePoint(nextTime.asMillis() - turnLoss); } - return new Pair(new TimedPositionImpl(nextTime, travelSpeed.travelTo(curPosition, curTime, travelTime)), appWind); + return new Util.Pair(new TimedPositionImpl(nextTime, travelSpeed.travelTo(curPosition, curTime, travelTime)), appWind); } // use base direction to distinguish direction changes that do or don't require a turn @@ -167,7 +167,7 @@ public class PathGeneratorTreeGrowWind extends PathGeneratorBase { } // calculate next path position (taking turn-loss into account) - Pair nextStep = this.getStep(path.pos, timeStep, turnLoss, sameBaseDirection, nextDirection); + Util.Pair nextStep = this.getStep(path.pos, timeStep, turnLoss, sameBaseDirection, nextDirection); TimedPosition pathPos = nextStep.getA(); Wind posWind = nextStep.getB(); diff --git a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTreeGrowWind2.java b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTreeGrowWind2.java index 6da8bdc2ebe..8cdac6d5ca6 100644 --- a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTreeGrowWind2.java +++ b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTreeGrowWind2.java @@ -16,7 +16,6 @@ import com.sap.sailing.domain.common.SpeedWithBearing; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.domain.tracking.impl.WindImpl; import com.sap.sailing.simulator.Path; @@ -25,6 +24,7 @@ import com.sap.sailing.simulator.SimulationParameters; import com.sap.sailing.simulator.TimedPosition; import com.sap.sailing.simulator.TimedPositionWithSpeed; import com.sap.sailing.simulator.windfield.WindFieldGenerator; +import com.sap.sse.common.Util; public class PathGeneratorTreeGrowWind2 extends PathGeneratorBase { @@ -95,7 +95,7 @@ public class PathGeneratorTreeGrowWind2 extends PathGeneratorBase { // generate step in one of the possible directions // default: L - left, R - right // extended: M - wide left, S - wide right - Pair getStep(TimedPosition pos, long timeStep, long turnLoss, boolean sameBaseDirection, char nextDirection) { + Util.Pair getStep(TimedPosition pos, long timeStep, long turnLoss, boolean sameBaseDirection, char nextDirection) { double offDeg = 3.0; WindFieldGenerator wf = this.parameters.getWindField(); @@ -133,7 +133,7 @@ public class PathGeneratorTreeGrowWind2 extends PathGeneratorBase { travelTime = new MillisecondsTimePoint(nextTime.asMillis() - turnLoss); } - return new Pair(new TimedPositionImpl(nextTime, travelSpeed.travelTo(curPosition, curTime, travelTime)), appWind); + return new Util.Pair(new TimedPositionImpl(nextTime, travelSpeed.travelTo(curPosition, curTime, travelTime)), appWind); } // use base direction to distinguish direction changes that do or don't require a turn @@ -171,7 +171,7 @@ public class PathGeneratorTreeGrowWind2 extends PathGeneratorBase { } // calculate next path position (taking turn-loss into account) - Pair nextStep = this.getStep(path.pos, timeStep, turnLoss, sameBaseDirection, nextDirection); + Util.Pair nextStep = this.getStep(path.pos, timeStep, turnLoss, sameBaseDirection, nextDirection); TimedPosition pathPos = nextStep.getA(); Wind posWind = nextStep.getB(); @@ -263,7 +263,7 @@ public class PathGeneratorTreeGrowWind2 extends PathGeneratorBase { return result; } - Pair,List> generateCandidate(List oldPaths, long timeStep, long turnLoss, Position posStart, Position posMiddle, Position posEnd, double tgtHeight) { + Util.Pair,List> generateCandidate(List oldPaths, long timeStep, long turnLoss, Position posStart, Position posMiddle, Position posEnd, double tgtHeight) { List newPathCands; List leftPaths = new ArrayList(); @@ -288,7 +288,7 @@ public class PathGeneratorTreeGrowWind2 extends PathGeneratorBase { } - Pair,List> newPaths = new Pair,List>(leftPaths, rightPaths); + Util.Pair,List> newPaths = new Util.Pair,List>(leftPaths, rightPaths); return newPaths; } @@ -436,7 +436,7 @@ public class PathGeneratorTreeGrowWind2 extends PathGeneratorBase { } // generate new candidates (inside regatta-area) - Pair,List> newPaths = this.generateCandidate(allPaths, timeStep, turnLoss, startPos, middlePos, endPos, distStartEndMeters); + Util.Pair,List> newPaths = this.generateCandidate(allPaths, timeStep, turnLoss, startPos, middlePos, endPos, distStartEndMeters); // select good candidates diff --git a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTreeGrowWind3.java b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTreeGrowWind3.java index 7744cd2fc07..c5a903d8802 100644 --- a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTreeGrowWind3.java +++ b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/PathGeneratorTreeGrowWind3.java @@ -16,7 +16,6 @@ import com.sap.sailing.domain.common.SpeedWithBearing; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.domain.tracking.impl.WindImpl; import com.sap.sailing.simulator.Path; @@ -25,6 +24,7 @@ import com.sap.sailing.simulator.SimulationParameters; import com.sap.sailing.simulator.TimedPosition; import com.sap.sailing.simulator.TimedPositionWithSpeed; import com.sap.sailing.simulator.windfield.WindFieldGenerator; +import com.sap.sse.common.Util; public class PathGeneratorTreeGrowWind3 extends PathGeneratorBase { @@ -104,7 +104,7 @@ public class PathGeneratorTreeGrowWind3 extends PathGeneratorBase { // generate step in one of the possible directions // default: L - left, R - right // extended: M - wide left, S - wide right - Pair getStep(TimedPosition pos, long timeStep, long turnLoss, boolean sameBaseDirection, char nextDirection) { + Util.Pair getStep(TimedPosition pos, long timeStep, long turnLoss, boolean sameBaseDirection, char nextDirection) { double offDeg = 3.0; WindFieldGenerator wf = this.parameters.getWindField(); @@ -160,7 +160,7 @@ public class PathGeneratorTreeGrowWind3 extends PathGeneratorBase { travelTime = new MillisecondsTimePoint(nextTime.asMillis() - turnLoss); } - return new Pair(new TimedPositionImpl(nextTime, travelSpeed.travelTo(curPosition, curTime, travelTime)), appWind); + return new Util.Pair(new TimedPositionImpl(nextTime, travelSpeed.travelTo(curPosition, curTime, travelTime)), appWind); } // use base direction to distinguish direction changes that do or don't require a turn @@ -198,7 +198,7 @@ public class PathGeneratorTreeGrowWind3 extends PathGeneratorBase { } // calculate next path position (taking turn-loss into account) - Pair nextStep = this.getStep(path.pos, timeStep, turnLoss, sameBaseDirection, nextDirection); + Util.Pair nextStep = this.getStep(path.pos, timeStep, turnLoss, sameBaseDirection, nextDirection); TimedPosition pathPos = nextStep.getA(); Wind posWind = nextStep.getB(); @@ -298,7 +298,7 @@ public class PathGeneratorTreeGrowWind3 extends PathGeneratorBase { return result; } - Pair,List> generateCandidate(List oldPaths, long timeStep, long turnLoss, Position posStart, Position posMiddle, Position posEnd, double tgtHeight) { + Util.Pair,List> generateCandidate(List oldPaths, long timeStep, long turnLoss, Position posStart, Position posMiddle, Position posEnd, double tgtHeight) { List newPathCands; List leftPaths = new ArrayList(); @@ -323,7 +323,7 @@ public class PathGeneratorTreeGrowWind3 extends PathGeneratorBase { } - Pair,List> newPaths = new Pair,List>(leftPaths, rightPaths); + Util.Pair,List> newPaths = new Util.Pair,List>(leftPaths, rightPaths); return newPaths; } @@ -572,7 +572,7 @@ public class PathGeneratorTreeGrowWind3 extends PathGeneratorBase { } // generate new candidates (inside regatta-area) - Pair,List> newPaths = this.generateCandidate(allPaths, timeStep, turnLoss, startPos, middlePos, endPos, distStartEndMeters); + Util.Pair,List> newPaths = this.generateCandidate(allPaths, timeStep, turnLoss, startPos, middlePos, endPos, distStartEndMeters); // select good candidates diff --git a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/RectangularBoundary.java b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/RectangularBoundary.java index a01fbd78df7..4dd22f70006 100644 --- a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/RectangularBoundary.java +++ b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/RectangularBoundary.java @@ -7,8 +7,8 @@ import com.sap.sailing.domain.common.Bearing; import com.sap.sailing.domain.common.Distance; import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.impl.DegreePosition; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.simulator.Boundary; +import com.sap.sse.common.Util; public class RectangularBoundary implements Boundary { @@ -221,7 +221,7 @@ public class RectangularBoundary implements Boundary { } - public Pair getGridIndex(Position x) { + public Util.Pair getGridIndex(Position x) { double[] scX = new double[2]; scX[0] = x.getLatDeg() - rcStart.getLatDeg(); @@ -233,7 +233,7 @@ public class RectangularBoundary implements Boundary { int hIdx = Math.min(Math.max(-this.borderX, (int) Math.round(sPrd + (hPoints - 1) / 2.)), hPoints - 1 + this.borderX); // System.out.println("getGridIndex: "+vIdx+","+hIdx+"("+vPoints+","+hPoints+")"); - return new Pair(vIdx, hIdx); + return new Util.Pair(vIdx, hIdx); } diff --git a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/SailingSimulatorImpl.java b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/SailingSimulatorImpl.java index b2a7dd2be1f..6144fdffa4a 100644 --- a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/SailingSimulatorImpl.java +++ b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/SailingSimulatorImpl.java @@ -12,7 +12,6 @@ import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; import com.sap.sailing.domain.common.impl.MeterDistance; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.simulator.Boundary; import com.sap.sailing.simulator.Path; import com.sap.sailing.simulator.RaceProperties; @@ -21,6 +20,7 @@ import com.sap.sailing.simulator.SimulationParameters; import com.sap.sailing.simulator.SimulatorUISelection; import com.sap.sailing.simulator.util.SailingSimulatorConstants; import com.sap.sailing.simulator.windfield.WindFieldGenerator; +import com.sap.sse.common.Util; public class SailingSimulatorImpl implements SailingSimulator { @@ -231,7 +231,7 @@ public class SailingSimulatorImpl implements SailingSimulator { Path gpsPath = null; Path gpsPathPoly = null; - Pair, Path> result = SimulatorUtils.readLegPathsFromResources(selection.getRaceIndex(), selection.getCompetitorIndex(), + Util.Pair, Path> result = SimulatorUtils.readLegPathsFromResources(selection.getRaceIndex(), selection.getCompetitorIndex(), selection.getLegIndex()); allPaths = result.getA(); this.raceCourse = result.getB(); diff --git a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/SimulatorUtils.java b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/SimulatorUtils.java index cb1bb66bde1..245ee63acf5 100644 --- a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/SimulatorUtils.java +++ b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/impl/SimulatorUtils.java @@ -22,7 +22,6 @@ import java.util.logging.Logger; import org.osgi.framework.FrameworkUtil; import com.sap.sailing.domain.common.Position; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.racelog.RaceLogStore; import com.sap.sailing.domain.tracking.RacesHandle; import com.sap.sailing.domain.tractracadapter.TracTracAdapterFactory; @@ -34,6 +33,7 @@ import com.sap.sailing.simulator.TimedPositionWithSpeed; import com.sap.sailing.simulator.util.SailingSimulatorConstants; import com.sap.sailing.simulator.windfield.WindFieldGenerator; import com.sap.sailing.simulator.windfield.impl.WindFieldGeneratorMeasured; +import com.sap.sse.common.Util; @SuppressWarnings("restriction") public class SimulatorUtils { @@ -170,7 +170,7 @@ public class SimulatorUtils { return result; } - public static Pair, Path> readLegPathsFromResources(int selectedRaceIndex, + public static Util.Pair, Path> readLegPathsFromResources(int selectedRaceIndex, int selectedCompetitorIndex, int selectedLegIndex) { HashMap paths = new HashMap(); @@ -198,10 +198,10 @@ public class SimulatorUtils { + SimulatorUtils.getFileName(selectedRaceIndex, selectedCompetitorIndex, selectedLegIndex, "racecourse")); - return new Pair, Path>(paths, raceCourse); + return new Util.Pair, Path>(paths, raceCourse); } - public static Pair, Path> readPathsFromResources() { + public static Util.Pair, Path> readPathsFromResources() { HashMap paths = new HashMap(); Path path = null; String filePath = ""; @@ -221,7 +221,7 @@ public class SimulatorUtils { Path raceCourse = (Path) readObjectFromResources("resources/" + RACECOURSE_DAT); - return new Pair, Path>(paths, raceCourse); + return new Util.Pair, Path>(paths, raceCourse); } public static Object readObjectExternalFile(String fileName) { diff --git a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorBlastImpl.java b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorBlastImpl.java index 20a9c549bab..9a511330761 100644 --- a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorBlastImpl.java +++ b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorBlastImpl.java @@ -11,13 +11,13 @@ import com.sap.sailing.domain.common.SpeedWithBearing; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.domain.tracking.impl.WindImpl; import com.sap.sailing.simulator.Boundary; import com.sap.sailing.simulator.TimedPosition; import com.sap.sailing.simulator.windfield.WindControlParameters; import com.sap.sailing.simulator.windfield.WindFieldGenerator; +import com.sap.sse.common.Util; public class WindFieldGeneratorBlastImpl extends WindFieldGeneratorImpl implements WindFieldGenerator { @@ -182,7 +182,7 @@ public class WindFieldGeneratorBlastImpl extends WindFieldGeneratorImpl implemen private SpeedWithBearing getSpeedWithBearing(TimedPosition timedPosition) { Position p = timedPosition.getPosition(); - Pair positionIndex = getPositionIndex(p); + Util.Pair positionIndex = getPositionIndex(p); if (positionIndex != null) { int rowIndex = positionIndex.getA() + this.boundary.getBorderY(); int colIndex = positionIndex.getB() + this.boundary.getBorderX(); diff --git a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorImpl.java b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorImpl.java index 380ec200b99..dc8962013ab 100644 --- a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorImpl.java +++ b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorImpl.java @@ -10,7 +10,6 @@ import com.sap.sailing.domain.common.SpeedWithBearing; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.KnotSpeedImpl; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.domain.tracking.impl.WindImpl; import com.sap.sailing.simulator.Boundary; @@ -22,6 +21,7 @@ import com.sap.sailing.simulator.impl.TimedPositionImpl; import com.sap.sailing.simulator.impl.TimedPositionWithSpeedImpl; import com.sap.sailing.simulator.windfield.WindControlParameters; import com.sap.sailing.simulator.windfield.WindFieldGenerator; +import com.sap.sse.common.Util; public abstract class WindFieldGeneratorImpl implements WindFieldGenerator { @@ -136,8 +136,8 @@ public abstract class WindFieldGeneratorImpl implements WindFieldGenerator { return this.positions[i][j]; } - public Pair getPositionIndex(Position p) { - Pair gIdx = boundary.getGridIndex(p); + public Util.Pair getPositionIndex(Position p) { + Util.Pair gIdx = boundary.getGridIndex(p); if ((gIdx.getA() != null) && (gIdx.getB() != null)) { return gIdx; } else { diff --git a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorOscillationImpl.java b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorOscillationImpl.java index 744d0443593..031c4f61923 100644 --- a/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorOscillationImpl.java +++ b/java/com.sap.sailing.simulator/src/com/sap/sailing/simulator/windfield/impl/WindFieldGeneratorOscillationImpl.java @@ -11,13 +11,13 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.DegreeBearingImpl; import com.sap.sailing.domain.common.impl.KnotSpeedImpl; import com.sap.sailing.domain.common.impl.KnotSpeedWithBearingImpl; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.tracking.Wind; import com.sap.sailing.domain.tracking.impl.WindImpl; import com.sap.sailing.simulator.Boundary; import com.sap.sailing.simulator.TimedPosition; import com.sap.sailing.simulator.windfield.WindControlParameters; import com.sap.sailing.simulator.windfield.WindFieldGenerator; +import com.sap.sse.common.Util; public class WindFieldGeneratorOscillationImpl extends WindFieldGeneratorImpl implements WindFieldGenerator { @@ -82,7 +82,7 @@ public class WindFieldGeneratorOscillationImpl extends WindFieldGeneratorImpl im private Speed getSpeed(TimedPosition timedPosition) { Position p = timedPosition.getPosition(); - Pair positionIndex = getPositionIndex(p); + Util.Pair positionIndex = getPositionIndex(p); if (positionIndex != null) { int colIndex = positionIndex.getB(); if (colIndex < 0) { @@ -101,7 +101,7 @@ public class WindFieldGeneratorOscillationImpl extends WindFieldGeneratorImpl im private Bearing getBearing(TimedPosition timedPosition) { Position p = timedPosition.getPosition(); - Pair positionIndex = getPositionIndex(p); + Util.Pair positionIndex = getPositionIndex(p); if (positionIndex != null) { int rowIndex = positionIndex.getA(); TimePoint timePoint = timedPosition.getTimePoint(); diff --git a/java/com.sap.sailing.velum.resultimport.test/src/com/sap/sailing/velum/resultimport/test/ParserTest.java b/java/com.sap.sailing.velum.resultimport.test/src/com/sap/sailing/velum/resultimport/test/ParserTest.java index c2bdb2bccde..034f17724bc 100644 --- a/java/com.sap.sailing.velum.resultimport.test/src/com/sap/sailing/velum/resultimport/test/ParserTest.java +++ b/java/com.sap.sailing.velum.resultimport.test/src/com/sap/sailing/velum/resultimport/test/ParserTest.java @@ -22,7 +22,6 @@ import com.sap.sailing.domain.common.RegattaScoreCorrections.ScoreCorrectionsFor import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.resultimport.RegattaResults; import com.sap.sailing.resultimport.ResultDocumentDescriptor; import com.sap.sailing.resultimport.ResultDocumentProvider; @@ -87,7 +86,7 @@ public class ParserTest { public void testScoreCorrectionProviderNixdorfFinal() throws Exception { ScoreCorrectionProviderImpl scoreCorrectionProvider = new ScoreCorrectionProviderImpl(getTestDocumentProvider(), CsvParserFactory.INSTANCE); - Map>> hasResultsFor = scoreCorrectionProvider.getHasResultsForBoatClassFromDateByEventName(); + Map>> hasResultsFor = scoreCorrectionProvider.getHasResultsForBoatClassFromDateByEventName(); RegattaScoreCorrections starResult = scoreCorrectionProvider.getScoreCorrections(SAMPLE_INPUT_NAME_NIXDORF_POKAL_FINAL, "Star", hasResultsFor.get(SAMPLE_INPUT_NAME_NIXDORF_POKAL_FINAL).iterator().next().getB()); assertNotNull(starResult); diff --git a/java/com.sap.sailing.velum.resultimport/META-INF/MANIFEST.MF b/java/com.sap.sailing.velum.resultimport/META-INF/MANIFEST.MF index 83e1b534d4a..c49d1621bee 100644 --- a/java/com.sap.sailing.velum.resultimport/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.velum.resultimport/META-INF/MANIFEST.MF @@ -11,6 +11,7 @@ Bundle-ActivationPolicy: lazy Require-Bundle: com.sap.sailing.server, com.sap.sailing.domain.common, com.sap.sailing.domain, - com.sap.sailing.resultimport + com.sap.sailing.resultimport, + com.sap.sse.common Export-Package: com.sap.sailing.velum.resultimport, com.sap.sailing.velum.resultimport.impl diff --git a/java/com.sap.sailing.velum.resultimport/src/com/sap/sailing/velum/resultimport/impl/ScoreCorrectionProviderImpl.java b/java/com.sap.sailing.velum.resultimport/src/com/sap/sailing/velum/resultimport/impl/ScoreCorrectionProviderImpl.java index f8f9d9a8398..d090deadd74 100644 --- a/java/com.sap.sailing.velum.resultimport/src/com/sap/sailing/velum/resultimport/impl/ScoreCorrectionProviderImpl.java +++ b/java/com.sap.sailing.velum.resultimport/src/com/sap/sailing/velum/resultimport/impl/ScoreCorrectionProviderImpl.java @@ -10,7 +10,6 @@ import java.util.logging.Logger; import com.sap.sailing.domain.common.RegattaScoreCorrections; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.resultimport.RegattaResults; import com.sap.sailing.resultimport.ResultDocumentDescriptor; import com.sap.sailing.resultimport.ResultDocumentProvider; @@ -18,6 +17,7 @@ import com.sap.sailing.resultimport.impl.AbstractDocumentBasedScoreCorrectionPro import com.sap.sailing.resultimport.impl.RegattaScoreCorrectionsImpl; import com.sap.sailing.velum.resultimport.CsvParser; import com.sap.sailing.velum.resultimport.CsvParserFactory; +import com.sap.sse.common.Util.Pair; public class ScoreCorrectionProviderImpl extends AbstractDocumentBasedScoreCorrectionProvider { private static final long serialVersionUID = 4767200739966995306L; diff --git a/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/ExportAction.java b/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/ExportAction.java index e66c90f907d..5cda42371a1 100644 --- a/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/ExportAction.java +++ b/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/ExportAction.java @@ -26,7 +26,6 @@ import com.sap.sailing.domain.common.Position; import com.sap.sailing.domain.common.Speed; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.leaderboard.RegattaLeaderboard; import com.sap.sailing.domain.tracking.GPSFixMoving; @@ -182,7 +181,7 @@ public abstract class ExportAction { if (!markPassings.isEmpty()) { TimePoint from = markPassings.first().getTimePoint(); TimePoint to = trackedRace.getEndOfRace(); - Pair maxSpeedWithGPSFix = trackedRace.getTrack(competitor).getMaximumSpeedOverGround(from, to); + com.sap.sse.common.Util.Pair maxSpeedWithGPSFix = trackedRace.getTrack(competitor).getMaximumSpeedOverGround(from, to); if (maxSpeedWithGPSFix != null) { maxSpeed = maxSpeedWithGPSFix.getB(); } diff --git a/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/LeaderboardData.java b/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/LeaderboardData.java index f7052e59c4f..0d914d4870d 100644 --- a/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/LeaderboardData.java +++ b/java/com.sap.sailing.xmlexport/src/com/sap/sailing/xmlexport/LeaderboardData.java @@ -38,7 +38,6 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.KnotSpeedImpl; import com.sap.sailing.domain.common.impl.MeterDistance; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.domain.leaderboard.Leaderboard; import com.sap.sailing.domain.tracking.GPSFixMoving; import com.sap.sailing.domain.tracking.GPSFixTrack; @@ -48,6 +47,7 @@ import com.sap.sailing.domain.tracking.TrackedLeg; import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor; import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.server.RacingEventService; +import com.sap.sse.common.Util; /** * Exports all data from a leaderboard into XML format. Format is as follows: @@ -97,7 +97,7 @@ public class LeaderboardData extends ExportAction { super(req, res, service); } - private Element createLeaderboardXML(Leaderboard leaderboard, List competitors, List races, Pair> leaderboardConfidenceAndErrorMessages) { + private Element createLeaderboardXML(Leaderboard leaderboard, List competitors, List races, Util.Pair> leaderboardConfidenceAndErrorMessages) { Element leaderboardElement = new Element("leaderboard"); addNamedElementWithValue(leaderboardElement, "name", leaderboard.getName()); addNamedElementWithValue(leaderboardElement, "display_name", leaderboard.getDisplayName()); @@ -177,7 +177,7 @@ public class LeaderboardData extends ExportAction { return windElements; } - private Element createRaceXML(final TrackedRace race, final Fleet fleet, final List legs, final RaceColumn column, final Leaderboard leaderboard, int sameDayGroupIndex, int raceCounter, Pair> raceConfidenceAndErrorMessages) throws NoWindException, IOException, ServletException { + private Element createRaceXML(final TrackedRace race, final Fleet fleet, final List legs, final RaceColumn column, final Leaderboard leaderboard, int sameDayGroupIndex, int raceCounter, Util.Pair> raceConfidenceAndErrorMessages) throws NoWindException, IOException, ServletException { Element raceElement = new Element("race"); addNamedElementWithValue(raceElement, "name", cleanRaceName(race.getRace().getName())); addNamedElementWithValue(raceElement, "race_index_in_leaderboard", raceCounter); @@ -400,7 +400,7 @@ public class LeaderboardData extends ExportAction { return raceElement; } - private Element createCompetitorXML(Competitor competitor, Leaderboard leaderboard, boolean shortVersion, Pair> competitorConfidenceAndErrorMessages) throws NoWindException, IOException, ServletException { + private Element createCompetitorXML(Competitor competitor, Leaderboard leaderboard, boolean shortVersion, Util.Pair> competitorConfidenceAndErrorMessages) throws NoWindException, IOException, ServletException { TimePoint timeSpent = MillisecondsTimePoint.now(); Element competitorElement = new Element("competitor"); addNamedElementWithValue(competitorElement, "uuid", competitor.getId().toString()); @@ -477,7 +477,7 @@ public class LeaderboardData extends ExportAction { return competitorElement; } - private Element createLegXML(TrackedLeg trackedLeg, Leaderboard leaderboard, int legCounter, Pair> raceConfidenceAndErrorMessages, Pair> legConfidenceAndErrorMessages) throws NoWindException, IOException, ServletException { + private Element createLegXML(TrackedLeg trackedLeg, Leaderboard leaderboard, int legCounter, Util.Pair> raceConfidenceAndErrorMessages, Util.Pair> legConfidenceAndErrorMessages) throws NoWindException, IOException, ServletException { TimePoint timeSpent = MillisecondsTimePoint.now(); Leg leg = trackedLeg.getLeg(); Element legElement = new Element("leg"); @@ -506,7 +506,7 @@ public class LeaderboardData extends ExportAction { TimePoint legFinishTime = competitorLeg.getFinishTime(); competitorLegDataElement.addContent(createTimedXML("leg_started_time_", competitorLeg.getStartTime())); - Pair maximumSpeed = competitorLeg.getMaximumSpeedOverGround(legFinishTime); + Util.Pair maximumSpeed = competitorLeg.getMaximumSpeedOverGround(legFinishTime); addNamedElementWithValue(competitorLegDataElement, "maximum_speed_over_ground_in_knots", maximumSpeed != null ? maximumSpeed.getB().getKnots() : -1); if (maximumSpeed == null) { legConfidenceAndErrorMessages.getB().add("Competitor "+ competitor.getName() +" has not finished this leg! His maximum speed for this leg is not comparable to others!"); @@ -566,7 +566,7 @@ public class LeaderboardData extends ExportAction { return legElement; } - private Element createDataConfidenceXML(Pair> confidenceAndMessages) { + private Element createDataConfidenceXML(Util.Pair> confidenceAndMessages) { Element confidenceDataElement = new Element("confidence"); addNamedElementWithValue(confidenceDataElement, "simple_confidence_value", confidenceAndMessages.getA().doubleValue()); Element messagesElement = new Element("messages"); @@ -577,7 +577,7 @@ public class LeaderboardData extends ExportAction { return confidenceDataElement; } - private Pair> checkData(TrackedLeg leg) throws Exception { + private Util.Pair> checkData(TrackedLeg leg) throws Exception { double simpleConfidence = 1.0; Vector messages = new Vector(); TimePoint now = MillisecondsTimePoint.now(); for (TrackedLegOfCompetitor competitorLeg : leg.getTrackedLegsOfCompetitors()) { @@ -622,10 +622,10 @@ public class LeaderboardData extends ExportAction { } } } - return new Pair>(simpleConfidence, messages); + return new Util.Pair>(simpleConfidence, messages); } - private Pair> checkData(TrackedRace race) throws Exception { + private Util.Pair> checkData(TrackedRace race) throws Exception { double simpleConfidence = 1.0; Vector messages = new Vector(); TimePoint dateAtYear2000 = new MillisecondsTimePoint(946681200000l); if (race.getStartOfRace() == null || race.getStartOfRace().before(dateAtYear2000)) { @@ -647,10 +647,10 @@ public class LeaderboardData extends ExportAction { if (race.isLive(MillisecondsTimePoint.now())) { messages.add("This race is live - data for this race will not be available until the race has been finished!"); } - return new Pair>(simpleConfidence, messages); + return new Util.Pair>(simpleConfidence, messages); } - private Pair> checkData(Competitor competitor) throws Exception { + private Util.Pair> checkData(Competitor competitor) throws Exception { double simpleConfidence = 1.0; Vector messages = new Vector(); if (competitor.getName() == null || competitor.getName().equals("")) { messages.add("Competitor " + competitor.getId() + " has no name!"); @@ -664,10 +664,10 @@ public class LeaderboardData extends ExportAction { messages.add("Either team for "+ competitor.getId() + " is null or nationality could not be determined"); simpleConfidence -= 0.2; } - return new Pair>(simpleConfidence, messages); + return new Util.Pair>(simpleConfidence, messages); } - private Pair> checkData(Leaderboard leaderboard) throws Exception { + private Util.Pair> checkData(Leaderboard leaderboard) throws Exception { double simpleConfidence = 1.0; Vector messages = new Vector(); int raceColumnCount = 0; int attachedRaceToColumnCount = 0; for (RaceColumn raceColumn : leaderboard.getRaceColumns()) { @@ -698,7 +698,7 @@ public class LeaderboardData extends ExportAction { messages.add("The time point of the last modification for this leaderboard is very old."); simpleConfidence -= 0.4; } - return new Pair>(simpleConfidence, messages); + return new Util.Pair>(simpleConfidence, messages); } private int getSameDayGroupIndex(TrackedRace currentRace, TrackedRace raceBefore) { @@ -726,13 +726,13 @@ public class LeaderboardData extends ExportAction { final Leaderboard leaderboard = getLeaderboard(); TimePoint timeSpent = MillisecondsTimePoint.now(); log.info("Starting XML export of " + leaderboard.getName()); - Pair> leaderboardConfidenceAndErrorMessages = checkData(leaderboard); + Util.Pair> leaderboardConfidenceAndErrorMessages = checkData(leaderboard); final List racesElements = new ArrayList(); final List competitorElements = new ArrayList(); for (Competitor competitor : leaderboard.getAllCompetitors()) { - Pair> competitorConfidenceAndErrorMessages = checkData(competitor); + Util.Pair> competitorConfidenceAndErrorMessages = checkData(competitor); competitorElements.add(createCompetitorXML(competitor, leaderboard, /*shortVersion*/ false, competitorConfidenceAndErrorMessages)); } @@ -743,11 +743,11 @@ public class LeaderboardData extends ExportAction { if (trackedRace != null && trackedRace.hasGPSData()) { sameDayGroupIndex += getSameDayGroupIndex(raceColumn.getTrackedRace(fleet), raceBefore); TimePoint timeSpentForRace = MillisecondsTimePoint.now(); - Pair> raceConfidenceAndErrorMessages = checkData(trackedRace); + Util.Pair> raceConfidenceAndErrorMessages = checkData(trackedRace); final List legs = new ArrayList(); int legCounter = 0; for (TrackedLeg leg : trackedRace.getTrackedLegs()) { - Pair> legConfidenceAndErrorMessages = checkData(leg); + Util.Pair> legConfidenceAndErrorMessages = checkData(leg); legs.add(createLegXML(leg, leaderboard, ++legCounter, raceConfidenceAndErrorMessages, legConfidenceAndErrorMessages)); } Element raceElement = createRaceXML(trackedRace, fleet, legs, raceColumn, leaderboard, sameDayGroupIndex, ++raceCounter, raceConfidenceAndErrorMessages); diff --git a/java/com.sap.sailing.xrr.resultimport.test/src/com/sap/sailing/xrr/resultimport/test/ParserTest.java b/java/com.sap.sailing.xrr.resultimport.test/src/com/sap/sailing/xrr/resultimport/test/ParserTest.java index 35b33cbd6c2..d10dddbf20b 100755 --- a/java/com.sap.sailing.xrr.resultimport.test/src/com/sap/sailing/xrr/resultimport/test/ParserTest.java +++ b/java/com.sap.sailing.xrr.resultimport.test/src/com/sap/sailing/xrr/resultimport/test/ParserTest.java @@ -32,7 +32,6 @@ import com.sap.sailing.domain.common.RegattaScoreCorrections.ScoreCorrectionsFor import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.resultimport.ResultDocumentDescriptor; import com.sap.sailing.resultimport.ResultDocumentProvider; import com.sap.sailing.resultimport.impl.ResultDocumentDescriptorImpl; @@ -91,7 +90,7 @@ public class ParserTest { ParserConfigurationException, JAXBException { ScoreCorrectionProviderImpl scoreCorrectionProvider = new ScoreCorrectionProviderImpl(getTestDocumentProvider(), ParserFactory.INSTANCE); - Map>> hasResultsFor = scoreCorrectionProvider.getHasResultsForBoatClassFromDateByEventName(); + Map>> hasResultsFor = scoreCorrectionProvider.getHasResultsForBoatClassFromDateByEventName(); assertTrue(hasResultsFor.containsKey("Star Men")); // expecting 2013-04-03T13:20:23.000+0200 = 2013-04-03T11:20:23.000Z Calendar cal = new GregorianCalendar(2013, /* 3 means April; zero-based */ 3, 3, 11, 20, 23); @@ -107,7 +106,7 @@ public class ParserTest { ParserConfigurationException, JAXBException { ScoreCorrectionProviderImpl scoreCorrectionProvider = new ScoreCorrectionProviderImpl(getTestDocumentProvider(), ParserFactory.INSTANCE); - Map>> hasResultsFor = scoreCorrectionProvider.getHasResultsForBoatClassFromDateByEventName(); + Map>> hasResultsFor = scoreCorrectionProvider.getHasResultsForBoatClassFromDateByEventName(); RegattaScoreCorrections starResult = scoreCorrectionProvider.getScoreCorrections("Star Men", "STR", hasResultsFor.get("Star Men").iterator().next().getB()); assertNotNull(starResult); Iterable scoreCorrectionsForRaces = starResult.getScoreCorrectionsForRaces(); @@ -144,7 +143,7 @@ public class ParserTest { ParserConfigurationException, JAXBException { ScoreCorrectionProviderImpl scoreCorrectionProvider = new ScoreCorrectionProviderImpl(getTestDocumentProvider(), ParserFactory.INSTANCE); - Map>> hasResultsFor = scoreCorrectionProvider.getHasResultsForBoatClassFromDateByEventName(); + Map>> hasResultsFor = scoreCorrectionProvider.getHasResultsForBoatClassFromDateByEventName(); RegattaScoreCorrections _470Result = scoreCorrectionProvider.getScoreCorrections("470 Men", "470", hasResultsFor.get("470 Men").iterator().next().getB()); assertNotNull(_470Result); Iterable scoreCorrectionsForRaces = _470Result.getScoreCorrectionsForRaces(); diff --git a/java/com.sap.sailing.xrr.resultimport/META-INF/MANIFEST.MF b/java/com.sap.sailing.xrr.resultimport/META-INF/MANIFEST.MF index 8cce16d6dad..377d08746c8 100755 --- a/java/com.sap.sailing.xrr.resultimport/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.xrr.resultimport/META-INF/MANIFEST.MF @@ -11,5 +11,6 @@ Export-Package: com.sap.sailing.xrr.resultimport, Import-Package: org.osgi.framework;version="1.6.0" Require-Bundle: com.sap.sailing.domain, com.sap.sailing.domain.common, - com.sap.sailing.resultimport + com.sap.sailing.resultimport, + com.sap.sse.common Bundle-Activator: com.sap.sailing.xrr.resultimport.impl.Activator diff --git a/java/com.sap.sailing.xrr.resultimport/src/com/sap/sailing/xrr/resultimport/impl/ScoreCorrectionProviderImpl.java b/java/com.sap.sailing.xrr.resultimport/src/com/sap/sailing/xrr/resultimport/impl/ScoreCorrectionProviderImpl.java index 9952953d323..7222f7f87cc 100755 --- a/java/com.sap.sailing.xrr.resultimport/src/com/sap/sailing/xrr/resultimport/impl/ScoreCorrectionProviderImpl.java +++ b/java/com.sap.sailing.xrr.resultimport/src/com/sap/sailing/xrr/resultimport/impl/ScoreCorrectionProviderImpl.java @@ -16,7 +16,6 @@ import org.xml.sax.SAXException; import com.sap.sailing.domain.common.RegattaScoreCorrections; import com.sap.sailing.domain.common.TimePoint; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.resultimport.ResultDocumentDescriptor; import com.sap.sailing.resultimport.ResultDocumentProvider; import com.sap.sailing.resultimport.impl.AbstractDocumentBasedScoreCorrectionProvider; @@ -25,6 +24,7 @@ import com.sap.sailing.xrr.resultimport.ParserFactory; import com.sap.sailing.xrr.resultimport.schema.Division; import com.sap.sailing.xrr.resultimport.schema.Event; import com.sap.sailing.xrr.resultimport.schema.RegattaResults; +import com.sap.sse.common.Util; public class ScoreCorrectionProviderImpl extends AbstractDocumentBasedScoreCorrectionProvider { private static final Logger logger = Logger.getLogger(ScoreCorrectionProviderImpl.class.getName()); @@ -45,9 +45,9 @@ public class ScoreCorrectionProviderImpl extends AbstractDocumentBasedScoreCorre } @Override - public Map>> getHasResultsForBoatClassFromDateByEventName() + public Map>> getHasResultsForBoatClassFromDateByEventName() throws IOException, SAXException, ParserConfigurationException { - Map>> result = new HashMap>>(); + Map>> result = new HashMap>>(); for (Parser parser : getAllRegattaResults()) { try { RegattaResults regattaResult = parser.parse(); @@ -59,12 +59,12 @@ public class ScoreCorrectionProviderImpl extends AbstractDocumentBasedScoreCorre if (eventO instanceof Division) { Division division = (Division) eventO; String boatClassName = parser.getBoatClassName(division); - Set> set = result.get(event.getTitle()); + Set> set = result.get(event.getTitle()); if (set == null) { set = new HashSet<>(); result.put(event.getTitle(), set); } - set.add(new Pair(boatClassName, timePoint)); + set.add(new Util.Pair(boatClassName, timePoint)); } } } diff --git a/java/com.sap.sse.common/src/com/sap/sse/common/Util.java b/java/com.sap.sse.common/src/com/sap/sse/common/Util.java index dbdc3bbc0bb..40b95804fc9 100755 --- a/java/com.sap.sse.common/src/com/sap/sse/common/Util.java +++ b/java/com.sap.sse.common/src/com/sap/sse/common/Util.java @@ -3,131 +3,125 @@ package com.sap.sse.common; import java.io.Serializable; public class Util { + public static class Pair implements Serializable { - private static final long serialVersionUID = 814998330023824400L; - + private static final long serialVersionUID = -7631774746419135931L; + private A a; - + private B b; - + private transient int hashCode; - - @SuppressWarnings("unused") - // required for some serialization frameworks such as GWT RPC - private Pair() { - } - - public Pair(A a, B b) { + + @SuppressWarnings("unused") // required for some serialization frameworks such as GWT RPC + private Pair() {} + + public Pair( A a, B b ) { this.a = a; this.b = b; hashCode = 0; } - - public A getA() { + + public A getA( ) { return a; } - - public B getB() { + + public B getB( ) { return b; } - + @Override - public int hashCode() { - if (hashCode == 0) { + public int hashCode( ) { + if ( hashCode == 0 ) { hashCode = 17; - hashCode = 37 * hashCode + (a != null ? a.hashCode() : 0); - hashCode = 37 * hashCode + (b != null ? b.hashCode() : 0); + hashCode = 37 * hashCode + ( a != null ? a.hashCode( ) : 0 ); + hashCode = 37 * hashCode + ( b != null ? b.hashCode( ) : 0 ); } return hashCode; } - + @Override - public boolean equals(Object obj) { + public boolean equals( Object obj ) { boolean result; - if (this == obj) { + if ( this == obj ) { result = true; - } else if (obj instanceof Pair) { + } else if ( obj instanceof Pair ) { Pair pair = (Pair) obj; - result = (this.a != null && this.a.equals(pair.a) || this.a == null && pair.a == null) - && (this.b != null && this.b.equals(pair.b) || this.b == null && pair.b == null); + result = ( this.a != null && this.a.equals( pair.a ) || this.a == null && pair.a == null ) && ( this.b != null && this.b.equals( pair.b ) || this.b == null && pair.b == null ); } else { result = false; } return result; } - + @Override - public String toString() { - return "[" + (a == null ? "null" : a.toString()) + ", " + (b == null ? "null" : b.toString()) + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ + public String toString( ) { + return "[" + (a==null?"null":a.toString( )) + ", " + + (b==null?"null":b.toString( )) + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ } } - public class Triple implements Serializable { - private static final long serialVersionUID = 6906848859104077300L; - + public static class Triple implements Serializable { + private static final long serialVersionUID = 6806146864367514601L; + private A a; - + private B b; - + private C c; - + private transient int hashCode; - - @SuppressWarnings("unused") - // required for some serialization frameworks such as GWT RPC - private Triple() { - } - - public Triple(A a, B b, C c) { + + @SuppressWarnings("unused") // required for some serialization frameworks such as GWT RPC + private Triple() {} + + public Triple( A a, B b, C c ) { this.a = a; this.b = b; this.c = c; hashCode = 0; } - - public A getA() { + + public A getA( ) { return a; } - - public B getB() { + + public B getB( ) { return b; } - - public C getC() { + + public C getC( ) { return c; } - + @Override - public int hashCode() { - if (hashCode == 0) { + public int hashCode( ) { + if ( hashCode == 0 ) { hashCode = 17; - hashCode = 37 * hashCode + (a != null ? a.hashCode() : 0); - hashCode = 37 * hashCode + (b != null ? b.hashCode() : 0); - hashCode = 37 * hashCode + (c != null ? c.hashCode() : 0); + hashCode = 37 * hashCode + ( a != null ? a.hashCode( ) : 0 ); + hashCode = 37 * hashCode + ( b != null ? b.hashCode( ) : 0 ); + hashCode = 37 * hashCode + ( c != null ? c.hashCode( ) : 0 ); } return hashCode; } - + @Override - public boolean equals(Object obj) { + public boolean equals( Object obj ) { boolean result; - if (this == obj) { + if ( this == obj ) { result = true; - } else if (obj instanceof Triple) { + } else if ( obj instanceof Triple ) { Triple thrice = (Triple) obj; - result = (this.a != null && this.a.equals(thrice.a) || this.a == null && thrice.a == null) - && (this.b != null && this.b.equals(thrice.b) || this.b == null && thrice.b == null) - && (this.c != null && this.c.equals(thrice.c) || this.c == null && thrice.c == null); + result = ( this.a != null && this.a.equals( thrice.a ) || this.a == null && thrice.a == null ) && ( this.b != null && this.b.equals( thrice.b ) || this.b == null && thrice.b == null ) && ( this.c != null && this.c.equals( thrice.c ) || this.c == null && thrice.c == null ); } else { result = false; } return result; } - + @Override - public String toString() { + public String toString( ) { return "[" + a + ", " + b + ", " + c + "]"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ } } - } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/PollingResult.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/PollingResult.java index 3cc96ca728d..05df08b893f 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/PollingResult.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/PollingResult.java @@ -3,13 +3,13 @@ package com.sap.sailing.racecommittee.app.services.polling; import java.io.InputStream; import java.io.Serializable; -import com.sap.sailing.domain.common.impl.Util.Pair; +import com.sap.sse.common.Util; public class PollingResult { public final boolean isSuccess; - public final Pair resultStreamForRaceId; + public final Util.Pair resultStreamForRaceId; - public PollingResult(boolean isSuccess, Pair resultStreamForRaceId) { + public PollingResult(boolean isSuccess, Util.Pair resultStreamForRaceId) { this.isSuccess = isSuccess; this.resultStreamForRaceId = resultStreamForRaceId; } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/RaceLogPoller.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/RaceLogPoller.java index 44dab95f5db..9b7453aa35f 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/RaceLogPoller.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/RaceLogPoller.java @@ -14,7 +14,6 @@ import android.content.Context; import android.os.Handler; import android.os.Looper; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.racecommittee.app.AppPreferences; import com.sap.sailing.racecommittee.app.AppPreferences.PollingActiveChangedListener; import com.sap.sailing.racecommittee.app.domain.ManagedRace; @@ -22,6 +21,7 @@ import com.sap.sailing.racecommittee.app.domain.racelog.impl.RaceLogEventsCallba import com.sap.sailing.racecommittee.app.logging.ExLog; import com.sap.sailing.racecommittee.app.services.polling.RaceLogPollerTask.PollingResultListener; import com.sap.sailing.racecommittee.app.services.sending.EventSendingService; +import com.sap.sse.common.Util; /** *

@@ -124,9 +124,9 @@ public class RaceLogPoller implements PollingActiveChangedListener { return; } - List> queries = getPollingQueries(); + List> queries = getPollingQueries(); task = new RaceLogPollerTask(this); - task.execute(queries.toArray(new Pair[0])); + task.execute(queries.toArray(new Util.Pair[0])); } @Override @@ -156,10 +156,10 @@ public class RaceLogPoller implements PollingActiveChangedListener { poller.pollingHandler.postDelayed(this, pollingInterval); } - private List> getPollingQueries() { - List> queries = new ArrayList>(); + private List> getPollingQueries() { + List> queries = new ArrayList>(); for (Entry entry : poller.races.entrySet()) { - queries.add(new Pair(entry.getKey().getId(), entry.getValue())); + queries.add(new Util.Pair(entry.getKey().getId(), entry.getValue())); } return queries; } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/RaceLogPollerTask.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/RaceLogPollerTask.java index 6704ffd832f..7fba9111223 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/RaceLogPollerTask.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/polling/RaceLogPollerTask.java @@ -7,11 +7,11 @@ import java.net.URL; import android.os.AsyncTask; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.racecommittee.app.data.http.HttpJsonPostRequest; import com.sap.sailing.racecommittee.app.data.http.HttpRequest; +import com.sap.sse.common.Util; -public class RaceLogPollerTask extends AsyncTask, PollingResult, Void> { +public class RaceLogPollerTask extends AsyncTask, PollingResult, Void> { public interface PollingResultListener { public void onPollingResult(PollingResult result); @@ -25,8 +25,8 @@ public class RaceLogPollerTask extends AsyncTask, Pollin } @Override - protected Void doInBackground(Pair... queries) { - for (Pair query : queries) { + protected Void doInBackground(Util.Pair... queries) { + for (Util.Pair query : queries) { if (isCancelled()) { return null; } @@ -36,7 +36,7 @@ public class RaceLogPollerTask extends AsyncTask, Pollin try { responseStream = request.execute(); publishProgress(new PollingResult(true, - new Pair(query.getA(), responseStream))); + new Util.Pair(query.getA(), responseStream))); } catch (IOException e) { // don't need to close responseStream as it still must // be null because the only call that may throw an diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/sending/EventSenderTask.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/sending/EventSenderTask.java index da65024b354..9cbb9c55251 100755 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/sending/EventSenderTask.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/services/sending/EventSenderTask.java @@ -8,13 +8,13 @@ import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.racecommittee.app.AppConstants; import com.sap.sailing.racecommittee.app.data.http.HttpJsonPostRequest; import com.sap.sailing.racecommittee.app.data.http.HttpRequest; import com.sap.sailing.racecommittee.app.logging.ExLog; +import com.sap.sse.common.Util; -public class EventSenderTask extends AsyncTask> { +public class EventSenderTask extends AsyncTask> { private static String TAG = EventSenderTask.class.getName(); @@ -30,17 +30,17 @@ public class EventSenderTask extends AsyncTask doInBackground(Intent... params) { - Triple result; + protected Util.Triple doInBackground(Intent... params) { + Util.Triple result; Intent intent = params[0]; if (intent == null) { - return new Triple(intent, false, null); + return new Util.Triple(intent, false, null); } Bundle extras = intent.getExtras(); String serializedEventAsJson = extras.getString(AppConstants.EXTRAS_JSON_SERIALIZED_EVENT); String url = extras.getString(AppConstants.EXTRAS_URL); if (serializedEventAsJson == null || url == null) { - return new Triple(intent, false, null); + return new Util.Triple(intent, false, null); } InputStream responseStream = null; try { @@ -48,7 +48,7 @@ public class EventSenderTask extends AsyncTask(intent, true, responseStream); + result = new Util.Triple(intent, true, responseStream); } catch (IOException e) { if (responseStream != null) { try { @@ -56,13 +56,13 @@ public class EventSenderTask extends AsyncTask(intent, false, null); + result = new Util.Triple(intent, false, null); } return result; } @Override - protected void onPostExecute(Triple resultTriple) { + protected void onPostExecute(Util.Triple resultTriple) { super.onPostExecute(resultTriple); listener.onEventSent(resultTriple.getA(), resultTriple.getB(), resultTriple.getC()); } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/adapters/finishing/CompetitorPositioningListAdapter.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/adapters/finishing/CompetitorPositioningListAdapter.java index 90c1e54c604..232a87bb807 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/adapters/finishing/CompetitorPositioningListAdapter.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/adapters/finishing/CompetitorPositioningListAdapter.java @@ -11,12 +11,12 @@ import android.widget.ArrayAdapter; import android.widget.TextView; import com.sap.sailing.domain.common.MaxPointsReason; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.racecommittee.app.R; +import com.sap.sse.common.Util; -public class CompetitorPositioningListAdapter extends ArrayAdapter> { +public class CompetitorPositioningListAdapter extends ArrayAdapter> { - public CompetitorPositioningListAdapter(Context context, int textViewResourceId, List> objects) { + public CompetitorPositioningListAdapter(Context context, int textViewResourceId, List> objects) { super(context, textViewResourceId, objects); } @@ -29,7 +29,7 @@ public class CompetitorPositioningListAdapter extends ArrayAdapter competitorMaxPoint = getItem(position); + Util.Triple competitorMaxPoint = getItem(position); TextView positionText = (TextView) view.findViewById(R.id.Welter_Cell_Positioning_columnOne_txtTitle); diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/dialogs/PositioningFragment.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/dialogs/PositioningFragment.java index a477b2586f4..cc957f4bb2e 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/dialogs/PositioningFragment.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/dialogs/PositioningFragment.java @@ -31,7 +31,6 @@ import com.sap.sailing.domain.common.MaxPointsReason; import com.sap.sailing.domain.common.Named; import com.sap.sailing.domain.common.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.impl.Util; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.racelog.CompetitorResults; import com.sap.sailing.domain.racelog.impl.CompetitorResultsImpl; import com.sap.sailing.racecommittee.app.R; @@ -111,7 +110,7 @@ public class PositioningFragment extends RaceDialogFragment { @Override public void drop(int from, int to) { if (from != to) { - Triple item = positioningAdapter.getItem(from); + com.sap.sse.common.Util.Triple item = positioningAdapter.getItem(from); setItemToNewPositioning(from, to, item); getRaceState().setFinishPositioningListChanged(MillisecondsTimePoint.now(), positionedCompetitors); } @@ -122,7 +121,7 @@ public class PositioningFragment extends RaceDialogFragment { @Override public void remove(int toBeRemoved) { - Triple item = positioningAdapter.getItem(toBeRemoved); + com.sap.sse.common.Util.Triple item = positioningAdapter.getItem(toBeRemoved); onCompetitorRemovedFromPositioningList(item); } }); @@ -213,8 +212,8 @@ public class PositioningFragment extends RaceDialogFragment { } private void deleteObsoleteCompetitorsFromPositionedList(Collection validCompetitors) { - List> toBeDeleted = new ArrayList>(); - for (Triple positionedItem : positionedCompetitors) { + List> toBeDeleted = new ArrayList>(); + for (com.sap.sse.common.Util.Triple positionedItem : positionedCompetitors) { if (!validCompetitors.contains(getCompetitorStore().getExistingCompetitorById(positionedItem.getA()))) { toBeDeleted.add(positionedItem); } @@ -223,7 +222,7 @@ public class PositioningFragment extends RaceDialogFragment { } private void deletePositionedCompetitorsFromUnpositionedList() { - for (Triple positionedItem : positionedCompetitors) { + for (com.sap.sse.common.Util.Triple positionedItem : positionedCompetitors) { Competitor competitor = getCompetitorStore().getExistingCompetitorById(positionedItem.getA()); competitors.remove(competitor); } @@ -234,12 +233,12 @@ public class PositioningFragment extends RaceDialogFragment { return positionings == null ? new CompetitorResultsImpl() : positionings; } - private void setItemToNewPositioning(int from, int to, Triple item) { + private void setItemToNewPositioning(int from, int to, com.sap.sse.common.Util.Triple item) { positioningAdapter.remove(item); positioningAdapter.insert(item, to); } - private void createMaxPointsReasonSelectionDialog(final Triple item) { + private void createMaxPointsReasonSelectionDialog(final com.sap.sse.common.Util.Triple item) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); final CharSequence[] maxPointsReasons = getAllMaxPointsReasons(); builder.setTitle(R.string.select_penalty_reason).setItems(maxPointsReasons, @@ -260,10 +259,10 @@ public class PositioningFragment extends RaceDialogFragment { return result.toArray(new CharSequence[result.size()]); } - protected void setMaxPointsReasonForItem(Triple item, + protected void setMaxPointsReasonForItem(com.sap.sse.common.Util.Triple item, CharSequence maxPointsReasonName) { MaxPointsReason maxPointsReason = MaxPointsReason.valueOf(maxPointsReasonName.toString()); - Triple newItem = new Triple( + com.sap.sse.common.Util.Triple newItem = new com.sap.sse.common.Util.Triple( item.getA(), item.getB(), maxPointsReason); int currentIndexOfItem = positionedCompetitors.indexOf(item); replaceItemInPositioningList(currentIndexOfItem, item, newItem); @@ -275,12 +274,12 @@ public class PositioningFragment extends RaceDialogFragment { } private void replaceItemInPositioningList(int currentIndexOfItem, - Triple item, Triple newItem) { + com.sap.sse.common.Util.Triple item, com.sap.sse.common.Util.Triple newItem) { positioningAdapter.remove(item); positioningAdapter.insert(newItem, currentIndexOfItem); } - private void setCompetitorToBottomOfPositioningList(Triple item) { + private void setCompetitorToBottomOfPositioningList(com.sap.sse.common.Util.Triple item) { int currentIndex = positionedCompetitors.indexOf(item); int lastIndex = positionedCompetitors.size() - 1; setItemToNewPositioning(currentIndex, lastIndex, item); @@ -300,12 +299,12 @@ public class PositioningFragment extends RaceDialogFragment { private void addNewCompetitorToPositioningList(Competitor competitor) { - positionedCompetitors.add(new Triple(competitor.getId(), competitor + positionedCompetitors.add(new com.sap.sse.common.Util.Triple(competitor.getId(), competitor .getName(), MaxPointsReason.NONE)); positioningAdapter.notifyDataSetChanged(); } - protected void onCompetitorRemovedFromPositioningList(Triple item) { + protected void onCompetitorRemovedFromPositioningList(com.sap.sse.common.Util.Triple item) { Competitor competitor = getCompetitorStore().getExistingCompetitorById(item.getA()); addNewCompetitorToCompetitorList(competitor); removeCompetitorFromPositionings(item); @@ -318,7 +317,7 @@ public class PositioningFragment extends RaceDialogFragment { competitorsAdapter.notifyDataSetChanged(); } - protected void removeCompetitorFromPositionings(Triple item) { + protected void removeCompetitorFromPositionings(com.sap.sse.common.Util.Triple item) { positionedCompetitors.remove(item); positioningAdapter.notifyDataSetChanged(); } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/preference/GeneralPreferenceFragment.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/preference/GeneralPreferenceFragment.java index e2c0e1924bb..19a2b05165a 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/preference/GeneralPreferenceFragment.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/preference/GeneralPreferenceFragment.java @@ -17,11 +17,11 @@ import android.preference.PreferenceManager; import android.widget.Toast; import com.sap.sailing.domain.common.impl.QRCodeUtils; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.racecommittee.app.AppPreferences; import com.sap.sailing.racecommittee.app.R; import com.sap.sailing.racecommittee.app.ui.views.EditSetPreference; import com.sap.sailing.racecommittee.app.utils.autoupdate.AutoUpdater; +import com.sap.sse.common.Util; public class GeneralPreferenceFragment extends BasePreferenceFragment { @@ -159,7 +159,7 @@ public class GeneralPreferenceFragment extends BasePreferenceFragment { if (resultCode == Activity.RESULT_OK) { String content = data.getStringExtra("SCAN_RESULT"); try { - Pair connectionConfiguration = QRCodeUtils.splitQRContent(content); + Util.Pair connectionConfiguration = QRCodeUtils.splitQRContent(content); String identifier = connectionConfiguration.getA(); URL apkUrl = tryConvertToURL(connectionConfiguration.getB()); diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/preference/RegattaSpecificPreferenceFragment.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/preference/RegattaSpecificPreferenceFragment.java index 661cdb615bf..98c87634bbb 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/preference/RegattaSpecificPreferenceFragment.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/preference/RegattaSpecificPreferenceFragment.java @@ -5,11 +5,13 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Set; + import android.content.Context; import android.os.Bundle; import android.preference.Preference; import android.preference.Preference.OnPreferenceClickListener; import android.preference.PreferenceScreen; + import com.sap.sailing.domain.base.racegroup.RaceGroup; import com.sap.sailing.domain.common.impl.NaturalComparator; import com.sap.sailing.racecommittee.app.R; diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/running/RRS26RunningRaceFragment.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/running/RRS26RunningRaceFragment.java index 7691073adcd..d82fb658e73 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/running/RRS26RunningRaceFragment.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/fragments/raceinfo/running/RRS26RunningRaceFragment.java @@ -2,6 +2,7 @@ package com.sap.sailing.racecommittee.app.ui.fragments.raceinfo.running; import android.view.View; import android.widget.Toast; + import com.sap.sailing.domain.racelog.state.racingprocedure.impl.BaseRacingProcedureChangedListener; import com.sap.sailing.domain.racelog.state.racingprocedure.rrs26.RRS26ChangedListener; import com.sap.sailing.domain.racelog.state.racingprocedure.rrs26.RRS26RacingProcedure; diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/utils/FlagPoleStateRenderer.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/utils/FlagPoleStateRenderer.java index 4159aee80c2..e715ffacb06 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/utils/FlagPoleStateRenderer.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/ui/utils/FlagPoleStateRenderer.java @@ -8,12 +8,12 @@ import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.Toast; -import com.sap.sailing.domain.common.impl.Util.Triple; import com.sap.sailing.domain.common.racelog.FlagPole; import com.sap.sailing.domain.common.racelog.Flags; import com.sap.sailing.domain.racelog.state.racingprocedure.FlagPoleState; import com.sap.sailing.racecommittee.app.domain.ManagedRace; import com.sap.sailing.racecommittee.app.logging.ExLog; +import com.sap.sse.common.Util; public class FlagPoleStateRenderer { @@ -76,8 +76,8 @@ public class FlagPoleStateRenderer { } private int getFleetColorId() { - Triple rgb = race.getFleet().getColor() == null ? - new Triple(0, 0, 0) : race.getFleet().getColor().getAsRGB(); + Util.Triple rgb = race.getFleet().getColor() == null ? + new Util.Triple(0, 0, 0) : race.getFleet().getColor().getAsRGB(); return Color.rgb(rgb.getA(), rgb.getB(), rgb.getC()); } diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/autoupdate/AutoUpdater.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/autoupdate/AutoUpdater.java index 83e775bdada..b64a2cc797a 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/autoupdate/AutoUpdater.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/autoupdate/AutoUpdater.java @@ -4,6 +4,7 @@ import java.io.File; import java.io.IOException; import java.net.MalformedURLException; import java.net.URL; + import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; @@ -11,6 +12,7 @@ import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; + import com.sap.sailing.racecommittee.app.AppConstants; import com.sap.sailing.racecommittee.app.AppPreferences; import com.sap.sailing.racecommittee.app.R; diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/autoupdate/AutoUpdaterDownloader.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/autoupdate/AutoUpdaterDownloader.java index 804c78bb090..a7782c7d081 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/autoupdate/AutoUpdaterDownloader.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/autoupdate/AutoUpdaterDownloader.java @@ -2,10 +2,10 @@ package com.sap.sailing.racecommittee.app.utils.autoupdate; import java.net.URL; -import com.sap.sailing.racecommittee.app.utils.autoupdate.AutoUpdaterChecker.AutoUpdaterState; - import android.os.AsyncTask; +import com.sap.sailing.racecommittee.app.utils.autoupdate.AutoUpdaterChecker.AutoUpdaterState; + public abstract class AutoUpdaterDownloader extends AsyncTask { protected final AutoUpdaterState state; diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/autoupdate/AutoUpdaterVersionDownloader.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/autoupdate/AutoUpdaterVersionDownloader.java index de1065c3d0c..072554569e8 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/autoupdate/AutoUpdaterVersionDownloader.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/utils/autoupdate/AutoUpdaterVersionDownloader.java @@ -6,18 +6,18 @@ import java.io.InputStream; import java.net.URL; import java.nio.charset.Charset; -import com.sap.sailing.domain.common.impl.Util.Pair; import com.sap.sailing.racecommittee.app.data.http.HttpGetRequest; import com.sap.sailing.racecommittee.app.utils.autoupdate.AutoUpdaterChecker.AutoUpdaterState; +import com.sap.sse.common.Util; -public class AutoUpdaterVersionDownloader extends AutoUpdaterDownloader> { +public class AutoUpdaterVersionDownloader extends AutoUpdaterDownloader> { public AutoUpdaterVersionDownloader(AutoUpdaterState state) { super(state); } @Override - protected Pair downloadInBackground(URL url) { + protected Util.Pair downloadInBackground(URL url) { HttpGetRequest request = new HttpGetRequest(url); InputStream stream = null; try { @@ -39,14 +39,14 @@ public class AutoUpdaterVersionDownloader extends AutoUpdaterDownloader parseVersionFile(String contents) { + private Util.Pair parseVersionFile(String contents) { String[] map = contents.split("="); if (map.length == 2) { String apkFileName = map[0]; String versionCode = map[1]; try { Integer code = Integer.parseInt(versionCode); - return new Pair(code, apkFileName); + return new Util.Pair(code, apkFileName); } catch (NumberFormatException e) { } } @@ -59,7 +59,7 @@ public class AutoUpdaterVersionDownloader extends AutoUpdaterDownloader result) { + protected void onSuccess(Util.Pair result) { state.updateToVersion(result.getA(), result.getB()); }