mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-11-02 09:09:37 +00:00
# code cleanup
This commit is contained in:
1 parent
e29e4e7806
commit
5f0eff895c
29 files changed
+233
-232
No files matched your search
+15
-18
@@ -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()));
|
||||
}
|
||||
|
||||
}
|
||||
+80
-77
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
+71
-78
@@ -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();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user