mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-30 15:57:11 +00:00
implemented the new event FinishPositioningListChanged, now it can be
replicated, serialized and deserialized and persisted
This commit is contained in:
1 parent
0672496e0f
commit
db26b0aab7
18 files changed
+246
-4
No files matched your search
+6
@@ -3,6 +3,7 @@ package com.sap.sailing.racecommittee.app.domain.racelog.impl;
|
||||
import com.sap.sailing.domain.racelog.RaceLogCourseAreaChangedEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogCourseDesignChangedEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEventVisitor;
|
||||
import com.sap.sailing.domain.racelog.RaceLogFinishPositioningListChangedEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogFlagEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogPassChangeEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogRaceStatusEvent;
|
||||
@@ -41,4 +42,9 @@ public class RaceLogChangedVisitor implements RaceLogEventVisitor {
|
||||
listener.eventAdded(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(RaceLogFinishPositioningListChangedEvent event) {
|
||||
listener.eventAdded(event);
|
||||
}
|
||||
|
||||
}
|
||||
+18
-1
@@ -1,5 +1,8 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.state;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.CourseBase;
|
||||
import com.sap.sailing.domain.common.TimePoint;
|
||||
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
|
||||
@@ -50,11 +53,18 @@ public interface RaceState {
|
||||
TimePoint getFinishingStartTime();
|
||||
|
||||
/**
|
||||
* Sets the current race's course design
|
||||
* Returns the current race's course design
|
||||
*
|
||||
* @return the course data or <code>null</code>.
|
||||
*/
|
||||
CourseBase getCourseDesign();
|
||||
|
||||
/**
|
||||
* Returns the current race's finish positioning list
|
||||
*
|
||||
* @return the positioning list for the finish or <code>null</code>.
|
||||
*/
|
||||
List<Competitor> getFinishPositioningList();
|
||||
|
||||
/**
|
||||
* Sets the current race's start time
|
||||
@@ -71,6 +81,13 @@ public interface RaceState {
|
||||
* to be set.
|
||||
*/
|
||||
void setCourseDesign(CourseBase newCourseData);
|
||||
|
||||
/**
|
||||
* Sets the current finish positioning list for the race
|
||||
*
|
||||
* @param competitors the current finishing list
|
||||
*/
|
||||
void setFinishPositioningListChanged(List<Competitor> competitors);
|
||||
|
||||
/**
|
||||
* Updates the race's status.
|
||||
|
||||
+17
@@ -2,6 +2,7 @@ package com.sap.sailing.racecommittee.app.domain.state.impl;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
@@ -14,6 +15,7 @@ import com.sap.sailing.domain.racelog.PassAwareRaceLog;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEventFactory;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.FinishPositioningListFinder;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.FinishedTimeFinder;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.FinishingTimeFinder;
|
||||
import com.sap.sailing.domain.racelog.analyzing.impl.LastPublishedCourseDesignFinder;
|
||||
@@ -40,6 +42,7 @@ public class RaceStateImpl implements RaceState, RaceLogChangedListener {
|
||||
private FinishedTimeFinder finishedTimeFinder;
|
||||
private FinishingTimeFinder finishingTimeFinder;
|
||||
private LastPublishedCourseDesignFinder lastCourseDesignFinder;
|
||||
private FinishPositioningListFinder finishPositioningListFinder;
|
||||
|
||||
public RaceStateImpl(PassAwareRaceLog raceLog, StartProcedure procedure) {
|
||||
this.raceLog = raceLog;
|
||||
@@ -56,6 +59,7 @@ public class RaceStateImpl implements RaceState, RaceLogChangedListener {
|
||||
this.finishedTimeFinder = new FinishedTimeFinder(raceLog);
|
||||
this.statusAnalyzer = new RaceStatusAnalyzer(raceLog);
|
||||
this.lastCourseDesignFinder = new LastPublishedCourseDesignFinder(raceLog);
|
||||
this.finishPositioningListFinder = new FinishPositioningListFinder(raceLog);
|
||||
updateStatus();
|
||||
}
|
||||
|
||||
@@ -161,4 +165,17 @@ public class RaceStateImpl implements RaceState, RaceLogChangedListener {
|
||||
return finishingTimeFinder.getFinishingTime();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setFinishPositioningListChanged(List<Competitor> competitors) {
|
||||
TimePoint eventTime = MillisecondsTimePoint.now();
|
||||
|
||||
RaceLogEvent event = RaceLogEventFactory.INSTANCE.createFinishPositioningListChangedEvent(eventTime, competitors, raceLog.getCurrentPassId());
|
||||
this.raceLog.add(event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Competitor> getFinishPositioningList() {
|
||||
return finishPositioningListFinder.getFinishPositioningList();
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user