first functions of the new UI for managing events, regattas, races, etc

Includes a renaming of listEvents() in RacingEventService to getRegattas()
This commit is contained in:
fmittag committed 2012-05-30 18:04:02 +02:00
1 parent 1ca9245fe6
commit 79c0d2c85f
12 files changed
+195 -23

No files matched your search

@@ -15,16 +15,17 @@ import java.util.ConcurrentModificationException;
import java.util.List;
import java.util.Map;
import com.sap.sailing.domain.base.Event;
import com.sap.sailing.domain.base.Fleet;
import com.sap.sailing.domain.base.RaceColumn;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.base.RaceDefinition;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.common.RaceFetcher;
import com.sap.sailing.domain.common.RaceIdentifier;
import com.sap.sailing.domain.common.RegattaAndRaceIdentifier;
import com.sap.sailing.domain.common.RegattaFetcher;
import com.sap.sailing.domain.common.RegattaIdentifier;
import com.sap.sailing.domain.common.RegattaName;
import com.sap.sailing.domain.common.RaceFetcher;
import com.sap.sailing.domain.common.RaceIdentifier;
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;
@@ -35,9 +36,9 @@ import com.sap.sailing.domain.tracking.RaceListener;
import com.sap.sailing.domain.tracking.RaceTracker;
import com.sap.sailing.domain.tracking.RaceTrackingConnectivityParameters;
import com.sap.sailing.domain.tracking.RacesHandle;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.domain.tracking.TrackedRegatta;
import com.sap.sailing.domain.tracking.TrackedRegattaRegistry;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.domain.tracking.WindStore;
import com.sap.sailing.domain.tracking.impl.EmptyWindStore;
import com.sap.sailing.domain.tractracadapter.DomainFactory;
@@ -64,12 +65,14 @@ import com.sap.sailing.expeditionconnector.ExpeditionListener;
*
*/
public interface RacingEventService extends TrackedRegattaRegistry, RegattaFetcher, RaceFetcher {
Iterable<Event> getAllEvents();
/**
* @return a thread-safe copy of the regattas currently known by the service; it's safe for callers to iterate over
* the iterable returned, and no risk of a {@link ConcurrentModificationException} exists
*/
Iterable<Regatta> getAllRegattas();
Regatta getRegattaByName(String name);
@Override
@@ -29,6 +29,7 @@ import java.util.logging.Logger;
import com.sap.sailing.domain.base.Buoy;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.ControlPoint;
import com.sap.sailing.domain.base.Event;
import com.sap.sailing.domain.base.Fleet;
import com.sap.sailing.domain.base.RaceColumn;
import com.sap.sailing.domain.base.RaceDefinition;
@@ -118,10 +119,16 @@ public class RacingEventServiceImpl implements RacingEventService, RegattaListen
private final com.sap.sailing.domain.swisstimingadapter.DomainFactory swissTimingDomainFactory;
private final ExpeditionWindTrackerFactory windTrackerFactory;
/**
* Holds the {@link Event} objects for those event registered with this service. Note that there may be {@link Event}
* objects that exist outside this service for events not (yet) registered here.
*/
protected final Map<String, Event> eventsByName;
/**
* Holds the {@link Regatta} objects for those races registered with this service. Note that there may be {@link Regatta}
* objects that exist outside this service for races not (yet) registered here.
* objects that exist outside this service for regattas not (yet) registered here.
*/
protected final Map<String, Regatta> regattasByName;
@@ -173,6 +180,7 @@ public class RacingEventServiceImpl implements RacingEventService, RegattaListen
swissTimingAdapterPersistence = SwissTimingAdapterPersistence.INSTANCE;
windTrackerFactory = ExpeditionWindTrackerFactory.getInstance();
regattasByName = new HashMap<String, Regatta>();
eventsByName = new HashMap<String, Event>();
regattaTrackingCache = new HashMap<Regatta, DynamicTrackedRegatta>();
raceTrackersByRegatta = new HashMap<Regatta, Set<RaceTracker>>();
raceTrackersByID = new HashMap<Object, RaceTracker>();
@@ -389,7 +397,12 @@ public class RacingEventServiceImpl implements RacingEventService, RegattaListen
public SwissTimingFactory getSwissTimingFactory() {
return swissTimingFactory;
}
@Override
public synchronized Iterable<Event> getAllEvents() {
return Collections.unmodifiableCollection(new ArrayList<Event>(eventsByName.values()));
}
@Override
public synchronized Iterable<Regatta> getAllRegattas() {
return Collections.unmodifiableCollection(new ArrayList<Regatta>(regattasByName.values()));