# added CourseAreaChangedEvent and serializers

This commit is contained in:
Lukas Niemeier committed 2013-02-02 15:01:03 +01:00
1 parent 7824b6fa91
commit e45040db9b
8 files changed
+126 -2

No files matched your search

@@ -0,0 +1,35 @@
package com.sap.sailing.server.gateway.deserialization.impl;
import java.util.Collections;
import java.util.UUID;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.common.TimePoint;
import com.sap.sailing.domain.racecommittee.RaceCommitteeEvent;
import com.sap.sailing.domain.racecommittee.impl.RaceCommitteeCourseAreaChangeEventImpl;
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
import com.sap.sailing.server.gateway.serialization.impl.RaceCommitteeCourseAreaChangedEventSerializer;
public class RaceCommitteeCourseAreaChangedEventDeserializer extends
BaseRaceCommitteeEventDeserializer {
@Override
protected RaceCommitteeEvent deserialize(JSONObject object, UUID id,
TimePoint timePoint, int passId) throws JsonDeserializationException {
String courseAreaId = object.get(RaceCommitteeCourseAreaChangedEventSerializer.FIELD_COURSE_AREA_ID).toString();
UUID courseAreaUuid = null;
try {
courseAreaUuid = UUID.fromString(courseAreaId);
} catch (IllegalArgumentException iae) {
throw new JsonDeserializationException(
String.format("Field %s with %s couldn't be parsed as UUID.", RaceCommitteeCourseAreaChangedEventSerializer.FIELD_COURSE_AREA_ID, id),
iae);
}
return new RaceCommitteeCourseAreaChangeEventImpl(timePoint, id, Collections.<Competitor>emptyList(), passId, courseAreaUuid);
}
}
@@ -0,0 +1,27 @@
package com.sap.sailing.server.gateway.serialization.impl;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.racecommittee.RaceCommitteeCourseAreaChangedEvent;
import com.sap.sailing.domain.racecommittee.RaceCommitteeEvent;
public class RaceCommitteeCourseAreaChangedEventSerializer extends BaseRaceCommitteeEventSerializer {
public static final String VALUE_CLASS = RaceCommitteeCourseAreaChangedEvent.class.getSimpleName();
public static final String FIELD_COURSE_AREA_ID = "courseAreaId";
@Override
protected String getClassFieldValue() {
return VALUE_CLASS;
}
@Override
public JSONObject serialize(RaceCommitteeEvent object) {
RaceCommitteeCourseAreaChangedEvent caChangedEvent = (RaceCommitteeCourseAreaChangedEvent) object;
JSONObject result = super.serialize(caChangedEvent);
result.put(FIELD_COURSE_AREA_ID, caChangedEvent.getCourseAreaId());
return result;
}
}
@@ -2,6 +2,7 @@ package com.sap.sailing.server.gateway.serialization.impl;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.racecommittee.RaceCommitteeCourseAreaChangedEvent;
import com.sap.sailing.domain.racecommittee.RaceCommitteeEvent;
import com.sap.sailing.domain.racecommittee.RaceCommitteeFlagEvent;
import com.sap.sailing.domain.racecommittee.RaceCommitteeStartTimeEvent;
@@ -11,12 +12,15 @@ public class RaceCommitteeEventSerializer implements JsonSerializer<RaceCommitte
private final JsonSerializer<RaceCommitteeEvent> flagEventSerializer;
private final JsonSerializer<RaceCommitteeEvent> startTimeSerializer;
private final JsonSerializer<RaceCommitteeEvent> courseAreaChangedSerializer;
public RaceCommitteeEventSerializer(
JsonSerializer<RaceCommitteeEvent> flagEventSerializer,
JsonSerializer<RaceCommitteeEvent> startTimeSerializer) {
JsonSerializer<RaceCommitteeEvent> startTimeSerializer,
JsonSerializer<RaceCommitteeEvent> courseAreaChangedSerializer) {
this.flagEventSerializer = flagEventSerializer;
this.startTimeSerializer = startTimeSerializer;
this.courseAreaChangedSerializer = courseAreaChangedSerializer;
}
protected JsonSerializer<RaceCommitteeEvent> getSerializer(
@@ -25,6 +29,8 @@ public class RaceCommitteeEventSerializer implements JsonSerializer<RaceCommitte
return flagEventSerializer;
} else if (event instanceof RaceCommitteeStartTimeEvent) {
return startTimeSerializer;
} else if (event instanceof RaceCommitteeCourseAreaChangedEvent) {
return courseAreaChangedSerializer;
}
throw new UnsupportedOperationException(String.format(