renamed more "...event..." variables and parameters to "...regatta..."

This commit is contained in:
Axel Uhl committed 2012-05-14 14:58:48 +02:00
1 parent 81e24391f7
commit bd94677e2d
39 files changed
+204 -205

No files matched your search

@@ -18,7 +18,7 @@ import com.sap.sailing.domain.tracking.WindTrack;
*
*/
public interface DomainObjectFactory {
WindTrack loadWindTrack(Regatta event, RaceDefinition race, WindSource windSource, long millisecondsOverWhichToAverage);
WindTrack loadWindTrack(Regatta regatta, RaceDefinition race, WindSource windSource, long millisecondsOverWhichToAverage);
Leaderboard loadLeaderboard(String name);
@@ -20,7 +20,7 @@ public interface MongoObjectFactory {
/**
* Registers for changes of the wind coming from <code>windSource</code> on the <code>trackedRace</code>. Each
* update received will be appended to the MongoDB and can later be retrieved. The key used to identify the race is
* the {@link RaceDefinition#getName() race name} and the {@link Regatta#getName() event name}.
* the {@link RaceDefinition#getName() race name} and the {@link Regatta#getName() regatta name}.
*/
void addWindTrackDumper(TrackedRegatta trackedRegatta, TrackedRace trackedRace, WindSource windSource);
@@ -92,11 +92,11 @@ public class DomainObjectFactoryImpl implements DomainObjectFactory {
}
@Override
public WindTrack loadWindTrack(Regatta event, RaceDefinition race, WindSource windSource, long millisecondsOverWhichToAverage) {
public WindTrack loadWindTrack(Regatta regatta, RaceDefinition race, WindSource windSource, long millisecondsOverWhichToAverage) {
WindTrack result = new WindTrackImpl(millisecondsOverWhichToAverage, windSource.getType().getBaseConfidence(), windSource.getType().useSpeed());
try {
BasicDBObject query = new BasicDBObject();
query.put(FieldNames.EVENT_NAME.name(), event.getName());
query.put(FieldNames.EVENT_NAME.name(), regatta.getName());
query.put(FieldNames.RACE_NAME.name(), race.getName());
query.put(FieldNames.WIND_SOURCE_NAME.name(), windSource.name());
DBCollection windTracks = database.getCollection(CollectionNames.WIND_TRACKS.name());
@@ -84,9 +84,9 @@ public class MongoObjectFactoryImpl implements MongoObjectFactory {
return result;
}
public DBObject storeWindTrackEntry(Regatta event, RaceDefinition race, WindSource windSource, Wind wind) {
public DBObject storeWindTrackEntry(Regatta regatta, RaceDefinition race, WindSource windSource, Wind wind) {
BasicDBObject result = new BasicDBObject();
result.put(FieldNames.EVENT_NAME.name(), event.getName());
result.put(FieldNames.EVENT_NAME.name(), regatta.getName());
result.put(FieldNames.RACE_NAME.name(), race.getName());
result.put(FieldNames.WIND_SOURCE_NAME.name(), windSource.name());
if (windSource.getId() != null) {
@@ -31,7 +31,7 @@ public class SimpleDomainFactoryTest {
@Test
public void testCourseConfigForBuoy() throws PatchFailedException {
DomainFactory domainFactory = DomainFactory.INSTANCE;
Regatta event = new RegattaImpl("TestEvent", /* boatClass */ null);
Regatta regatta = new RegattaImpl("TestEvent", /* boatClass */ null);
Race race = new RaceImpl("1234", "Race 1234");
Iterable<Competitor> competitors = Collections.emptyList();
StartList startList = new StartListImpl("1234", competitors);
@@ -39,7 +39,7 @@ public class SimpleDomainFactoryTest {
Mark mark2 = new MarkImpl("M1", 0, Arrays.asList("D3", "D4"));
List<Mark> marks = Arrays.asList(mark1, mark2);
Course course = new CourseImpl("1234", marks);
RaceDefinition raceDefinition = domainFactory.createRaceDefinition(event, race, startList, course);
RaceDefinition raceDefinition = domainFactory.createRaceDefinition(regatta, race, startList, course);
ArrayList<Waypoint> waypoints1 = new ArrayList<Waypoint>();
for (Waypoint waypoint : raceDefinition.getCourse().getWaypoints()) {
waypoints1.add(waypoint);
@@ -55,7 +55,7 @@ public class SimpleDomainFactoryTest {
@Test
public void testCourseConfigForGate() throws PatchFailedException {
DomainFactory domainFactory = DomainFactory.INSTANCE;
Regatta event = new RegattaImpl("TestEvent", /* boatClass */ null);
Regatta regatta = new RegattaImpl("TestEvent", /* boatClass */ null);
Race race = new RaceImpl("1234", "Race 1234");
Iterable<Competitor> competitors = Collections.emptyList();
StartList startList = new StartListImpl("1234", competitors);
@@ -63,7 +63,7 @@ public class SimpleDomainFactoryTest {
Mark mark2 = new MarkImpl("M1", 0, Arrays.asList("D3", "D4"));
List<Mark> marks = Arrays.asList(mark1, mark2);
Course course = new CourseImpl("1234", marks);
RaceDefinition raceDefinition = domainFactory.createRaceDefinition(event, race, startList, course);
RaceDefinition raceDefinition = domainFactory.createRaceDefinition(regatta, race, startList, course);
assertEquals(2, Util.size(raceDefinition.getCourse().getWaypoints()));
ArrayList<Waypoint> waypoints1 = new ArrayList<Waypoint>();
for (Waypoint waypoint : raceDefinition.getCourse().getWaypoints()) {
@@ -26,7 +26,7 @@ public interface DomainFactory {
Competitor getOrCreateCompetitor(com.sap.sailing.domain.swisstimingadapter.Competitor competitor, BoatClass boatClass);
RaceDefinition createRaceDefinition(Regatta event, Race race, StartList startList, com.sap.sailing.domain.swisstimingadapter.Course course);
RaceDefinition createRaceDefinition(Regatta regatta, Race race, StartList startList, com.sap.sailing.domain.swisstimingadapter.Course course);
Buoy getOrCreateBuoy(String trackerID);
@@ -1,7 +1,7 @@
package com.sap.sailing.domain.swisstimingadapter;
/**
* Configuration parameters that can be used to connect to a TracTrac event / race.
* Configuration parameters that can be used to connect to a SwissTiming event / race.
*
* @author Axel Uhl (D043530)
*
@@ -120,13 +120,13 @@ public class DomainFactoryImpl implements DomainFactory {
}
@Override
public RaceDefinition createRaceDefinition(Regatta event, Race race, StartList startList, Course course) {
public RaceDefinition createRaceDefinition(Regatta regatta, Race race, StartList startList, Course course) {
com.sap.sailing.domain.base.Course domainCourse = createCourse(race.getDescription(), course);
BoatClass boatClass = getOrCreateBoatClassFromRaceID(race.getRaceID());
Iterable<Competitor> competitors = createCompetitorList(startList, boatClass);
RaceDefinition result = new RaceDefinitionImpl(race.getRaceID(), domainCourse,
boatClass, competitors);
event.addRace(result);
regatta.addRace(result);
return result;
}
@@ -228,18 +228,18 @@ public class DomainFactoryImpl implements DomainFactory {
@Override
public void removeRace(String raceID) {
Regatta event = getOrCreateEvent(raceID);
Regatta regatta = getOrCreateEvent(raceID);
Set<RaceDefinition> toRemove = new HashSet<RaceDefinition>();
if (event != null) {
for (RaceDefinition race : event.getAllRaces()) {
if (regatta != null) {
for (RaceDefinition race : regatta.getAllRaces()) {
if (race.getName().equals(raceID)) {
toRemove.add(race);
}
}
for (RaceDefinition raceToRemove : toRemove) {
event.removeRace(raceToRemove);
regatta.removeRace(raceToRemove);
}
if (Util.isEmpty(event.getAllRaces())) {
if (Util.isEmpty(regatta.getAllRaces())) {
raceIDToEventCache.remove(raceID);
}
}
@@ -57,7 +57,7 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl implemen
private final RaceSpecificMessageLoader messageLoader;
private final DomainFactory domainFactory;
private final Triple<String, String, Integer> id;
private final Regatta event;
private final Regatta regatta;
private final WindStore windStore;
private RaceDefinition race;
@@ -79,8 +79,8 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl implemen
this.windStore = windStore;
this.id = createID(raceID, hostname, port);
connector.addSailMasterListener(raceID, this);
event = domainFactory.getOrCreateEvent(raceID);
setTrackedEvent(trackedRegattaRegistry.getOrCreateTrackedRegatta(event));
regatta = domainFactory.getOrCreateEvent(raceID);
setTrackedRegatta(trackedRegattaRegistry.getOrCreateTrackedRegatta(regatta));
connector.trackRace(raceID);
}
@@ -136,7 +136,7 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl implemen
@Override
public Regatta getRegatta() {
return event;
return regatta;
}
@Override
@@ -248,7 +248,7 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl implemen
assert course != null;
// now we can create the RaceDefinition and most other things
Race swissTimingRace = messageLoader.getRace(raceID);
race = domainFactory.createRaceDefinition(event, swissTimingRace, startList, course);
race = domainFactory.createRaceDefinition(regatta, swissTimingRace, startList, course);
trackedRace = getTrackedRegatta().createTrackedRace(race, windStore,
WindTrack.DEFAULT_MILLISECONDS_OVER_WHICH_TO_AVERAGE_WIND,
/* time over which to average speed */ race.getBoatClass().getApproximateManeuverDurationInMilliseconds(),
@@ -264,7 +264,7 @@ public class SwissTimingRaceTrackerImpl extends AbstractRaceTrackerImpl implemen
/**
* Checks if {@link #getRegatta()} still contains the {@link RaceDefinition} obtained when calling
* {@link TrackedRace#getRace()} on {@link #trackedRace} and if the {@link #getTrackedRegatta() tracked event} for
* {@link TrackedRace#getRace()} on {@link #trackedRace} and if the {@link #getTrackedRegatta() tracked regatta} for
* {@link #getRegatta()} still contains {@link #trackedRace}. This is the precondition for updating the
* {@link #trackedRace} with data received from the trackers.
*/
@@ -80,8 +80,8 @@ public class ReachingLegTest extends TrackBasedTest {
protected DynamicTrackedRace createTestTrackedRace(String regattaName, String raceName, String boatClassName,
Iterable<Competitor> competitors, TimePoint timePointForFixes) {
BoatClassImpl boatClass = new BoatClassImpl(boatClassName, /* typicallyStartsUpwind */ true);
Regatta event = new RegattaImpl(regattaName, boatClass);
TrackedRegatta trackedRegatta = new TrackedRegattaImpl(event);
Regatta regatta = new RegattaImpl(regattaName, boatClass);
TrackedRegatta trackedRegatta = new TrackedRegattaImpl(regatta);
List<Waypoint> waypoints = new ArrayList<Waypoint>();
// create a two-lap upwind/downwind course:
BuoyImpl left = new BuoyImpl("Left lee gate buoy");
@@ -65,8 +65,8 @@ public class ReceiveTrackingDataTest extends AbstractTracTracLiveTest {
}
};
List<TypeController> listeners = new ArrayList<TypeController>();
Regatta event = domainFactory.getOrCreateEvent(getEvent());
DynamicTrackedRegatta trackedRegatta = new DynamicTrackedRegattaImpl(event);
Regatta regatta = domainFactory.getOrCreateEvent(getEvent());
DynamicTrackedRegatta trackedRegatta = new DynamicTrackedRegattaImpl(regatta);
trackedRegatta.addRaceListener(new RaceListener() {
@Override
public void raceAdded(TrackedRace trackedRace) {
@@ -90,8 +90,8 @@ public abstract class TrackBasedTest {
protected DynamicTrackedRace createTestTrackedRace(String regattaName, String raceName, String boatClassName,
Iterable<Competitor> competitors, TimePoint timePointForFixes) {
BoatClassImpl boatClass = new BoatClassImpl(boatClassName, /* typicallyStartsUpwind */ true);
Regatta event = new RegattaImpl(regattaName, boatClass);
TrackedRegatta trackedRegatta = new TrackedRegattaImpl(event);
Regatta regatta = new RegattaImpl(regattaName, boatClass);
TrackedRegatta trackedRegatta = new TrackedRegattaImpl(regatta);
List<Waypoint> waypoints = new ArrayList<Waypoint>();
// create a two-lap upwind/downwind course:
BuoyImpl left = new BuoyImpl("Left lee gate buoy");
@@ -83,16 +83,16 @@ public class DomainFactoryImpl implements DomainFactory {
private final Map<String, Team> teamCache = new HashMap<String, Team>();
/**
* Caches events by their name and their boat class's name
* Caches regattas by their name and their boat class's name
*/
private final Map<Pair<String, String>, com.sap.sailing.domain.base.Regatta> eventCache =
private final Map<Pair<String, String>, com.sap.sailing.domain.base.Regatta> regattaCache =
new HashMap<Pair<String, String>, 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
* TracTrac event remains referenced. This is intended to reduce the number of times the dominant boat
* class needs to be determined for an event. Synchronization for additions / removals is tied to the
* synchronization for {@link #eventCache}.
* class needs to be determined for an regatta. Synchronization for additions / removals is tied to the
* synchronization for {@link #regattaCache}.
*/
private final WeakIdentityHashMap<com.tractrac.clientmodule.Event, Regatta> weakEventCache = new WeakIdentityHashMap<>();
@@ -244,7 +244,7 @@ public class DomainFactoryImpl implements DomainFactory {
@Override
public Regatta getOrCreateEvent(com.tractrac.clientmodule.Event event) {
synchronized (eventCache) {
synchronized (regattaCache) {
// FIXME Dialog with Lasse by Skype on 2011-06-17:
// [6:20:04 PM] Axel Uhl: Lasse, can Event.getCompetitorClassList() ever produce more than one result?
// [6:20:20 PM] Axel Uhl: Or is it similar to Event.getRaceList() which always delivers one Race?
@@ -267,10 +267,10 @@ public class DomainFactoryImpl implements DomainFactory {
BoatClass boatClass = getDominantBoatClass(competitorClassList);
Pair<String, String> key = new Pair<String, String>(event.getName(), boatClass == null ? null
: boatClass.getName());
result = eventCache.get(key);
result = regattaCache.get(key);
if (result == null) {
result = new RegattaImpl(event.getName(), boatClass);
eventCache.put(key, result);
regattaCache.put(key, result);
weakEventCache.put(event, result);
}
}
@@ -336,26 +336,26 @@ public class DomainFactoryImpl implements DomainFactory {
BoatClass boatClass = getDominantBoatClass(competitorClassList);
Pair<String, String> key = new Pair<String, String>(tractracEvent.getName(), boatClass == null ? null
: boatClass.getName());
synchronized (eventCache) {
Regatta event = eventCache.get(key);
if (event != null) {
synchronized (regattaCache) {
Regatta regatta = regattaCache.get(key);
if (regatta != null) {
// The following fixes bug 202: when tracking of multiple races of the same event has been started, this may not
// remove any race; however, the event may already have been created by another tracker whose race hasn't
// arrived yet and therefore the races list is still empty; therefore, only remove the event if its
// race list became empty by the removal performed here.
int oldSize = Util.size(event.getAllRaces());
event.removeRace(raceDefinition);
if (oldSize > 0 && Util.size(event.getAllRaces()) == 0) {
eventCache.remove(key);
int oldSize = Util.size(regatta.getAllRaces());
regatta.removeRace(raceDefinition);
if (oldSize > 0 && Util.size(regatta.getAllRaces()) == 0) {
regattaCache.remove(key);
weakEventCache.remove(tractracEvent);
}
TrackedRegatta trackedRegatta = trackedRegattaRegistry.getTrackedRegatta(event);
TrackedRegatta trackedRegatta = trackedRegattaRegistry.getTrackedRegatta(regatta);
if (trackedRegatta != null) {
// see above; only remove tracked event if it *became* empty because of the tracked race removal here
// see above; only remove tracked regatta if it *became* empty because of the tracked race removal here
int oldSizeOfTrackedRaces = Util.size(trackedRegatta.getTrackedRaces());
trackedRegatta.removeTrackedRace(raceDefinition);
if (oldSizeOfTrackedRaces > 0 && Util.size(trackedRegatta.getTrackedRaces()) == 0) {
trackedRegattaRegistry.removeTrackedRegatta(event);
trackedRegattaRegistry.removeTrackedRegatta(regatta);
}
}
}
@@ -377,8 +377,8 @@ public class DomainFactoryImpl implements DomainFactory {
if (raceDefinition.getBoatClass() == trackedRegatta.getRegatta().getBoatClass()) {
trackedRegatta.getRegatta().addRace(raceDefinition);
} else {
logger.warning("Not adding race "+raceDefinition+" to event "+trackedRegatta.getRegatta()+
" because boat class "+raceDefinition.getBoatClass()+" doesn't match event's boat class "+
logger.warning("Not adding race "+raceDefinition+" to regatta "+trackedRegatta.getRegatta()+
" because boat class "+raceDefinition.getBoatClass()+" doesn't match regatta's boat class "+
trackedRegatta.getRegatta().getBoatClass());
}
TrackedRace trackedRace = createTrackedRace(trackedRegatta, raceDefinition, windStore,
@@ -132,7 +132,7 @@ public class TracTracRaceTrackerImpl extends AbstractRaceTrackerImpl implements
domainFactory.removeRace(tractracEvent, tractracRace, trackedRegattaRegistry);
}
domainEvent = domainFactory.getOrCreateEvent(tractracEvent);
setTrackedEvent(trackedRegattaRegistry.getOrCreateTrackedRegatta(domainEvent));
setTrackedRegatta(trackedRegattaRegistry.getOrCreateTrackedRegatta(domainEvent));
receivers = new HashSet<Receiver>();
Set<TypeController> typeControllers = new HashSet<TypeController>();
for (Receiver receiver : domainFactory.getUpdateReceivers(getTrackedRegatta(), tractracEvent, startOfTracking,
@@ -15,7 +15,7 @@ import com.sap.sailing.domain.tracking.TrackedRegatta;
public interface Regatta extends Named {
/**
* Please note that the {@link RaceDefinition}s of the {@link Regatta} are not necessarily in sync with the
* {@link TrackedRace}s of the {@link TrackedRegatta} whose {@link TrackedRegatta#getRegatta() event} is this event.
* {@link TrackedRace}s of the {@link TrackedRegatta} whose {@link TrackedRegatta#getRegatta() regatta} is this regatta.
* For example, it may be the case that a {@link RaceDefinition} is returned by this method for which no
* {@link TrackedRace} exists in the corresponding {@link TrackedRegatta}. This could be the case, e.g., during
* the initialization of the tracker as well as during removing a race from the server.<p>
@@ -26,10 +26,10 @@ public interface Regatta extends Named {
Iterable<RaceDefinition> getAllRaces();
/**
* Please note that the set of {@link RaceDefinition}s contained by this event may not match up with the
* {@link TrackedRace}s of the {@link TrackedRegatta} corresponding to this event. See also {@link #getAllRaces()}.
* Please note that the set of {@link RaceDefinition}s contained by this regatta may not match up with the
* {@link TrackedRace}s of the {@link TrackedRegatta} corresponding to this regatta. See also {@link #getAllRaces()}.
*
* @return <code>null</code>, if this event does not contain a race (see {@link #getAllRaces}) whose
* @return <code>null</code>, if this regatta does not contain a race (see {@link #getAllRaces}) whose
* {@link RaceDefinition#getName()} equals <code>raceName</code>
*/
RaceDefinition getRaceByName(String raceName);
@@ -49,7 +49,7 @@ public interface Regatta extends Named {
RegattaIdentifier getRegattaIdentifier();
/**
* A regatta name may be composed, e.g., from an overall event name and the boat class name. A factory or constructor
* A regatta name may be composed, e.g., from an overall regatta name and the boat class name. A factory or constructor
* may require the base name to which the boat class name will be appended. This method emits the base name.
*/
String getBaseName();
@@ -18,12 +18,12 @@ public class RegattaImpl extends NamedImpl implements Regatta {
private static final long serialVersionUID = 6509564189552478869L;
private final Set<RaceDefinition> races;
private final BoatClass boatClass;
private transient Set<RegattaListener> eventListeners;
private transient Set<RegattaListener> regattaListeners;
public RegattaImpl(String baseName, BoatClass boatClass) {
super(baseName+(boatClass==null?"":" ("+boatClass.getName()+")"));
races = new HashSet<RaceDefinition>();
eventListeners = new HashSet<RegattaListener>();
regattaListeners = new HashSet<RegattaListener>();
this.boatClass = boatClass;
}
@@ -40,7 +40,7 @@ public class RegattaImpl extends NamedImpl implements Regatta {
private void readObject(ObjectInputStream ois) throws ClassNotFoundException, IOException {
ois.defaultReadObject();
eventListeners = new HashSet<>();
regattaListeners = new HashSet<>();
}
@Override
@@ -69,13 +69,13 @@ public class RegattaImpl extends NamedImpl implements Regatta {
@Override
public void addRace(RaceDefinition race) {
if (getBoatClass() != null && race.getBoatClass() != getBoatClass()) {
throw new IllegalArgumentException("Boat class "+race.getBoatClass()+" doesn't match event's boat class "+getBoatClass());
throw new IllegalArgumentException("Boat class "+race.getBoatClass()+" doesn't match regatta's boat class "+getBoatClass());
}
synchronized (races) {
races.add(race);
}
synchronized (eventListeners) {
for (RegattaListener l : eventListeners) {
synchronized (regattaListeners) {
for (RegattaListener l : regattaListeners) {
l.raceAdded(this, race);
}
}
@@ -86,8 +86,8 @@ public class RegattaImpl extends NamedImpl implements Regatta {
synchronized (races) {
races.remove(race);
}
synchronized (eventListeners) {
for (RegattaListener l : eventListeners) {
synchronized (regattaListeners) {
for (RegattaListener l : regattaListeners) {
l.raceRemoved(this, race);
}
}
@@ -111,15 +111,15 @@ public class RegattaImpl extends NamedImpl implements Regatta {
@Override
public void addRegattaListener(RegattaListener listener) {
synchronized (eventListeners) {
eventListeners.add(listener);
synchronized (regattaListeners) {
regattaListeners.add(listener);
}
}
@Override
public void removeRegattaListener(RegattaListener listener) {
synchronized (eventListeners) {
eventListeners.remove(listener);
synchronized (regattaListeners) {
regattaListeners.remove(listener);
}
}
@@ -15,7 +15,7 @@ import com.sap.sailing.domain.tracking.TrackedRace;
/**
* Implements the basic logic of assigning a maximum score to a competitor in a race if that competitor was
* disqualified, did not start or did not finish. The maximum score is determined by counting the number of competitors
* listed in the event to which the race belongs.
* listed in the regatta to which the race belongs.
* <p>
*
* @author Axel Uhl (d043530)
@@ -30,7 +30,7 @@ public abstract class AbstractRaceTrackerImpl implements RaceTracker {
return trackedRegatta;
}
protected void setTrackedEvent(DynamicTrackedRegatta trackedRegatta) {
protected void setTrackedRegatta(DynamicTrackedRegatta trackedRegatta) {
this.trackedRegatta = trackedRegatta;
}
}
@@ -10,8 +10,8 @@ import com.sap.sailing.domain.common.NoWindException;
import com.sap.sailing.domain.common.TimePoint;
/**
* Manages a set of {@link TrackedRace} objects that belong to the same {@link Regatta} (regatta, sailing event for a
* single boat class). It therefore represents the entry point into the tracking-related objects for such an event.
* Manages a set of {@link TrackedRace} objects that belong to the same {@link Regatta} (regatta, sailing regatta for a
* single boat class). It therefore represents the entry point into the tracking-related objects for such an regatta.
* Allows clients to find a {@link TrackedRace} by the {@link RaceDefinition} for which it holds the tracking data.
* <p>
*
@@ -32,7 +32,7 @@ public interface TrackedRegatta extends Serializable {
/**
* Creates a {@link TrackedRace} based on the parameter specified and {@link #addTrackedRace(TrackedRace) adds} it
* to this tracked event. Afterwards, calling {@link #getTrackedRace(RaceDefinition) getTrackedRace(raceDefinition)}
* to this tracked regatta. Afterwards, calling {@link #getTrackedRace(RaceDefinition) getTrackedRace(raceDefinition)}
* will return the result of this method call.
*
* @param raceDefinitionSetToUpdate
@@ -45,7 +45,7 @@ public interface TrackedRegatta extends Serializable {
/**
* Obtains the tracked race for <code>race</code>. Blocks until the tracked race has been created
* and added to this tracked event (see {@link #addTrackedRace(TrackedRace)}).
* and added to this tracked regatta (see {@link #addTrackedRace(TrackedRace)}).
*/
TrackedRace getTrackedRace(RaceDefinition race);
@@ -12,13 +12,13 @@ import com.sap.sailing.domain.base.Regatta;
*/
public interface TrackedRegattaRegistry {
/**
* Looks for tracking information about <code>event</code>. If no such object exists yet, a new one
* Looks for tracking information about <code>regatta</code>. If no such object exists yet, a new one
* is created.
*/
DynamicTrackedRegatta getOrCreateTrackedRegatta(Regatta regatta);
/**
* Looks for the tracking information for <code>event</code>. If not found, <code>null</code> is returned
* Looks for the tracking information for <code>regatta</code>. If not found, <code>null</code> is returned
* immediately. See also {@link #getOrCreateTrackedRegatta(com.sap.sailing.domain.base.Regatta)}.
*/
DynamicTrackedRegatta getTrackedRegatta(Regatta regatta);
@@ -6,7 +6,7 @@ import com.sap.sailing.domain.common.WindSource;
/**
* Capable of providing a {@link WindTrack} for a given event / race / {@link WindSource} combination.
* Capable of providing a {@link WindTrack} for a given regatta / race / {@link WindSource} combination.
* A trivial implementation is to provide a new {@link WindTrack}. Other implementations may use
* wind information stored persistently, e.g., in a database.
*
@@ -18,7 +18,7 @@ public interface WindStore {
long millisecondsOverWhichToAverage, long delayForWindEstimationCacheInvalidation);
/**
* Loads all wind tracks known to this wind store that pertain to the tracked race / event specified.
* Loads all wind tracks known to this wind store that pertain to the tracked race / regatta specified.
*
* @return a map that is never <code>null</code> but may be empty
*/
@@ -10,11 +10,11 @@ import com.sap.sailing.gwt.ui.client.StringMessages;
public abstract class AbstractEventManagementPanel extends AbstractRegattaPanel {
protected final TrackedRacesListComposite trackedRacesListComposite;
public AbstractEventManagementPanel(SailingServiceAsync sailingService, RegattaRefresher eventRefresher,
public AbstractEventManagementPanel(SailingServiceAsync sailingService, RegattaRefresher regattaRefresher,
ErrorReporter errorReporter, RaceSelectionProvider raceSelectionProvider, StringMessages stringConstants) {
super(sailingService, eventRefresher, errorReporter, stringConstants);
super(sailingService, regattaRefresher, errorReporter, stringConstants);
// TrackedEventsComposite should exist in every *ManagementPanel.
trackedRacesListComposite = new TrackedRacesListComposite(sailingService, errorReporter, eventRefresher,
trackedRacesListComposite = new TrackedRacesListComposite(sailingService, errorReporter, regattaRefresher,
raceSelectionProvider, stringConstants, /* multiselection */ true);
}
}
@@ -22,7 +22,7 @@ import com.sap.sailing.gwt.ui.shared.RegattaDTO;
import com.sap.sailing.gwt.ui.shared.panels.UserStatusPanel;
public class AdminConsoleEntryPoint extends AbstractEntryPoint implements RegattaRefresher {
private Set<RegattaDisplayer> eventDisplayers;
private Set<RegattaDisplayer> regattaDisplayers;
@Override
public void onModuleLoad() {
@@ -36,25 +36,25 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt
rootPanel.add(tabPanel); //, 10, 10);
tabPanel.setSize("95%", "95%");
eventDisplayers = new HashSet<RegattaDisplayer>();
regattaDisplayers = new HashSet<RegattaDisplayer>();
TracTracEventManagementPanel tractracEventManagementPanel = new TracTracEventManagementPanel(sailingService, this, this, stringMessages);
eventDisplayers.add(tractracEventManagementPanel);
regattaDisplayers.add(tractracEventManagementPanel);
tractracEventManagementPanel.setSize("90%", "90%");
tabPanel.add(tractracEventManagementPanel, stringMessages.tracTracEvents(), false);
SwissTimingEventManagementPanel swisstimingEventManagementPanel = new SwissTimingEventManagementPanel(sailingService, this, this, stringMessages);
eventDisplayers.add(swisstimingEventManagementPanel);
regattaDisplayers.add(swisstimingEventManagementPanel);
swisstimingEventManagementPanel.setSize("90%", "90%");
tabPanel.add(swisstimingEventManagementPanel, stringMessages.swissTimingEvents(), false);
CreateSwissTimingRacePanel createSwissTimingRacePanel = new CreateSwissTimingRacePanel(sailingService,this,stringMessages);
createSwissTimingRacePanel.setSize("90%", "90%");
tabPanel.add(createSwissTimingRacePanel,"Create SwissTiming race",false);
TrackedRacesManagementPanel trackedRacesManagementPanel = new TrackedRacesManagementPanel(sailingService, this, this, stringMessages);
eventDisplayers.add(trackedRacesManagementPanel);
regattaDisplayers.add(trackedRacesManagementPanel);
trackedRacesManagementPanel.setSize("90%", "90%");
tabPanel.add(trackedRacesManagementPanel, stringMessages.trackedRaces(),false);
final AsyncActionsExecutor asyncActionsExecutor = new AsyncActionsExecutor();
WindPanel windPanel = new WindPanel(sailingService, asyncActionsExecutor, this, this, stringMessages);
eventDisplayers.add(windPanel);
regattaDisplayers.add(windPanel);
windPanel.setSize("90%", "90%");
tabPanel.add(windPanel, stringMessages.wind(), /* asHTML */ false);
LeaderboardSettings defaultLeaderboardSettings = LeaderboardSettingsFactory.getInstance()
@@ -69,11 +69,11 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt
final LeaderboardGroupConfigPanel leaderboardGroupConfigPanel = new LeaderboardGroupConfigPanel(sailingService, this, this, stringMessages);
leaderboardGroupConfigPanel.setSize("90%", "90%");
tabPanel.add(leaderboardGroupConfigPanel, stringMessages.leaderboardGroupConfiguration(), /*asHTML*/ false);
eventDisplayers.add(leaderboardGroupConfigPanel);
regattaDisplayers.add(leaderboardGroupConfigPanel);
final LeaderboardConfigPanel leaderboardConfigPanel = new LeaderboardConfigPanel(sailingService, this, this, stringMessages);
leaderboardConfigPanel.setSize("90%", "90%");
tabPanel.add(leaderboardConfigPanel, stringMessages.leaderboardConfiguration(), /* asHTML */ false);
eventDisplayers.add(leaderboardConfigPanel);
regattaDisplayers.add(leaderboardConfigPanel);
tabPanel.add(new ReplicationPanel(sailingService, this, stringMessages), stringMessages.replication(), /* asHTML */ false);
tabPanel.selectTab(0);
@@ -93,8 +93,8 @@ public class AdminConsoleEntryPoint extends AbstractEntryPoint implements Regatt
sailingService.listEvents(new AsyncCallback<List<RegattaDTO>>() {
@Override
public void onSuccess(List<RegattaDTO> result) {
for (RegattaDisplayer eventDisplayer : eventDisplayers) {
eventDisplayer.fillRegattas(result);
for (RegattaDisplayer regattaDisplayer : regattaDisplayers) {
regattaDisplayer.fillRegattas(result);
}
}
@@ -586,9 +586,9 @@ public class LeaderboardConfigPanel extends FormPanel implements RegattaDisplaye
}
@Override
public void onSuccess(Pair<String, String> eventAndRaceName) {
if (eventAndRaceName != null) {
selectRaceInList(eventAndRaceName.getA(), eventAndRaceName.getB());
public void onSuccess(Pair<String, String> regattaAndRaceName) {
if (regattaAndRaceName != null) {
selectRaceInList(regattaAndRaceName.getA(), regattaAndRaceName.getB());
} else {
trackedRacesListComposite.clearSelection();
}
@@ -86,9 +86,9 @@ public class LeaderboardGroupConfigPanel extends AbstractRegattaPanel {
private ArrayList<LeaderboardGroupDTO> availableLeaderboardGroups;
private ArrayList<LeaderboardDTO> availableLeaderboards;
public LeaderboardGroupConfigPanel(SailingServiceAsync sailingService, RegattaRefresher eventRefresher,
public LeaderboardGroupConfigPanel(SailingServiceAsync sailingService, RegattaRefresher regattaRefresher,
ErrorReporter errorReporter, StringMessages stringMessages) {
super(sailingService, eventRefresher, errorReporter, stringMessages);
super(sailingService, regattaRefresher, errorReporter, stringMessages);
AdminConsoleTableResources tableRes = GWT.create(AdminConsoleTableResources.class);
availableLeaderboardGroups = new ArrayList<LeaderboardGroupDTO>();
availableLeaderboards = new ArrayList<LeaderboardDTO>();
@@ -29,12 +29,12 @@ import com.sap.sailing.gwt.ui.shared.DeprecatedRegattaDTO;
public class RacesListBoxPanel extends FormPanel implements RegattaDisplayer, RaceSelectionChangeListener {
private final List<RaceDTO> raceList;
private final ListBox raceListBox;
private final RegattaRefresher eventRefresher;
private final RegattaRefresher regattaRefresher;
private final StringMessages stringConstants;
private final RaceSelectionProvider raceSelectionProvider;
public RacesListBoxPanel(RegattaRefresher eventRefresher, RaceSelectionProvider raceSelectionProvider, StringMessages stringConstants) {
this.eventRefresher = eventRefresher;
public RacesListBoxPanel(RegattaRefresher regattaRefresher, RaceSelectionProvider raceSelectionProvider, StringMessages stringConstants) {
this.regattaRefresher = regattaRefresher;
this.stringConstants = stringConstants;
this.raceSelectionProvider = raceSelectionProvider;
raceListBox = new ListBox();
@@ -61,7 +61,7 @@ public class RacesListBoxPanel extends FormPanel implements RegattaDisplayer, Ra
btnRefresh.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
RacesListBoxPanel.this.eventRefresher.fillRegattas();
RacesListBoxPanel.this.regattaRefresher.fillRegattas();
}
});
labelAndRefreshButton.add(btnRefresh);
@@ -73,7 +73,7 @@ public class RacesListBoxPanel extends FormPanel implements RegattaDisplayer, Ra
raceList.clear();
raceListBox.clear();
for (RegattaDTO event : result) {
for (DeprecatedRegattaDTO regatta : event.regattas) {
for (DeprecatedRegattaDTO regatta : event.deprecatedRegattas) {
for (RaceDTO race : regatta.races) {
raceList.add(race);
}
@@ -68,8 +68,8 @@ public class SwissTimingEventManagementPanel extends AbstractEventManagementPane
private final List<SwissTimingRaceRecordDTO> availableSwissTimingRaces = new ArrayList<SwissTimingRaceRecordDTO>();
public SwissTimingEventManagementPanel(final SailingServiceAsync sailingService, ErrorReporter errorReporter,
RegattaRefresher eventRefresher, StringMessages stringConstants) {
super(sailingService, eventRefresher, errorReporter, new RaceSelectionModel(), stringConstants);
RegattaRefresher regattaRefresher, StringMessages stringConstants) {
super(sailingService, regattaRefresher, errorReporter, new RaceSelectionModel(), stringConstants);
this.errorReporter = errorReporter;
VerticalPanel mainPanel = new VerticalPanel();
@@ -352,7 +352,7 @@ public class SwissTimingEventManagementPanel extends AbstractEventManagementPane
@Override
public void onSuccess(Void result) {
eventRefresher.fillRegattas();
regattaRefresher.fillRegattas();
}
});
}
@@ -75,8 +75,8 @@ public class TracTracEventManagementPanel extends AbstractEventManagementPanel {
private final List<TracTracRaceRecordDTO> availableTracTracRaces;
public TracTracEventManagementPanel(final SailingServiceAsync sailingService, ErrorReporter errorReporter,
RegattaRefresher eventRefresher, StringMessages stringConstants) {
super(sailingService, eventRefresher, errorReporter, new RaceSelectionModel(), stringConstants);
RegattaRefresher regattaRefresher, StringMessages stringConstants) {
super(sailingService, regattaRefresher, errorReporter, new RaceSelectionModel(), stringConstants);
this.errorReporter = errorReporter;
availableTracTracRaces = new ArrayList<TracTracRaceRecordDTO>();
@@ -464,7 +464,7 @@ public class TracTracEventManagementPanel extends AbstractEventManagementPanel {
@Override
public void onSuccess(Void result) {
eventRefresher.fillRegattas();
regattaRefresher.fillRegattas();
}
});
}
@@ -87,7 +87,7 @@ public class TrackedRacesListComposite extends FormPanel implements RegattaDispl
private final SailingServiceAsync sailingService;
private final ErrorReporter errorReporter;
private final RegattaRefresher eventRefresher;
private final RegattaRefresher regattaRefresher;
private final RaceSelectionProvider raceSelectionProvider;
private Button btnUntrack = null;
@@ -112,14 +112,14 @@ public class TrackedRacesListComposite extends FormPanel implements RegattaDispl
private static AnchorTemplates ANCHORTEMPLATE = GWT.create(AnchorTemplates.class);
public TrackedRacesListComposite(final SailingServiceAsync sailingService, final ErrorReporter errorReporter,
final RegattaRefresher eventRefresher, RaceSelectionProvider raceSelectionProvider,
final RegattaRefresher regattaRefresher, RaceSelectionProvider raceSelectionProvider,
StringMessages stringConstants, boolean hasMultiSelection) {
if (eventRefresher == null) {
throw new IllegalArgumentException("eventRefresher must not be null");
if (regattaRefresher == null) {
throw new IllegalArgumentException("regattaRefresher must not be null");
}
this.sailingService = sailingService;
this.errorReporter = errorReporter;
this.eventRefresher = eventRefresher;
this.regattaRefresher = regattaRefresher;
this.multiSelection = hasMultiSelection;
this.raceSelectionProvider = raceSelectionProvider;
this.raceIsTrackedRaceChangeListener = new HashSet<TrackedRaceChangedListener>();
@@ -155,7 +155,7 @@ public class TrackedRacesListComposite extends FormPanel implements RegattaDispl
TextColumn<RaceDTO> regattaNameColumn = new TextColumn<RaceDTO>() {
@Override
public String getValue(RaceDTO raceDTO) {
return raceDTO.getRegatta().getRegatta().name;
return raceDTO.getDeprecatedRegatta().getRegatta().name;
}
};
regattaNameColumn.setSortable(true);
@@ -184,7 +184,7 @@ public class TrackedRacesListComposite extends FormPanel implements RegattaDispl
TextColumn<RaceDTO> deprecatedRegattaNameColumn = new TextColumn<RaceDTO>() {
@Override
public String getValue(RaceDTO raceDTO) {
return raceDTO.getRegatta().boatClass.name;
return raceDTO.getDeprecatedRegatta().boatClass.name;
}
};
deprecatedRegattaNameColumn.setSortable(true);
@@ -192,8 +192,8 @@ public class TrackedRacesListComposite extends FormPanel implements RegattaDispl
columnSortHandler.setComparator(deprecatedRegattaNameColumn, new Comparator<RaceDTO>() {
@Override
public int compare(RaceDTO t1, RaceDTO t2) {
DeprecatedRegattaDTO regattaOne = t1.getRegatta();
DeprecatedRegattaDTO regattaTwo = t2.getRegatta();
DeprecatedRegattaDTO regattaOne = t1.getDeprecatedRegatta();
DeprecatedRegattaDTO regattaTwo = t2.getDeprecatedRegatta();
boolean ascending = isSortedAscending();
if (regattaOne.boatClass.name.equals(regattaTwo.boatClass.name)) {
return 0;
@@ -354,7 +354,7 @@ public class TrackedRacesListComposite extends FormPanel implements RegattaDispl
btnRefresh.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
eventRefresher.fillRegattas();
regattaRefresher.fillRegattas();
}
});
trackedRacesButtonPanel.add(btnRefresh);
@@ -413,7 +413,7 @@ public class TrackedRacesListComposite extends FormPanel implements RegattaDispl
List<RaceDTO> newAllRaces = new ArrayList<RaceDTO>();
List<RegattaAndRaceIdentifier> newAllRaceIdentifiers = new ArrayList<RegattaAndRaceIdentifier>();
for (RegattaDTO event : events) {
for (DeprecatedRegattaDTO regatta : event.regattas) {
for (DeprecatedRegattaDTO regatta : event.deprecatedRegattas) {
for (RaceDTO race : regatta.races) {
if (race != null) {
newAllRaces.add(race);
@@ -446,7 +446,7 @@ public class TrackedRacesListComposite extends FormPanel implements RegattaDispl
@Override
public void onSuccess(Void result) {
eventRefresher.fillRegattas();
regattaRefresher.fillRegattas();
for (TrackedRaceChangedListener listener : raceIsTrackedRaceChangeListener) {
listener.changeTrackingRace(regattaNameAndRaceName, false);
}
@@ -466,7 +466,7 @@ public class TrackedRacesListComposite extends FormPanel implements RegattaDispl
@Override
public void onSuccess(Void result) {
eventRefresher.fillRegattas();
regattaRefresher.fillRegattas();
for (TrackedRaceChangedListener listener : raceIsTrackedRaceChangeListener) {
listener.changeTrackingRace(regattaNameAndRaceName, false);
}
@@ -484,7 +484,7 @@ public class TrackedRacesListComposite extends FormPanel implements RegattaDispl
for (String word : wordsToFilter) {
String textAsUppercase = word.toUpperCase().trim();
if (!raceDTO.getEvent().name.toUpperCase().contains(textAsUppercase)
&& !raceDTO.getRegatta().boatClass.name.toUpperCase().contains(textAsUppercase)
&& !raceDTO.getDeprecatedRegatta().boatClass.name.toUpperCase().contains(textAsUppercase)
&& !raceDTO.name.toUpperCase().contains(textAsUppercase)) {
failed = true;
break;
@@ -40,8 +40,8 @@ public class TrackedRacesManagementPanel extends AbstractEventManagementPanel im
private final Grid raceDataGrid;
public TrackedRacesManagementPanel(final SailingServiceAsync sailingService, ErrorReporter errorReporter,
RegattaRefresher eventRefresher, StringMessages stringConstants) {
super(sailingService, eventRefresher, errorReporter, new RaceSelectionModel(), stringConstants);
RegattaRefresher regattaRefresher, StringMessages stringConstants) {
super(sailingService, regattaRefresher, errorReporter, new RaceSelectionModel(), stringConstants);
VerticalPanel mainPanel = new VerticalPanel();
this.setWidget(mainPanel);
@@ -83,7 +83,7 @@ public class TrackedRacesManagementPanel extends AbstractEventManagementPanel im
selectedRacePanel.setVisible(true);
for (RegattaDTO event : savedEvents) {
for (DeprecatedRegattaDTO regatta : event.regattas) {
for (DeprecatedRegattaDTO regatta : event.deprecatedRegattas) {
for (RaceDTO race : regatta.races) {
if (race != null && race.getRaceIdentifier().equals(singleSelectedRace)) {
this.selectedRaceDTO = race;
@@ -90,7 +90,7 @@ public class WindPanel extends FormPanel implements RegattaDisplayer, WindShower
private static AdminConsoleResources resources = GWT.create(AdminConsoleResources.class);
public WindPanel(final SailingServiceAsync sailingService, AsyncActionsExecutor asyncActionsExecutor,
ErrorReporter errorReporter, RegattaRefresher eventRefresher, final StringMessages stringMessages) {
ErrorReporter errorReporter, RegattaRefresher regattaRefresher, final StringMessages stringMessages) {
this.sailingService = sailingService;
this.errorReporter = errorReporter;
this.stringMessages = stringMessages;
@@ -152,7 +152,7 @@ public class WindPanel extends FormPanel implements RegattaDisplayer, WindShower
}
};
grid = new Grid(4, 2); // first row: event/race selection; second row: wind source selection; third row: wind display
trackedRacesListComposite = new TrackedRacesListComposite(sailingService, errorReporter, eventRefresher,
trackedRacesListComposite = new TrackedRacesListComposite(sailingService, errorReporter, regattaRefresher,
raceSelectionProvider, stringMessages, false);
raceSelectionProvider.addRaceSelectionChangeListener(this);
grid.setWidget(0, 0, trackedRacesListComposite);
@@ -12,15 +12,15 @@ public abstract class AbstractRegattaPanel extends FormPanel implements RegattaD
protected final SailingServiceAsync sailingService;
protected DateTimeFormatRenderer dateFormatter = new DateTimeFormatRenderer(DateTimeFormat.getFormat(PredefinedFormat.DATE_SHORT));
protected DateTimeFormatRenderer timeFormatter = new DateTimeFormatRenderer(DateTimeFormat.getFormat(PredefinedFormat.TIME_LONG));
protected final RegattaRefresher eventRefresher;
protected final RegattaRefresher regattaRefresher;
protected ErrorReporter errorReporter;
protected StringMessages stringConstants;
public AbstractRegattaPanel(SailingServiceAsync sailingService,
RegattaRefresher eventRefresher, ErrorReporter errorReporter, StringMessages stringConstants) {
RegattaRefresher regattaRefresher, ErrorReporter errorReporter, StringMessages stringConstants) {
super();
this.sailingService = sailingService;
this.eventRefresher = eventRefresher;
this.regattaRefresher = regattaRefresher;
this.errorReporter = errorReporter;
this.stringConstants = stringConstants;
}
@@ -54,9 +54,9 @@ public interface SailingService extends RemoteService {
void stopTrackingEvent(RegattaIdentifier eventIdentifier) throws Exception;
void stopTrackingRace(RegattaAndRaceIdentifier eventAndRaceIdentifier) throws Exception;
void stopTrackingRace(RegattaAndRaceIdentifier regattaAndRaceIdentifier) throws Exception;
void removeAndUntrackRace(RegattaAndRaceIdentifier eventAndRaceidentifier) throws Exception;
void removeAndUntrackRace(RegattaAndRaceIdentifier regattaAndRaceidentifier) throws Exception;
WindInfoForRaceDTO getWindInfo(RaceIdentifier raceIdentifier, Date from, Date to, WindSource[] windSources);
@@ -95,7 +95,7 @@ public interface SailingService extends RemoteService {
List<LeaderboardDTO> getLeaderboards();
List<LeaderboardDTO> getLeaderboardsByEvent(RegattaDTO event);
List<LeaderboardDTO> getLeaderboardsByEvent(RegattaDTO regatta);
void updateLeaderboard(String leaderboardName, String newLeaderboardName, int[] newDiscardingThreasholds);
@@ -67,11 +67,10 @@ public interface SailingServiceAsync {
void stopTrackingRace(RegattaAndRaceIdentifier raceIdentifier, AsyncCallback<Void> asyncCallback);
/**
* Untracks the race and removes it from the event. It will also be removed in all leaderboards
* @param eventAndRaceidentifier The identifier for the event name, and the race name to remove
* @throws Exception
* Untracks the race and removes it from the regatta. It will also be removed in all leaderboards
* @param regattaAndRaceidentifier The identifier for the regatta name, and the race name to remove
*/
void removeAndUntrackRace(RegattaAndRaceIdentifier eventAndRaceidentifier, AsyncCallback<Void> callback);
void removeAndUntrackRace(RegattaAndRaceIdentifier regattaAndRaceidentifier, AsyncCallback<Void> callback);
void getWindInfo(RaceIdentifier raceIdentifier, Date from, Date to, WindSource[] windSources,
AsyncCallback<WindInfoForRaceDTO> callback);
@@ -169,9 +168,9 @@ public interface SailingServiceAsync {
/**
* Does the same as {@link SailingServiceAsync#getLeaderboards(AsyncCallback) getLeaderboards} but returns only
* leaderboards which have the given event as race
* leaderboards which have the given regatta as race
*/
void getLeaderboardsByEvent(RegattaDTO event, AsyncCallback<List<LeaderboardDTO>> callback);
void getLeaderboardsByEvent(RegattaDTO regatta, AsyncCallback<List<LeaderboardDTO>> callback);
void getLeaderboardsByRace(RaceDTO race, AsyncCallback<List<LeaderboardDTO>> callback);
@@ -105,7 +105,7 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint {
userManagementService.getUser(getUserCallback);
}
private void checkUrlParameters(List<String> leaderboardNames, LeaderboardGroupDTO leaderboardGroup, List<RegattaDTO> events, UserDTO user) {
private void checkUrlParameters(List<String> leaderboardNames, LeaderboardGroupDTO leaderboardGroup, List<RegattaDTO> regattas, UserDTO user) {
if (!leaderboardNames.contains(leaderboardName)) {
createErrorPage(stringMessages.noSuchLeaderboard());
return;
@@ -123,9 +123,9 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint {
return;
}
}
selectedRace = findRace(regattaName, raceName, events);
selectedRace = findRace(regattaName, raceName, regattas);
if (selectedRace == null) {
createErrorPage("Could not obtain a race with name " + raceName + " for an event with name " + regattaName);
createErrorPage("Could not obtain a race with name " + raceName + " for an regatta with name " + regattaName);
return;
}
@@ -135,7 +135,7 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint {
Timer timer = new Timer(PlayModes.Replay, 1000l);
RaceBoardPanel raceBoardPanel = new RaceBoardPanel(sailingService, user, timer, raceSelectionModel, leaderboardName, leaderboardGroupName,
RaceBoardEntryPoint.this, stringMessages, userAgentType, viewMode, new RaceTimesInfoProvider(sailingService, this, singletonList, 1000l));
raceBoardPanel.fillRegattas(events);
raceBoardPanel.fillRegattas(regattas);
switch (viewMode) {
case ONESCREEN:
@@ -144,11 +144,11 @@ public class RaceBoardEntryPoint extends AbstractEntryPoint {
}
}
private RaceDTO findRace(String regattaName, String raceName, List<RegattaDTO> events) {
for (RegattaDTO eventDTO : events) {
if (eventDTO.name.equals(regattaName)) {
for (DeprecatedRegattaDTO regattaDTO : eventDTO.regattas) {
for (RaceDTO raceDTO: regattaDTO.races) {
private RaceDTO findRace(String regattaName, String raceName, List<RegattaDTO> regattas) {
for (RegattaDTO regattaDTO : regattas) {
if (regattaDTO.name.equals(regattaName)) {
for (DeprecatedRegattaDTO deprecatedRegattaDTO : regattaDTO.deprecatedRegattas) {
for (RaceDTO raceDTO: deprecatedRegattaDTO.races) {
if (raceDTO.name.equals(raceName)) {
return raceDTO;
}
@@ -52,7 +52,7 @@ import com.sap.sailing.gwt.ui.shared.components.SettingsDialog;
import com.sap.sailing.gwt.ui.shared.racemap.RaceMap;
/**
* A panel showing a list of components visualizing a race from the events announced by calls to {@link #fillRegattas(List)}.
* A panel showing a list of components visualizing a race from the regattas announced by calls to {@link #fillRegattas(List)}.
* The race selection is provided by a {@link RaceSelectionProvider} for which this is a {@link RaceSelectionChangeListener listener}.
* {@link RaceIdentifier}-based race selection changes are converted to {@link RaceDTO} objects using the {@link #racesByIdentifier}
* map maintained during {@link #fillRegattas(List)}. The race selection provider is expected to be single selection only.
@@ -366,11 +366,11 @@ public class RaceBoardPanel extends FormPanel implements RegattaDisplayer, RaceS
}
@Override
public void fillRegattas(List<RegattaDTO> events) {
public void fillRegattas(List<RegattaDTO> regattas) {
racesByIdentifier.clear();
for (RegattaDTO event : events) {
for (DeprecatedRegattaDTO regatta : event.regattas) {
for (RaceDTO race : regatta.races) {
for (RegattaDTO regatta : regattas) {
for (DeprecatedRegattaDTO deprecatedRegatta : regatta.deprecatedRegattas) {
for (RaceDTO race : deprecatedRegatta.races) {
if (race != null && race.getRaceIdentifier() != null) {
racesByIdentifier.put(race.getRaceIdentifier(), race);
}
@@ -420,23 +420,23 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
@Override
public List<RegattaDTO> listEvents() throws IllegalArgumentException {
List<RegattaDTO> result = new ArrayList<RegattaDTO>();
for (Regatta event : getService().getAllRegattas()) {
List<CompetitorDTO> competitorList = getCompetitorDTOs(event.getCompetitors());
List<DeprecatedRegattaDTO> regattasList = getRegattaDTOs(event);
RegattaDTO eventDTO = new RegattaDTO(event.getName(), regattasList, competitorList);
for (DeprecatedRegattaDTO regatta : regattasList) {
regatta.setRegatta(eventDTO);
for (Regatta regatta : getService().getAllRegattas()) {
List<CompetitorDTO> competitorList = getCompetitorDTOs(regatta.getCompetitors());
List<DeprecatedRegattaDTO> regattasList = getRegattaDTOs(regatta);
RegattaDTO regattaDTO = new RegattaDTO(regatta.getName(), regattasList, competitorList);
for (DeprecatedRegattaDTO deprecatedRegatta : regattasList) {
deprecatedRegatta.setRegatta(regattaDTO);
}
if (!eventDTO.regattas.isEmpty()) {
result.add(eventDTO);
if (!regattaDTO.deprecatedRegattas.isEmpty()) {
result.add(regattaDTO);
}
}
return result;
}
private List<DeprecatedRegattaDTO> getRegattaDTOs(Regatta event) {
private List<DeprecatedRegattaDTO> getRegattaDTOs(Regatta regatta) {
Map<BoatClass, Set<RaceDefinition>> racesByBoatClass = new HashMap<BoatClass, Set<RaceDefinition>>();
for (RaceDefinition r : event.getAllRaces()) {
for (RaceDefinition r : regatta.getAllRaces()) {
Set<RaceDefinition> racesForBoatClass = racesByBoatClass.get(r.getBoatClass());
if (racesForBoatClass == null) {
racesForBoatClass = new HashSet<RaceDefinition>();
@@ -446,24 +446,24 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
}
List<DeprecatedRegattaDTO> result = new ArrayList<DeprecatedRegattaDTO>();
for (Map.Entry<BoatClass, Set<RaceDefinition>> e : racesByBoatClass.entrySet()) {
List<RaceDTO> raceDTOsInBoatClass = getRaceDTOs(event, e.getValue());
List<RaceDTO> raceDTOsInBoatClass = getRaceDTOs(regatta, e.getValue());
if (!raceDTOsInBoatClass.isEmpty()) {
DeprecatedRegattaDTO regatta = new DeprecatedRegattaDTO(new BoatClassDTO(e.getKey() == null ? "" : e.getKey().getName(), e
DeprecatedRegattaDTO deprecatedRegatta = new DeprecatedRegattaDTO(new BoatClassDTO(e.getKey() == null ? "" : e.getKey().getName(), e
.getKey().getHullLength().getMeters()), raceDTOsInBoatClass);
for (RaceDTO race : raceDTOsInBoatClass) {
race.setRegatta(regatta);
race.setRegatta(deprecatedRegatta);
}
result.add(regatta);
result.add(deprecatedRegatta);
}
}
return result;
}
private List<RaceDTO> getRaceDTOs(Regatta event, Set<RaceDefinition> races) {
private List<RaceDTO> getRaceDTOs(Regatta regatta, Set<RaceDefinition> races) {
List<RaceDTO> result = new ArrayList<RaceDTO>();
for (RaceDefinition r : races) {
RaceDTO raceDTO = new RaceDTO(r.getName(), getCompetitorDTOs(r.getCompetitors()), getService().isRaceBeingTracked(r));
TrackedRace trackedRace = getService().getExistingTrackedRace(new RegattaNameAndRaceName(event.getName(), r.getName()));
TrackedRace trackedRace = getService().getExistingTrackedRace(new RegattaNameAndRaceName(regatta.getName(), r.getName()));
if (trackedRace != null) {
raceDTO.startOfRace = trackedRace.getStartOfRace() == null ? null : trackedRace.getStartOfRace().asDate();
raceDTO.startOfTracking = trackedRace.getStartOfTracking() == null ? null : trackedRace.getStartOfTracking().asDate();
@@ -552,26 +552,26 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
}
@Override
public void stopTrackingEvent(RegattaIdentifier eventIdentifier) throws Exception {
getService().apply(new StopTrackingRegatta(eventIdentifier));
public void stopTrackingEvent(RegattaIdentifier regattaIdentifier) throws Exception {
getService().apply(new StopTrackingRegatta(regattaIdentifier));
}
private RaceDefinition getRaceByName(Regatta event, String raceName) {
if (event != null) {
return event.getRaceByName(raceName);
private RaceDefinition getRaceByName(Regatta regatta, String raceName) {
if (regatta != null) {
return regatta.getRaceByName(raceName);
} else {
return null;
}
}
@Override
public void stopTrackingRace(RegattaAndRaceIdentifier eventAndRaceIdentifier) throws Exception {
getService().apply(new StopTrackingRace(eventAndRaceIdentifier));
public void stopTrackingRace(RegattaAndRaceIdentifier regattaAndRaceIdentifier) throws Exception {
getService().apply(new StopTrackingRace(regattaAndRaceIdentifier));
}
@Override
public void removeAndUntrackRace(RegattaAndRaceIdentifier eventAndRaceidentifier) {
getService().apply(new RemoveAndUntrackRace(eventAndRaceidentifier));
public void removeAndUntrackRace(RegattaAndRaceIdentifier regattatAndRaceidentifier) {
getService().apply(new RemoveAndUntrackRace(regattatAndRaceidentifier));
}
/**
@@ -580,14 +580,14 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
* taking any effect.
*/
private void startTrackingWind(RacesHandle raceHandle, boolean correctByDeclination, long timeoutInMilliseconds) throws Exception {
Regatta event = raceHandle.getRegatta();
if (event != null) {
Regatta regatta = raceHandle.getRegatta();
if (regatta != null) {
for (RaceDefinition race : raceHandle.getRaces(timeoutInMilliseconds)) {
if (race != null) {
getService().startTrackingWind(event, race, correctByDeclination);
getService().startTrackingWind(regatta, race, correctByDeclination);
} else {
log("RaceDefinition wasn't received within " + timeoutInMilliseconds + "ms for a race in event "
+ event.getName() + ". Aborting wait; no wind tracking for this race.");
log("RaceDefinition wasn't received within " + timeoutInMilliseconds + "ms for a race in regatta "
+ regatta.getName() + ". Aborting wait; no wind tracking for this race.");
}
}
}
@@ -1181,10 +1181,10 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
}
@Override
public List<LeaderboardDTO> getLeaderboardsByEvent(RegattaDTO event) {
public List<LeaderboardDTO> getLeaderboardsByEvent(RegattaDTO regatta) {
List<LeaderboardDTO> results = new ArrayList<LeaderboardDTO>();
for (DeprecatedRegattaDTO regatta : event.regattas) {
for (RaceDTO race : regatta.races) {
for (DeprecatedRegattaDTO deprecatedRegatta : regatta.deprecatedRegattas) {
for (RaceDTO race : deprecatedRegatta.races) {
List<LeaderboardDTO> leaderboard = getLeaderboardsByRace(race);
if (leaderboard != null && !leaderboard.isEmpty()) {
results.addAll(leaderboard);
@@ -1679,16 +1679,16 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
@Override
public RaceDefinition getRace(RegattaAndRaceIdentifier raceIdentifier) {
Regatta event = getService().getRegattaByName(raceIdentifier.getRegattaName());
RaceDefinition race = getRaceByName(event, raceIdentifier.getRaceName());
Regatta regatta = getService().getRegattaByName(raceIdentifier.getRegattaName());
RaceDefinition race = getRaceByName(regatta, raceIdentifier.getRaceName());
return race;
}
@Override
public TrackedRace getTrackedRace(RegattaAndRaceIdentifier regattaNameAndRaceName) {
Regatta event = getService().getRegattaByName(regattaNameAndRaceName.getRegattaName());
RaceDefinition race = getRaceByName(event, regattaNameAndRaceName.getRaceName());
TrackedRace trackedRace = getService().getOrCreateTrackedRegatta(event).getTrackedRace(race);
Regatta regatta = getService().getRegattaByName(regattaNameAndRaceName.getRegattaName());
RaceDefinition race = getRaceByName(regatta, regattaNameAndRaceName.getRaceName());
TrackedRace trackedRace = getService().getOrCreateTrackedRegatta(regatta).getTrackedRace(race);
return trackedRace;
}
@@ -1698,8 +1698,8 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
}
@Override
public Regatta getRegatta(RegattaName eventIdentifier) {
return getService().getRegattaByName(eventIdentifier.getRegattaName());
public Regatta getRegatta(RegattaName regattaIdentifier) {
return getService().getRegattaByName(regattaIdentifier.getRegattaName());
}
/**
@@ -22,7 +22,7 @@ public class RaceDTO extends NamedDTO implements IsSerializable {
public Date timePointOfNewestEvent;
public Date endOfRace;
private DeprecatedRegattaDTO regatta;
private DeprecatedRegattaDTO deprecatedRegatta;
public RaceDTO() {}
@@ -32,19 +32,19 @@ public class RaceDTO extends NamedDTO implements IsSerializable {
this.currentlyTracked = currentlyTracked;
}
public DeprecatedRegattaDTO getRegatta() {
return regatta;
public DeprecatedRegattaDTO getDeprecatedRegatta() {
return deprecatedRegatta;
}
public void setRegatta(DeprecatedRegattaDTO regatta) {
this.regatta = regatta;
this.deprecatedRegatta = regatta;
}
public RegattaAndRaceIdentifier getRaceIdentifier() {
return new RegattaNameAndRaceName(regatta.getRegatta().name, name);
return new RegattaNameAndRaceName(deprecatedRegatta.getRegatta().name, name);
}
public RegattaDTO getEvent() {
return regatta.getRegatta();
return deprecatedRegatta.getRegatta();
}
}
@@ -6,16 +6,16 @@ import java.util.List;
import com.google.gwt.user.client.rpc.IsSerializable;
public class RegattaDTO extends NamedDTO implements IsSerializable {
public List<DeprecatedRegattaDTO> regattas;
public List<DeprecatedRegattaDTO> deprecatedRegattas;
public List<CompetitorDTO> competitors;
public RegattaDTO() {
}
public RegattaDTO(String name, List<DeprecatedRegattaDTO> regattas, List<CompetitorDTO> competitors) {
public RegattaDTO(String name, List<DeprecatedRegattaDTO> deprecatedRegattas, List<CompetitorDTO> competitors) {
super(name);
this.name = name;
this.regattas = regattas;
this.deprecatedRegattas = deprecatedRegattas;
this.competitors = competitors;
}
@@ -24,18 +24,18 @@ public class RegattaDTO extends NamedDTO implements IsSerializable {
* <code>null</code> if the start date isn't set
*/
public Date getStartDate() {
return regattas.get(0).races.get(0).startOfRace;
return deprecatedRegattas.get(0).races.get(0).startOfRace;
}
/**
* @return <code>true</code> if at least one race of the event is currently tracked, else it returns <code>false</code>
* @return <code>true</code> if at least one race of the regatta is currently tracked, else it returns <code>false</code>
*/
public boolean currentlyTracked() {
boolean tracked = false;
regattaLoop:
for (DeprecatedRegattaDTO regatta : regattas) {
for (RaceDTO race : regatta.races) {
for (DeprecatedRegattaDTO deprecatedRegatta : deprecatedRegattas) {
for (RaceDTO race : deprecatedRegatta.races) {
tracked = race.currentlyTracked;
if (tracked) {
break regattaLoop;