# some fixes for NPE

This commit is contained in:
Lukas Niemeier committed 2013-01-29 20:29:16 +01:00
1 parent 91006ec964
commit 458c583d9c
10 files changed
+111 -75

No files matched your search

@@ -26,10 +26,18 @@ public class MarkJsonSerializer extends BaseControlPointJsonSerializer implement
JSONObject result = super.serialize(mark);
result.put(FIELD_ID, mark.getId().toString());
result.put(FIELD_COLOR, mark.getColor());
result.put(FIELD_PATTERN, mark.getPattern());
result.put(FIELD_SHAPE, mark.getShape());
result.put(FIELD_TYPE, mark.getType().toString());
if (mark.getColor() != null) {
result.put(FIELD_COLOR, mark.getColor());
}
if (mark.getPattern() != null) {
result.put(FIELD_PATTERN, mark.getPattern());
}
if (mark.getShape() != null) {
result.put(FIELD_SHAPE, mark.getShape());
}
if (mark.getType() != null) {
result.put(FIELD_TYPE, mark.getType());
}
return result;
}
@@ -10,6 +10,7 @@ import com.sap.sailing.server.gateway.serialization.JsonSerializer;
public class RegattaJsonSerializer implements JsonSerializer<Regatta> {
public static final String FIELD_ID = "id";
public static final String FIELD_NAME = "name";
public static final String FIELD_BASE_NAME = "baseName";
public static final String FIELD_BOAT_CLASS = "boatClass";
public static final String FIELD_RACES = "races";
@@ -30,6 +31,7 @@ public class RegattaJsonSerializer implements JsonSerializer<Regatta> {
JSONObject result = new JSONObject();
result.put(FIELD_ID, object.getId().toString());
result.put(FIELD_NAME, object.getName());
result.put(FIELD_BASE_NAME, object.getBaseName());
result.put(FIELD_BOAT_CLASS, boatClassSerializer.serialize(object.getBoatClass()));
@@ -24,7 +24,9 @@ public class WaypointJsonSerializer implements JsonSerializer<Waypoint> {
result.put(FIELD_ID, object.getId().toString());
result.put(FIELD_NAME, object.getName());
result.put(FIELD_PASSING_SIDE, object.getPassingSide().toString());
if (object.getPassingSide() != null) {
result.put(FIELD_PASSING_SIDE, object.getPassingSide());
}
result.put(FIELD_CONTROL_POINT,
controlPointSerializer.serialize(object.getControlPoint()));
@@ -12,6 +12,7 @@ import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONArray;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.base.Waypoint;
import com.sap.sailing.domain.base.impl.BoatClassImpl;
import com.sap.sailing.domain.base.impl.CourseImpl;
@@ -31,6 +32,7 @@ import com.sap.sailing.domain.tracking.TrackedRegatta;
import com.sap.sailing.domain.tracking.impl.DynamicTrackedRaceImpl;
import com.sap.sailing.domain.tracking.impl.EmptyWindStore;
import com.sap.sailing.server.gateway.impl.JsonExportServlet;
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
import com.sap.sailing.server.gateway.serialization.impl.RaceCommitteeEventSerializer;
import com.sap.sailing.server.gateway.serialization.impl.RaceCommitteeFlagEventSerializer;
import com.sap.sailing.server.gateway.serialization.impl.RaceCommitteeStartTimeEventSerializer;
@@ -39,6 +41,20 @@ import com.sap.sailing.server.gateway.serialization.impl.RaceCommitteeStartTimeE
public class EventTrackJsonExportServlet extends JsonExportServlet {
private static final long serialVersionUID = 2197006949440887925L;
/**
* Created in init() - access is thread-safe.
*/
private JsonSerializer<RaceCommitteeEvent> rcEventSerializer;
@Override
public void init() throws ServletException {
super.init();
rcEventSerializer = new RaceCommitteeEventSerializer(
new RaceCommitteeFlagEventSerializer(),
new RaceCommitteeStartTimeEventSerializer());
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
@@ -57,14 +73,10 @@ public class EventTrackJsonExportServlet extends JsonExportServlet {
private JSONArray serizalizeTrack(TrackedRace trackedRace) {
JSONArray result = new JSONArray();
RaceCommitteeEventSerializer serializer = new RaceCommitteeEventSerializer(
new RaceCommitteeFlagEventSerializer(),
new RaceCommitteeStartTimeEventSerializer());
RaceCommitteeEventTrack track = trackedRace.getRaceCommitteeEventTrack();
track.lockForRead();
for (RaceCommitteeEvent event : track.getFixes()) {
result.add(serializer.serialize(event));
result.add(rcEventSerializer.serialize(event));
}
track.unlockAfterRead();
@@ -88,7 +100,7 @@ public class EventTrackJsonExportServlet extends JsonExportServlet {
// TODO: add event to trackedRace...
// trackedRace.recordRaceCommitteeEvent(null);
response.sendError(HttpServletResponse.SC_ACCEPTED);
response.sendError(HttpServletResponse.SC_NO_CONTENT);
}
@@ -102,7 +114,7 @@ public class EventTrackJsonExportServlet extends JsonExportServlet {
return trackedRace;
}
@Override
/*@Override
protected TrackedRace getTrackedRace(HttpServletRequest request) {
RaceCommitteeStore store = new FakeStore();
TrackedRace trackedRace = new DynamicTrackedRaceImpl(
@@ -128,7 +140,7 @@ public class EventTrackJsonExportServlet extends JsonExportServlet {
0, Flags.ALPHA, Flags.NOVEMBER, true));
return track;
}
}
}*/
private boolean validateParameter(HttpServletResponse response, String... parameters) throws IOException {
for (String parameter : parameters) {
@@ -1,8 +1,6 @@
package com.sap.sailing.server.gateway.impl.rc;
import java.io.IOException;
import java.util.Collections;
import java.util.UUID;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@@ -10,17 +8,9 @@ import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONArray;
import com.sap.sailing.domain.base.Competitor;
import com.sap.sailing.domain.base.CourseArea;
import com.sap.sailing.domain.base.Event;
import com.sap.sailing.domain.base.RaceDefinition;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.base.Venue;
import com.sap.sailing.domain.base.Waypoint;
import com.sap.sailing.domain.base.impl.CourseAreaImpl;
import com.sap.sailing.domain.base.impl.CourseImpl;
import com.sap.sailing.domain.base.impl.RaceDefinitionImpl;
import com.sap.sailing.server.gateway.impl.JsonExportServlet;
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
import com.sap.sailing.server.gateway.serialization.impl.CourseAreaJsonSerializer;
import com.sap.sailing.server.gateway.serialization.impl.EventJsonSerializer;
import com.sap.sailing.server.gateway.serialization.impl.VenueJsonSerializer;
@@ -28,58 +18,30 @@ import com.sap.sailing.server.gateway.serialization.impl.VenueJsonSerializer;
public class EventsJsonExportServlet extends JsonExportServlet {
private static final long serialVersionUID = 4515246650108245796L;
/**
* Created in init() - access is thread-safe.
*/
private JsonSerializer<Event> eventSerializer;
@Override
public void init() throws ServletException {
super.init();
eventSerializer = new EventJsonSerializer(
new VenueJsonSerializer(
new CourseAreaJsonSerializer()));
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
EventJsonSerializer serializer =
new EventJsonSerializer(
new VenueJsonSerializer(
new CourseAreaJsonSerializer()));
JSONArray result = new JSONArray();
for (Event event : getService().getAllEvents())
{
result.add(serializer.serialize(event));
result.add(eventSerializer.serialize(event));
}
result.writeJSONString(response.getWriter());
}
@SuppressWarnings("unused")
private Iterable<Event> exampleEvents()
{
Event kielerWocheEvent = getService().addEvent(
"Kieler Woche 2012 - Where Sailing meets people",
"Schilksee",
"http://www.youtube.com",
true, Collections.<String>emptyList());
Venue schilksee = kielerWocheEvent.getVenue();
CourseArea alpha = new CourseAreaImpl("Alpha");
schilksee.addCourseArea(alpha);
//Fleet allBoats = new FleetImpl("Blue");
//Series series = null;//new SeriesData("Qualification", false, Arrays.asList(allBoats));
Regatta regatta = getService().getOrCreateRegatta(
"470er Men",
"470er",
UUID.fromString("b2775b10-5b3f-11e2-bcfd-0800200c9a66"));
kielerWocheEvent.addRegatta(regatta);
RaceDefinition myRace = new RaceDefinitionImpl(
"Race One",
new CourseImpl("Downwind", Collections.<Waypoint>emptyList()),
regatta.getBoatClass(),
Collections.<Competitor>emptyList(),
UUID.fromString("c2775b10-5b3f-11e2-bcfd-0800200c9a66"));
regatta.addRace(myRace);
alpha.addRace(myRace);
return Collections.<Event>singleton(kielerWocheEvent);
}
}
@@ -10,35 +10,63 @@ import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONArray;
import com.sap.sailing.domain.base.ControlPoint;
import com.sap.sailing.domain.base.Event;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.server.gateway.impl.JsonExportServlet;
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
import com.sap.sailing.server.gateway.serialization.impl.BoatClassJsonSerializer;
import com.sap.sailing.server.gateway.serialization.impl.ControlPointJsonSerializer;
import com.sap.sailing.server.gateway.serialization.impl.CourseJsonSerializer;
import com.sap.sailing.server.gateway.serialization.impl.GateJsonSerializer;
import com.sap.sailing.server.gateway.serialization.impl.MarkJsonSerializer;
import com.sap.sailing.server.gateway.serialization.impl.RaceDefinitionJsonSerializer;
import com.sap.sailing.server.gateway.serialization.impl.RegattaJsonSerializer;
import com.sap.sailing.server.gateway.serialization.impl.WaypointJsonSerializer;
public class RegattasRaceJsonExportServlet extends JsonExportServlet {
private static final long serialVersionUID = -5661776042560467182L;
/**
* Created in init() - access is thread-safe.
*/
private JsonSerializer<Regatta> regattaSerializer;
@Override
public void init() throws ServletException {
super.init();
JsonSerializer<ControlPoint> markSerializer = new MarkJsonSerializer();
regattaSerializer = new RegattaJsonSerializer(
new BoatClassJsonSerializer(),
new RaceDefinitionJsonSerializer(new CourseJsonSerializer(
new WaypointJsonSerializer(
new ControlPointJsonSerializer(
markSerializer,
new GateJsonSerializer(markSerializer))))));
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Iterable<Regatta> regattas;
Event event = getEvent(request);
if (event == null)
{
response.sendError(HttpServletResponse.SC_NOT_FOUND);
return;
//response.sendError(HttpServletResponse.SC_NOT_FOUND);
//return;
regattas = getService().getAllRegattas();
} else {
regattas = event.getRegattas();
}
RegattaJsonSerializer serializer = new RegattaJsonSerializer(
new BoatClassJsonSerializer(),
new RaceDefinitionJsonSerializer(null));
JSONArray result = new JSONArray();
for (Regatta regatta : event.getRegattas())
for (Regatta regatta : regattas)
{
result.add(serializer.serialize(regatta));
result.add(regattaSerializer.serialize(regatta));
}
result.writeJSONString(response.getWriter());
}
@@ -30,4 +30,15 @@
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
<filteredResources>
<filter>
<id>1359465261368</id>
<name>src</name>
<type>30</type>
<matcher>
<id>org.eclipse.ui.ide.multiFilter</id>
<arguments>1.0-name-matches-false-false-.svn</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>
@@ -30,4 +30,15 @@
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
<filteredResources>
<filter>
<id>1359465318740</id>
<name>src</name>
<type>30</type>
<matcher>
<id>org.eclipse.ui.ide.multiFilter</id>
<arguments>1.0-name-matches-false-false-.svn</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>
Whitespace-only changes.
Whitespace-only changes.