mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-30 15:57:11 +00:00
added the competitor list field to RaceCell and its implementation.
adapted the serializer and deserializer appropriately
This commit is contained in:
1 parent
72e5f53f39
commit
31b6b49a97
7 files changed
+132
-79
No files matched your search
+2
-1
@@ -40,6 +40,7 @@ import com.sap.sailing.racecommittee.app.domain.ManagedRaceIdentifier;
|
||||
import com.sap.sailing.racecommittee.app.domain.impl.DomainFactoryImpl;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.coursedata.impl.MarkDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.CompetitorDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.RaceLogEventDeserializer;
|
||||
|
||||
/**
|
||||
@@ -133,7 +134,7 @@ public class OnlineDataManager extends DataManager {
|
||||
DataParser<Collection<ManagedRace>> parser = new ManagedRacesDataParser(new RaceGroupDeserializer(
|
||||
boatClassDeserializer, new SeriesWithRowsDeserializer(new RaceRowDeserializer(new FleetDeserializer(
|
||||
new ColorDeserializer()), new RaceCellDeserializer(
|
||||
new RaceLogDeserializer(RaceLogEventDeserializer.create(domainFactory)))))));
|
||||
new RaceLogDeserializer(RaceLogEventDeserializer.create(domainFactory)), new CompetitorDeserializer(domainFactory))))));
|
||||
DataHandler<Collection<ManagedRace>> handler = new ManagedRacesDataHandler(this, client);
|
||||
|
||||
try {
|
||||
|
||||
+51
-31
@@ -1,31 +1,51 @@
|
||||
package com.sap.sailing.racecommittee.app.deserialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.racegroup.RaceCell;
|
||||
import com.sap.sailing.domain.base.racegroup.impl.RaceCellImpl;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
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.racegroup.impl.RaceCellJsonSerializer;
|
||||
|
||||
public class RaceCellDeserializer implements JsonDeserializer<RaceCell> {
|
||||
|
||||
private JsonDeserializer<RaceLog> logDeserializer;
|
||||
|
||||
public RaceCellDeserializer(JsonDeserializer<RaceLog> logDeserializer) {
|
||||
this.logDeserializer = logDeserializer;
|
||||
}
|
||||
|
||||
public RaceCell deserialize(JSONObject object)
|
||||
throws JsonDeserializationException {
|
||||
String name = object.get(RaceCellJsonSerializer.FIELD_NAME).toString();
|
||||
|
||||
JSONObject logJson = Helpers.getNestedObjectSafe(object, RaceCellJsonSerializer.FIELD_RACE_LOG);
|
||||
RaceLog log = logDeserializer.deserialize(logJson);
|
||||
|
||||
return new RaceCellImpl(name, log);
|
||||
}
|
||||
|
||||
}
|
||||
package com.sap.sailing.racecommittee.app.deserialization.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.Competitor;
|
||||
import com.sap.sailing.domain.base.racegroup.RaceCell;
|
||||
import com.sap.sailing.domain.base.racegroup.impl.RaceCellImpl;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
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.racegroup.impl.RaceCellJsonSerializer;
|
||||
|
||||
public class RaceCellDeserializer implements JsonDeserializer<RaceCell> {
|
||||
|
||||
private JsonDeserializer<RaceLog> logDeserializer;
|
||||
private JsonDeserializer<Competitor> competitorDeserializer;
|
||||
|
||||
public RaceCellDeserializer(JsonDeserializer<RaceLog> logDeserializer, JsonDeserializer<Competitor> competitorDeserializer) {
|
||||
this.logDeserializer = logDeserializer;
|
||||
this.competitorDeserializer = competitorDeserializer;
|
||||
}
|
||||
|
||||
public RaceCell deserialize(JSONObject object)
|
||||
throws JsonDeserializationException {
|
||||
String name = object.get(RaceCellJsonSerializer.FIELD_NAME).toString();
|
||||
|
||||
JSONObject logJson = Helpers.getNestedObjectSafe(object, RaceCellJsonSerializer.FIELD_RACE_LOG);
|
||||
RaceLog log = logDeserializer.deserialize(logJson);
|
||||
|
||||
List<Competitor> competitors = deserializeCompetitorList(object);
|
||||
|
||||
return new RaceCellImpl(name, log, competitors);
|
||||
}
|
||||
|
||||
private List<Competitor> deserializeCompetitorList(JSONObject object) throws JsonDeserializationException {
|
||||
List<Competitor> competitors = new ArrayList<Competitor>();
|
||||
JSONArray competitorsJson = Helpers.getNestedArraySafe(object, RaceCellJsonSerializer.FIELD_COMPETITORS);
|
||||
for (Object competitorObject : competitorsJson) {
|
||||
JSONObject jsonObject = (JSONObject) competitorObject;
|
||||
Competitor competitor = competitorDeserializer.deserialize(jsonObject);
|
||||
competitors.add(competitor);
|
||||
}
|
||||
return competitors;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user