# code cleanup

This commit is contained in:
Lukas Niemeier committed 2013-02-19 01:01:45 +01:00
1 parent e29e4e7806
commit 5f0eff895c
29 files changed
+233 -232

No files matched your search

@@ -16,24 +16,21 @@ import com.sap.sailing.server.gateway.serialization.impl.EventDataJsonSerializer
import com.sap.sailing.server.gateway.serialization.impl.VenueJsonSerializer;
public class EventDataJsonExportServlet extends AbstractJsonHttpServlet {
private static final long serialVersionUID = 4515246650108245796L;
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
JsonSerializer<EventData> eventSerializer = createSerializer();
JSONArray result = new JSONArray();
for (EventData event : getService().getAllEvents()) {
result.add(eventSerializer.serialize(event));
}
result.writeJSONString(response.getWriter());
}
private static final long serialVersionUID = 4515246650108245796L;
private static JsonSerializer<EventData> createSerializer() {
return new EventDataJsonSerializer(
new VenueJsonSerializer(
new CourseAreaJsonSerializer()));
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
JsonSerializer<EventData> eventSerializer = createSerializer();
JSONArray result = new JSONArray();
for (EventData event : getService().getAllEvents()) {
result.add(eventSerializer.serialize(event));
}
result.writeJSONString(response.getWriter());
}
private static JsonSerializer<EventData> createSerializer() {
return new EventDataJsonSerializer(new VenueJsonSerializer(new CourseAreaJsonSerializer()));
}
}
@@ -10,96 +10,99 @@ import java.util.Map;
import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.base.CourseArea;
import com.sap.sailing.domain.base.Fleet;
import com.sap.sailing.domain.base.RaceCell;
import com.sap.sailing.domain.base.RaceColumn;
import com.sap.sailing.domain.base.RaceColumnInSeries;
import com.sap.sailing.domain.base.RaceGroup;
import com.sap.sailing.domain.base.RaceRow;
import com.sap.sailing.domain.base.Series;
import com.sap.sailing.domain.base.SeriesWithRows;
import com.sap.sailing.domain.base.impl.FleetImpl;
import com.sap.sailing.domain.base.impl.RaceCellImpl;
import com.sap.sailing.domain.base.impl.RaceGroupImpl;
import com.sap.sailing.domain.base.impl.RaceRowImpl;
import com.sap.sailing.domain.base.impl.SeriesImpl;
import com.sap.sailing.domain.base.impl.SeriesWithRowsImpl;
import com.sap.sailing.domain.base.racegroup.RaceCell;
import com.sap.sailing.domain.base.racegroup.RaceGroup;
import com.sap.sailing.domain.base.racegroup.RaceRow;
import com.sap.sailing.domain.base.racegroup.SeriesWithRows;
import com.sap.sailing.domain.base.racegroup.impl.RaceCellImpl;
import com.sap.sailing.domain.base.racegroup.impl.RaceGroupImpl;
import com.sap.sailing.domain.base.racegroup.impl.RaceRowImpl;
import com.sap.sailing.domain.base.racegroup.impl.SeriesWithRowsImpl;
import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
import com.sap.sailing.domain.racelog.impl.EmptyRaceLogStore;
public class RaceGroupFactory {
public RaceGroup convert(Leaderboard leaderboard) {
String name = leaderboard.getName();
CourseArea courseArea = leaderboard.getDefaultCourseArea();
BoatClass boatClass = null;
if (leaderboard instanceof RegattaLeaderboard) {
boatClass = ((RegattaLeaderboard) leaderboard).getRegatta().getBoatClass();
}
Iterable<SeriesWithRows> series = getSeries(leaderboard);
return new RaceGroupImpl(name, boatClass, courseArea, series);
}
public Iterable<SeriesWithRows> getSeries(Leaderboard leaderboard) {
Map<Series, List<RaceColumn>> seriesToRaceColumns = getSeriesToRaceColumns(leaderboard);
Collection<SeriesWithRows> seriesWithRows = new ArrayList<>();
for (Series series : seriesToRaceColumns.keySet()) {
Collection<RaceRow> rows = new ArrayList<>();
for (Fleet fleet : series.getFleets()) {
Collection<RaceCell> cells = new ArrayList<>();
for (RaceColumn raceColumn : seriesToRaceColumns.get(series)) {
cells.add(new RaceCellImpl(raceColumn.getName(), raceColumn.getRaceLog(fleet)));
}
rows.add(new RaceRowImpl(fleet, cells));
}
seriesWithRows.add(new SeriesWithRowsImpl(series.getName(), rows, series.isMedal()));
}
return seriesWithRows;
}
public RaceGroup convert(Leaderboard leaderboard) {
String name = leaderboard.getName();
private Map<Series, List<RaceColumn>> getSeriesToRaceColumns(
Leaderboard leaderboard) {
Map<Series, List<RaceColumn>> seriesToRaceColumns = new HashMap<>();
Series defaultSeries = null;
for (RaceColumn raceColumn : leaderboard.getRaceColumns()) {
if (raceColumn instanceof RaceColumnInSeries) {
Series raceColumnSeries = ((RaceColumnInSeries) raceColumn).getSeries();
insertSeriesIfNew(seriesToRaceColumns, raceColumnSeries).add(raceColumn);
} else {
if (defaultSeries == null) {
defaultSeries = createDefaultSeries();
insertSeriesIfNew(seriesToRaceColumns, defaultSeries);
}
seriesToRaceColumns.get(defaultSeries).add(raceColumn);
}
}
return seriesToRaceColumns;
}
CourseArea courseArea = leaderboard.getDefaultCourseArea();
private Series createDefaultSeries() {
Series defaultSeries;
defaultSeries = new SeriesImpl(
EmptyRaceLogStore.INSTANCE,
"Default Series",
false,
Collections.<Fleet>singleton(new FleetImpl("Default Fleet")),
Collections.<String>emptyList(),
null);
return defaultSeries;
}
BoatClass boatClass = null;
if (leaderboard instanceof RegattaLeaderboard) {
boatClass = ((RegattaLeaderboard) leaderboard).getRegatta().getBoatClass();
}
private List<RaceColumn> insertSeriesIfNew(Map<Series, List<RaceColumn>> target, Series newSeries) {
if (!target.containsKey(newSeries)) {
target.put(newSeries, new ArrayList<RaceColumn>());
}
return target.get(newSeries);
}
Iterable<SeriesWithRows> series = getSeries(leaderboard);
return new RaceGroupImpl(name, boatClass, courseArea, series);
}
public Iterable<SeriesWithRows> getSeries(Leaderboard leaderboard) {
Map<Series, List<RaceColumn>> seriesToRaceColumns = getSeriesToRaceColumns(leaderboard);
Collection<SeriesWithRows> seriesWithRows = new ArrayList<>();
for (Series series : seriesToRaceColumns.keySet()) {
seriesWithRows.add(new SeriesWithRowsImpl(series.getName(), series.isMedal(), getRows(series,
seriesToRaceColumns.get(series))));
}
return seriesWithRows;
}
private Collection<RaceRow> getRows(Series series, List<RaceColumn> raceColumns) {
Collection<RaceRow> rows = new ArrayList<>();
for (Fleet fleet : series.getFleets()) {
rows.add(new RaceRowImpl(fleet, getCells(fleet, raceColumns)));
}
return rows;
}
private Collection<RaceCell> getCells(Fleet fleet, List<RaceColumn> raceColumns) {
Collection<RaceCell> cells = new ArrayList<>();
for (RaceColumn raceColumn : raceColumns) {
cells.add(new RaceCellImpl(raceColumn.getName(), raceColumn.getRaceLog(fleet)));
}
return cells;
}
private Map<Series, List<RaceColumn>> getSeriesToRaceColumns(Leaderboard leaderboard) {
Map<Series, List<RaceColumn>> seriesToRaceColumns = new HashMap<>();
Series defaultSeries = null;
for (RaceColumn raceColumn : leaderboard.getRaceColumns()) {
if (raceColumn instanceof RaceColumnInSeries) {
Series raceColumnSeries = ((RaceColumnInSeries) raceColumn).getSeries();
insertSeriesIfNew(seriesToRaceColumns, raceColumnSeries).add(raceColumn);
} else {
if (defaultSeries == null) {
defaultSeries = createDefaultSeries();
insertSeriesIfNew(seriesToRaceColumns, defaultSeries);
}
seriesToRaceColumns.get(defaultSeries).add(raceColumn);
}
}
return seriesToRaceColumns;
}
private Series createDefaultSeries() {
Series defaultSeries;
defaultSeries = new SeriesImpl(EmptyRaceLogStore.INSTANCE, "Default", false,
Collections.<Fleet> singleton(new FleetImpl("Default")), Collections.<String> emptyList(), null);
return defaultSeries;
}
private List<RaceColumn> insertSeriesIfNew(Map<Series, List<RaceColumn>> target, Series newSeries) {
if (!target.containsKey(newSeries)) {
target.put(newSeries, new ArrayList<RaceColumn>());
}
return target.get(newSeries);
}
}
@@ -12,7 +12,7 @@ import org.json.simple.JSONObject;
import com.sap.sailing.domain.base.CourseArea;
import com.sap.sailing.domain.base.Event;
import com.sap.sailing.domain.base.RaceGroup;
import com.sap.sailing.domain.base.racegroup.RaceGroup;
import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sailing.domain.racelog.RaceLog;
import com.sap.sailing.server.gateway.AbstractJsonHttpServlet;
@@ -29,85 +29,78 @@ import com.sap.sailing.server.gateway.serialization.impl.racegroup.SeriesWithRow
import com.sap.sailing.server.gateway.serialization.impl.racegroup.SeriesWithRowsOfRaceGroupSerializer;
public class RaceGroupJsonExportServlet extends AbstractJsonHttpServlet {
private static final long serialVersionUID = 4510175441769759252L;
private static final String PARAM_COURSE_AREA_FILTER = "courseArea";
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String courseAreaFilter = request.getParameter(PARAM_COURSE_AREA_FILTER);
if (courseAreaFilter == null) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Need to set a course area filter.");
return;
}
UUID courseAreaId = toUUID(courseAreaFilter);
if (courseAreaId == null) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Course are filter must be valid UUID.");
return;
}
CourseArea filterCourseArea = getCourseArea(courseAreaId);
JsonSerializer<RaceGroup> serializer = createSerializer();
JSONArray result = new JSONArray();
RaceGroupFactory raceGroupFactory = new RaceGroupFactory();
for (Leaderboard leaderboard : getService().getLeaderboards().values()) {
if (filterCourseArea.equals(leaderboard.getDefaultCourseArea())) {
RaceGroup raceGroup = raceGroupFactory.convert(leaderboard);
result.add(serializer.serialize(raceGroup));
}
}
result.writeJSONString(response.getWriter());
}
private static final long serialVersionUID = 4510175441769759252L;
private CourseArea getCourseArea(UUID courseAreaId) {
for (Event event : getService().getAllEvents()) {
if (event.getVenue() == null) {
continue;
}
for (CourseArea courseArea : event.getVenue().getCourseAreas()) {
if (courseArea.getId().equals(courseAreaId)) {
return courseArea;
}
}
}
return null;
}
private static final String PARAM_COURSE_AREA_FILTER = "courseArea";
private UUID toUUID(String value) {
try {
return UUID.fromString(value);
} catch (IllegalArgumentException iae) {
return null;
}
}
private static JsonSerializer<RaceGroup> createSerializer() {
return new RaceGroupJsonSerializer(
new BoatClassJsonSerializer(),
new CourseAreaJsonSerializer(),
new SeriesWithRowsOfRaceGroupSerializer(
new SeriesWithRowsJsonSerializer(
new RaceRowsOfSeriesWithRowsSerializer(
new RaceRowJsonSerializer(
new FleetJsonSerializer(
new ColorJsonSerializer()),
new RaceCellJsonSerializer(createRaceLogSerializer()))))));
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
/// TODO: replace with real racelog serializer
private static JsonSerializer<RaceLog> createRaceLogSerializer() {
return new JsonSerializer<RaceLog>() {
@Override
public JSONObject serialize(RaceLog object) {
return new JSONObject();
}
};
}
String courseAreaFilter = request.getParameter(PARAM_COURSE_AREA_FILTER);
if (courseAreaFilter == null) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Need to set a course area filter.");
return;
}
UUID courseAreaId = toUUID(courseAreaFilter);
if (courseAreaId == null) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "Course are filter must be valid UUID.");
return;
}
CourseArea filterCourseArea = getCourseArea(courseAreaId);
JsonSerializer<RaceGroup> serializer = createSerializer();
JSONArray result = new JSONArray();
RaceGroupFactory raceGroupFactory = new RaceGroupFactory();
for (Leaderboard leaderboard : getService().getLeaderboards().values()) {
if (filterCourseArea.equals(leaderboard.getDefaultCourseArea())) {
RaceGroup raceGroup = raceGroupFactory.convert(leaderboard);
result.add(serializer.serialize(raceGroup));
}
}
result.writeJSONString(response.getWriter());
}
private CourseArea getCourseArea(UUID courseAreaId) {
for (Event event : getService().getAllEvents()) {
if (event.getVenue() == null) {
continue;
}
for (CourseArea courseArea : event.getVenue().getCourseAreas()) {
if (courseArea.getId().equals(courseAreaId)) {
return courseArea;
}
}
}
return null;
}
private UUID toUUID(String value) {
try {
return UUID.fromString(value);
} catch (IllegalArgumentException iae) {
return null;
}
}
private static JsonSerializer<RaceGroup> createSerializer() {
return new RaceGroupJsonSerializer(new BoatClassJsonSerializer(), new CourseAreaJsonSerializer(),
new SeriesWithRowsOfRaceGroupSerializer(new SeriesWithRowsJsonSerializer(
new RaceRowsOfSeriesWithRowsSerializer(new RaceRowJsonSerializer(new FleetJsonSerializer(
new ColorJsonSerializer()), new RaceCellJsonSerializer(createRaceLogSerializer()))))));
}
// / TODO: replace with real racelog serializer
private static JsonSerializer<RaceLog> createRaceLogSerializer() {
return new JsonSerializer<RaceLog>() {
@Override
public JSONObject serialize(RaceLog object) {
return new JSONObject();
}
};
}
}