completed persistence/serialization of RaceLogORCUseImpliedWindFromOtherRaceEvent

Change-Id: I1d360cea88637e572a5a4ea8d0f76efe7ce57846
This commit is contained in:
Axel Uhl committed 2019-10-23 18:47:11 +02:00
1 parent b124e36ceb
commit 0d10fe75fe
4 files changed
+61 -9

No files matched your search

@@ -92,7 +92,8 @@ public class RaceLogEventDeserializer implements JsonDeserializer<RaceLogEvent>
new RaceLogTagEventDeserializer(competitorDeserializer),
new RaceLogORCLegDataEventDeserializer(competitorDeserializer),
new RaceLogORCScratchBoatEventDeserializer(competitorDeserializer),
new RaceLogORCCertificateAssignmentEventDeserializer(competitorDeserializer));
new RaceLogORCCertificateAssignmentEventDeserializer(competitorDeserializer),
new RaceLogORCUseImpliedWindFromOtherRaceEventDeserializer(competitorDeserializer));
}
protected final JsonDeserializer<RaceLogEvent> flagEventDeserializer;
@@ -122,6 +123,7 @@ public class RaceLogEventDeserializer implements JsonDeserializer<RaceLogEvent>
protected final JsonDeserializer<RaceLogEvent> orcLegDataEventDeserializer;
protected final JsonDeserializer<RaceLogEvent> orcScratchBoatEventDeserializer;
protected final JsonDeserializer<RaceLogEvent> orcCertificateAssignmentEventDeserializer;
protected final JsonDeserializer<RaceLogEvent> orcUseImpliedWindFromOtherRaceEventDeserializer;
public RaceLogEventDeserializer(JsonDeserializer<RaceLogEvent> flagEventDeserializer,
JsonDeserializer<RaceLogEvent> startTimeEventDeserializer,
@@ -149,7 +151,8 @@ public class RaceLogEventDeserializer implements JsonDeserializer<RaceLogEvent>
JsonDeserializer<RaceLogEvent> tagEventDeserializer,
JsonDeserializer<RaceLogEvent> orcLegDataEventDeserializer,
JsonDeserializer<RaceLogEvent> orcScratchBoatEventDeserializer,
JsonDeserializer<RaceLogEvent> orcCertificateAssignmentEventDeserializer) {
JsonDeserializer<RaceLogEvent> orcCertificateAssignmentEventDeserializer,
JsonDeserializer<RaceLogEvent> orcUseImpliedWindFromOtherRaceEventDeserializer) {
this.flagEventDeserializer = flagEventDeserializer;
this.startTimeEventDeserializer = startTimeEventDeserializer;
this.dependentStartTimeEventDeserializer = dependentStartTimeEventDeserializer;
@@ -177,6 +180,7 @@ public class RaceLogEventDeserializer implements JsonDeserializer<RaceLogEvent>
this.orcLegDataEventDeserializer = orcLegDataEventDeserializer;
this.orcScratchBoatEventDeserializer = orcScratchBoatEventDeserializer;
this.orcCertificateAssignmentEventDeserializer = orcCertificateAssignmentEventDeserializer;
this.orcUseImpliedWindFromOtherRaceEventDeserializer = orcUseImpliedWindFromOtherRaceEventDeserializer;
}
protected JsonDeserializer<RaceLogEvent> getDeserializer(JSONObject object) throws JsonDeserializationException {
@@ -0,0 +1,42 @@
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.orc.impl.RaceLogORCUseImpliedWindFromOtherRaceEventImpl;
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
import com.sap.sailing.domain.abstractlog.race.SimpleRaceLogIdentifier;
import com.sap.sailing.domain.abstractlog.race.impl.SimpleRaceLogIdentifierImpl;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.impl.DynamicCompetitor;
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.RaceLogORCUseImpliedWindFromOtherRaceEventSerializer;
import com.sap.sse.common.TimePoint;
/**
* Deserializer for {@link com.sap.sailing.domain.abstractlog.orc.RaceLogORCLegDataEvent ORCLegDataEvent}.
*
* @author Axel Uhl (d043530)
*/
public class RaceLogORCUseImpliedWindFromOtherRaceEventDeserializer extends BaseRaceLogEventDeserializer {
public RaceLogORCUseImpliedWindFromOtherRaceEventDeserializer(JsonDeserializer<DynamicCompetitor> competitorDeserializer) {
super(competitorDeserializer);
}
@Override
protected RaceLogEvent deserialize(JSONObject object, Serializable id, TimePoint createdAt,
AbstractLogEventAuthor author, TimePoint timePoint, int passId, List<Competitor> competitors)
throws JsonDeserializationException {
final String otherRaceRegattaLikeName = object.get(RaceLogORCUseImpliedWindFromOtherRaceEventSerializer.ORC_OTHER_RACE_REGATTA_LIKE_NAME).toString();
final String otherRaceRaceColumnName = object.get(RaceLogORCUseImpliedWindFromOtherRaceEventSerializer.ORC_OTHER_RACE_RACE_COLUMN_NAME).toString();
final String otherRaceFleetName = object.get(RaceLogORCUseImpliedWindFromOtherRaceEventSerializer.ORC_OTHER_RACE_FLEET_NAME).toString();
final SimpleRaceLogIdentifier otherRace = new SimpleRaceLogIdentifierImpl(otherRaceRegattaLikeName, otherRaceRaceColumnName, otherRaceFleetName);
return new RaceLogORCUseImpliedWindFromOtherRaceEventImpl(createdAt, timePoint, author, id, passId, otherRace);
}
}
@@ -2,7 +2,7 @@ package com.sap.sailing.server.gateway.serialization.racelog.impl;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.abstractlog.orc.RaceLogORCScratchBoatEvent;
import com.sap.sailing.domain.abstractlog.orc.RaceLogORCUseImpliedWindFromOtherRaceEvent;
import com.sap.sailing.domain.abstractlog.race.RaceLogEvent;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
@@ -14,18 +14,22 @@ import com.sap.sailing.server.gateway.serialization.JsonSerializer;
* @author Axel Uhl (d043530)
*/
public class RaceLogORCUseImpliedWindFromOtherRaceEventSerializer extends BaseRaceLogEventSerializer {
public static final String VALUE_CLASS = RaceLogORCUseImpliedWindFromOtherRaceEvent.class.getSimpleName();
public static final String ORC_OTHER_RACE_REGATTA_LIKE_NAME = "regatta_like";
public static final String ORC_OTHER_RACE_RACE_COLUMN_NAME = "race_column";
public static final String ORC_OTHER_RACE_FLEET_NAME = "fleet";
public static final String VALUE_CLASS = RaceLogORCScratchBoatEvent.class.getSimpleName();
public static final String ORC_CERTIFICATE = "certificate";
public RaceLogORCUseImpliedWindFromOtherRaceEventSerializer(JsonSerializer<Competitor> competitorSerializer) {
super(competitorSerializer);
}
@Override
public JSONObject serialize(RaceLogEvent object) {
RaceLogORCScratchBoatEvent scratchBoatEvent = (RaceLogORCScratchBoatEvent) object;
JSONObject result = super.serialize(scratchBoatEvent);
final RaceLogORCUseImpliedWindFromOtherRaceEvent useImpliedWindFromOtherRaceEvent = (RaceLogORCUseImpliedWindFromOtherRaceEvent) object;
final JSONObject result = super.serialize(useImpliedWindFromOtherRaceEvent);
result.put(ORC_OTHER_RACE_REGATTA_LIKE_NAME, useImpliedWindFromOtherRaceEvent.getOtherRace().getRegattaLikeParentName());
result.put(ORC_OTHER_RACE_RACE_COLUMN_NAME, useImpliedWindFromOtherRaceEvent.getOtherRace().getRaceColumnName());
result.put(ORC_OTHER_RACE_FLEET_NAME, useImpliedWindFromOtherRaceEvent.getOtherRace().getFleetName());
return result;
}
@@ -38,6 +38,7 @@ import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogEventD
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogFlagEventDeserializer;
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogORCCertificateAssignmentEventDeserializer;
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogORCLegDataEventDeserializer;
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogORCUseImpliedWindFromOtherRaceEventDeserializer;
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogTagEventDeserializer;
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogUseCompetitorsFromRaceLogEventDeserializer;
import com.sap.sailing.server.gateway.serialization.impl.CompetitorJsonSerializer;
@@ -61,7 +62,8 @@ public class RaceLogEventDeserializerTest {
mockitoRaceLogUseCompetitorsFromRaceLogEventDeserializer,
mockitoRaceLogEndOfTrackingEventDeserializer, mockitoRaceLogTagEventDeserializer,
new RaceLogORCLegDataEventDeserializer(competitorDeserializer),
null, new RaceLogORCCertificateAssignmentEventDeserializer(competitorDeserializer));
null, new RaceLogORCCertificateAssignmentEventDeserializer(competitorDeserializer),
new RaceLogORCUseImpliedWindFromOtherRaceEventDeserializer(competitorDeserializer));
}
}