implemented listener of tracking provider for course design changes

This commit is contained in:
Armin Zamani committed 2013-03-19 23:57:31 +01:00
1 parent 6274127bcb
commit 8cb047681b
11 files changed
+75 -4

No files matched your search

@@ -0,0 +1,9 @@
package com.sap.sailing.domain.tracking;
import com.sap.sailing.domain.base.CourseData;
public interface CourseDesignChangedListener {
void courseDesignChanged(CourseData newCourseDesign);
}
@@ -486,5 +486,16 @@ public interface TrackedRace extends Serializable {
*/
RaceLog getRaceLog();
/**
* whenever a new course design is published by the race committee and the appropriate event occures in the race log, this method is
* called to propagate the course design to the tracking provider.
* @param courseDesign the new course design to be published
*/
void onCourseDesignChangedByRaceCommittee(CourseData courseDesign);
/**
* a setter for the listener on course design changes. The listener is mostly part of the tracking provider adapter.
* @param listener the listener to operate with.
*/
void setCourseDesignChangedListener(CourseDesignChangedListener listener);
}
@@ -654,8 +654,10 @@ DynamicTrackedRace, GPSTrackListener<Competitor, GPSFixMoving> {
}
@Override
public void onCourseDesignChangedByRaceCommittee(CourseData courseDesign) {
public void onCourseDesignChangedByRaceCommittee(CourseData newCourseDesign) {
if (courseDesignChangedListener != null) {
courseDesignChangedListener.courseDesignChanged(newCourseDesign);
}
}
}
@@ -70,6 +70,7 @@ import com.sap.sailing.domain.confidence.Weigher;
import com.sap.sailing.domain.confidence.impl.HyperbolicTimeDifferenceWeigher;
import com.sap.sailing.domain.confidence.impl.PositionAndTimePointWeigher;
import com.sap.sailing.domain.racelog.RaceLog;
import com.sap.sailing.domain.tracking.CourseDesignChangedListener;
import com.sap.sailing.domain.tracking.GPSFix;
import com.sap.sailing.domain.tracking.GPSFixMoving;
import com.sap.sailing.domain.tracking.GPSFixTrack;
@@ -79,7 +80,6 @@ import com.sap.sailing.domain.tracking.MarkPassing;
import com.sap.sailing.domain.tracking.TrackedLeg;
import com.sap.sailing.domain.tracking.TrackedLegOfCompetitor;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.domain.tracking.TrackedRaceLogListener;
import com.sap.sailing.domain.tracking.TrackedRaceStatus;
import com.sap.sailing.domain.tracking.TrackedRegatta;
import com.sap.sailing.domain.tracking.Wind;
@@ -223,6 +223,8 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener {
private transient RaceLog attachedRaceLog;
private transient TrackedRaceLogListener raceLogListener;
protected transient CourseDesignChangedListener courseDesignChangedListener;
/**
* The time delay to the current point in time in milliseconds.
@@ -2292,4 +2294,9 @@ public abstract class TrackedRaceImpl implements TrackedRace, CourseListener {
public RaceLog getRaceLog() {
return attachedRaceLog;
}
@Override
public void setCourseDesignChangedListener(CourseDesignChangedListener listener) {
this.courseDesignChangedListener = listener;
}
}
@@ -1,4 +1,4 @@
package com.sap.sailing.domain.tracking;
package com.sap.sailing.domain.tracking.impl;
import com.sap.sailing.domain.racelog.RaceLogCourseAreaChangedEvent;
import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent;
@@ -7,6 +7,7 @@ import com.sap.sailing.domain.racelog.RaceLogFlagEvent;
import com.sap.sailing.domain.racelog.RaceLogPassChangeEvent;
import com.sap.sailing.domain.racelog.RaceLogRaceStatusEvent;
import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent;
import com.sap.sailing.domain.tracking.TrackedRace;
public class TrackedRaceLogListener implements RaceLogEventVisitor {