Added comments to clear the problem that Events and TrackedEvents could be

inconsistent.
This commit is contained in:
Fabian Schwarz-Fritz committed 2011-12-13 17:18:25 +01:00
1 parent 5a9ef811b5
commit f0f017abac
3 files changed
+17

No files matched your search

@@ -1,5 +1,7 @@
package com.sap.sailing.domain.base;
import com.sap.sailing.domain.tracking.TrackedEvent;
/**
* The name shall be unique across all events tracked concurrently. In particular, if you want to
* keep apart events in different boat classes, make sure the boat class name becomes part of the
@@ -9,9 +11,17 @@ package com.sap.sailing.domain.base;
*
*/
public interface Event extends Named {
/**
* Please note that the {@link RaceDefinition}s of the {@link Event} must not be synchronized {@link RaceDefinition}s
* of {@link TrackedEvent}. The values could be inconsistent.
* @return
*/
Iterable<RaceDefinition> getAllRaces();
/**
* Please note that the {@link RaceDefinition} of {@link Event} must not be synchronized with the
* {@link RaceDefinition} of {@link TrackedEvent}. The values could be inconsistent.
*
* @return <code>null</code>, if this event does not contain a race (see {@link #getAllRaces}) whose
* {@link RaceDefinition#getName()} equals <code>raceName</code>
*/
@@ -19,6 +19,10 @@ public interface RaceTracker {
* Returns the races currently being tracked by this tracker. Non-blocking call that returns <code>null</code> if
* the {@link RaceDefinition} for a TracTrac Event hasn't been created yet, e.g., because the course definition
* hasn't been received yet or the listener for receiving course information hasn't been registered (yet).
*
* If the {@link RacingEventService} is getting a {@link RaceDefinition}, to look up a {@link TrackedRace}
* for this {@link RaceDefinition} via {@link TrackedEvent} there could a issue. The issue appears if RaceDefinition
* is currently changed by a tracker, either {@link SwissTimingRaceTracker} or {@link TracTacRaceTracker}.
*/
Set<RaceDefinition> getRaces();
@@ -38,6 +38,9 @@ public interface TrackedEvent {
/**
* 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)}).
*
* Please note that the {@link RaceDefinition} of the {@link Event} must not be synchronized {@link RaceDefinition}
* of {@link TrackedEvent}. The values could be inconsistent.
*/
TrackedRace getTrackedRace(RaceDefinition race);