# events serializing ids of competitors (field involvedBoats)

This commit is contained in:
Lukas Niemeier committed 2013-02-02 15:14:50 +01:00
1 parent e45040db9b
commit 061e695815
9 files changed
+73 -6

No files matched your search

@@ -1,19 +1,27 @@
package com.sap.sailing.server.gateway.serialization.impl;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.racecommittee.RaceCommitteeEvent;
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
/// TODO serialize involved boats
public abstract class BaseRaceCommitteeEventSerializer implements JsonSerializer<RaceCommitteeEvent> {
public static final String FIELD_CLASS = "@class";
public static final String FIELD_ID = "id";
public static final String FIELD_TIMESTAMP = "timestamp";
public static final String FIELD_PASS_ID = "passId";
public static final String FIELD_COMPETITORS = "competitors";
protected abstract String getClassFieldValue();
protected JsonSerializer<Competitor> competitorSerializer;
public BaseRaceCommitteeEventSerializer(JsonSerializer<Competitor> competitorSerializer) {
this.competitorSerializer = competitorSerializer;
}
@Override
public JSONObject serialize(RaceCommitteeEvent object) {
JSONObject result = new JSONObject();
@@ -21,6 +29,13 @@ public abstract class BaseRaceCommitteeEventSerializer implements JsonSerializer
result.put(FIELD_ID, object.getId().toString());
result.put(FIELD_TIMESTAMP, object.getTimePoint().asMillis());
result.put(FIELD_PASS_ID, object.getPassId());
JSONArray competitors = new JSONArray();
for (Competitor competitor : object.getInvolvedBoats()) {
competitors.add(competitorSerializer.serialize(competitor));
}
result.put(FIELD_COMPETITORS, competitors);
return result;
}
@@ -0,0 +1,18 @@
package com.sap.sailing.server.gateway.serialization.impl;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
public class CompetitorIdJsonSerializer implements JsonSerializer<Competitor> {
public static final String FIELD_ID = "id";
@Override
public JSONObject serialize(Competitor object) {
JSONObject result = new JSONObject();
result.put(FIELD_ID, object.getId());
return result;
}
}
@@ -2,13 +2,21 @@ 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.racecommittee.RaceCommitteeCourseAreaChangedEvent;
import com.sap.sailing.domain.racecommittee.RaceCommitteeEvent;
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
public class RaceCommitteeCourseAreaChangedEventSerializer extends BaseRaceCommitteeEventSerializer {
public static final String VALUE_CLASS = RaceCommitteeCourseAreaChangedEvent.class.getSimpleName();
public static final String FIELD_COURSE_AREA_ID = "courseAreaId";
public RaceCommitteeCourseAreaChangedEventSerializer(
JsonSerializer<Competitor> competitorSerializer) {
super(competitorSerializer);
}
@Override
protected String getClassFieldValue() {
return VALUE_CLASS;
@@ -2,15 +2,23 @@ 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.racecommittee.RaceCommitteeEvent;
import com.sap.sailing.domain.racecommittee.RaceCommitteeFlagEvent;
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
public class RaceCommitteeFlagEventSerializer extends BaseRaceCommitteeEventSerializer {
public static final String VALUE_CLASS = RaceCommitteeFlagEvent.class.getSimpleName();
public static final String FIELD_UPPER_FLAG = "upperFlag";
public static final String FIELD_LOWER_FLAG = "lowerFlag";
public static final String FIELD_DISPLAYED = "displayed";
public RaceCommitteeFlagEventSerializer(
JsonSerializer<Competitor> competitorSerializer) {
super(competitorSerializer);
}
@Override
protected String getClassFieldValue() {
return VALUE_CLASS;
@@ -2,13 +2,21 @@ 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.racecommittee.RaceCommitteeEvent;
import com.sap.sailing.domain.racecommittee.RaceCommitteeStartTimeEvent;
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
public class RaceCommitteeStartTimeEventSerializer extends BaseRaceCommitteeEventSerializer {
public static final String VALUE_CLASS = RaceCommitteeStartTimeEvent.class.getSimpleName();
public static final String FIELD_START_TIME = "startTime";
public RaceCommitteeStartTimeEventSerializer(
JsonSerializer<Competitor> competitorSerializer) {
super(competitorSerializer);
}
@Override
protected String getClassFieldValue() {
return VALUE_CLASS;