mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-08 21:30:57 +00:00
Merge branch 'master' into ribdashboard
This commit is contained in:
commit
c76eb1f74e
83 files changed
+1512
-320
No files matched your search
+1
-1
@@ -57,10 +57,10 @@ public class EventRaceStatesSerializer implements JsonSerializer<Pair<Event, Ite
|
||||
result.put(FIELD_EVENT_ID, event.getId().toString());
|
||||
JSONArray raceStatesLogEntriesJson = new JSONArray();
|
||||
result.put(FIELD_RACE_STATES, raceStatesLogEntriesJson);
|
||||
RaceStateSerializer raceStateSerializer = new RaceStateSerializer();
|
||||
for (CourseArea courseArea : event.getVenue().getCourseAreas()) {
|
||||
if(filterByCourseArea == null || courseArea.getName().equals(filterByCourseArea)) {
|
||||
for (Leaderboard leaderboard : leaderboards) {
|
||||
RaceStateSerializer raceStateSerializer = new RaceStateSerializer(leaderboard);
|
||||
if (filterByLeaderboardName == null || leaderboard.getName().equals(filterByLeaderboardName)) {
|
||||
if (leaderboard.getDefaultCourseArea() != null && leaderboard.getDefaultCourseArea().equals(courseArea)) {
|
||||
String leaderboardName = leaderboard.getName();
|
||||
|
||||
+16
-4
@@ -7,9 +7,9 @@ import org.json.simple.JSONObject;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLog;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogFlagEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.AbortingFlagFinder;
|
||||
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.StartTimeFinder;
|
||||
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.FinishedTimeFinder;
|
||||
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.LastFlagsFinder;
|
||||
import com.sap.sailing.domain.abstractlog.race.analyzing.impl.StartTimeFinder;
|
||||
import com.sap.sailing.domain.abstractlog.race.state.ReadonlyRaceState;
|
||||
import com.sap.sailing.domain.abstractlog.race.state.impl.ReadonlyRaceStateImpl;
|
||||
import com.sap.sailing.domain.abstractlog.race.state.racingprocedure.gate.ReadonlyGateStartRacingProcedure;
|
||||
@@ -17,12 +17,25 @@ import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.common.RaceIdentifier;
|
||||
import com.sap.sailing.domain.common.racelog.RaceLogRaceStatus;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.racelog.RaceStateOfSameDayHelper;
|
||||
import com.sap.sailing.domain.racelog.analyzing.ServerSideRaceLogResolver;
|
||||
import com.sap.sailing.domain.regattalike.HasRegattaLike;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.Util.Pair;
|
||||
|
||||
public class RaceStateSerializer implements JsonSerializer<Pair<RaceColumn, Fleet>> {
|
||||
private final HasRegattaLike regattaLike;
|
||||
|
||||
public RaceStateSerializer(Leaderboard leaderboard) {
|
||||
if (leaderboard instanceof HasRegattaLike) {
|
||||
regattaLike = (HasRegattaLike) leaderboard;
|
||||
} else {
|
||||
regattaLike = null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(Pair<RaceColumn, Fleet> raceColumnAndFleet) {
|
||||
RaceColumn raceColumn = raceColumnAndFleet.getA();
|
||||
@@ -36,7 +49,7 @@ public class RaceStateSerializer implements JsonSerializer<Pair<RaceColumn, Flee
|
||||
result.put("trackedRaceId", raceIdentifier != null ? raceIdentifier.toString() : null);
|
||||
RaceLog raceLog = raceColumn.getRaceLog(fleet);
|
||||
if (raceLog != null && !raceLog.isEmpty()) {
|
||||
ReadonlyRaceState state = ReadonlyRaceStateImpl.create(raceLog);
|
||||
ReadonlyRaceState state = ReadonlyRaceStateImpl.create(new ServerSideRaceLogResolver(regattaLike),raceLog);
|
||||
RaceLogRaceStatus status = state.getStatus();
|
||||
TimePoint startTime = state.getStartTime();
|
||||
TimePoint finishedTime = state.getFinishedTime();
|
||||
@@ -78,11 +91,10 @@ public class RaceStateSerializer implements JsonSerializer<Pair<RaceColumn, Flee
|
||||
boolean result = false;
|
||||
RaceLog raceLog = raceColumn.getRaceLog(fleet);
|
||||
if (raceLog != null && !raceLog.isEmpty()) {
|
||||
TimePoint startTime = new StartTimeFinder(raceLog).analyze();
|
||||
TimePoint startTime = new StartTimeFinder(new ServerSideRaceLogResolver(regattaLike), raceLog).analyze().getStartTime();
|
||||
TimePoint finishedTime = new FinishedTimeFinder(raceLog).analyze();
|
||||
RaceLogFlagEvent abortingFlagEvent = new AbortingFlagFinder(raceLog).analyze();
|
||||
TimePoint abortingTime = abortingFlagEvent != null ? abortingFlagEvent.getLogicalTimePoint() : null;
|
||||
|
||||
result = RaceStateOfSameDayHelper.isRaceStateOfSameDay(startTime, finishedTime, abortingTime, dayToCheck);
|
||||
}
|
||||
return result;
|
||||
|
||||
Reference in new issue
Block a user