mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-30 15:57:11 +00:00
# app deserializes racelog events on startup
This commit is contained in:
1 parent
a5d0787f24
commit
f5493d2a98
5 files changed
+55
-34
No files matched your search
+3
-1
@@ -35,6 +35,7 @@ import com.sap.sailing.racecommittee.app.deserialization.impl.VenueJsonDeseriali
|
||||
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
|
||||
import com.sap.sailing.racecommittee.app.domain.impl.DomainFactoryImpl;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.RaceLogEventDeserializer;
|
||||
|
||||
/**
|
||||
* Enables accessing of data.
|
||||
@@ -126,7 +127,8 @@ public class OnlineDataManager extends DataManager {
|
||||
JsonDeserializer<BoatClass> boatClassDeserializer = new BoatClassJsonDeserializer(domainFactory);
|
||||
DataParser<Collection<ManagedRace>> parser = new ManagedRacesDataParser(new RaceGroupDeserializer(
|
||||
boatClassDeserializer, new SeriesWithRowsDeserializer(new RaceRowDeserializer(new FleetDeserializer(
|
||||
new ColorDeserializer()), new RaceCellDeserializer(new RaceLogDeserializer())))));
|
||||
new ColorDeserializer()), new RaceCellDeserializer(
|
||||
new RaceLogDeserializer(RaceLogEventDeserializer.create()))))));
|
||||
DataHandler<Collection<ManagedRace>> handler = new ManagedRacesDataHandler(this, client);
|
||||
|
||||
try {
|
||||
|
||||
+22
-4
@@ -1,17 +1,35 @@
|
||||
package com.sap.sailing.racecommittee.app.deserialization.impl;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.racecommittee.app.domain.racelog.impl.PassAwareRaceLogImpl;
|
||||
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.racelog.RaceLogSerializer;
|
||||
|
||||
public class RaceLogDeserializer implements JsonDeserializer<RaceLog> {
|
||||
|
||||
public RaceLog deserialize(JSONObject object)
|
||||
throws JsonDeserializationException {
|
||||
return new PassAwareRaceLogImpl();
|
||||
}
|
||||
private final JsonDeserializer<RaceLogEvent> elementDeserializer;
|
||||
|
||||
public RaceLogDeserializer(JsonDeserializer<RaceLogEvent> raceLogEventDeserializer) {
|
||||
this.elementDeserializer = raceLogEventDeserializer;
|
||||
}
|
||||
|
||||
public RaceLog deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
RaceLog result = new PassAwareRaceLogImpl();
|
||||
|
||||
JSONArray events = Helpers.getNestedArraySafe(object, RaceLogSerializer.FIELD_EVENTS);
|
||||
for (Object eventObject : events) {
|
||||
JSONObject eventJson = Helpers.toJSONObjectSafe(eventObject);
|
||||
RaceLogEvent event = elementDeserializer.deserialize(eventJson);
|
||||
result.add(event);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+21
-22
@@ -17,28 +17,27 @@ import com.sap.sailing.server.gateway.serialization.impl.racegroup.RaceRowJsonSe
|
||||
|
||||
public class RaceRowDeserializer implements JsonDeserializer<RaceRow> {
|
||||
|
||||
private JsonDeserializer<Fleet> fleetDeserializer;
|
||||
private JsonDeserializer<RaceCell> raceCellDeserializer;
|
||||
|
||||
public RaceRowDeserializer(JsonDeserializer<Fleet> fleetDeserializer,
|
||||
JsonDeserializer<RaceCell> raceCellDeserializer) {
|
||||
this.fleetDeserializer = fleetDeserializer;
|
||||
this.raceCellDeserializer = raceCellDeserializer;
|
||||
}
|
||||
private JsonDeserializer<Fleet> fleetDeserializer;
|
||||
private JsonDeserializer<RaceCell> raceCellDeserializer;
|
||||
|
||||
public RaceRow deserialize(JSONObject object)
|
||||
throws JsonDeserializationException {
|
||||
JSONObject fleetObject = Helpers.toJSONObjectSafe(object.get(RaceRowJsonSerializer.FIELD_FLEET));
|
||||
JSONArray cellsObject = Helpers.getNestedArraySafe(object, RaceRowJsonSerializer.FIELD_RACE_CELLS);
|
||||
|
||||
Collection<RaceCell> races = new ArrayList<RaceCell>();
|
||||
Fleet fleet = fleetDeserializer.deserialize(fleetObject);
|
||||
for (Object cellObject : cellsObject) {
|
||||
JSONObject cellJson = Helpers.toJSONObjectSafe(cellObject);
|
||||
races.add(raceCellDeserializer.deserialize(cellJson));
|
||||
}
|
||||
|
||||
return new RaceRowImpl(fleet, races);
|
||||
}
|
||||
public RaceRowDeserializer(JsonDeserializer<Fleet> fleetDeserializer,
|
||||
JsonDeserializer<RaceCell> raceCellDeserializer) {
|
||||
this.fleetDeserializer = fleetDeserializer;
|
||||
this.raceCellDeserializer = raceCellDeserializer;
|
||||
}
|
||||
|
||||
public RaceRow deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
JSONObject fleetObject = Helpers.toJSONObjectSafe(object.get(RaceRowJsonSerializer.FIELD_FLEET));
|
||||
JSONArray cellsObject = Helpers.getNestedArraySafe(object, RaceRowJsonSerializer.FIELD_RACE_CELLS);
|
||||
|
||||
Collection<RaceCell> races = new ArrayList<RaceCell>();
|
||||
Fleet fleet = fleetDeserializer.deserialize(fleetObject);
|
||||
for (Object cellObject : cellsObject) {
|
||||
JSONObject cellJson = Helpers.toJSONObjectSafe(cellObject);
|
||||
races.add(raceCellDeserializer.deserialize(cellJson));
|
||||
}
|
||||
|
||||
return new RaceRowImpl(fleet, races);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user