mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-01 01:44:08 +00:00
Add DependentStartTimeEvent and replication + de/serialization
This commit is contained in:
1 parent
bd0f3c468c
commit
81fa2d4fb6
20 files changed
+287
-23
No files matched your search
+40
@@ -0,0 +1,40 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.racelog.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.AbstractLogEventAuthor;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogRaceStatusEvent;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.serialization.racelog.impl.RaceLogDependentStartTimeEventSerializer;
|
||||
import com.sap.sse.common.Duration;
|
||||
import com.sap.sse.common.TimePoint;
|
||||
import com.sap.sse.common.impl.MillisecondsDurationImpl;
|
||||
|
||||
public class RaceLogDependentStartTimeEventDeserializer extends RaceLogRaceStatusEventDeserializer {
|
||||
|
||||
public RaceLogDependentStartTimeEventDeserializer(JsonDeserializer<Competitor> competitorDeserializer) {
|
||||
super(competitorDeserializer);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected RaceLogEvent deserialize(JSONObject object, Serializable id, TimePoint createdAt, AbstractLogEventAuthor author, TimePoint timePoint, int passId, List<Competitor> competitors)
|
||||
throws JsonDeserializationException {
|
||||
|
||||
Fleet dependentOnFleet = (Fleet) object.get(RaceLogDependentStartTimeEventSerializer.FIELD_DEPDENDENT_ON_FLEET);
|
||||
long startTimeDifferenceInMs = (long) object.get(RaceLogDependentStartTimeEventSerializer.FIELD_START_TIME_DIFFERENCE);
|
||||
Duration startTimeDifference = new MillisecondsDurationImpl(startTimeDifferenceInMs);
|
||||
|
||||
RaceLogRaceStatusEvent event = (RaceLogRaceStatusEvent) super.deserialize(object, id, createdAt, author, timePoint, passId, competitors);
|
||||
|
||||
return factory.createDependentStartTimeEvent(event.getCreatedAt(), author, event.getLogicalTimePoint(), event.getId(), event.getInvolvedBoats(),
|
||||
event.getPassId(), dependentOnFleet, startTimeDifference);
|
||||
}
|
||||
|
||||
}
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
package com.sap.sailing.server.gateway.serialization.racelog.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogDependentStartTimeEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class RaceLogDependentStartTimeEventSerializer extends BaseRaceLogEventSerializer implements JsonSerializer<RaceLogEvent> {
|
||||
|
||||
public RaceLogDependentStartTimeEventSerializer(JsonSerializer<Competitor> competitorSerializer) {
|
||||
super(competitorSerializer);
|
||||
}
|
||||
|
||||
public static final String VALUE_CLASS = RaceLogDependentStartTimeEvent.class.getSimpleName();
|
||||
|
||||
public static final String FIELD_DEPDENDENT_ON_FLEET = "dependentOnFleet";
|
||||
public static final String FIELD_START_TIME_DIFFERENCE = "startTimeDifference";
|
||||
|
||||
@Override
|
||||
protected String getClassFieldValue() {
|
||||
return VALUE_CLASS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(RaceLogEvent object) {
|
||||
RaceLogDependentStartTimeEvent event = (RaceLogDependentStartTimeEvent) object;
|
||||
|
||||
JSONObject result = super.serialize(event);
|
||||
result.put(FIELD_DEPDENDENT_ON_FLEET, event.getDependentOnFleet());
|
||||
result.put(FIELD_START_TIME_DIFFERENCE, event.getStartTimeDifference().asMillis());
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+12
-3
@@ -5,6 +5,7 @@ import org.json.simple.JSONObject;
|
||||
import com.sap.sailing.domain.abstractlog.race.FixedMarkPassingEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogCourseAreaChangedEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogCourseDesignChangedEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogDependentStartTimeEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogEventVisitor;
|
||||
import com.sap.sailing.domain.abstractlog.race.RaceLogFinishPositioningConfirmedEvent;
|
||||
@@ -81,7 +82,8 @@ public class RaceLogEventSerializer implements JsonSerializer<RaceLogEvent>, Rac
|
||||
new RaceLogCloseOpenEndedDeviceMappingEventSerializer(competitorSerializer),
|
||||
new RaceLogAdditionalScoringInformationSerializer(competitorSerializer),
|
||||
new RaceLogFixedMarkPassingEventSerializer(competitorSerializer),
|
||||
new RaceLogSuppressedMarkPassingsEventSerializer(competitorSerializer));
|
||||
new RaceLogSuppressedMarkPassingsEventSerializer(competitorSerializer),
|
||||
new RaceLogDependentStartTimeEventSerializer(competitorSerializer));
|
||||
}
|
||||
|
||||
private final JsonSerializer<RaceLogEvent> flagEventSerializer;
|
||||
@@ -108,6 +110,7 @@ public class RaceLogEventSerializer implements JsonSerializer<RaceLogEvent>, Rac
|
||||
private final JsonSerializer<RaceLogEvent> additionalScoringInformationSerializer;
|
||||
private final JsonSerializer<RaceLogEvent> fixedMarkPassingEventSerializer;
|
||||
private final JsonSerializer<RaceLogEvent> suppressedMarkPassingsEventSerializer;
|
||||
private final JsonSerializer<RaceLogEvent> dependentStartTimeEventSerializer;
|
||||
|
||||
private JsonSerializer<RaceLogEvent> chosenSerializer;
|
||||
|
||||
@@ -135,7 +138,8 @@ public class RaceLogEventSerializer implements JsonSerializer<RaceLogEvent>, Rac
|
||||
JsonSerializer<RaceLogEvent> closeOpenEndedDeviceMappingEventSerializer,
|
||||
JsonSerializer<RaceLogEvent> additionalScoringInformationSerializer,
|
||||
JsonSerializer<RaceLogEvent> fixedMarkPassingEventSerializer,
|
||||
JsonSerializer<RaceLogEvent> suppressedMarkPassingsSerializer) {
|
||||
JsonSerializer<RaceLogEvent> suppressedMarkPassingsSerializer,
|
||||
JsonSerializer<RaceLogEvent> dependentStartTimeEventSerializer) {
|
||||
this.flagEventSerializer = flagEventSerializer;
|
||||
this.startTimeSerializer = startTimeSerializer;
|
||||
this.raceStatusSerializer = raceStatusSerializer;
|
||||
@@ -160,6 +164,7 @@ public class RaceLogEventSerializer implements JsonSerializer<RaceLogEvent>, Rac
|
||||
this.additionalScoringInformationSerializer = additionalScoringInformationSerializer;
|
||||
this.fixedMarkPassingEventSerializer = fixedMarkPassingEventSerializer;
|
||||
this.suppressedMarkPassingsEventSerializer = suppressedMarkPassingsSerializer;
|
||||
this.dependentStartTimeEventSerializer = dependentStartTimeEventSerializer;
|
||||
|
||||
this.chosenSerializer = null;
|
||||
}
|
||||
@@ -294,9 +299,13 @@ public class RaceLogEventSerializer implements JsonSerializer<RaceLogEvent>, Rac
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void visit(SuppressedMarkPassingsEvent event) {
|
||||
chosenSerializer = suppressedMarkPassingsEventSerializer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visit(RaceLogDependentStartTimeEvent event) {
|
||||
chosenSerializer = dependentStartTimeEventSerializer;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user