deleted test for RaceLog on tracked race

This commit is contained in:
Armin Zamani
2013-02-18 13:10:49 +01:00
parent 605e5eac13
commit a5f80757a1
2 changed files with 254 additions and 247 deletions
@@ -1,83 +0,0 @@
package com.sap.sailing.domain.test;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import org.junit.Before;
import org.junit.Ignore;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.impl.CompetitorImpl;
import com.sap.sailing.domain.base.impl.MillisecondsTimePoint;
public class RaceLogEventsOnConstructedTrackedRaceTest extends TrackBasedTest {
private List<Competitor> competitors;
private CompetitorImpl plattner;
private CompetitorImpl hunger;
private MillisecondsTimePoint start;
/**
* Creates the race and two competitors ({@link #plattner} and {@link #hunger}) and sets the start line passing for both of them
* to {@link #start}.
*/
@Before
public void setUp() {
competitors = new ArrayList<Competitor>();
hunger = createCompetitor("Wolfgang Hunger");
competitors.add(hunger);
plattner = createCompetitor("Prof. Dr. hc. Hasso Plattner");
competitors.add(plattner);
start = new MillisecondsTimePoint(new GregorianCalendar(2011, 05, 23).getTime());
setTrackedRace(createTestTrackedRace("Kieler Woche", "505 Race 2", "505", competitors, start));
}
@Ignore
public void testRaceLogExists() {
// RaceLog track = getTrackedRace().getRaceLog();
// assertNotNull(track);
//
// track.lockForRead();
// try {
// assertEquals(Util.size(track.getRawFixes()), 0);
// assertEquals(Util.size(track.getFixes()), 0);
// } finally {
// track.unlockAfterRead();
// }
}
@Ignore
public void testRaceLogInsertSomeEvents() {
// RaceLog track = getTrackedRace().getRaceLog();
// assertNotNull(track);
//
// TimePoint t1 = MillisecondsTimePoint.now();
// TimePoint t2 = new MillisecondsTimePoint(t1.asMillis() - 1000);
// TimePoint t3 = new MillisecondsTimePoint(t1.asMillis() - 4000);
// TimePoint t4 = new MillisecondsTimePoint(t1.asMillis() - 5000);
// TimePoint t5 = new MillisecondsTimePoint(t1.asMillis() - 10000);
//
// int passId = 0;
// RaceLogFlagEvent rcEvent1 = RaceLogEventFactory.INSTANCE.createFlagEvent(t1, passId, Flags.CLASS, Flags.NONE, false);
// RaceLogFlagEvent rcEvent2 = RaceLogEventFactory.INSTANCE.createFlagEvent(t2, passId, Flags.PAPA, Flags.NONE, false);
// RaceLogFlagEvent rcEvent3 = RaceLogEventFactory.INSTANCE.createFlagEvent(t3, passId, Flags.PAPA, Flags.NONE, true);
// RaceLogFlagEvent rcEvent4 = RaceLogEventFactory.INSTANCE.createFlagEvent(t4, passId, Flags.CLASS, Flags.NONE, true);
// RaceLogStartTimeEvent rcEvent5 = RaceLogEventFactory.INSTANCE.createStartTimeEvent(t5, passId, t1);
//
// getTrackedRace().recordRaceLogEvent(rcEvent1);
// getTrackedRace().recordRaceLogEvent(rcEvent2);
// getTrackedRace().recordRaceLogEvent(rcEvent3);
// getTrackedRace().recordRaceLogEvent(rcEvent4);
// getTrackedRace().recordRaceLogEvent(rcEvent5);
//
// track.lockForRead();
// try {
// assertEquals(Util.size(track.getRawFixes()), 5);
// assertEquals(Util.size(track.getFixes()), 5);
// } finally {
// track.unlockAfterRead();
// }
}
}
@@ -1,7 +1,6 @@
package com.sap.sailing.gwt.ui.client;
import java.io.Serializable;
import java.net.UnknownHostException;
import java.util.Collection;
import java.util.Date;
import java.util.LinkedHashMap;
@@ -11,7 +10,6 @@ import java.util.Set;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import com.mongodb.MongoException;
import com.sap.sailing.domain.common.Color;
import com.sap.sailing.domain.common.DetailType;
import com.sap.sailing.domain.common.MaxPointsReason;
@@ -56,242 +54,334 @@ import com.sap.sailing.gwt.ui.shared.WindDTO;
import com.sap.sailing.gwt.ui.shared.WindInfoForRaceDTO;
/**
* The client side stub for the RPC service. Usually, when a <code>null</code> date is passed to
* the time-dependent service methods, an empty (non-<code>null</code>) result is returned.
* The client side stub for the RPC service. Usually, when a <code>null</code>
* date is passed to the time-dependent service methods, an empty (non-
* <code>null</code>) result is returned.
*/
@RemoteServiceRelativePath("sailing")
public interface SailingService extends RemoteService {
List<TracTracConfigurationDTO> getPreviousTracTracConfigurations() throws Exception;
List<RegattaDTO> getRegattas();
List<TracTracConfigurationDTO> getPreviousTracTracConfigurations()
throws Exception;
List<EventDTO> getEvents();
List<RegattaDTO> getRegattas();
Pair<String, List<TracTracRaceRecordDTO>> listTracTracRacesInEvent(String eventJsonURL) throws Exception;
List<EventDTO> getEvents();
void trackWithTracTrac(RegattaIdentifier regattaToAddTo, Iterable<TracTracRaceRecordDTO> rrs, String liveURI,
String storedURI, boolean trackWind, boolean correctWindByDeclination, boolean simulateWithStartTimeNow) throws Exception;
Pair<String, List<TracTracRaceRecordDTO>> listTracTracRacesInEvent(
String eventJsonURL) throws Exception;
void trackWithSwissTiming(RegattaIdentifier regattaToAddTo, Iterable<SwissTimingRaceRecordDTO> rrs, String hostname, int port,
boolean canSendRequests, boolean trackWind, boolean correctWindByDeclination) throws Exception;
void replaySwissTimingRace(RegattaIdentifier regattaIdentifier, Iterable<SwissTimingReplayRaceDTO> replayRaces,
boolean trackWind, boolean correctWindByDeclination, boolean simulateWithStartTimeNow);
void trackWithTracTrac(RegattaIdentifier regattaToAddTo,
Iterable<TracTracRaceRecordDTO> rrs, String liveURI,
String storedURI, boolean trackWind,
boolean correctWindByDeclination, boolean simulateWithStartTimeNow)
throws Exception;
void storeTracTracConfiguration(String name, String jsonURL, String liveDataURI, String storedDataURI) throws Exception;
void trackWithSwissTiming(RegattaIdentifier regattaToAddTo,
Iterable<SwissTimingRaceRecordDTO> rrs, String hostname, int port,
boolean canSendRequests, boolean trackWind,
boolean correctWindByDeclination) throws Exception;
void stopTrackingEvent(RegattaIdentifier eventIdentifier) throws Exception;
void replaySwissTimingRace(RegattaIdentifier regattaIdentifier,
Iterable<SwissTimingReplayRaceDTO> replayRaces, boolean trackWind,
boolean correctWindByDeclination, boolean simulateWithStartTimeNow);
void stopTrackingRaces(Iterable<RegattaAndRaceIdentifier> racesToStopTracking) throws Exception;
void removeAndUntrackRaces(Iterable<RegattaAndRaceIdentifier> regattaNamesAndRaceNames);
void storeTracTracConfiguration(String name, String jsonURL,
String liveDataURI, String storedDataURI) throws Exception;
WindInfoForRaceDTO getRawWindFixes(RegattaAndRaceIdentifier raceIdentifier, Collection<WindSource> windSources);
void stopTrackingEvent(RegattaIdentifier eventIdentifier) throws Exception;
void setWind(RegattaAndRaceIdentifier raceIdentifier, WindDTO wind);
void stopTrackingRaces(
Iterable<RegattaAndRaceIdentifier> racesToStopTracking)
throws Exception;
WindInfoForRaceDTO getAveragedWindInfo(RegattaAndRaceIdentifier raceIdentifier, Date from, long millisecondsStepWidth,
int numberOfFixes, Collection<String> windSourceTypeNames) throws NoWindException;
void removeAndUntrackRaces(
Iterable<RegattaAndRaceIdentifier> regattaNamesAndRaceNames);
WindInfoForRaceDTO getAveragedWindInfo(RegattaAndRaceIdentifier raceIdentifier, Date from, Date to, long resolutionInMilliseconds,
Collection<String> windSourceTypeNames);
WindInfoForRaceDTO getRawWindFixes(RegattaAndRaceIdentifier raceIdentifier,
Collection<WindSource> windSources);
WindInfoForRaceDTO getAveragedWindInfo(RegattaAndRaceIdentifier raceIdentifier, Date from, long millisecondsStepWidth,
int numberOfFixes, double latDeg, double lngDeg, Collection<String> windSources) throws NoWindException;
void setWind(RegattaAndRaceIdentifier raceIdentifier, WindDTO wind);
RaceMapDataDTO getRaceMapData(RegattaAndRaceIdentifier raceIdentifier, Date date, Map<CompetitorDTO, Date> from, Map<CompetitorDTO, Date> to,
boolean extrapolate) throws NoWindException;
Map<CompetitorDTO, List<GPSFixDTO>> getBoatPositions(RegattaAndRaceIdentifier raceIdentifier, Map<CompetitorDTO, Date> from,
Map<CompetitorDTO, Date> to, boolean extrapolate) throws NoWindException;
WindInfoForRaceDTO getAveragedWindInfo(
RegattaAndRaceIdentifier raceIdentifier, Date from,
long millisecondsStepWidth, int numberOfFixes,
Collection<String> windSourceTypeNames) throws NoWindException;
RaceTimesInfoDTO getRaceTimesInfo(RegattaAndRaceIdentifier raceIdentifier);
List<RaceTimesInfoDTO> getRaceTimesInfos(Collection<RegattaAndRaceIdentifier> raceIdentifiers);
CourseDTO getCoursePositions(RegattaAndRaceIdentifier raceIdentifier, Date date);
WindInfoForRaceDTO getAveragedWindInfo(
RegattaAndRaceIdentifier raceIdentifier, Date from, Date to,
long resolutionInMilliseconds,
Collection<String> windSourceTypeNames);
List<ControlPointDTO> getRaceCourse(RegattaAndRaceIdentifier raceIdentifier, Date date);
WindInfoForRaceDTO getAveragedWindInfo(
RegattaAndRaceIdentifier raceIdentifier, Date from,
long millisecondsStepWidth, int numberOfFixes, double latDeg,
double lngDeg, Collection<String> windSources)
throws NoWindException;
List<QuickRankDTO> getQuickRanks(RegattaAndRaceIdentifier raceIdentifier, Date date) throws NoWindException;
RaceMapDataDTO getRaceMapData(RegattaAndRaceIdentifier raceIdentifier,
Date date, Map<CompetitorDTO, Date> from,
Map<CompetitorDTO, Date> to, boolean extrapolate)
throws NoWindException;
void removeWind(RegattaAndRaceIdentifier raceIdentifier, WindDTO windDTO);
Map<CompetitorDTO, List<GPSFixDTO>> getBoatPositions(
RegattaAndRaceIdentifier raceIdentifier,
Map<CompetitorDTO, Date> from, Map<CompetitorDTO, Date> to,
boolean extrapolate) throws NoWindException;
public List<String> getLeaderboardNames() throws Exception;
LeaderboardDTO getLeaderboardByName(String leaderboardName, Date date,
Collection<String> namesOfRaceColumnsForWhichToLoadLegDetails) throws Exception;
RaceTimesInfoDTO getRaceTimesInfo(RegattaAndRaceIdentifier raceIdentifier);
List<StrippedLeaderboardDTO> getLeaderboards();
List<StrippedLeaderboardDTO> getLeaderboardsByEvent(RegattaDTO regatta);
void updateLeaderboard(String leaderboardName, String newLeaderboardName, int[] newDiscardingThreasholds);
List<RaceTimesInfoDTO> getRaceTimesInfos(
Collection<RegattaAndRaceIdentifier> raceIdentifiers);
StrippedLeaderboardDTO createFlexibleLeaderboard(String leaderboardName, int[] discardThresholds, ScoringSchemeType scoringSchemeType,
Serializable courseAreaId);
CourseDTO getCoursePositions(RegattaAndRaceIdentifier raceIdentifier,
Date date);
StrippedLeaderboardDTO createRegattaLeaderboard(RegattaIdentifier regattaIdentifier, int[] discardThresholds, Serializable courseAreaId);
List<ControlPointDTO> getRaceCourse(
RegattaAndRaceIdentifier raceIdentifier, Date date);
void removeLeaderboard(String leaderboardName);
List<QuickRankDTO> getQuickRanks(RegattaAndRaceIdentifier raceIdentifier,
Date date) throws NoWindException;
void renameLeaderboard(String leaderboardName, String newLeaderboardName);
void removeWind(RegattaAndRaceIdentifier raceIdentifier, WindDTO windDTO);
void renameLeaderboardColumn(String leaderboardName, String oldColumnName, String newColumnName);
public List<String> getLeaderboardNames() throws Exception;
void removeLeaderboardColumn(String leaderboardName, String columnName);
void addColumnToLeaderboard(String columnName, String leaderboardName, boolean medalRace);
void moveLeaderboardColumnUp(String leaderboardName, String columnName);
void moveLeaderboardColumnDown(String leaderboardName, String columnName);
RegattaDTO createRegatta(String regattaName, String boatClassName,
LinkedHashMap<String, Pair<List<Triple<String, Integer, Color>>, Boolean>> seriesNamesWithFleetNamesAndFleetOrderingAndMedal,
boolean persistent, ScoringSchemeType scoringSchemeType);
void removeRegatta(RegattaIdentifier regattaIdentifier);
List<RaceColumnInSeriesDTO> addRaceColumnsToSeries(RegattaIdentifier regattaIdentifier, String seriesName, List<String> columnNames);
LeaderboardDTO getLeaderboardByName(String leaderboardName, Date date,
Collection<String> namesOfRaceColumnsForWhichToLoadLegDetails)
throws Exception;
RaceColumnInSeriesDTO addRaceColumnToSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName);
List<StrippedLeaderboardDTO> getLeaderboards();
void removeRaceColumnsFromSeries(RegattaIdentifier regattaIdentifier, String seriesName, List<String> columnNames);
List<StrippedLeaderboardDTO> getLeaderboardsByEvent(RegattaDTO regatta);
void removeRaceColumnFromSeries(RegattaIdentifier regattaIdentifier, String seriesName, String columnName);
void updateLeaderboard(String leaderboardName, String newLeaderboardName,
int[] newDiscardingThreasholds);
void moveRaceColumnInSeriesUp(RegattaIdentifier regattaIdentifier, String seriesName, String columnName);
StrippedLeaderboardDTO createFlexibleLeaderboard(String leaderboardName,
int[] discardThresholds, ScoringSchemeType scoringSchemeType,
Serializable courseAreaId);
void moveRaceColumnInSeriesDown(RegattaIdentifier regattaIdentifier, String seriesName, String columnName);
StrippedLeaderboardDTO createRegattaLeaderboard(
RegattaIdentifier regattaIdentifier, int[] discardThresholds,
Serializable courseAreaId);
boolean connectTrackedRaceToLeaderboardColumn(String leaderboardName, String raceColumnName,
String fleetName, RegattaAndRaceIdentifier raceIdentifier);
void disconnectLeaderboardColumnFromTrackedRace(String leaderboardName, String raceColumnName, String fleetName);
Map<String, RegattaAndRaceIdentifier> getRegattaAndRaceNameOfTrackedRaceConnectedToLeaderboardColumn(String leaderboardName, String raceColumnName);
void removeLeaderboard(String leaderboardName);
void updateLeaderboardCarryValue(String leaderboardName, String competitorIdAsString, Double carriedPoints);
void renameLeaderboard(String leaderboardName, String newLeaderboardName);
/**
* @return the new net points in {@link Pair#getA()} and the new total points in {@link Pair#getB()} for time point
* <code>date</code> after the max points reason has been updated to <code>maxPointsReasonAsString</code>.
*/
Triple<Double, Double, Boolean> updateLeaderboardMaxPointsReason(String leaderboardName, String competitorIdAsString,
String raceColumnName, MaxPointsReason maxPointsReason, Date date) throws NoWindException;
void renameLeaderboardColumn(String leaderboardName, String oldColumnName,
String newColumnName);
Triple<Double, Double, Boolean> updateLeaderboardScoreCorrection(String leaderboardName, String competitorIdAsString,
String columnName, Double correctedScore, Date date) throws NoWindException;
void removeLeaderboardColumn(String leaderboardName, String columnName);
void updateCompetitorDisplayNameInLeaderboard(String leaderboardName, String competitorIdAsString, String displayName);
void updateIsMedalRace(String leaderboardName, String columnName, boolean isMedalRace);
void addColumnToLeaderboard(String columnName, String leaderboardName,
boolean medalRace);
List<SwissTimingConfigurationDTO> getPreviousSwissTimingConfigurations();
void moveLeaderboardColumnUp(String leaderboardName, String columnName);
List<SwissTimingRaceRecordDTO> listSwissTimingRaces(String hostname, int port, boolean canSendRequests) throws Exception;
void moveLeaderboardColumnDown(String leaderboardName, String columnName);
void storeSwissTimingConfiguration(String configName, String hostname, int port, boolean canSendRequests);
RegattaDTO createRegatta(
String regattaName,
String boatClassName,
LinkedHashMap<String, Pair<List<Triple<String, Integer, Color>>, Boolean>> seriesNamesWithFleetNamesAndFleetOrderingAndMedal,
boolean persistent, ScoringSchemeType scoringSchemeType);
void sendSwissTimingDummyRace(String racMessage, String stlMesssage, String ccgMessage) throws IllegalArgumentException;
void removeRegatta(RegattaIdentifier regattaIdentifier);
String[] getCountryCodes();
Map<CompetitorDTO, List<GPSFixDTO>> getDouglasPoints(RegattaAndRaceIdentifier raceIdentifier,
Map<CompetitorDTO, Date> from, Map<CompetitorDTO, Date> to, double meters) throws NoWindException;
List<RaceColumnInSeriesDTO> addRaceColumnsToSeries(
RegattaIdentifier regattaIdentifier, String seriesName,
List<String> columnNames);
Map<CompetitorDTO, List<ManeuverDTO>> getManeuvers(RegattaAndRaceIdentifier raceIdentifier,
Map<CompetitorDTO, Date> from, Map<CompetitorDTO, Date> to) throws NoWindException;
RaceColumnInSeriesDTO addRaceColumnToSeries(
RegattaIdentifier regattaIdentifier, String seriesName,
String columnName);
List<StrippedLeaderboardDTO> getLeaderboardsByRace(RaceDTO race);
List<LeaderboardGroupDTO> getLeaderboardGroups(boolean withGeoLocationData);
LeaderboardGroupDTO getLeaderboardGroupByName(String groupName, boolean withGeoLocationData);
void renameLeaderboardGroup(String oldName, String newName);
void removeLeaderboardGroup(String groupName);
LeaderboardGroupDTO createLeaderboardGroup(String groupName, String description,
boolean displayGroupsInReverseOrder, int[] overallLeaderboardDiscardThresholds,
ScoringSchemeType overallLeaderboardScoringSchemeType);
void updateLeaderboardGroup(String oldName, String newName, String description, List<String> leaderboardNames,
int[] overallLeaderboardDiscardThresholds, ScoringSchemeType overallLeaderboardScoringSchemeType);
void removeRaceColumnsFromSeries(RegattaIdentifier regattaIdentifier,
String seriesName, List<String> columnNames);
CompetitorsRaceDataDTO getCompetitorsRaceData(RegattaAndRaceIdentifier race, List<CompetitorDTO> competitors, Date from, Date to,
long stepSizeInMs, DetailType detailType) throws NoWindException;
void removeRaceColumnFromSeries(RegattaIdentifier regattaIdentifier,
String seriesName, String columnName);
void setRaceIsKnownToStartUpwind(RegattaAndRaceIdentifier raceIdentifier, boolean raceIsKnownToStartUpwind);
void moveRaceColumnInSeriesUp(RegattaIdentifier regattaIdentifier,
String seriesName, String columnName);
void setWindSourcesToExclude(RegattaAndRaceIdentifier raceIdentifier, Iterable<WindSource> windSourcesToExclude);
ReplicationStateDTO getReplicaInfo();
void moveRaceColumnInSeriesDown(RegattaIdentifier regattaIdentifier,
String seriesName, String columnName);
void startReplicatingFromMaster(String masterName, String exchangeName, int servletPort, int messagingPort) throws Exception;
boolean connectTrackedRaceToLeaderboardColumn(String leaderboardName,
String raceColumnName, String fleetName,
RegattaAndRaceIdentifier raceIdentifier);
void updateRaceDelayToLive(RegattaAndRaceIdentifier regattaAndRaceIdentifier, long delayToLiveInMs);
void disconnectLeaderboardColumnFromTrackedRace(String leaderboardName,
String raceColumnName, String fleetName);
void updateRacesDelayToLive(List<RegattaAndRaceIdentifier> regattaAndRaceIdentifiers, long delayToLiveInMs);
Map<String, RegattaAndRaceIdentifier> getRegattaAndRaceNameOfTrackedRaceConnectedToLeaderboardColumn(
String leaderboardName, String raceColumnName);
void updateEvent(String eventName, Serializable id, VenueDTO venue, String publicationUrl, boolean isPublic,
List<String> regattaNames);
void updateLeaderboardCarryValue(String leaderboardName,
String competitorIdAsString, Double carriedPoints);
EventDTO createEvent(String eventName, String venueName, String publicationUrl, boolean isPublic, List<String> courseAreas);
/**
* @return the new net points in {@link Pair#getA()} and the new total
* points in {@link Pair#getB()} for time point <code>date</code>
* after the max points reason has been updated to
* <code>maxPointsReasonAsString</code>.
*/
Triple<Double, Double, Boolean> updateLeaderboardMaxPointsReason(
String leaderboardName, String competitorIdAsString,
String raceColumnName, MaxPointsReason maxPointsReason, Date date)
throws NoWindException;
void removeEvent(Serializable id);
Triple<Double, Double, Boolean> updateLeaderboardScoreCorrection(
String leaderboardName, String competitorIdAsString,
String columnName, Double correctedScore, Date date)
throws NoWindException;
void renameEvent(Serializable id, String newName);
void updateCompetitorDisplayNameInLeaderboard(String leaderboardName,
String competitorIdAsString, String displayName);
EventDTO getEventByName(String eventName);
CourseAreaDTO createCourseArea(Serializable id, String courseAreaName);
EventDTO getEventById(Serializable id);
void updateIsMedalRace(String leaderboardName, String columnName,
boolean isMedalRace);
Iterable<ScoreCorrectionProviderDTO> getScoreCorrectionProviderDTOs() throws Exception;
List<SwissTimingConfigurationDTO> getPreviousSwissTimingConfigurations();
RegattaScoreCorrectionDTO getScoreCorrections(String scoreCorrectionProviderName, String eventName, String boatClassName,
Date timePointWhenResultPublished) throws Exception;
List<SwissTimingRaceRecordDTO> listSwissTimingRaces(String hostname,
int port, boolean canSendRequests) throws Exception;
void updateLeaderboardScoreCorrectionsAndMaxPointsReasons(BulkScoreCorrectionDTO updates) throws NoWindException;
void storeSwissTimingConfiguration(String configName, String hostname,
int port, boolean canSendRequests);
WindInfoForRaceDTO getWindSourcesInfo(RegattaAndRaceIdentifier raceIdentifier);
void sendSwissTimingDummyRace(String racMessage, String stlMesssage,
String ccgMessage) throws IllegalArgumentException;
List<String> getFregResultUrls();
String[] getCountryCodes();
void removeFregURLs(Set<String> toRemove) throws Exception;
Map<CompetitorDTO, List<GPSFixDTO>> getDouglasPoints(
RegattaAndRaceIdentifier raceIdentifier,
Map<CompetitorDTO, Date> from, Map<CompetitorDTO, Date> to,
double meters) throws NoWindException;
void addFragUrl(String result) throws Exception;
Map<CompetitorDTO, List<ManeuverDTO>> getManeuvers(
RegattaAndRaceIdentifier raceIdentifier,
Map<CompetitorDTO, Date> from, Map<CompetitorDTO, Date> to)
throws NoWindException;
Void updateLeaderboardScoreCorrectionMetadata(String leaderboardName, Date timePointOfLastCorrectionValidity,
String comment);
List<StrippedLeaderboardDTO> getLeaderboardsByRace(RaceDTO race);
RaceCourseMarksDTO getRaceCourseMarks(RegattaAndRaceIdentifier raceIdentifier, Date date);
List<LeaderboardGroupDTO> getLeaderboardGroups(boolean withGeoLocationData);
void updateRaceCourse(RegattaAndRaceIdentifier raceIdentifier, List<ControlPointDTO> controlPoints);
LeaderboardGroupDTO getLeaderboardGroupByName(String groupName,
boolean withGeoLocationData);
void addColumnsToLeaderboard(String leaderboardName, List<Pair<String, Boolean>> columnsToAdd) throws UnknownHostException, MongoException;
void renameLeaderboardGroup(String oldName, String newName);
void removeLeaderboardColumns(String leaderboardName, List<String> columnsToRemove);
void removeLeaderboardGroup(String groupName);
StrippedLeaderboardDTO getLeaderboard(String leaderboardName);
LeaderboardGroupDTO createLeaderboardGroup(String groupName,
String description, boolean displayGroupsInReverseOrder,
int[] overallLeaderboardDiscardThresholds,
ScoringSchemeType overallLeaderboardScoringSchemeType);
void suppressCompetitorInLeaderboard(String leaderboardName, String competitorIdAsString, boolean suppressed);
void updateLeaderboardGroup(String oldName, String newName,
String description, List<String> leaderboardNames,
int[] overallLeaderboardDiscardThresholds,
ScoringSchemeType overallLeaderboardScoringSchemeType);
RaceEventLogDTO getRaceEventLog();
CompetitorsRaceDataDTO getCompetitorsRaceData(
RegattaAndRaceIdentifier race, List<CompetitorDTO> competitors,
Date from, Date to, long stepSizeInMs, DetailType detailType)
throws NoWindException;
void updateLeaderboardColumnFactor(String leaderboardName, String columnName, Double newFactor);
List<SwissTimingReplayRaceDTO> listSwissTiminigReplayRaces(String swissTimingUrl);
void setRaceIsKnownToStartUpwind(RegattaAndRaceIdentifier raceIdentifier,
boolean raceIsKnownToStartUpwind);
List<Pair<String, List<CompetitorDTO>>> getRankedCompetitorsFromBestToWorstAfterEachRaceColumn(String leaderboardName, Date date) throws NoWindException;
void setWindSourcesToExclude(RegattaAndRaceIdentifier raceIdentifier,
Iterable<WindSource> windSourcesToExclude);
List<String> getOverallLeaderboardNamesContaining(String leaderboardName);
ReplicationStateDTO getReplicaInfo();
List<SwissTimingArchiveConfigurationDTO> getPreviousSwissTimingArchiveConfigurations();
void startReplicatingFromMaster(String masterName, String exchangeName,
int servletPort, int messagingPort) throws Exception;
void storeSwissTimingArchiveConfiguration(String swissTimingUrl);
void updateRaceDelayToLive(
RegattaAndRaceIdentifier regattaAndRaceIdentifier,
long delayToLiveInMs);
void updateRacesDelayToLive(
List<RegattaAndRaceIdentifier> regattaAndRaceIdentifiers,
long delayToLiveInMs);
void updateEvent(String eventName, Serializable id, VenueDTO venue,
String publicationUrl, boolean isPublic, List<String> regattaNames);
EventDTO createEvent(String eventName, String venueName,
String publicationUrl, boolean isPublic, List<String> courseAreas);
void removeEvent(Serializable id);
void renameEvent(Serializable id, String newName);
EventDTO getEventByName(String eventName);
CourseAreaDTO createCourseArea(Serializable id, String courseAreaName);
EventDTO getEventById(Serializable id);
Iterable<ScoreCorrectionProviderDTO> getScoreCorrectionProviderDTOs()
throws Exception;
RegattaScoreCorrectionDTO getScoreCorrections(
String scoreCorrectionProviderName, String eventName,
String boatClassName, Date timePointWhenResultPublished)
throws Exception;
void updateLeaderboardScoreCorrectionsAndMaxPointsReasons(
BulkScoreCorrectionDTO updates) throws NoWindException;
WindInfoForRaceDTO getWindSourcesInfo(
RegattaAndRaceIdentifier raceIdentifier);
List<String> getFregResultUrls();
void removeFregURLs(Set<String> toRemove) throws Exception;
void addFragUrl(String result) throws Exception;
Void updateLeaderboardScoreCorrectionMetadata(String leaderboardName,
Date timePointOfLastCorrectionValidity, String comment);
RaceCourseMarksDTO getRaceCourseMarks(
RegattaAndRaceIdentifier raceIdentifier, Date date);
void updateRaceCourse(RegattaAndRaceIdentifier raceIdentifier,
List<ControlPointDTO> controlPoints);
void addColumnsToLeaderboard(String leaderboardName,
List<Pair<String, Boolean>> columnsToAdd);
void removeLeaderboardColumns(String leaderboardName,
List<String> columnsToRemove);
StrippedLeaderboardDTO getLeaderboard(String leaderboardName);
void suppressCompetitorInLeaderboard(String leaderboardName,
String competitorIdAsString, boolean suppressed);
RaceEventLogDTO getRaceEventLog();
void updateLeaderboardColumnFactor(String leaderboardName,
String columnName, Double newFactor);
List<SwissTimingReplayRaceDTO> listSwissTiminigReplayRaces(
String swissTimingUrl);
List<Pair<String, List<CompetitorDTO>>> getRankedCompetitorsFromBestToWorstAfterEachRaceColumn(
String leaderboardName, Date date) throws NoWindException;
List<String> getOverallLeaderboardNamesContaining(String leaderboardName);
List<SwissTimingArchiveConfigurationDTO> getPreviousSwissTimingArchiveConfigurations();
void storeSwissTimingArchiveConfiguration(String swissTimingUrl);
}