From e2842c4b68d5e61508fcef1abc4129dd37164162 Mon Sep 17 00:00:00 2001 From: Lukas Niemeier Date: Tue, 5 Feb 2013 12:28:39 +0100 Subject: [PATCH] # serialization of FleetWithRaces # used in regatta api of server --- .../test/BaseRaceLogEventTest.java | 2 +- .../serialization/test/EverythingTest.java | 81 ---------------- .../serialization/test/RaceLogEventTest.java | 4 +- .../test/RaceLogFlagEventSerializerTest.java | 2 +- .../RaceLogStartTimeEventSerializerTest.java | 2 +- .../META-INF/MANIFEST.MF | 6 +- .../impl/BaseRaceLogEventDeserializer.java | 2 +- ...LogCourseAreaChangedEventDeserializer.java | 2 +- .../impl/RaceLogEventDeserializer.java | 8 +- .../impl/RaceLogFlagEventDeserializer.java | 2 +- .../RaceLogStartTimeEventDeserializer.java | 2 +- .../ExtendableJsonSerializer.java | 38 ++++++++ .../ExtensionJsonSerializer.java | 21 +++++ .../serialization/SerializationFilter.java | 14 --- .../gateway/serialization/filter/Filter.java | 14 +++ .../serialization/filter/HierarchyFilter.java | 19 ++++ .../impl/RegattaJsonSerializer.java | 64 ------------- .../BaseControlPointJsonSerializer.java | 2 +- .../ControlPointJsonSerializer.java | 2 +- .../impl/{ => race}/CourseJsonSerializer.java | 2 +- ...seOfRaceDefinitionExtensionSerializer.java | 27 ++++++ .../impl/{ => race}/GateJsonSerializer.java | 2 +- .../impl/{ => race}/MarkJsonSerializer.java | 2 +- .../RaceDefinitionJsonSerializer.java | 22 +++-- .../{ => race}/WaypointJsonSerializer.java | 2 +- .../BaseRaceLogEventSerializer.java | 2 +- ...ceLogCourseAreaChangedEventSerializer.java | 2 +- .../{ => racelog}/RaceLogEventSerializer.java | 92 +++++++++---------- .../RaceLogFlagEventSerializer.java | 2 +- .../RaceLogStartTimeEventSerializer.java | 68 +++++++------- .../impl/regatta/ColorJsonSerializer.java | 26 ++++++ .../impl/regatta/FleetJsonSerializer.java | 34 +++++++ .../regatta/FleetWithRacesJsonSerializer.java | 44 +++++++++ ...tWithRacesOfSeriesExtensionSerializer.java | 46 ++++++++++ .../impl/regatta/RegattaJsonSerializer.java | 43 +++++++++ .../impl/regatta/SeriesJsonSerializer.java | 27 ++++++ .../SeriesOfRegattaExtensionSerializer.java | 33 +++++++ .../impl/rc/EventTrackJsonExportServlet.java | 8 +- .../impl/rc/RegattasJsonExportServlet.java | 49 +++++----- .../data/parsers/ManagedRacesDataParser.java | 3 +- .../RaceDefinitionJsonDeserializer.java | 2 +- .../RegattaJsonDeserializer.java | 7 +- 42 files changed, 526 insertions(+), 306 deletions(-) delete mode 100644 java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EverythingTest.java create mode 100644 java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/ExtendableJsonSerializer.java create mode 100644 java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/ExtensionJsonSerializer.java delete mode 100644 java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/SerializationFilter.java create mode 100644 java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/filter/Filter.java create mode 100644 java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/filter/HierarchyFilter.java delete mode 100644 java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java rename java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/{ => race}/BaseControlPointJsonSerializer.java (90%) rename java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/{ => race}/ControlPointJsonSerializer.java (94%) rename java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/{ => race}/CourseJsonSerializer.java (93%) create mode 100644 java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/CourseOfRaceDefinitionExtensionSerializer.java rename java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/{ => race}/GateJsonSerializer.java (94%) rename java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/{ => race}/MarkJsonSerializer.java (95%) rename java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/{ => race}/RaceDefinitionJsonSerializer.java (57%) rename java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/{ => race}/WaypointJsonSerializer.java (94%) rename java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/{ => racelog}/BaseRaceLogEventSerializer.java (95%) rename java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/{ => racelog}/RaceLogCourseAreaChangedEventSerializer.java (94%) rename java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/{ => racelog}/RaceLogEventSerializer.java (93%) rename java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/{ => racelog}/RaceLogFlagEventSerializer.java (94%) rename java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/{ => racelog}/RaceLogStartTimeEventSerializer.java (91%) create mode 100644 java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/ColorJsonSerializer.java create mode 100644 java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/FleetJsonSerializer.java create mode 100644 java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/FleetWithRacesJsonSerializer.java create mode 100644 java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/FleetWithRacesOfSeriesExtensionSerializer.java create mode 100644 java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/RegattaJsonSerializer.java create mode 100644 java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/SeriesJsonSerializer.java create mode 100644 java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/SeriesOfRegattaExtensionSerializer.java diff --git a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/BaseRaceLogEventTest.java b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/BaseRaceLogEventTest.java index 7ac8488d83b..94f7aa4b368 100644 --- a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/BaseRaceLogEventTest.java +++ b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/BaseRaceLogEventTest.java @@ -15,7 +15,7 @@ import com.sap.sailing.domain.base.Competitor; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.server.gateway.serialization.JsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.BaseRaceLogEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.BaseRaceLogEventSerializer; public abstract class BaseRaceLogEventTest { diff --git a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EverythingTest.java b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EverythingTest.java deleted file mode 100644 index 07cee946736..00000000000 --- a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/EverythingTest.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.sap.sailing.server.gateway.serialization.test; - -import static org.junit.Assert.assertTrue; - -import java.util.Arrays; -import java.util.Collections; -import java.util.UUID; - -import org.json.simple.JSONObject; -import org.junit.Test; - -import com.sap.sailing.domain.base.BoatClass; -import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.base.ControlPoint; -import com.sap.sailing.domain.base.Course; -import com.sap.sailing.domain.base.Mark; -import com.sap.sailing.domain.base.RaceDefinition; -import com.sap.sailing.domain.base.Waypoint; -import com.sap.sailing.domain.base.impl.BoatClassImpl; -import com.sap.sailing.domain.base.impl.CourseImpl; -import com.sap.sailing.domain.base.impl.GateImpl; -import com.sap.sailing.domain.base.impl.MarkImpl; -import com.sap.sailing.domain.base.impl.RaceDefinitionImpl; -import com.sap.sailing.domain.base.impl.WaypointImpl; -import com.sap.sailing.domain.common.MarkType; -import com.sap.sailing.domain.common.NauticalSide; -import com.sap.sailing.server.gateway.serialization.JsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.BoatClassJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.ControlPointJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.CourseJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.GateJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.MarkJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.RaceDefinitionJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.WaypointJsonSerializer; - -/// TODO: Move these tests somewhere else... -public class EverythingTest { - - @Test - public void testEverything() { - - ControlPoint startAndFinishControlPoint = - new MarkImpl("FirstMark", MarkType.BUOY, "RED", "TRIANGLE", "DASHED"); - Mark leftGateMark = new MarkImpl("LeftGateMark", MarkType.BUOY, "BLUE", "TRIANGLE", "DASHED");; - Mark rightGateMark = new MarkImpl("RightGateMark", MarkType.BUOY, "GREEN", "TRIANGLE", "DASHED");; - ControlPoint gate = new GateImpl(leftGateMark, rightGateMark, "Gate"); - - Waypoint firstWaypoint = new WaypointImpl(startAndFinishControlPoint, NauticalSide.PORT); - Waypoint secondWaypoint = new WaypointImpl(gate, NauticalSide.PORT); - Waypoint thirdWaypoint = new WaypointImpl(startAndFinishControlPoint, NauticalSide.STARBOARD); - - Course course = new CourseImpl( - "Rainbow Route", - Arrays.asList(firstWaypoint, secondWaypoint, thirdWaypoint)); - - BoatClass boatClass = new BoatClassImpl("Laser", false); - RaceDefinition race = new RaceDefinitionImpl( - "Race 1", - course, - boatClass, - Collections.emptyList(), - UUID.randomUUID()); - - JsonSerializer markSerializer = new MarkJsonSerializer(); - JsonSerializer serializer = - new RaceDefinitionJsonSerializer( - new BoatClassJsonSerializer(), - new CourseJsonSerializer( - new WaypointJsonSerializer( - new ControlPointJsonSerializer( - markSerializer, - new GateJsonSerializer(markSerializer))))); - - JSONObject result = serializer.serialize(race); - - System.out.println(result.toJSONString()); - assertTrue(result.containsKey(RaceDefinitionJsonSerializer.FIELD_NAME)); - - } - -} diff --git a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/RaceLogEventTest.java b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/RaceLogEventTest.java index 2c3248038ce..d2e322fa715 100644 --- a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/RaceLogEventTest.java +++ b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/RaceLogEventTest.java @@ -8,8 +8,8 @@ import org.junit.Test; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.server.gateway.serialization.JsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.BaseRaceLogEventSerializer; -import com.sap.sailing.server.gateway.serialization.impl.RaceLogFlagEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.BaseRaceLogEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.RaceLogFlagEventSerializer; public class RaceLogEventTest extends BaseRaceLogEventTest { diff --git a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/RaceLogFlagEventSerializerTest.java b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/RaceLogFlagEventSerializerTest.java index 37136fedba8..31693c7d85d 100644 --- a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/RaceLogFlagEventSerializerTest.java +++ b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/RaceLogFlagEventSerializerTest.java @@ -12,7 +12,7 @@ import com.sap.sailing.domain.racelog.Flags; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.RaceLogFlagEvent; import com.sap.sailing.server.gateway.serialization.JsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.RaceLogFlagEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.RaceLogFlagEventSerializer; public class RaceLogFlagEventSerializerTest extends BaseRaceLogEventTest { diff --git a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/RaceLogStartTimeEventSerializerTest.java b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/RaceLogStartTimeEventSerializerTest.java index bf2f20b090c..b5f03754dd8 100644 --- a/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/RaceLogStartTimeEventSerializerTest.java +++ b/java/com.sap.sailing.server.gateway.serialization.test/src/com/sap/sailing/server/gateway/serialization/test/RaceLogStartTimeEventSerializerTest.java @@ -11,7 +11,7 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent; import com.sap.sailing.server.gateway.serialization.JsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.RaceLogStartTimeEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.RaceLogStartTimeEventSerializer; public class RaceLogStartTimeEventSerializerTest extends BaseRaceLogEventTest { diff --git a/java/com.sap.sailing.server.gateway.serialization/META-INF/MANIFEST.MF b/java/com.sap.sailing.server.gateway.serialization/META-INF/MANIFEST.MF index 761b5a2202d..e076c7cdb1b 100644 --- a/java/com.sap.sailing.server.gateway.serialization/META-INF/MANIFEST.MF +++ b/java/com.sap.sailing.server.gateway.serialization/META-INF/MANIFEST.MF @@ -11,4 +11,8 @@ Require-Bundle: com.sap.sailing.domain;bundle-version="1.0.0", Export-Package: com.sap.sailing.server.gateway.deserialization, com.sap.sailing.server.gateway.deserialization.impl, com.sap.sailing.server.gateway.serialization, - com.sap.sailing.server.gateway.serialization.impl + com.sap.sailing.server.gateway.serialization.filter, + com.sap.sailing.server.gateway.serialization.impl, + com.sap.sailing.server.gateway.serialization.impl.race, + com.sap.sailing.server.gateway.serialization.impl.racelog, + com.sap.sailing.server.gateway.serialization.impl.regatta diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/BaseRaceLogEventDeserializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/BaseRaceLogEventDeserializer.java index 0092116e6c3..ad6b43d0cbb 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/BaseRaceLogEventDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/BaseRaceLogEventDeserializer.java @@ -9,7 +9,7 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; -import com.sap.sailing.server.gateway.serialization.impl.BaseRaceLogEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.BaseRaceLogEventSerializer; /// TODO deserialize involved boats public abstract class BaseRaceLogEventDeserializer implements JsonDeserializer { diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogCourseAreaChangedEventDeserializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogCourseAreaChangedEventDeserializer.java index b24939a6957..8b18b3ee40d 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogCourseAreaChangedEventDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogCourseAreaChangedEventDeserializer.java @@ -11,7 +11,7 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.impl.RaceLogCourseAreaChangeEventImpl; import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; -import com.sap.sailing.server.gateway.serialization.impl.RaceLogCourseAreaChangedEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.RaceLogCourseAreaChangedEventSerializer; public class RaceLogCourseAreaChangedEventDeserializer extends BaseRaceLogEventDeserializer { diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogEventDeserializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogEventDeserializer.java index 485e0c1d29a..37b10a04233 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogEventDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogEventDeserializer.java @@ -5,10 +5,10 @@ import org.json.simple.JSONObject; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; -import com.sap.sailing.server.gateway.serialization.impl.BaseRaceLogEventSerializer; -import com.sap.sailing.server.gateway.serialization.impl.RaceLogCourseAreaChangedEventSerializer; -import com.sap.sailing.server.gateway.serialization.impl.RaceLogFlagEventSerializer; -import com.sap.sailing.server.gateway.serialization.impl.RaceLogStartTimeEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.BaseRaceLogEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.RaceLogCourseAreaChangedEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.RaceLogFlagEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.RaceLogStartTimeEventSerializer; public class RaceLogEventDeserializer implements JsonDeserializer { diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogFlagEventDeserializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogFlagEventDeserializer.java index d3813293e98..9cc6ced313a 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogFlagEventDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogFlagEventDeserializer.java @@ -10,7 +10,7 @@ import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.racelog.Flags; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.impl.RaceLogFlagEventImpl; -import com.sap.sailing.server.gateway.serialization.impl.RaceLogFlagEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.RaceLogFlagEventSerializer; public class RaceLogFlagEventDeserializer extends BaseRaceLogEventDeserializer { diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogStartTimeEventDeserializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogStartTimeEventDeserializer.java index 21c19f1128c..05aa9764379 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogStartTimeEventDeserializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/deserialization/impl/RaceLogStartTimeEventDeserializer.java @@ -10,7 +10,7 @@ import com.sap.sailing.domain.base.impl.MillisecondsTimePoint; import com.sap.sailing.domain.common.TimePoint; import com.sap.sailing.domain.racelog.RaceLogEvent; import com.sap.sailing.domain.racelog.impl.RaceLogStartTimeEventImpl; -import com.sap.sailing.server.gateway.serialization.impl.RaceLogStartTimeEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.RaceLogStartTimeEventSerializer; public class RaceLogStartTimeEventDeserializer extends BaseRaceLogEventDeserializer { diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/ExtendableJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/ExtendableJsonSerializer.java new file mode 100644 index 00000000000..7c50ba445e4 --- /dev/null +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/ExtendableJsonSerializer.java @@ -0,0 +1,38 @@ +package com.sap.sailing.server.gateway.serialization; + +import java.util.Collections; + +import org.json.simple.JSONObject; + +public abstract class ExtendableJsonSerializer implements JsonSerializer { + + protected abstract JSONObject serializeFields(T object); + + private final Iterable> extensionSerializers; + + public ExtendableJsonSerializer(Iterable> extensionSerializers) { + this.extensionSerializers = extensionSerializers; + } + + public ExtendableJsonSerializer(ExtensionJsonSerializer extensionSerializer) { + this.extensionSerializers = Collections.>singletonList(extensionSerializer); + } + + public ExtendableJsonSerializer() { + this.extensionSerializers = Collections.emptyList(); + } + + @Override + public JSONObject serialize(T object) { + JSONObject result = serializeFields(object); + + for (ExtensionJsonSerializer extensionSerializer : extensionSerializers) { + result.put( + extensionSerializer.getExtensionFieldName(), + extensionSerializer.serializeExtension(object)); + } + + return result; + } + +} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/ExtensionJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/ExtensionJsonSerializer.java new file mode 100644 index 00000000000..9d6ec9a4feb --- /dev/null +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/ExtensionJsonSerializer.java @@ -0,0 +1,21 @@ +package com.sap.sailing.server.gateway.serialization; + + + +public abstract class ExtensionJsonSerializer { + + public abstract String getExtensionFieldName(); + + public abstract Object serializeExtension(ParentType parent); + + protected JsonSerializer extensionSerializer; + + public ExtensionJsonSerializer(JsonSerializer extensionSerializer) { + this.extensionSerializer = extensionSerializer; + } + + protected Object serialize(ExtensionType extensionObject) { + return extensionSerializer.serialize(extensionObject); + } + +} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/SerializationFilter.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/SerializationFilter.java deleted file mode 100644 index 7735fcde900..00000000000 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/SerializationFilter.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.sap.sailing.server.gateway.serialization; - -public interface SerializationFilter { - - public class NoFilter implements SerializationFilter { - @Override - public boolean isFiltered(T object) { - return false; - } - } - - public boolean isFiltered(T object); - -} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/filter/Filter.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/filter/Filter.java new file mode 100644 index 00000000000..38df4f4b103 --- /dev/null +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/filter/Filter.java @@ -0,0 +1,14 @@ +package com.sap.sailing.server.gateway.serialization.filter; + +public interface Filter { + + public class NoFilter implements Filter { + @Override + public boolean isFiltered(Element object) { + return false; + } + } + + public boolean isFiltered(ElementType object); + +} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/filter/HierarchyFilter.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/filter/HierarchyFilter.java new file mode 100644 index 00000000000..72f4e025280 --- /dev/null +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/filter/HierarchyFilter.java @@ -0,0 +1,19 @@ +package com.sap.sailing.server.gateway.serialization.filter; + +public interface HierarchyFilter extends Filter { + + public class NoFilter implements HierarchyFilter { + @Override + public boolean isFiltered(ParentType parent, ElementType object) { + return false; + } + + @Override + public boolean isFiltered(ElementType object) { + return false; + } + } + + public boolean isFiltered(ParentType parent, ElementType object); + +} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java deleted file mode 100644 index ba2abe6de98..00000000000 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RegattaJsonSerializer.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.sap.sailing.server.gateway.serialization.impl; - -import org.json.simple.JSONArray; -import org.json.simple.JSONObject; - -import com.sap.sailing.domain.base.BoatClass; -import com.sap.sailing.domain.base.RaceDefinition; -import com.sap.sailing.domain.base.Regatta; -import com.sap.sailing.server.gateway.serialization.JsonSerializer; -import com.sap.sailing.server.gateway.serialization.SerializationFilter; - -public class RegattaJsonSerializer implements JsonSerializer { - public static final String FIELD_ID = "id"; - public static final String FIELD_NAME = "name"; - public static final String FIELD_BASE_NAME = "baseName"; - public static final String FIELD_BOAT_CLASS = "boatClass"; - public static final String FIELD_RACES = "races"; - - private final JsonSerializer boatClassSerializer; - private final JsonSerializer raceDefinitionSerializer; - private final SerializationFilter raceDefinitionFilter; - - public RegattaJsonSerializer( - JsonSerializer boatClassSerializer, - JsonSerializer raceDefinitionSerializer, - SerializationFilter raceDefinitionFilter) - { - this.boatClassSerializer = boatClassSerializer; - this.raceDefinitionSerializer = raceDefinitionSerializer; - this.raceDefinitionFilter = raceDefinitionFilter; - } - - public RegattaJsonSerializer( - JsonSerializer boatClassSerializer, - JsonSerializer raceDefinitionSerializer) - { - this( - boatClassSerializer, - raceDefinitionSerializer, - new SerializationFilter.NoFilter()); - } - - @Override - public JSONObject serialize(Regatta object) { - JSONObject result = new JSONObject(); - - result.put(FIELD_ID, object.getId().toString()); - result.put(FIELD_NAME, object.getName()); - result.put(FIELD_BASE_NAME, object.getBaseName()); - result.put(FIELD_BOAT_CLASS, boatClassSerializer.serialize(object.getBoatClass())); - - JSONArray races = new JSONArray(); - for (RaceDefinition race : object.getAllRaces()) - { - if (!raceDefinitionFilter.isFiltered(race)) { - races.add(raceDefinitionSerializer.serialize(race)); - } - } - result.put(FIELD_RACES, races); - - return result; - } - -} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/BaseControlPointJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/BaseControlPointJsonSerializer.java similarity index 90% rename from java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/BaseControlPointJsonSerializer.java rename to java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/BaseControlPointJsonSerializer.java index f062a6ab759..cc8dc28f676 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/BaseControlPointJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/BaseControlPointJsonSerializer.java @@ -1,4 +1,4 @@ -package com.sap.sailing.server.gateway.serialization.impl; +package com.sap.sailing.server.gateway.serialization.impl.race; import org.json.simple.JSONObject; diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/ControlPointJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/ControlPointJsonSerializer.java similarity index 94% rename from java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/ControlPointJsonSerializer.java rename to java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/ControlPointJsonSerializer.java index b037f2f6dd9..e658bf8a01b 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/ControlPointJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/ControlPointJsonSerializer.java @@ -1,4 +1,4 @@ -package com.sap.sailing.server.gateway.serialization.impl; +package com.sap.sailing.server.gateway.serialization.impl.race; import org.json.simple.JSONObject; diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/CourseJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/CourseJsonSerializer.java similarity index 93% rename from java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/CourseJsonSerializer.java rename to java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/CourseJsonSerializer.java index 94b436769c3..7b55d18e15f 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/CourseJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/CourseJsonSerializer.java @@ -1,4 +1,4 @@ -package com.sap.sailing.server.gateway.serialization.impl; +package com.sap.sailing.server.gateway.serialization.impl.race; import org.json.simple.JSONArray; import org.json.simple.JSONObject; diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/CourseOfRaceDefinitionExtensionSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/CourseOfRaceDefinitionExtensionSerializer.java new file mode 100644 index 00000000000..c7e7b11c6aa --- /dev/null +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/CourseOfRaceDefinitionExtensionSerializer.java @@ -0,0 +1,27 @@ +package com.sap.sailing.server.gateway.serialization.impl.race; + +import com.sap.sailing.domain.base.Course; +import com.sap.sailing.domain.base.RaceDefinition; +import com.sap.sailing.server.gateway.serialization.ExtensionJsonSerializer; +import com.sap.sailing.server.gateway.serialization.JsonSerializer; + +public class CourseOfRaceDefinitionExtensionSerializer extends + ExtensionJsonSerializer { + public static final String FIELD_COURSE = "COURSE"; + + public CourseOfRaceDefinitionExtensionSerializer( + JsonSerializer extensionSerializer) { + super(extensionSerializer); + } + + @Override + public String getExtensionFieldName() { + return FIELD_COURSE; + } + + @Override + public Object serializeExtension(RaceDefinition parent) { + return extensionSerializer.serialize(parent.getCourse()); + } + +} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/GateJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/GateJsonSerializer.java similarity index 94% rename from java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/GateJsonSerializer.java rename to java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/GateJsonSerializer.java index b7c12a5ba8b..56dfcaf7a3c 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/GateJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/GateJsonSerializer.java @@ -1,4 +1,4 @@ -package com.sap.sailing.server.gateway.serialization.impl; +package com.sap.sailing.server.gateway.serialization.impl.race; import org.json.simple.JSONObject; diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/MarkJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/MarkJsonSerializer.java similarity index 95% rename from java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/MarkJsonSerializer.java rename to java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/MarkJsonSerializer.java index 80fb1633444..673f19baf66 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/MarkJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/MarkJsonSerializer.java @@ -1,4 +1,4 @@ -package com.sap.sailing.server.gateway.serialization.impl; +package com.sap.sailing.server.gateway.serialization.impl.race; import org.json.simple.JSONObject; diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RaceDefinitionJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/RaceDefinitionJsonSerializer.java similarity index 57% rename from java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RaceDefinitionJsonSerializer.java rename to java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/RaceDefinitionJsonSerializer.java index f384c07104c..8cfd2ddb735 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RaceDefinitionJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/RaceDefinitionJsonSerializer.java @@ -1,36 +1,40 @@ -package com.sap.sailing.server.gateway.serialization.impl; +package com.sap.sailing.server.gateway.serialization.impl.race; import org.json.simple.JSONObject; import com.sap.sailing.domain.base.BoatClass; -import com.sap.sailing.domain.base.Course; import com.sap.sailing.domain.base.RaceDefinition; +import com.sap.sailing.server.gateway.serialization.ExtendableJsonSerializer; +import com.sap.sailing.server.gateway.serialization.ExtensionJsonSerializer; import com.sap.sailing.server.gateway.serialization.JsonSerializer; -public class RaceDefinitionJsonSerializer implements JsonSerializer { +public class RaceDefinitionJsonSerializer extends ExtendableJsonSerializer { public static final String FIELD_ID = "id"; public static final String FIELD_NAME = "name"; - public static final String FIELD_COURSE = "course"; public static final String FIELD_BOAT_CLASS = "boatClass"; private final JsonSerializer boatClassSerializer; - private final JsonSerializer courseSerializer; + + public RaceDefinitionJsonSerializer(JsonSerializer boatClassSerializer) { + this.boatClassSerializer = boatClassSerializer; + } public RaceDefinitionJsonSerializer( JsonSerializer boatClassSerializer, - JsonSerializer courseSerializer) { + ExtensionJsonSerializer extensionSerializer) { + super(extensionSerializer); this.boatClassSerializer = boatClassSerializer; - this.courseSerializer = courseSerializer; } + + @Override - public JSONObject serialize(RaceDefinition object) { + protected JSONObject serializeFields(RaceDefinition object) { JSONObject result = new JSONObject(); result.put(FIELD_ID, object.getId().toString()); result.put(FIELD_NAME, object.getName()); result.put(FIELD_BOAT_CLASS, boatClassSerializer.serialize(object.getBoatClass())); - result.put(FIELD_COURSE, courseSerializer.serialize(object.getCourse())); return result; } diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/WaypointJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/WaypointJsonSerializer.java similarity index 94% rename from java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/WaypointJsonSerializer.java rename to java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/WaypointJsonSerializer.java index 2e5e059acd2..abc7da1af17 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/WaypointJsonSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/race/WaypointJsonSerializer.java @@ -1,4 +1,4 @@ -package com.sap.sailing.server.gateway.serialization.impl; +package com.sap.sailing.server.gateway.serialization.impl.race; import org.json.simple.JSONObject; diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/BaseRaceLogEventSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/racelog/BaseRaceLogEventSerializer.java similarity index 95% rename from java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/BaseRaceLogEventSerializer.java rename to java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/racelog/BaseRaceLogEventSerializer.java index ab0e8387029..f28baa9f25c 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/BaseRaceLogEventSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/racelog/BaseRaceLogEventSerializer.java @@ -1,4 +1,4 @@ -package com.sap.sailing.server.gateway.serialization.impl; +package com.sap.sailing.server.gateway.serialization.impl.racelog; import org.json.simple.JSONArray; import org.json.simple.JSONObject; diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RaceLogCourseAreaChangedEventSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/racelog/RaceLogCourseAreaChangedEventSerializer.java similarity index 94% rename from java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RaceLogCourseAreaChangedEventSerializer.java rename to java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/racelog/RaceLogCourseAreaChangedEventSerializer.java index ebe690a6508..d658a11cbec 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RaceLogCourseAreaChangedEventSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/racelog/RaceLogCourseAreaChangedEventSerializer.java @@ -1,4 +1,4 @@ -package com.sap.sailing.server.gateway.serialization.impl; +package com.sap.sailing.server.gateway.serialization.impl.racelog; import org.json.simple.JSONObject; diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RaceLogEventSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/racelog/RaceLogEventSerializer.java similarity index 93% rename from java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RaceLogEventSerializer.java rename to java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/racelog/RaceLogEventSerializer.java index 7c9c3d7bfe4..5a1384e43a7 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RaceLogEventSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/racelog/RaceLogEventSerializer.java @@ -1,46 +1,46 @@ -package com.sap.sailing.server.gateway.serialization.impl; - -import org.json.simple.JSONObject; - -import com.sap.sailing.domain.racelog.RaceLogCourseAreaChangedEvent; -import com.sap.sailing.domain.racelog.RaceLogEvent; -import com.sap.sailing.domain.racelog.RaceLogFlagEvent; -import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent; -import com.sap.sailing.server.gateway.serialization.JsonSerializer; - -public class RaceLogEventSerializer implements JsonSerializer { - - private final JsonSerializer flagEventSerializer; - private final JsonSerializer startTimeSerializer; - private final JsonSerializer courseAreaChangedEventSerializer; - - public RaceLogEventSerializer( - JsonSerializer flagEventSerializer, - JsonSerializer startTimeSerializer, - JsonSerializer courseAreaChangedEventSerializer) { - this.flagEventSerializer = flagEventSerializer; - this.startTimeSerializer = startTimeSerializer; - this.courseAreaChangedEventSerializer = courseAreaChangedEventSerializer; - } - - protected JsonSerializer getSerializer( - RaceLogEvent event) { - if (event instanceof RaceLogFlagEvent) { - return flagEventSerializer; - } else if (event instanceof RaceLogStartTimeEvent) { - return startTimeSerializer; - } else if (event instanceof RaceLogCourseAreaChangedEvent) { - return courseAreaChangedEventSerializer; - } - - throw new UnsupportedOperationException(String.format( - "There is no serializer defined for event type %s", event - .getClass().getName())); - } - - @Override - public JSONObject serialize(RaceLogEvent object) { - return getSerializer(object).serialize(object); - } - -} +package com.sap.sailing.server.gateway.serialization.impl.racelog; + +import org.json.simple.JSONObject; + +import com.sap.sailing.domain.racelog.RaceLogCourseAreaChangedEvent; +import com.sap.sailing.domain.racelog.RaceLogEvent; +import com.sap.sailing.domain.racelog.RaceLogFlagEvent; +import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent; +import com.sap.sailing.server.gateway.serialization.JsonSerializer; + +public class RaceLogEventSerializer implements JsonSerializer { + + private final JsonSerializer flagEventSerializer; + private final JsonSerializer startTimeSerializer; + private final JsonSerializer courseAreaChangedEventSerializer; + + public RaceLogEventSerializer( + JsonSerializer flagEventSerializer, + JsonSerializer startTimeSerializer, + JsonSerializer courseAreaChangedEventSerializer) { + this.flagEventSerializer = flagEventSerializer; + this.startTimeSerializer = startTimeSerializer; + this.courseAreaChangedEventSerializer = courseAreaChangedEventSerializer; + } + + protected JsonSerializer getSerializer( + RaceLogEvent event) { + if (event instanceof RaceLogFlagEvent) { + return flagEventSerializer; + } else if (event instanceof RaceLogStartTimeEvent) { + return startTimeSerializer; + } else if (event instanceof RaceLogCourseAreaChangedEvent) { + return courseAreaChangedEventSerializer; + } + + throw new UnsupportedOperationException(String.format( + "There is no serializer defined for event type %s", event + .getClass().getName())); + } + + @Override + public JSONObject serialize(RaceLogEvent object) { + return getSerializer(object).serialize(object); + } + +} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RaceLogFlagEventSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/racelog/RaceLogFlagEventSerializer.java similarity index 94% rename from java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RaceLogFlagEventSerializer.java rename to java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/racelog/RaceLogFlagEventSerializer.java index bd16b1a59f5..bdab0cb61ae 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RaceLogFlagEventSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/racelog/RaceLogFlagEventSerializer.java @@ -1,4 +1,4 @@ -package com.sap.sailing.server.gateway.serialization.impl; +package com.sap.sailing.server.gateway.serialization.impl.racelog; import org.json.simple.JSONObject; diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RaceLogStartTimeEventSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/racelog/RaceLogStartTimeEventSerializer.java similarity index 91% rename from java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RaceLogStartTimeEventSerializer.java rename to java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/racelog/RaceLogStartTimeEventSerializer.java index bb831d1c3d5..fb415d6ba34 100644 --- a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/RaceLogStartTimeEventSerializer.java +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/racelog/RaceLogStartTimeEventSerializer.java @@ -1,34 +1,34 @@ -package com.sap.sailing.server.gateway.serialization.impl; - -import org.json.simple.JSONObject; - -import com.sap.sailing.domain.base.Competitor; -import com.sap.sailing.domain.racelog.RaceLogEvent; -import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent; -import com.sap.sailing.server.gateway.serialization.JsonSerializer; - -public class RaceLogStartTimeEventSerializer extends BaseRaceLogEventSerializer { - - public static final String VALUE_CLASS = RaceLogStartTimeEvent.class.getSimpleName(); - public static final String FIELD_START_TIME = "startTime"; - - public RaceLogStartTimeEventSerializer( - JsonSerializer competitorSerializer) { - super(competitorSerializer); - } - - @Override - protected String getClassFieldValue() { - return VALUE_CLASS; - } - - @Override - public JSONObject serialize(RaceLogEvent object) { - RaceLogStartTimeEvent startTimeEvent = (RaceLogStartTimeEvent) object; - - JSONObject result = super.serialize(startTimeEvent); - result.put(FIELD_START_TIME, startTimeEvent.getStartTime().asMillis()); - return result; - } - -} +package com.sap.sailing.server.gateway.serialization.impl.racelog; + +import org.json.simple.JSONObject; + +import com.sap.sailing.domain.base.Competitor; +import com.sap.sailing.domain.racelog.RaceLogEvent; +import com.sap.sailing.domain.racelog.RaceLogStartTimeEvent; +import com.sap.sailing.server.gateway.serialization.JsonSerializer; + +public class RaceLogStartTimeEventSerializer extends BaseRaceLogEventSerializer { + + public static final String VALUE_CLASS = RaceLogStartTimeEvent.class.getSimpleName(); + public static final String FIELD_START_TIME = "startTime"; + + public RaceLogStartTimeEventSerializer( + JsonSerializer competitorSerializer) { + super(competitorSerializer); + } + + @Override + protected String getClassFieldValue() { + return VALUE_CLASS; + } + + @Override + public JSONObject serialize(RaceLogEvent object) { + RaceLogStartTimeEvent startTimeEvent = (RaceLogStartTimeEvent) object; + + JSONObject result = super.serialize(startTimeEvent); + result.put(FIELD_START_TIME, startTimeEvent.getStartTime().asMillis()); + return result; + } + +} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/ColorJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/ColorJsonSerializer.java new file mode 100644 index 00000000000..6e3cebed2db --- /dev/null +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/ColorJsonSerializer.java @@ -0,0 +1,26 @@ +package com.sap.sailing.server.gateway.serialization.impl.regatta; + +import org.json.simple.JSONObject; + +import com.sap.sailing.domain.common.Color; +import com.sap.sailing.domain.common.impl.Util.Triple; +import com.sap.sailing.server.gateway.serialization.JsonSerializer; + +public class ColorJsonSerializer implements JsonSerializer { + public static final String FIELD_RED = "r"; + public static final String FIELD_GREEN = "g"; + public static final String FIELD_BLUE = "b"; + + @Override + public JSONObject serialize(Color object) { + JSONObject result = new JSONObject(); + + Triple rgb = object.getAsRGB(); + result.put(FIELD_RED, rgb.getA()); + result.put(FIELD_GREEN, rgb.getB()); + result.put(FIELD_BLUE, rgb.getC()); + + return result; + } + +} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/FleetJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/FleetJsonSerializer.java new file mode 100644 index 00000000000..8ee21ab5e84 --- /dev/null +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/FleetJsonSerializer.java @@ -0,0 +1,34 @@ +package com.sap.sailing.server.gateway.serialization.impl.regatta; + +import org.json.simple.JSONObject; + +import com.sap.sailing.domain.base.Fleet; +import com.sap.sailing.domain.common.Color; +import com.sap.sailing.server.gateway.serialization.JsonSerializer; + +public class FleetJsonSerializer implements JsonSerializer { + public static final String FIELD_NAME = "name"; + public static final String FIELD_ORDERING = "ordering"; + public static final String FIELD_COLOR = "color"; + + private final JsonSerializer colorSerializer; + + public FleetJsonSerializer(JsonSerializer colorSerializer) { + this.colorSerializer = colorSerializer; + } + + @Override + public JSONObject serialize(Fleet object) { + JSONObject result = new JSONObject(); + + result.put(FIELD_NAME, object.getName()); + result.put(FIELD_ORDERING, object.getOrdering()); + if (object.getColor() != null) { + result.put(FIELD_COLOR, colorSerializer.serialize(object.getColor())); + } + + + return result; + } + +} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/FleetWithRacesJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/FleetWithRacesJsonSerializer.java new file mode 100644 index 00000000000..547386f09ec --- /dev/null +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/FleetWithRacesJsonSerializer.java @@ -0,0 +1,44 @@ +package com.sap.sailing.server.gateway.serialization.impl.regatta; + +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; + +import com.sap.sailing.domain.base.Fleet; +import com.sap.sailing.domain.base.FleetWithRaces; +import com.sap.sailing.domain.base.RaceDefinition; +import com.sap.sailing.server.gateway.serialization.JsonSerializer; +import com.sap.sailing.server.gateway.serialization.filter.Filter; + +public class FleetWithRacesJsonSerializer implements JsonSerializer { + public static final String FIELD_RACES = "races"; + + private final JsonSerializer fleetSerializer; + private final Filter raceDefinitionFilter; + private final JsonSerializer raceDefinitionSerializer; + + public FleetWithRacesJsonSerializer( + JsonSerializer fleetSerializer, + Filter raceDefinitionFilter, + JsonSerializer raceDefinitionSerializer) { + this.fleetSerializer = fleetSerializer; + this.raceDefinitionFilter = raceDefinitionFilter; + this.raceDefinitionSerializer = raceDefinitionSerializer; + } + + + @Override + public JSONObject serialize(FleetWithRaces object) { + JSONObject result = fleetSerializer.serialize(object); + + JSONArray races = new JSONArray(); + for (RaceDefinition race : object.getRaceDefinitions()) { + if (raceDefinitionFilter.isFiltered(race)) { + races.add(raceDefinitionSerializer.serialize(race)); + } + } + result.put(FIELD_RACES, races); + + return result; + } + +} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/FleetWithRacesOfSeriesExtensionSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/FleetWithRacesOfSeriesExtensionSerializer.java new file mode 100644 index 00000000000..d9bc01f6b7d --- /dev/null +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/FleetWithRacesOfSeriesExtensionSerializer.java @@ -0,0 +1,46 @@ +package com.sap.sailing.server.gateway.serialization.impl.regatta; + +import java.util.ArrayList; +import java.util.Collection; + +import org.json.simple.JSONArray; + +import com.sap.sailing.domain.base.Fleet; +import com.sap.sailing.domain.base.FleetWithRaces; +import com.sap.sailing.domain.base.RaceColumnInSeries; +import com.sap.sailing.domain.base.RaceDefinition; +import com.sap.sailing.domain.base.Series; +import com.sap.sailing.domain.base.impl.FleetWithRacesImpl; +import com.sap.sailing.server.gateway.serialization.ExtensionJsonSerializer; +import com.sap.sailing.server.gateway.serialization.JsonSerializer; + +public class FleetWithRacesOfSeriesExtensionSerializer extends ExtensionJsonSerializer { + public static final String FIELD_NAME = "fleets"; + + public FleetWithRacesOfSeriesExtensionSerializer(JsonSerializer extensionSerializer) { + super(extensionSerializer); + } + + @Override + public String getExtensionFieldName() { + return FIELD_NAME; + } + + @Override + public Object serializeExtension(Series object) { + JSONArray result = new JSONArray(); + + for (Fleet fleet : object.getFleets()) { + + Collection races = new ArrayList(); + for (RaceColumnInSeries raceColumn : object.getRaceColumns()) { + races.add(raceColumn.getRaceDefinition(fleet)); + } + + result.add(serialize(new FleetWithRacesImpl(fleet, races))); + } + + return result; + } + +} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/RegattaJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/RegattaJsonSerializer.java new file mode 100644 index 00000000000..93c0f8327b4 --- /dev/null +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/RegattaJsonSerializer.java @@ -0,0 +1,43 @@ +package com.sap.sailing.server.gateway.serialization.impl.regatta; + +import org.json.simple.JSONObject; + +import com.sap.sailing.domain.base.BoatClass; +import com.sap.sailing.domain.base.Regatta; +import com.sap.sailing.server.gateway.serialization.ExtendableJsonSerializer; +import com.sap.sailing.server.gateway.serialization.ExtensionJsonSerializer; +import com.sap.sailing.server.gateway.serialization.JsonSerializer; + +public class RegattaJsonSerializer extends ExtendableJsonSerializer { + public static final String FIELD_ID = "id"; + public static final String FIELD_NAME = "name"; + public static final String FIELD_BASE_NAME = "baseName"; + public static final String FIELD_BOAT_CLASS = "boatClass"; + + private final JsonSerializer boatClassSerializer; + + public RegattaJsonSerializer(JsonSerializer boatClassSerializer) { + this.boatClassSerializer = boatClassSerializer; + } + + public RegattaJsonSerializer( + JsonSerializer boatClassSerializer, + ExtensionJsonSerializer extensionSerializer) { + super(extensionSerializer); + this.boatClassSerializer = boatClassSerializer; + } + + @Override + protected JSONObject serializeFields(Regatta object) { + JSONObject result = new JSONObject(); + + result.put(FIELD_ID, object.getId().toString()); + result.put(FIELD_NAME, object.getName()); + result.put(FIELD_BASE_NAME, object.getBaseName()); + if (object.getBoatClass() != null) { + result.put(FIELD_BOAT_CLASS, boatClassSerializer.serialize(object.getBoatClass())); + } + return result; + } + +} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/SeriesJsonSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/SeriesJsonSerializer.java new file mode 100644 index 00000000000..2dd65cd7847 --- /dev/null +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/SeriesJsonSerializer.java @@ -0,0 +1,27 @@ +package com.sap.sailing.server.gateway.serialization.impl.regatta; + +import org.json.simple.JSONObject; + +import com.sap.sailing.domain.base.Series; +import com.sap.sailing.server.gateway.serialization.ExtendableJsonSerializer; +import com.sap.sailing.server.gateway.serialization.ExtensionJsonSerializer; + +public class SeriesJsonSerializer extends ExtendableJsonSerializer { + public static final String FIELD_NAME = "name"; + public static final String FIELD_IS_MEDAL = "isMedal"; + + public SeriesJsonSerializer(ExtensionJsonSerializer extensionSerializer) { + super(extensionSerializer); + } + + @Override + protected JSONObject serializeFields(Series object) { + JSONObject result = new JSONObject(); + + result.put(FIELD_NAME, object.getName()); + result.put(FIELD_IS_MEDAL, object.isMedal()); + + return result; + } + +} diff --git a/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/SeriesOfRegattaExtensionSerializer.java b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/SeriesOfRegattaExtensionSerializer.java new file mode 100644 index 00000000000..03305cf54ee --- /dev/null +++ b/java/com.sap.sailing.server.gateway.serialization/src/com/sap/sailing/server/gateway/serialization/impl/regatta/SeriesOfRegattaExtensionSerializer.java @@ -0,0 +1,33 @@ +package com.sap.sailing.server.gateway.serialization.impl.regatta; + +import org.json.simple.JSONArray; + +import com.sap.sailing.domain.base.Regatta; +import com.sap.sailing.domain.base.Series; +import com.sap.sailing.server.gateway.serialization.ExtensionJsonSerializer; +import com.sap.sailing.server.gateway.serialization.JsonSerializer; + +public class SeriesOfRegattaExtensionSerializer extends ExtensionJsonSerializer { + public static final String FIELD_NAME = "series"; + + public SeriesOfRegattaExtensionSerializer(JsonSerializer extensionSerializer) { + super(extensionSerializer); + } + + @Override + public String getExtensionFieldName() { + return FIELD_NAME; + } + + @Override + public Object serializeExtension(Regatta object) { + JSONArray result = new JSONArray(); + if (object.getSeries() != null) { + for (Series series : object.getSeries()) { + serialize(series); + } + } + return result; + } + +} diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/EventTrackJsonExportServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/EventTrackJsonExportServlet.java index db2cd0624b8..51bbb47e835 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/EventTrackJsonExportServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/EventTrackJsonExportServlet.java @@ -20,10 +20,10 @@ import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.server.gateway.impl.JsonExportServlet; import com.sap.sailing.server.gateway.serialization.JsonSerializer; import com.sap.sailing.server.gateway.serialization.impl.CompetitorIdJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.RaceLogCourseAreaChangedEventSerializer; -import com.sap.sailing.server.gateway.serialization.impl.RaceLogEventSerializer; -import com.sap.sailing.server.gateway.serialization.impl.RaceLogFlagEventSerializer; -import com.sap.sailing.server.gateway.serialization.impl.RaceLogStartTimeEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.RaceLogCourseAreaChangedEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.RaceLogEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.RaceLogFlagEventSerializer; +import com.sap.sailing.server.gateway.serialization.impl.racelog.RaceLogStartTimeEventSerializer; public class EventTrackJsonExportServlet extends JsonExportServlet { diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/RegattasJsonExportServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/RegattasJsonExportServlet.java index b91777cb580..3dbe1dadc9b 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/RegattasJsonExportServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/impl/rc/RegattasJsonExportServlet.java @@ -11,7 +11,6 @@ import javax.servlet.http.HttpServletResponse; import org.json.simple.JSONArray; import com.sap.sailing.domain.base.BoatClass; -import com.sap.sailing.domain.base.ControlPoint; import com.sap.sailing.domain.base.Event; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; @@ -20,15 +19,16 @@ import com.sap.sailing.domain.tracking.TrackedRace; import com.sap.sailing.server.RacingEventService; import com.sap.sailing.server.gateway.impl.JsonExportServlet; import com.sap.sailing.server.gateway.serialization.JsonSerializer; -import com.sap.sailing.server.gateway.serialization.SerializationFilter; +import com.sap.sailing.server.gateway.serialization.filter.Filter; import com.sap.sailing.server.gateway.serialization.impl.BoatClassJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.ControlPointJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.CourseJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.GateJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.MarkJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.RaceDefinitionJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.RegattaJsonSerializer; -import com.sap.sailing.server.gateway.serialization.impl.WaypointJsonSerializer; +import com.sap.sailing.server.gateway.serialization.impl.race.RaceDefinitionJsonSerializer; +import com.sap.sailing.server.gateway.serialization.impl.regatta.ColorJsonSerializer; +import com.sap.sailing.server.gateway.serialization.impl.regatta.FleetJsonSerializer; +import com.sap.sailing.server.gateway.serialization.impl.regatta.FleetWithRacesJsonSerializer; +import com.sap.sailing.server.gateway.serialization.impl.regatta.FleetWithRacesOfSeriesExtensionSerializer; +import com.sap.sailing.server.gateway.serialization.impl.regatta.RegattaJsonSerializer; +import com.sap.sailing.server.gateway.serialization.impl.regatta.SeriesJsonSerializer; +import com.sap.sailing.server.gateway.serialization.impl.regatta.SeriesOfRegattaExtensionSerializer; public class RegattasJsonExportServlet extends JsonExportServlet { @@ -67,12 +67,11 @@ public class RegattasJsonExportServlet extends JsonExportServlet { } } - SerializationFilter raceFilter = null; + Filter raceFilter = null; if (courseAreaFilter != null) { - System.out.println(courseAreaFilter); raceFilter = createFilter(courseAreaFilter); } else { - raceFilter = new SerializationFilter.NoFilter(); + raceFilter = new Filter.NoFilter(); } serializeRegattas(createSerializer(raceFilter), regattas, response); @@ -92,24 +91,24 @@ public class RegattasJsonExportServlet extends JsonExportServlet { } - private JsonSerializer createSerializer(SerializationFilter raceFilter) { + private JsonSerializer createSerializer(Filter raceFilter) { JsonSerializer boatClassSerializer = new BoatClassJsonSerializer(); - JsonSerializer markSerializer = new MarkJsonSerializer(); return new RegattaJsonSerializer( - boatClassSerializer, - new RaceDefinitionJsonSerializer( - boatClassSerializer, - new CourseJsonSerializer( - new WaypointJsonSerializer( - new ControlPointJsonSerializer( - markSerializer, - new GateJsonSerializer(markSerializer))))), - raceFilter); + boatClassSerializer, + new SeriesOfRegattaExtensionSerializer( + new SeriesJsonSerializer( + new FleetWithRacesOfSeriesExtensionSerializer( + new FleetWithRacesJsonSerializer( + new FleetJsonSerializer( + new ColorJsonSerializer()), + raceFilter, + new RaceDefinitionJsonSerializer( + boatClassSerializer)))))); } - private SerializationFilter createFilter(final String courseAreaId) { + private Filter createFilter(final String courseAreaId) { - return new SerializationFilter() { + return new Filter() { @Override public boolean isFiltered(RaceDefinition race) { RacingEventService service = getService(); diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/parsers/ManagedRacesDataParser.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/parsers/ManagedRacesDataParser.java index 9088b249868..03e8ca62f1a 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/parsers/ManagedRacesDataParser.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/data/parsers/ManagedRacesDataParser.java @@ -13,6 +13,7 @@ import com.sap.sailing.domain.base.Fleet; import com.sap.sailing.domain.base.RaceDefinition; import com.sap.sailing.domain.base.Regatta; import com.sap.sailing.domain.base.impl.FleetImpl; +import com.sap.sailing.domain.common.impl.Util; import com.sap.sailing.racecommittee.app.domain.ManagedRace; import com.sap.sailing.racecommittee.app.domain.impl.ManagedRaceImpl; import com.sap.sailing.racecommittee.app.domain.impl.SeriesDataImpl; @@ -37,7 +38,7 @@ public class ManagedRacesDataParser implements DataParser { diff --git a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/deserialization/RegattaJsonDeserializer.java b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/deserialization/RegattaJsonDeserializer.java index 4004e5844b4..3f23296c18d 100644 --- a/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/deserialization/RegattaJsonDeserializer.java +++ b/mobile/com.sap.sailing.racecommittee.app/src/com/sap/sailing/racecommittee/app/domain/deserialization/RegattaJsonDeserializer.java @@ -1,6 +1,5 @@ package com.sap.sailing.racecommittee.app.domain.deserialization; -import org.json.simple.JSONArray; import org.json.simple.JSONObject; import com.sap.sailing.domain.base.BoatClass; @@ -10,7 +9,7 @@ import com.sap.sailing.racecommittee.app.domain.impl.SimpleRegattaImpl; import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException; import com.sap.sailing.server.gateway.deserialization.JsonDeserializer; import com.sap.sailing.server.gateway.deserialization.impl.Helpers; -import com.sap.sailing.server.gateway.serialization.impl.RegattaJsonSerializer; +import com.sap.sailing.server.gateway.serialization.impl.regatta.RegattaJsonSerializer; public class RegattaJsonDeserializer implements JsonDeserializer { @@ -33,13 +32,13 @@ public class RegattaJsonDeserializer implements JsonDeserializer { Regatta regatta = new SimpleRegattaImpl(Helpers.tryUuidConversion(id), baseName, boatClass); - JSONArray races = Helpers.getNestedArraySafe( + /*JSONArray races = Helpers.getNestedArraySafe( object, RegattaJsonSerializer.FIELD_RACES); for (Object element : races) { JSONObject race = Helpers.toJSONObjectSafe(element); regatta.addRace(raceDefinitionDeserializer.deserialize(race)); - } + }*/ return regatta; }