mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-16 09:11:02 +00:00
# Added a (for now empty) shared domain bundle
# Another round of changes in the communication between app and server # This time actual "race rows" are transmitted to the application - created by "transposing" the RaceColumns of a Leaderboard # Each RaceRow contains it Fleet and several RaceCells. A RaceCell consists of a name and a RaceLog # Removed a bunch of now unused data structures and serialization facilities
This commit is contained in:
1 parent
0f6b592530
commit
1fefd2ea17
55 files changed
+601
-605
No files matched your search
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
|
||||
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
@@ -0,0 +1,28 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>com.sap.sailing.domain.shared.android</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.ManifestBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.pde.SchemaBuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.pde.PluginNature</nature>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
@@ -0,0 +1,7 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
||||
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
|
||||
org.eclipse.jdt.core.compiler.source=1.6
|
||||
@@ -0,0 +1,8 @@
|
||||
Manifest-Version: 1.0
|
||||
Bundle-ManifestVersion: 2
|
||||
Bundle-Name: com.sap.sailing.domain.shared.android
|
||||
Bundle-SymbolicName: com.sap.sailing.domain.shared.android
|
||||
Bundle-Version: 1.0.0.qualifier
|
||||
Bundle-Vendor: SAP
|
||||
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
|
||||
Require-Bundle: com.sap.sailing.domain.common;bundle-version="1.0.0"
|
||||
@@ -0,0 +1,4 @@
|
||||
source.. = src/
|
||||
output.. = bin/
|
||||
bin.includes = META-INF/,\
|
||||
.
|
||||
@@ -1,8 +0,0 @@
|
||||
package com.sap.sailing.domain.base;
|
||||
|
||||
|
||||
public interface FleetWithRaceNames extends Fleet {
|
||||
|
||||
public Iterable<String> getRaceNames();
|
||||
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
package com.sap.sailing.domain.base;
|
||||
|
||||
|
||||
public interface FleetWithRaces extends Fleet {
|
||||
|
||||
public Iterable<RaceDefinition> getRaceDefinitions();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.sap.sailing.domain.base;
|
||||
|
||||
import com.sap.sailing.domain.common.Named;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
|
||||
public interface RaceCell extends Named {
|
||||
|
||||
RaceLog getRaceLog();
|
||||
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
package com.sap.sailing.domain.base;
|
||||
|
||||
import com.sap.sailing.domain.common.Named;
|
||||
|
||||
public interface RaceGroup extends Named {
|
||||
|
||||
public CourseArea getDefaultCourseArea();
|
||||
|
||||
public Iterable<SeriesData> getSeries();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.sap.sailing.domain.base;
|
||||
|
||||
public interface RaceRow {
|
||||
|
||||
Fleet getFleet();
|
||||
|
||||
Iterable<RaceCell> getCells();
|
||||
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
package com.sap.sailing.domain.base;
|
||||
|
||||
import com.sap.sailing.domain.common.Named;
|
||||
import com.sap.sailing.domain.tracking.TrackedRace;
|
||||
import com.sap.sailing.domain.tracking.TrackedRegattaRegistry;
|
||||
|
||||
@@ -19,28 +18,10 @@ import com.sap.sailing.domain.tracking.TrackedRegattaRegistry;
|
||||
* @author Axel Uhl (D043530)
|
||||
*
|
||||
*/
|
||||
public interface Series extends Named {
|
||||
/**
|
||||
* Returns the fleets of this series, in ascending order, better fleets first.
|
||||
*/
|
||||
Iterable<? extends Fleet> getFleets();
|
||||
|
||||
/**
|
||||
* A series consists of one or more "race columns." Some people would just say "race," but we use the term "race" for
|
||||
* something that has a single start time and start line; so if each fleet in a series gets their own start for
|
||||
* something called "R2", those are as many "races" as we have fleets; therefore, we use "race column" instead to
|
||||
* describe all "races" named, e.g., "R3" in a series.
|
||||
*/
|
||||
Iterable<? extends RaceColumnInSeries> getRaceColumns();
|
||||
public interface Series extends SeriesData {
|
||||
|
||||
RaceColumnInSeries getRaceColumnByName(String columnName);
|
||||
|
||||
/**
|
||||
* Tells whether this is the "last" / "medal" race series, usually having only one race. This may have implications
|
||||
* on the scoring scheme (usually, medal races scores are doubled and cannot be discarded).
|
||||
*/
|
||||
boolean isMedal();
|
||||
|
||||
void setIsMedal(boolean isMedal);
|
||||
|
||||
Fleet getFleetByName(String fleetName);
|
||||
|
||||
@@ -4,11 +4,19 @@ import com.sap.sailing.domain.common.Named;
|
||||
|
||||
public interface SeriesData extends Named {
|
||||
|
||||
/**
|
||||
/**
|
||||
* Returns the fleets of this series, in ascending order, better fleets first.
|
||||
*/
|
||||
Iterable<? extends Fleet> getFleets();
|
||||
|
||||
/**
|
||||
* A series consists of one or more "race columns." Some people would just say "race," but we use the term "race" for
|
||||
* something that has a single start time and start line; so if each fleet in a series gets their own start for
|
||||
* something called "R2", those are as many "races" as we have fleets; therefore, we use "race column" instead to
|
||||
* describe all "races" named, e.g., "R3" in a series.
|
||||
*/
|
||||
Iterable<? extends RaceColumnInSeries> getRaceColumns();
|
||||
|
||||
/**
|
||||
* Tells whether this is the "last" / "medal" race series, usually having only one race. This may have implications
|
||||
* on the scoring scheme (usually, medal races scores are doubled and cannot be discarded).
|
||||
|
||||
-45
@@ -1,45 +0,0 @@
|
||||
package com.sap.sailing.domain.base.impl;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.FleetWithRaceNames;
|
||||
import com.sap.sailing.domain.common.Color;
|
||||
|
||||
public class FleetWithRaceNamesImpl implements FleetWithRaceNames {
|
||||
private static final long serialVersionUID = -7686050535458112702L;
|
||||
|
||||
private Fleet fleet;
|
||||
private Iterable<String> raceNames;
|
||||
|
||||
public FleetWithRaceNamesImpl(
|
||||
Fleet fleet,
|
||||
Iterable<String> raceNames) {
|
||||
this.fleet = fleet;
|
||||
this.raceNames = raceNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<String> getRaceNames() {
|
||||
return raceNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return fleet.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(Fleet otherFleet) {
|
||||
return fleet.compareTo(otherFleet);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOrdering() {
|
||||
return fleet.getOrdering();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Color getColor() {
|
||||
return fleet.getColor();
|
||||
}
|
||||
|
||||
}
|
||||
-46
@@ -1,46 +0,0 @@
|
||||
package com.sap.sailing.domain.base.impl;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.FleetWithRaces;
|
||||
import com.sap.sailing.domain.base.RaceDefinition;
|
||||
import com.sap.sailing.domain.common.Color;
|
||||
|
||||
public class FleetWithRacesImpl implements FleetWithRaces {
|
||||
private static final long serialVersionUID = -7686050535458112702L;
|
||||
|
||||
private Fleet fleet;
|
||||
private Iterable<RaceDefinition> raceDefinitions;
|
||||
|
||||
public FleetWithRacesImpl(
|
||||
Fleet fleet,
|
||||
Iterable<RaceDefinition> raceDefinitions) {
|
||||
this.fleet = fleet;
|
||||
this.raceDefinitions = raceDefinitions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<RaceDefinition> getRaceDefinitions() {
|
||||
return raceDefinitions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return fleet.getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(Fleet otherFleet) {
|
||||
return fleet.compareTo(otherFleet);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getOrdering() {
|
||||
return fleet.getOrdering();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Color getColor() {
|
||||
return fleet.getColor();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.sap.sailing.domain.base.impl;
|
||||
|
||||
import com.sap.sailing.domain.base.RaceCell;
|
||||
import com.sap.sailing.domain.common.impl.NamedImpl;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
|
||||
public class RaceCellImpl extends NamedImpl implements RaceCell {
|
||||
private static final long serialVersionUID = 971598420407273594L;
|
||||
|
||||
private RaceLog raceLog;
|
||||
|
||||
public RaceCellImpl(String name, RaceLog raceLog) {
|
||||
super(name);
|
||||
this.raceLog = raceLog;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RaceLog getRaceLog() {
|
||||
return raceLog;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
package com.sap.sailing.domain.base.impl;
|
||||
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.base.RaceGroup;
|
||||
import com.sap.sailing.domain.base.SeriesData;
|
||||
|
||||
public class RaceGroupImpl implements RaceGroup {
|
||||
private static final long serialVersionUID = 7760879536339600827L;
|
||||
|
||||
private final String name;
|
||||
private final CourseArea courseArea;
|
||||
private final Iterable<SeriesData> series;
|
||||
|
||||
public RaceGroupImpl(
|
||||
String name,
|
||||
CourseArea courseArea,
|
||||
Iterable<SeriesData> series) {
|
||||
this.name = name;
|
||||
this.courseArea = courseArea;
|
||||
this.series = series;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CourseArea getDefaultCourseArea() {
|
||||
return courseArea;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<SeriesData> getSeries() {
|
||||
return series;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.sap.sailing.domain.base.impl;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceCell;
|
||||
import com.sap.sailing.domain.base.RaceRow;
|
||||
|
||||
public class RaceRowImpl implements RaceRow {
|
||||
|
||||
private Fleet fleet;
|
||||
private Iterable<RaceCell> races;
|
||||
|
||||
public RaceRowImpl(Fleet fleet, Iterable<RaceCell> races) {
|
||||
this.fleet = fleet;
|
||||
this.races = races;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Fleet getFleet() {
|
||||
return fleet;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<RaceCell> getCells() {
|
||||
return races;
|
||||
}
|
||||
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.server.gateway.serialization.impl.regatta;
|
||||
package com.sap.sailing.server.gateway.serialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.server.gateway.serialization.impl.regatta;
|
||||
package com.sap.sailing.server.gateway.serialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
+5
-5
@@ -1,21 +1,21 @@
|
||||
package com.sap.sailing.server.gateway.serialization.impl.regatta;
|
||||
package com.sap.sailing.server.gateway.serialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.SeriesData;
|
||||
import com.sap.sailing.server.gateway.serialization.ExtendableJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.ExtensionJsonSerializer;
|
||||
|
||||
public class SeriesJsonSerializer extends ExtendableJsonSerializer<Series> {
|
||||
public class SeriesDataJsonSerializer extends ExtendableJsonSerializer<SeriesData> {
|
||||
public static final String FIELD_NAME = "name";
|
||||
public static final String FIELD_IS_MEDAL = "isMedal";
|
||||
|
||||
public SeriesJsonSerializer(ExtensionJsonSerializer<Series, ?> extensionSerializer) {
|
||||
public SeriesDataJsonSerializer(ExtensionJsonSerializer<SeriesData, ?> extensionSerializer) {
|
||||
super(extensionSerializer);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JSONObject serializeFields(Series object) {
|
||||
protected JSONObject serializeFields(SeriesData object) {
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
result.put(FIELD_NAME, object.getName());
|
||||
-33
@@ -1,33 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.serialization.impl.leaderboard;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.FleetWithRaceNames;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class FleetWithRaceNamesJsonSerializer implements JsonSerializer<FleetWithRaceNames> {
|
||||
public static final String FIELD_RACES = "races";
|
||||
|
||||
private final JsonSerializer<Fleet> fleetSerializer;
|
||||
|
||||
public FleetWithRaceNamesJsonSerializer(JsonSerializer<Fleet> fleetSerializer) {
|
||||
this.fleetSerializer = fleetSerializer;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(FleetWithRaceNames object) {
|
||||
JSONObject result = fleetSerializer.serialize(object);
|
||||
|
||||
JSONArray races = new JSONArray();
|
||||
for (String raceName : object.getRaceNames()) {
|
||||
races.add(raceName);
|
||||
}
|
||||
result.put(FIELD_RACES, races);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+23
-3
@@ -2,20 +2,30 @@ package com.sap.sailing.server.gateway.serialization.impl.leaderboard;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.BoatClass;
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
|
||||
import com.sap.sailing.server.gateway.serialization.ExtendableJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.ExtensionJsonSerializer;
|
||||
|
||||
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class LeaderboardJsonSerializer extends ExtendableJsonSerializer<Leaderboard> {
|
||||
public static final String FIELD_NAME = "name";
|
||||
public static final String FIELD_COURSE_AREA = "courseArea";
|
||||
public static final String FIELD_BOAT_CLASS = "boatClass";
|
||||
|
||||
private JsonSerializer<BoatClass> boatClassSerializer;
|
||||
private JsonSerializer<CourseArea> courseAreaSerializer;
|
||||
|
||||
public LeaderboardJsonSerializer(
|
||||
JsonSerializer<BoatClass> boatClassSerializer,
|
||||
JsonSerializer<CourseArea> courseAreaSerializer,
|
||||
ExtensionJsonSerializer<Leaderboard, ?> extensionSerializer) {
|
||||
super(extensionSerializer);
|
||||
this.courseAreaSerializer = courseAreaSerializer;
|
||||
this.boatClassSerializer = boatClassSerializer;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -23,7 +33,17 @@ public class LeaderboardJsonSerializer extends ExtendableJsonSerializer<Leaderbo
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
result.put(FIELD_NAME, object.getName());
|
||||
result.put(FIELD_COURSE_AREA, "tdb");
|
||||
|
||||
if (object.getDefaultCourseArea() != null) {
|
||||
result.put(FIELD_COURSE_AREA, courseAreaSerializer.serialize(object.getDefaultCourseArea()));
|
||||
}
|
||||
|
||||
if (object instanceof RegattaLeaderboard) {
|
||||
Regatta regatta = ((RegattaLeaderboard) object).getRegatta();
|
||||
if (regatta.getBoatClass() != null) {
|
||||
result.put(FIELD_BOAT_CLASS, boatClassSerializer.serialize(regatta.getBoatClass()));
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package com.sap.sailing.server.gateway.serialization.impl.leaderboard;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.RaceCell;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class RaceCellJsonSerializer implements JsonSerializer<RaceCell> {
|
||||
public static final String FIELD_NAME = "name";
|
||||
public static final String FIELD_RACE_LOG = "raceLog";
|
||||
|
||||
private JsonSerializer<RaceLog> logSerializer;
|
||||
|
||||
public RaceCellJsonSerializer(JsonSerializer<RaceLog> logSerializer) {
|
||||
this.logSerializer = logSerializer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(RaceCell object) {
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
result.put(FIELD_NAME, object.getName());
|
||||
result.put(FIELD_RACE_LOG, logSerializer.serialize(object.getRaceLog()));
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
package com.sap.sailing.server.gateway.serialization.impl.leaderboard;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceCell;
|
||||
import com.sap.sailing.domain.base.RaceRow;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class RaceRowJsonSerializer implements JsonSerializer<RaceRow> {
|
||||
public static final String FIELD_FLEET = "fleet";
|
||||
public static final String FIELD_RACE_CELLS = "races";
|
||||
|
||||
private JsonSerializer<Fleet> fleetSerializer;
|
||||
private JsonSerializer<RaceCell> cellSerializer;
|
||||
|
||||
public RaceRowJsonSerializer(
|
||||
JsonSerializer<Fleet> fleetSerializer,
|
||||
JsonSerializer<RaceCell> cellSerializer) {
|
||||
this.fleetSerializer = fleetSerializer;
|
||||
this.cellSerializer = cellSerializer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(RaceRow object) {
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
result.put(FIELD_FLEET, fleetSerializer.serialize(object.getFleet()));
|
||||
JSONArray cells = new JSONArray();
|
||||
for (RaceCell cell : object.getCells()) {
|
||||
cells.add(cellSerializer.serialize(cell));
|
||||
}
|
||||
result.put(FIELD_RACE_CELLS, cells);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+11
-10
@@ -6,18 +6,19 @@ import java.util.Collection;
|
||||
import org.json.simple.JSONArray;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.FleetWithRaceNames;
|
||||
import com.sap.sailing.domain.base.RaceCell;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.impl.FleetWithRaceNamesImpl;
|
||||
import com.sap.sailing.domain.base.RaceRow;
|
||||
import com.sap.sailing.domain.base.SeriesData;
|
||||
import com.sap.sailing.domain.base.impl.RaceCellImpl;
|
||||
import com.sap.sailing.domain.base.impl.RaceRowImpl;
|
||||
import com.sap.sailing.server.gateway.serialization.ExtensionJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class FleetWithRaceNamesOfSeriesExtensionSerializer extends ExtensionJsonSerializer<Series, FleetWithRaceNames> {
|
||||
public class RaceRowsOfSeriesDataExtensionSerializer extends ExtensionJsonSerializer<SeriesData, RaceRow> {
|
||||
public static final String FIELD_FLEETS = "fleets";
|
||||
|
||||
public FleetWithRaceNamesOfSeriesExtensionSerializer(
|
||||
JsonSerializer<FleetWithRaceNames> extensionSerializer) {
|
||||
public RaceRowsOfSeriesDataExtensionSerializer(JsonSerializer<RaceRow> extensionSerializer) {
|
||||
super(extensionSerializer);
|
||||
}
|
||||
|
||||
@@ -27,15 +28,15 @@ public class FleetWithRaceNamesOfSeriesExtensionSerializer extends ExtensionJson
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object serializeExtension(Series parent) {
|
||||
public Object serializeExtension(SeriesData parent) {
|
||||
JSONArray result = new JSONArray();
|
||||
|
||||
for (Fleet fleet : parent.getFleets()) {
|
||||
Collection<String> raceNames = new ArrayList<String>();
|
||||
Collection<RaceCell> raceCells = new ArrayList<RaceCell>();
|
||||
for (RaceColumn column : parent.getRaceColumns()) {
|
||||
raceNames.add(column.getName());
|
||||
raceCells.add(new RaceCellImpl(column.getName(), null)); /// TODO: get racelog from column
|
||||
}
|
||||
result.add(serialize(new FleetWithRaceNamesImpl(fleet, raceNames)));
|
||||
result.add(serialize(new RaceRowImpl(fleet, raceCells)));
|
||||
}
|
||||
|
||||
return result;
|
||||
+22
-14
@@ -12,17 +12,18 @@ import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.base.RaceColumnInSeries;
|
||||
import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.SeriesData;
|
||||
import com.sap.sailing.domain.base.impl.FleetImpl;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.server.gateway.serialization.ExtensionJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class SeriesOfLeaderboardExtensionSerializer extends ExtensionJsonSerializer<Leaderboard, Series> {
|
||||
public class SeriesDataOfLeaderboardExtensionSerializer extends ExtensionJsonSerializer<Leaderboard, SeriesData> {
|
||||
public static final String FIELD_SERIES = "series";
|
||||
|
||||
|
||||
public SeriesOfLeaderboardExtensionSerializer(JsonSerializer<Series> extensionSerializer) {
|
||||
public SeriesDataOfLeaderboardExtensionSerializer(JsonSerializer<SeriesData> extensionSerializer) {
|
||||
super(extensionSerializer);
|
||||
}
|
||||
|
||||
@@ -34,22 +35,22 @@ public class SeriesOfLeaderboardExtensionSerializer extends ExtensionJsonSeriali
|
||||
@Override
|
||||
public Object serializeExtension(Leaderboard parent) {
|
||||
Map<Series, List<RaceColumn>> seriesToRaceColumns = new HashMap<Series, List<RaceColumn>>();
|
||||
Series defaultSeries = new SeriesImpl(
|
||||
"Default Series",
|
||||
false,
|
||||
Collections.<Fleet>singleton(new FleetImpl("Default Fleet")),
|
||||
Collections.<String>emptyList(),
|
||||
null);
|
||||
seriesToRaceColumns.put(defaultSeries, Collections.<RaceColumn>emptyList());
|
||||
for (RaceColumn raceColumn : parent.getRaceColumns()) {
|
||||
|
||||
Series defaultSeries = null;
|
||||
for (RaceColumn raceColumn : parent.getRaceColumns()) {
|
||||
if (raceColumn instanceof RaceColumnInSeries) {
|
||||
RaceColumnInSeries raceColumnInSeries = (RaceColumnInSeries) raceColumn;
|
||||
if (!seriesToRaceColumns.containsKey(raceColumnInSeries.getSeries())) {
|
||||
seriesToRaceColumns.put(raceColumnInSeries.getSeries(), new ArrayList<RaceColumn>());
|
||||
}
|
||||
seriesToRaceColumns.get(raceColumnInSeries.getSeries()).add(raceColumnInSeries);
|
||||
insertSeriesIfNew(seriesToRaceColumns, raceColumnInSeries.getSeries()).add(raceColumnInSeries);
|
||||
} else {
|
||||
if (defaultSeries == null) {
|
||||
defaultSeries = new SeriesImpl(
|
||||
"Default Series",
|
||||
false,
|
||||
Collections.<Fleet>singleton(new FleetImpl("Default Fleet")),
|
||||
Collections.<String>emptyList(),
|
||||
null);
|
||||
insertSeriesIfNew(seriesToRaceColumns, defaultSeries);
|
||||
}
|
||||
seriesToRaceColumns.get(defaultSeries).add(raceColumn);
|
||||
}
|
||||
}
|
||||
@@ -61,4 +62,11 @@ public class SeriesOfLeaderboardExtensionSerializer extends ExtensionJsonSeriali
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
-44
@@ -1,44 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.serialization.impl.regatta;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.FleetWithRaces;
|
||||
import com.sap.sailing.domain.base.RaceDefinition;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.filter.Filter;
|
||||
|
||||
public class FleetWithRacesJsonSerializer implements JsonSerializer<FleetWithRaces> {
|
||||
public static final String FIELD_RACES = "races";
|
||||
|
||||
private final JsonSerializer<Fleet> fleetSerializer;
|
||||
private final Filter<RaceDefinition> raceDefinitionFilter;
|
||||
private final JsonSerializer<RaceDefinition> raceDefinitionSerializer;
|
||||
|
||||
public FleetWithRacesJsonSerializer(
|
||||
JsonSerializer<Fleet> fleetSerializer,
|
||||
Filter<RaceDefinition> raceDefinitionFilter,
|
||||
JsonSerializer<RaceDefinition> raceDefinitionSerializer) {
|
||||
this.fleetSerializer = fleetSerializer;
|
||||
this.raceDefinitionFilter = raceDefinitionFilter;
|
||||
this.raceDefinitionSerializer = raceDefinitionSerializer;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(FleetWithRaces object) {
|
||||
JSONObject result = fleetSerializer.serialize(object);
|
||||
|
||||
JSONArray races = new JSONArray();
|
||||
for (RaceDefinition race : object.getRaceDefinitions()) {
|
||||
if (raceDefinitionFilter.isFiltered(race)) {
|
||||
races.add(raceDefinitionSerializer.serialize(race));
|
||||
}
|
||||
}
|
||||
result.put(FIELD_RACES, races);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
-50
@@ -1,50 +0,0 @@
|
||||
package com.sap.sailing.server.gateway.serialization.impl.regatta;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.FleetWithRaces;
|
||||
import com.sap.sailing.domain.base.RaceColumnInSeries;
|
||||
import com.sap.sailing.domain.base.RaceDefinition;
|
||||
import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.impl.FleetWithRacesImpl;
|
||||
import com.sap.sailing.server.gateway.serialization.ExtensionJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class FleetWithRacesOfSeriesExtensionSerializer extends ExtensionJsonSerializer<Series, FleetWithRaces> {
|
||||
public static final String FIELD_NAME = "fleets";
|
||||
|
||||
public FleetWithRacesOfSeriesExtensionSerializer(JsonSerializer<FleetWithRaces> extensionSerializer) {
|
||||
super(extensionSerializer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getExtensionFieldName() {
|
||||
return FIELD_NAME;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object serializeExtension(Series object) {
|
||||
JSONArray result = new JSONArray();
|
||||
|
||||
for (Fleet fleet : object.getFleets()) {
|
||||
|
||||
Collection<RaceDefinition> races = new ArrayList<RaceDefinition>();
|
||||
for (RaceColumnInSeries raceColumn : object.getRaceColumns()) {
|
||||
RaceDefinition race = raceColumn.getRaceDefinition(fleet);
|
||||
if (race != null) {
|
||||
System.out.println(race);
|
||||
races.add(race);
|
||||
}
|
||||
}
|
||||
|
||||
result.add(serialize(new FleetWithRacesImpl(fleet, races)));
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+31
-13
@@ -8,19 +8,24 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.base.Event;
|
||||
import com.sap.sailing.domain.leaderboard.Leaderboard;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.server.gateway.impl.JsonExportServlet;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.leaderboard.FleetWithRaceNamesJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.leaderboard.FleetWithRaceNamesOfSeriesExtensionSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.BoatClassJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.ColorJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.CourseAreaJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.FleetJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.SeriesDataJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.leaderboard.LeaderboardJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.leaderboard.SeriesOfLeaderboardExtensionSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.regatta.ColorJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.regatta.FleetJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.regatta.SeriesJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.leaderboard.RaceCellJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.leaderboard.RaceRowJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.leaderboard.RaceRowsOfSeriesDataExtensionSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.leaderboard.SeriesDataOfLeaderboardExtensionSerializer;
|
||||
|
||||
public class LeaderboardJsonExportServlet extends JsonExportServlet {
|
||||
private static final long serialVersionUID = 4510175441769759252L;
|
||||
@@ -48,7 +53,7 @@ public class LeaderboardJsonExportServlet extends JsonExportServlet {
|
||||
JSONArray result = new JSONArray();
|
||||
|
||||
for (Leaderboard leaderboard : getService().getLeaderboards().values()) {
|
||||
if (leaderboard.getDefaultCourseArea().equals(filterCourseArea)) {
|
||||
if (filterCourseArea.equals(leaderboard.getDefaultCourseArea())) {
|
||||
result.add(serializer.serialize(leaderboard));
|
||||
}
|
||||
}
|
||||
@@ -80,13 +85,26 @@ public class LeaderboardJsonExportServlet extends JsonExportServlet {
|
||||
|
||||
private static JsonSerializer<Leaderboard> createSerializer() {
|
||||
return new LeaderboardJsonSerializer(
|
||||
new SeriesOfLeaderboardExtensionSerializer(
|
||||
new SeriesJsonSerializer(
|
||||
new FleetWithRaceNamesOfSeriesExtensionSerializer(
|
||||
new FleetWithRaceNamesJsonSerializer(
|
||||
new FleetJsonSerializer(
|
||||
new ColorJsonSerializer()))))));
|
||||
new BoatClassJsonSerializer(),
|
||||
new CourseAreaJsonSerializer(),
|
||||
new SeriesDataOfLeaderboardExtensionSerializer(
|
||||
new SeriesDataJsonSerializer(
|
||||
new RaceRowsOfSeriesDataExtensionSerializer(
|
||||
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();
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
+16
-57
@@ -1,46 +1,38 @@
|
||||
package com.sap.sailing.racecommittee.app.data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URI;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
import org.json.simple.JSONValue;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.base.Event;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.racecommittee.app.data.clients.LoadClient;
|
||||
import com.sap.sailing.racecommittee.app.data.handlers.DataHandler;
|
||||
import com.sap.sailing.racecommittee.app.data.handlers.EventsDataHandler;
|
||||
import com.sap.sailing.racecommittee.app.data.handlers.ManagedRacesDataHandler;
|
||||
import com.sap.sailing.racecommittee.app.data.handlers.RaceLogsDataHandler;
|
||||
import com.sap.sailing.racecommittee.app.data.http.HttpJsonPostRequest;
|
||||
import com.sap.sailing.racecommittee.app.data.loaders.DataLoader;
|
||||
import com.sap.sailing.racecommittee.app.data.parsers.DataParser;
|
||||
import com.sap.sailing.racecommittee.app.data.parsers.EventsDataParser;
|
||||
import com.sap.sailing.racecommittee.app.data.parsers.ManagedRacesDataParser;
|
||||
import com.sap.sailing.racecommittee.app.data.parsers.RaceLogsDataParser;
|
||||
import com.sap.sailing.racecommittee.app.deserialization.impl.ColorDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.deserialization.impl.CourseAreaJsonDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.deserialization.impl.EventJsonDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.deserialization.impl.FleetDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.deserialization.impl.RaceCellDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.deserialization.impl.RaceGroupDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.deserialization.impl.RaceLogDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.deserialization.impl.RaceRowDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.deserialization.impl.SeriesWithRowsDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.deserialization.impl.VenueJsonDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
|
||||
import com.sap.sailing.racecommittee.app.domain.deserialization.impl.ColorDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.domain.deserialization.impl.CourseAreaJsonDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.domain.deserialization.impl.EventJsonDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.domain.deserialization.impl.FleetDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.domain.deserialization.impl.FleetWithRaceNamesDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.domain.deserialization.impl.RaceGroupDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.domain.deserialization.impl.SeriesDataDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.domain.deserialization.impl.VenueJsonDeserializer;
|
||||
import com.sap.sailing.racecommittee.app.logging.ExLog;
|
||||
|
||||
/**
|
||||
* Enables accessing of data.
|
||||
*/
|
||||
public class DataManager implements ReadonlyDataManager {
|
||||
private static final String TAG = DataManager.class.getName();
|
||||
// private static final String TAG = DataManager.class.getName();
|
||||
|
||||
public static ReadonlyDataManager create(Context context) {
|
||||
return new DataManager(context, InMemoryDataStore.INSTANCE);
|
||||
@@ -134,10 +126,12 @@ public class DataManager implements ReadonlyDataManager {
|
||||
//JsonDeserializer<BoatClass> boatClassDeserializer = new BoatClassJsonDeserializer();
|
||||
DataParser<Collection<ManagedRace>> parser = new ManagedRacesDataParser(
|
||||
new RaceGroupDeserializer(
|
||||
new SeriesDataDeserializer(
|
||||
new FleetWithRaceNamesDeserializer(
|
||||
new SeriesWithRowsDeserializer(
|
||||
new RaceRowDeserializer(
|
||||
new FleetDeserializer(
|
||||
new ColorDeserializer())))));
|
||||
new ColorDeserializer()),
|
||||
new RaceCellDeserializer(
|
||||
new RaceLogDeserializer())))));
|
||||
DataHandler<Collection<ManagedRace>> handler = new ManagedRacesDataHandler(this, client);
|
||||
|
||||
DataLoader<Collection<ManagedRace>> loader = new DataLoader<Collection<ManagedRace>>(
|
||||
@@ -149,41 +143,6 @@ public class DataManager implements ReadonlyDataManager {
|
||||
|
||||
}
|
||||
|
||||
public void loadRaceLogs(
|
||||
Collection<ManagedRace> data,
|
||||
LoadClient<Map<ManagedRace, Collection<RaceLogEvent>>> client) {
|
||||
Collection<Serializable> ids = new ArrayList<Serializable>();
|
||||
for (ManagedRace race : data) {
|
||||
if (!dataStore.hasRace(race.getId())) {
|
||||
ExLog.w(TAG, "Tried to load race log for unknown race " + race.getId());
|
||||
continue;
|
||||
}
|
||||
ids.add(race.getId());
|
||||
}
|
||||
|
||||
HttpJsonPostRequest request = null;
|
||||
try {
|
||||
String value = JSONValue.toJSONString(ids);
|
||||
ExLog.e(TAG, value);
|
||||
request = new HttpJsonPostRequest(URI.create(TargetHost + "sailingserver/rc/racelogs"), value);
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
ExLog.e(TAG, "Exception while trying to create POST request. Aborting:\n" + e);
|
||||
return;
|
||||
}
|
||||
|
||||
DataParser<Map<ManagedRace, Collection<RaceLogEvent>>> parser = new RaceLogsDataParser();
|
||||
|
||||
DataHandler<Map<ManagedRace, Collection<RaceLogEvent>>> handler = new RaceLogsDataHandler(this, client);
|
||||
|
||||
DataLoader<Map<ManagedRace, Collection<RaceLogEvent>>> loader =
|
||||
new DataLoader<Map<ManagedRace,Collection<RaceLogEvent>>>(
|
||||
context,
|
||||
request,
|
||||
parser,
|
||||
handler);
|
||||
loader.forceLoad();
|
||||
}
|
||||
|
||||
private static final String TargetHost = "http://192.168.178.22:8888";
|
||||
|
||||
|
||||
|
||||
-6
@@ -2,11 +2,9 @@ package com.sap.sailing.racecommittee.app.data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.base.Event;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.racecommittee.app.data.clients.LoadClient;
|
||||
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
|
||||
|
||||
@@ -19,8 +17,4 @@ public interface ReadonlyDataManager {
|
||||
|
||||
public void loadRaces(Serializable courseAreaId, LoadClient<Collection<ManagedRace>> client);
|
||||
|
||||
public void loadRaceLogs(
|
||||
Collection<ManagedRace> data,
|
||||
LoadClient<Map<ManagedRace, Collection<RaceLogEvent>>> client);
|
||||
|
||||
}
|
||||
+21
-32
@@ -9,20 +9,20 @@ import org.json.simple.JSONObject;
|
||||
import org.json.simple.JSONValue;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.FleetWithRaceNames;
|
||||
import com.sap.sailing.domain.base.RaceGroup;
|
||||
import com.sap.sailing.domain.base.SeriesData;
|
||||
import com.sap.sailing.domain.base.RaceCell;
|
||||
import com.sap.sailing.domain.base.RaceRow;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
|
||||
import com.sap.sailing.racecommittee.app.domain.ManagedRaceIdentifier;
|
||||
import com.sap.sailing.racecommittee.app.domain.impl.RaceIdentifierImpl;
|
||||
import com.sap.sailing.racecommittee.app.domain.RaceGroup;
|
||||
import com.sap.sailing.racecommittee.app.domain.SeriesWithRows;
|
||||
import com.sap.sailing.racecommittee.app.domain.impl.FleetIdentifierImpl;
|
||||
import com.sap.sailing.racecommittee.app.domain.impl.ManagedRaceIdentifierImpl;
|
||||
import com.sap.sailing.racecommittee.app.domain.impl.ManagedRaceImpl;
|
||||
import com.sap.sailing.racecommittee.app.logging.ExLog;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
|
||||
|
||||
public class ManagedRacesDataParser implements DataParser<Collection<ManagedRace>> {
|
||||
private static final String TAG = ManagedRacesDataParser.class.getName();
|
||||
|
||||
// private static final String TAG = ManagedRacesDataParser.class.getName();
|
||||
|
||||
private JsonDeserializer<RaceGroup> deserializer;
|
||||
|
||||
@@ -46,35 +46,24 @@ public class ManagedRacesDataParser implements DataParser<Collection<ManagedRace
|
||||
}
|
||||
|
||||
private void addManagedRaces(Collection<ManagedRace> target, RaceGroup raceGroup) {
|
||||
for (SeriesData series : raceGroup.getSeries()) {
|
||||
for (Fleet fleet : series.getFleets()) {
|
||||
if (fleet instanceof FleetWithRaceNames) {
|
||||
FleetWithRaceNames fleetWithRaceNames = (FleetWithRaceNames) fleet;
|
||||
for (String raceName : fleetWithRaceNames.getRaceNames()) {
|
||||
ManagedRace managedRace = createManagedRace(
|
||||
raceGroup,
|
||||
series,
|
||||
fleetWithRaceNames,
|
||||
raceName);
|
||||
target.add(managedRace);
|
||||
}
|
||||
} else {
|
||||
ExLog.w(TAG, String.format("Fleet %s had no race information attached.", fleet));
|
||||
for (SeriesWithRows series : raceGroup.getSeries()) {
|
||||
for (RaceRow raceRow : series.getRaceRows()) {
|
||||
Fleet fleet = raceRow.getFleet();
|
||||
for (RaceCell cell : raceRow.getCells()) {
|
||||
ManagedRace race = createManagedRace(raceGroup, series, fleet, cell.getName(), cell.getRaceLog());
|
||||
target.add(race);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private ManagedRace createManagedRace(
|
||||
RaceGroup raceGroup,
|
||||
SeriesData series,
|
||||
FleetWithRaceNames fleetWithRaceNames,
|
||||
String raceName) {
|
||||
ManagedRaceIdentifier identifier =
|
||||
new RaceIdentifierImpl(raceName, fleetWithRaceNames, series, raceGroup);
|
||||
ManagedRace managedRace = new ManagedRaceImpl(identifier);
|
||||
return managedRace;
|
||||
private ManagedRace createManagedRace(RaceGroup raceGroup, SeriesWithRows series,
|
||||
Fleet fleet, String name, RaceLog raceLog) {
|
||||
return new ManagedRaceImpl(
|
||||
new ManagedRaceIdentifierImpl(name,
|
||||
new FleetIdentifierImpl(fleet, series, raceGroup)),
|
||||
raceLog);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.deserialization.impl;
|
||||
package com.sap.sailing.racecommittee.app.deserialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.deserialization.impl;
|
||||
package com.sap.sailing.racecommittee.app.deserialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.deserialization.impl;
|
||||
package com.sap.sailing.racecommittee.app.deserialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.deserialization.impl;
|
||||
package com.sap.sailing.racecommittee.app.deserialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.deserialization.impl;
|
||||
package com.sap.sailing.racecommittee.app.deserialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
@@ -8,7 +8,7 @@ import com.sap.sailing.domain.common.Color;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.regatta.FleetJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.FleetJsonSerializer;
|
||||
|
||||
public class FleetDeserializer implements JsonDeserializer<Fleet> {
|
||||
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
package com.sap.sailing.racecommittee.app.deserialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.RaceCell;
|
||||
import com.sap.sailing.domain.base.impl.RaceCellImpl;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.leaderboard.RaceCellJsonSerializer;
|
||||
|
||||
public class RaceCellDeserializer implements JsonDeserializer<RaceCell> {
|
||||
|
||||
private JsonDeserializer<RaceLog> logDeserializer;
|
||||
|
||||
public RaceCellDeserializer(JsonDeserializer<RaceLog> logDeserializer) {
|
||||
this.logDeserializer = logDeserializer;
|
||||
}
|
||||
|
||||
public RaceCell deserialize(JSONObject object)
|
||||
throws JsonDeserializationException {
|
||||
String name = object.get(RaceCellJsonSerializer.FIELD_NAME).toString();
|
||||
|
||||
JSONObject logJson = Helpers.getNestedObjectSafe(object, RaceCellJsonSerializer.FIELD_RACE_LOG);
|
||||
RaceLog log = logDeserializer.deserialize(logJson);
|
||||
|
||||
return new RaceCellImpl(name, log);
|
||||
}
|
||||
|
||||
}
|
||||
+9
-9
@@ -1,24 +1,24 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.deserialization.impl;
|
||||
package com.sap.sailing.racecommittee.app.deserialization.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.RaceGroup;
|
||||
import com.sap.sailing.domain.base.SeriesData;
|
||||
import com.sap.sailing.domain.base.impl.RaceGroupImpl;
|
||||
import com.sap.sailing.racecommittee.app.domain.RaceGroup;
|
||||
import com.sap.sailing.racecommittee.app.domain.SeriesWithRows;
|
||||
import com.sap.sailing.racecommittee.app.domain.impl.RaceGroupImpl;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.leaderboard.LeaderboardJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.leaderboard.SeriesOfLeaderboardExtensionSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.leaderboard.SeriesDataOfLeaderboardExtensionSerializer;
|
||||
|
||||
public class RaceGroupDeserializer implements JsonDeserializer<RaceGroup> {
|
||||
|
||||
private JsonDeserializer<SeriesData> seriesDeserializer;
|
||||
private JsonDeserializer<SeriesWithRows> seriesDeserializer;
|
||||
|
||||
public RaceGroupDeserializer(JsonDeserializer<SeriesData> seriesDeserializer) {
|
||||
public RaceGroupDeserializer(JsonDeserializer<SeriesWithRows> seriesDeserializer) {
|
||||
this.seriesDeserializer = seriesDeserializer;
|
||||
}
|
||||
|
||||
@@ -28,10 +28,10 @@ public class RaceGroupDeserializer implements JsonDeserializer<RaceGroup> {
|
||||
|
||||
// CourseArea ...
|
||||
|
||||
Collection<SeriesData> series = new ArrayList<SeriesData>();
|
||||
Collection<SeriesWithRows> series = new ArrayList<SeriesWithRows>();
|
||||
for (Object seriesObject : Helpers.getNestedArraySafe(
|
||||
object,
|
||||
SeriesOfLeaderboardExtensionSerializer.FIELD_SERIES)) {
|
||||
SeriesDataOfLeaderboardExtensionSerializer.FIELD_SERIES)) {
|
||||
JSONObject seriesJson = Helpers.toJSONObjectSafe(seriesObject);
|
||||
series.add(seriesDeserializer.deserialize(seriesJson));
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.sap.sailing.racecommittee.app.deserialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
|
||||
public class RaceLogDeserializer implements JsonDeserializer<RaceLog> {
|
||||
|
||||
public RaceLog deserialize(JSONObject object)
|
||||
throws JsonDeserializationException {
|
||||
// TODO Deserialize race log
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
package com.sap.sailing.racecommittee.app.deserialization.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceCell;
|
||||
import com.sap.sailing.domain.base.RaceRow;
|
||||
import com.sap.sailing.domain.base.impl.RaceRowImpl;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.leaderboard.RaceRowJsonSerializer;
|
||||
|
||||
public class RaceRowDeserializer implements JsonDeserializer<RaceRow> {
|
||||
|
||||
private JsonDeserializer<Fleet> fleetDeserializer;
|
||||
private JsonDeserializer<RaceCell> raceCellDeserializer;
|
||||
|
||||
public RaceRowDeserializer(JsonDeserializer<Fleet> fleetDeserializer,
|
||||
JsonDeserializer<RaceCell> raceCellDeserializer) {
|
||||
this.fleetDeserializer = fleetDeserializer;
|
||||
this.raceCellDeserializer = raceCellDeserializer;
|
||||
}
|
||||
|
||||
public RaceRow deserialize(JSONObject object)
|
||||
throws JsonDeserializationException {
|
||||
JSONObject fleetObject = Helpers.toJSONObjectSafe(object.get(RaceRowJsonSerializer.FIELD_FLEET));
|
||||
JSONArray cellsObject = Helpers.getNestedArraySafe(object, RaceRowJsonSerializer.FIELD_RACE_CELLS);
|
||||
|
||||
Collection<RaceCell> races = new ArrayList<RaceCell>();
|
||||
Fleet fleet = fleetDeserializer.deserialize(fleetObject);
|
||||
for (Object cellObject : cellsObject) {
|
||||
JSONObject cellJson = Helpers.toJSONObjectSafe(cellObject);
|
||||
races.add(raceCellDeserializer.deserialize(cellJson));
|
||||
}
|
||||
|
||||
return new RaceRowImpl(fleet, races);
|
||||
}
|
||||
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
package com.sap.sailing.racecommittee.app.deserialization.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.RaceRow;
|
||||
import com.sap.sailing.racecommittee.app.domain.SeriesWithRows;
|
||||
import com.sap.sailing.racecommittee.app.domain.impl.SeriesWithRowsImpl;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.leaderboard.RaceRowsOfSeriesDataExtensionSerializer;
|
||||
|
||||
public class SeriesWithRowsDeserializer implements JsonDeserializer<SeriesWithRows> {
|
||||
|
||||
private JsonDeserializer<RaceRow> raceRowDeserializer;
|
||||
|
||||
public SeriesWithRowsDeserializer(JsonDeserializer<RaceRow> raceRowDeserializer) {
|
||||
this.raceRowDeserializer = raceRowDeserializer;
|
||||
}
|
||||
|
||||
public SeriesWithRows deserialize(JSONObject object)
|
||||
throws JsonDeserializationException {
|
||||
String name = object.get("name").toString();
|
||||
boolean isMedal = (Boolean) object.get("isMedal");
|
||||
|
||||
Collection<RaceRow> rows = new ArrayList<RaceRow>();
|
||||
for (Object fleetObject : Helpers.getNestedArraySafe(
|
||||
object,
|
||||
RaceRowsOfSeriesDataExtensionSerializer.FIELD_FLEETS)) {
|
||||
JSONObject fleetJson = Helpers.toJSONObjectSafe(fleetObject);
|
||||
rows.add(raceRowDeserializer.deserialize(fleetJson));
|
||||
}
|
||||
|
||||
return new SeriesWithRowsImpl(name, rows, isMedal);
|
||||
}
|
||||
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.deserialization.impl;
|
||||
package com.sap.sailing.racecommittee.app.deserialization.impl;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
+2
-3
@@ -2,13 +2,12 @@ package com.sap.sailing.racecommittee.app.domain;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.sap.sailing.domain.base.FleetWithRaceNames;
|
||||
import com.sap.sailing.domain.base.RaceGroup;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.SeriesData;
|
||||
|
||||
public interface FleetIdentifier {
|
||||
|
||||
public FleetWithRaceNames getFleet();
|
||||
public Fleet getFleet();
|
||||
|
||||
public SeriesData getSeries();
|
||||
|
||||
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package com.sap.sailing.racecommittee.app.domain;
|
||||
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.common.Named;
|
||||
|
||||
public interface RaceGroup extends Named {
|
||||
|
||||
public CourseArea getDefaultCourseArea();
|
||||
|
||||
public Iterable<SeriesWithRows> getSeries();
|
||||
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
package com.sap.sailing.racecommittee.app.domain;
|
||||
|
||||
import com.sap.sailing.domain.base.RaceRow;
|
||||
import com.sap.sailing.domain.base.SeriesData;
|
||||
|
||||
public interface SeriesWithRows extends SeriesData {
|
||||
|
||||
public Iterable<RaceRow> getRaceRows();
|
||||
|
||||
}
|
||||
-38
@@ -1,38 +0,0 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.deserialization.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.FleetWithRaceNames;
|
||||
import com.sap.sailing.domain.base.impl.FleetWithRaceNamesImpl;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.leaderboard.FleetWithRaceNamesJsonSerializer;
|
||||
|
||||
public class FleetWithRaceNamesDeserializer implements JsonDeserializer<FleetWithRaceNames> {
|
||||
|
||||
private JsonDeserializer<Fleet> fleetDeserializer;
|
||||
|
||||
public FleetWithRaceNamesDeserializer(
|
||||
JsonDeserializer<Fleet> fleetDeserializer) {
|
||||
this.fleetDeserializer = fleetDeserializer;
|
||||
}
|
||||
public FleetWithRaceNames deserialize(JSONObject object)
|
||||
throws JsonDeserializationException {
|
||||
Fleet fleet = fleetDeserializer.deserialize(object);
|
||||
|
||||
Collection<String> raceNames = new ArrayList<String>();
|
||||
for (Object raceName : Helpers.getNestedArraySafe(
|
||||
object,
|
||||
FleetWithRaceNamesJsonSerializer.FIELD_RACES)) {
|
||||
raceNames.add(raceName.toString());
|
||||
}
|
||||
|
||||
return new FleetWithRaceNamesImpl(fleet, raceNames);
|
||||
}
|
||||
|
||||
}
|
||||
-40
@@ -1,40 +0,0 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.deserialization.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.FleetWithRaceNames;
|
||||
import com.sap.sailing.domain.base.SeriesData;
|
||||
import com.sap.sailing.racecommittee.app.domain.impl.SeriesDataImpl;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.leaderboard.FleetWithRaceNamesOfSeriesExtensionSerializer;
|
||||
|
||||
public class SeriesDataDeserializer implements JsonDeserializer<SeriesData> {
|
||||
|
||||
private JsonDeserializer<FleetWithRaceNames> fleetDeserializer;
|
||||
|
||||
public SeriesDataDeserializer(JsonDeserializer<FleetWithRaceNames> fleetDeserializer) {
|
||||
this.fleetDeserializer = fleetDeserializer;
|
||||
}
|
||||
|
||||
public SeriesData deserialize(JSONObject object)
|
||||
throws JsonDeserializationException {
|
||||
String name = object.get("name").toString();
|
||||
boolean isMedal = (Boolean) object.get("isMedal");
|
||||
|
||||
Collection<FleetWithRaceNames> fleets = new ArrayList<FleetWithRaceNames>();
|
||||
for (Object fleetObject : Helpers.getNestedArraySafe(
|
||||
object,
|
||||
FleetWithRaceNamesOfSeriesExtensionSerializer.FIELD_FLEETS)) {
|
||||
JSONObject fleetJson = Helpers.toJSONObjectSafe(fleetObject);
|
||||
fleets.add(fleetDeserializer.deserialize(fleetJson));
|
||||
}
|
||||
|
||||
return new SeriesDataImpl(name, fleets, isMedal);
|
||||
}
|
||||
|
||||
}
|
||||
+7
-7
@@ -2,28 +2,28 @@ package com.sap.sailing.racecommittee.app.domain.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.sap.sailing.domain.base.FleetWithRaceNames;
|
||||
import com.sap.sailing.domain.base.RaceGroup;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.SeriesData;
|
||||
import com.sap.sailing.racecommittee.app.domain.FleetIdentifier;
|
||||
import com.sap.sailing.racecommittee.app.domain.RaceGroup;
|
||||
|
||||
public class FleetIdentifierImpl implements FleetIdentifier {
|
||||
|
||||
private FleetWithRaceNames fleetWithRaceNames;
|
||||
private Fleet fleet;
|
||||
private SeriesData series;
|
||||
private RaceGroup raceGroup;
|
||||
|
||||
public FleetIdentifierImpl(
|
||||
FleetWithRaceNames fleetWithRaceNames,
|
||||
Fleet fleet,
|
||||
SeriesData series,
|
||||
RaceGroup raceGroup) {
|
||||
this.fleetWithRaceNames = fleetWithRaceNames;
|
||||
this.fleet = fleet;
|
||||
this.series = series;
|
||||
this.raceGroup = raceGroup;
|
||||
}
|
||||
|
||||
public FleetWithRaceNames getFleet() {
|
||||
return fleetWithRaceNames;
|
||||
public Fleet getFleet() {
|
||||
return fleet;
|
||||
}
|
||||
|
||||
public SeriesData getSeries() {
|
||||
|
||||
+6
-6
@@ -2,26 +2,26 @@ package com.sap.sailing.racecommittee.app.domain.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.sap.sailing.domain.base.FleetWithRaceNames;
|
||||
import com.sap.sailing.domain.base.RaceGroup;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.SeriesData;
|
||||
import com.sap.sailing.racecommittee.app.domain.FleetIdentifier;
|
||||
import com.sap.sailing.racecommittee.app.domain.ManagedRaceIdentifier;
|
||||
import com.sap.sailing.racecommittee.app.domain.RaceGroup;
|
||||
|
||||
public class RaceIdentifierImpl extends FleetIdentifierImpl implements ManagedRaceIdentifier {
|
||||
public class ManagedRaceIdentifierImpl extends FleetIdentifierImpl implements ManagedRaceIdentifier {
|
||||
|
||||
private String raceName;
|
||||
|
||||
public RaceIdentifierImpl(
|
||||
public ManagedRaceIdentifierImpl(
|
||||
String raceName,
|
||||
FleetWithRaceNames fleetWithRaceNames,
|
||||
Fleet fleetWithRaceNames,
|
||||
SeriesData series,
|
||||
RaceGroup raceGroup) {
|
||||
super(fleetWithRaceNames, series, raceGroup);
|
||||
this.raceName = raceName;
|
||||
}
|
||||
|
||||
public RaceIdentifierImpl(String raceName, FleetIdentifier identifier) {
|
||||
public ManagedRaceIdentifierImpl(String raceName, FleetIdentifier identifier) {
|
||||
this(raceName, identifier.getFleet(), identifier.getSeries(), identifier.getRaceGroup());
|
||||
}
|
||||
|
||||
+5
-4
@@ -2,11 +2,12 @@ package com.sap.sailing.racecommittee.app.domain.impl;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.sap.sailing.domain.base.FleetWithRaceNames;
|
||||
import com.sap.sailing.domain.base.RaceGroup;
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.SeriesData;
|
||||
import com.sap.sailing.domain.racelog.RaceLog;
|
||||
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
|
||||
import com.sap.sailing.racecommittee.app.domain.ManagedRaceIdentifier;
|
||||
import com.sap.sailing.racecommittee.app.domain.RaceGroup;
|
||||
import com.sap.sailing.racecommittee.app.domain.RaceStatus;
|
||||
|
||||
public class ManagedRaceImpl implements ManagedRace {
|
||||
@@ -16,7 +17,7 @@ public class ManagedRaceImpl implements ManagedRace {
|
||||
|
||||
private ManagedRaceIdentifier identifier;
|
||||
|
||||
public ManagedRaceImpl(ManagedRaceIdentifier identifier) {
|
||||
public ManagedRaceImpl(ManagedRaceIdentifier identifier, RaceLog raceLog) {
|
||||
this.identifier = identifier;
|
||||
}
|
||||
|
||||
@@ -32,7 +33,7 @@ public class ManagedRaceImpl implements ManagedRace {
|
||||
return getName();
|
||||
}
|
||||
|
||||
public FleetWithRaceNames getFleet() {
|
||||
public Fleet getFleet() {
|
||||
return identifier.getFleet();
|
||||
}
|
||||
|
||||
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.impl;
|
||||
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.common.impl.NamedImpl;
|
||||
import com.sap.sailing.racecommittee.app.domain.RaceGroup;
|
||||
import com.sap.sailing.racecommittee.app.domain.SeriesWithRows;
|
||||
|
||||
|
||||
public class RaceGroupImpl extends NamedImpl implements RaceGroup {
|
||||
private static final long serialVersionUID = 7760879536339600827L;
|
||||
|
||||
private final CourseArea courseArea;
|
||||
private final Iterable<SeriesWithRows> series;
|
||||
|
||||
public RaceGroupImpl(
|
||||
String name,
|
||||
CourseArea courseArea,
|
||||
Iterable<SeriesWithRows> series) {
|
||||
super(name);
|
||||
this.courseArea = courseArea;
|
||||
this.series = series;
|
||||
}
|
||||
|
||||
public CourseArea getDefaultCourseArea() {
|
||||
return courseArea;
|
||||
}
|
||||
|
||||
public Iterable<SeriesWithRows> getSeries() {
|
||||
return series;
|
||||
}
|
||||
|
||||
}
|
||||
-31
@@ -1,31 +0,0 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.impl;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.SeriesData;
|
||||
|
||||
public class SeriesDataImpl implements SeriesData {
|
||||
private static final long serialVersionUID = 8825402393444809944L;
|
||||
|
||||
private String name;
|
||||
private Iterable<? extends Fleet> fleets;
|
||||
private boolean isMedal;
|
||||
|
||||
public SeriesDataImpl(String name, Iterable<? extends Fleet> fleets, boolean isMedal) {
|
||||
this.name = name;
|
||||
this.fleets = fleets;
|
||||
this.isMedal = isMedal;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public Iterable<? extends Fleet> getFleets() {
|
||||
return fleets;
|
||||
}
|
||||
|
||||
public boolean isMedal() {
|
||||
return isMedal;
|
||||
}
|
||||
|
||||
}
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
package com.sap.sailing.racecommittee.app.domain.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
|
||||
import com.sap.sailing.domain.base.Fleet;
|
||||
import com.sap.sailing.domain.base.RaceColumnInSeries;
|
||||
import com.sap.sailing.domain.base.RaceRow;
|
||||
import com.sap.sailing.racecommittee.app.domain.SeriesWithRows;
|
||||
|
||||
public class SeriesWithRowsImpl implements SeriesWithRows {
|
||||
private static final long serialVersionUID = 8825402393444809944L;
|
||||
|
||||
private String name;
|
||||
private Iterable<RaceRow> raceRows;
|
||||
private boolean isMedal;
|
||||
|
||||
public SeriesWithRowsImpl(String name, Iterable<RaceRow> raceRows, boolean isMedal) {
|
||||
this.name = name;
|
||||
this.raceRows = raceRows;
|
||||
this.isMedal = isMedal;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public boolean isMedal() {
|
||||
return isMedal;
|
||||
}
|
||||
|
||||
public Iterable<RaceRow> getRaceRows() {
|
||||
return raceRows;
|
||||
}
|
||||
|
||||
public Iterable<? extends Fleet> getFleets() {
|
||||
Collection<Fleet> fleets = new ArrayList<Fleet>();
|
||||
for (RaceRow row : raceRows) {
|
||||
fleets.add(row.getFleet());
|
||||
}
|
||||
return fleets;
|
||||
}
|
||||
|
||||
public Iterable<? extends RaceColumnInSeries> getRaceColumns() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
-14
@@ -2,7 +2,6 @@ package com.sap.sailing.racecommittee.app.ui.activities;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
import android.app.AlertDialog;
|
||||
import android.app.FragmentTransaction;
|
||||
@@ -15,14 +14,12 @@ import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.racelog.RaceLogEvent;
|
||||
import com.sap.sailing.racecommittee.app.AppConstants;
|
||||
import com.sap.sailing.racecommittee.app.R;
|
||||
import com.sap.sailing.racecommittee.app.data.DataManager;
|
||||
import com.sap.sailing.racecommittee.app.data.ReadonlyDataManager;
|
||||
import com.sap.sailing.racecommittee.app.data.clients.LoadClient;
|
||||
import com.sap.sailing.racecommittee.app.domain.ManagedRace;
|
||||
import com.sap.sailing.racecommittee.app.logging.ExLog;
|
||||
import com.sap.sailing.racecommittee.app.ui.fragments.list.ManagedRaceListFragment;
|
||||
|
||||
public class RacingActivity extends TwoPaneActivity /*implements ResetTimeListener,
|
||||
@@ -122,17 +119,6 @@ StartModeSelectionListener, PathfinderSelectionListener, GateLineOpeningTimeSele
|
||||
private void onLoadRacesSucceded(Serializable courseAreaId, Collection<ManagedRace> data) {
|
||||
setProgressBarIndeterminateVisibility(false);
|
||||
|
||||
dataManager.loadRaceLogs(data, new LoadClient<Map<ManagedRace,Collection<RaceLogEvent>>>() {
|
||||
|
||||
public void onLoadSucceded(Map<ManagedRace, Collection<RaceLogEvent>> data) {
|
||||
Toast.makeText(RacingActivity.this, "OKOKOKOK", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
|
||||
public void onLoadFailed(Exception reason) {
|
||||
ExLog.w(TAG, "Loading of race logs failed:\n" + reason.toString());
|
||||
}
|
||||
});
|
||||
|
||||
registerOnService(data);
|
||||
listFragment.setupOn(data);
|
||||
|
||||
|
||||
Reference in new issue
Block a user