mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-10 14:20:55 +00:00
Serialization code for basic events
Integration in servlets
This commit is contained in:
1 parent
cfff8bfee4
commit
bfb062128c
7 files changed
+403
No files matched your search
+18
@@ -0,0 +1,18 @@
|
||||
package com.sap.sailing.server.gateway.serialization;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.racecommittee.RaceCommitteeEvent;
|
||||
|
||||
public class RaceCommitteeEventSerializer implements JsonSerializer<RaceCommitteeEvent> {
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(RaceCommitteeEvent object) {
|
||||
JSONObject result = new JSONObject();
|
||||
result.put("id", object.getId().toString());
|
||||
result.put("timestamp", object.getTimePoint().asMillis());
|
||||
result.put("passId", object.getPassId());
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package com.sap.sailing.server.gateway.serialization;
|
||||
|
||||
import com.sap.sailing.domain.racecommittee.RaceCommitteeEvent;
|
||||
import com.sap.sailing.domain.racecommittee.RaceCommitteeFlagEvent;
|
||||
import com.sap.sailing.domain.racecommittee.RaceCommitteeStartTimeEvent;
|
||||
|
||||
public class RaceCommitteeEventSerializerFactory {
|
||||
|
||||
private JsonSerializer<RaceCommitteeEvent> baseEventSerializer;
|
||||
|
||||
public RaceCommitteeEventSerializerFactory() {
|
||||
this.baseEventSerializer = new RaceCommitteeEventSerializer();
|
||||
}
|
||||
|
||||
public JsonSerializer<RaceCommitteeEvent> getSerializer(RaceCommitteeEvent event) {
|
||||
if (event instanceof RaceCommitteeFlagEvent) {
|
||||
return new RaceCommitteeFlagEventSerializer(baseEventSerializer);
|
||||
}
|
||||
if (event instanceof RaceCommitteeStartTimeEvent) {
|
||||
return new RaceCommitteeStartTimeEventSerializer(baseEventSerializer);
|
||||
}
|
||||
throw new UnsupportedOperationException(
|
||||
String.format(
|
||||
"There is no serializer defined for event type %s",
|
||||
event.getClass().getName()));
|
||||
}
|
||||
|
||||
}
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
package com.sap.sailing.server.gateway.serialization;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.racecommittee.RaceCommitteeEvent;
|
||||
import com.sap.sailing.domain.racecommittee.RaceCommitteeFlagEvent;
|
||||
|
||||
/**
|
||||
* Implements JsonSerializer<RaceCommitteeEvent> to enable a consistent interface when used
|
||||
* with {@link RaceCommitteeEventSerializerFactory}, see type-safeness of generics.
|
||||
*/
|
||||
public class RaceCommitteeFlagEventSerializer implements JsonSerializer<RaceCommitteeEvent> {
|
||||
|
||||
private JsonSerializer<RaceCommitteeEvent> baseSerializer;
|
||||
|
||||
public RaceCommitteeFlagEventSerializer(JsonSerializer<RaceCommitteeEvent> baseSerializer) {
|
||||
this.baseSerializer = baseSerializer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(RaceCommitteeEvent object) {
|
||||
// We have to cast here, see class comment
|
||||
RaceCommitteeFlagEvent flagEvent = (RaceCommitteeFlagEvent) object;
|
||||
|
||||
JSONObject result = baseSerializer.serialize(flagEvent);
|
||||
result.put("upperFlag", flagEvent.getUpperFlag());
|
||||
result.put("lowerFlag", flagEvent.getLowerFlag());
|
||||
result.put("displayed", flagEvent.isDisplayed());
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package com.sap.sailing.server.gateway.serialization;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
import com.sap.sailing.domain.racecommittee.RaceCommitteeEvent;
|
||||
import com.sap.sailing.domain.racecommittee.RaceCommitteeStartTimeEvent;
|
||||
|
||||
/**
|
||||
* Implements JsonSerializer<RaceCommitteeEvent> to enable a consistent interface when used
|
||||
* with {@link RaceCommitteeEventSerializerFactory}, see type-safeness of generics.
|
||||
*/
|
||||
public class RaceCommitteeStartTimeEventSerializer implements JsonSerializer<RaceCommitteeEvent> {
|
||||
|
||||
private JsonSerializer<RaceCommitteeEvent> baseSerializer;
|
||||
|
||||
public RaceCommitteeStartTimeEventSerializer(JsonSerializer<RaceCommitteeEvent> baseSerializer) {
|
||||
this.baseSerializer = baseSerializer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(RaceCommitteeEvent object) {
|
||||
// We have to cast here, see class comment
|
||||
RaceCommitteeStartTimeEvent startTimeEvent = (RaceCommitteeStartTimeEvent) object;
|
||||
|
||||
JSONObject result = baseSerializer.serialize(startTimeEvent);
|
||||
result.put("startTime", startTimeEvent.getStartTime().asMillis());
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user