mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-16 01:01:02 +00:00
DynamicTrackedRaceLogListener now has its RaceLogs, enabling the Revoking
of fixed MarkPassings.
This commit is contained in:
1 parent
901808912a
commit
a0381a8831
1 file changed
+24
-1
+24
-1
@@ -1,5 +1,7 @@
|
||||
package com.sap.sailing.domain.tracking.impl;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
@@ -12,6 +14,7 @@ import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
|
||||
import com.sap.sailing.domain.markpassingcalculation.MarkPassingUpdateListener;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogPassChangeEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogWindFixEvent;
|
||||
@@ -37,6 +40,8 @@ public class DynamicTrackedRaceLogListener extends BaseRaceLogEventVisitor {
|
||||
|
||||
private static final Logger logger = Logger.getLogger(DynamicTrackedRaceLogListener.class.getName());
|
||||
|
||||
private Set<RaceLog> raceLogs = new HashSet<>();
|
||||
|
||||
private DynamicTrackedRace trackedRace;
|
||||
|
||||
private final WindSource raceCommitteeWindSource;
|
||||
@@ -55,6 +60,7 @@ public class DynamicTrackedRaceLogListener extends BaseRaceLogEventVisitor {
|
||||
|
||||
public void addTo(RaceLog raceLog) {
|
||||
raceLog.addListener(this);
|
||||
raceLogs.add(raceLog);
|
||||
trackedRace.invalidateStartTime();
|
||||
trackedRace.invalidateEndTime();
|
||||
courseDesignFinder = new LastPublishedCourseDesignFinder(raceLog);
|
||||
@@ -105,6 +111,8 @@ public class DynamicTrackedRaceLogListener extends BaseRaceLogEventVisitor {
|
||||
trackedRace.invalidateStartTime();
|
||||
removeAllWindFixesFromWindTrack(raceLog);
|
||||
raceLog.removeListener(this);
|
||||
raceLogs.remove(raceLog);
|
||||
// TODO Notify MPC
|
||||
}
|
||||
}
|
||||
|
||||
@@ -208,6 +216,21 @@ public class DynamicTrackedRaceLogListener extends BaseRaceLogEventVisitor {
|
||||
|
||||
@Override
|
||||
public void visit(RevokeEvent event) {
|
||||
// TODO Auto-generated method stub
|
||||
if (markPassingUpdateListener != null) {
|
||||
RaceLogEvent revokedEvent = null;
|
||||
for (RaceLog log : raceLogs) {
|
||||
revokedEvent = log.getEventById(event.getRevokedEventId());
|
||||
if (revokedEvent != null) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (revokedEvent instanceof SuppressedMarkPassingsEvent) {
|
||||
markPassingUpdateListener.removeSuppressedPassing(revokedEvent.getInvolvedBoats().get(0));
|
||||
}
|
||||
if (revokedEvent instanceof FixedMarkPassingEvent) {
|
||||
markPassingUpdateListener.removeFixedPassing(revokedEvent.getInvolvedBoats().get(0),
|
||||
((FixedMarkPassingEvent) revokedEvent).getZeroBasedIndexOfPassedWaypoint());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user