mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-17 09:41:00 +00:00
# revamped the configuration system to support remote configuration of racing procedures
This commit is contained in:
1 parent
d65519922c
commit
773670d608
52 files changed
+1316
-385
No files matched your search
+14
-1
@@ -1,5 +1,8 @@
|
||||
package com.sap.sailing.domain.common.racelog;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public enum Flags {
|
||||
NONE,
|
||||
ALPHA,
|
||||
@@ -20,5 +23,15 @@ public enum Flags {
|
||||
AP,
|
||||
ESSONE,
|
||||
ESSTWO,
|
||||
ESSTHREE
|
||||
ESSTHREE;
|
||||
|
||||
public static Flags[] validValues() {
|
||||
List<Flags> validValues = new ArrayList<Flags>();
|
||||
for (Flags flag : values()) {
|
||||
if (flag != NONE) {
|
||||
validValues.add(flag);
|
||||
}
|
||||
}
|
||||
return validValues.toArray(new Flags[validValues.size()]);
|
||||
}
|
||||
}
|
||||
+5
-2
@@ -10,7 +10,10 @@ import com.sap.sailing.domain.racelog.state.racingprocedure.RacingProcedure;
|
||||
/**
|
||||
* Aggregate interface holding configuration options for all {@link RacingProcedure}s.
|
||||
*/
|
||||
public interface RacingProceduresConfiguration extends RRS26Configuration, GateStartConfiguration, ESSConfiguration,
|
||||
Serializable {
|
||||
public interface RacingProceduresConfiguration extends Serializable {
|
||||
|
||||
RRS26Configuration getRRS26Configuration();
|
||||
GateStartConfiguration getGateStartConfiguration();
|
||||
ESSConfiguration getESSConfiguration();
|
||||
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package com.sap.sailing.domain.base.configuration.impl;
|
||||
|
||||
import com.sap.sailing.domain.base.configuration.procedures.ESSConfiguration;
|
||||
|
||||
public class ESSConfigurationImpl extends RacingProcedureConfigurationImpl implements ESSConfiguration {
|
||||
|
||||
private static final long serialVersionUID = 5406098147408723197L;
|
||||
|
||||
protected ESSConfiguration copy() {
|
||||
ESSConfigurationImpl copy = (ESSConfigurationImpl) super.copy(new ESSConfigurationImpl());
|
||||
return copy;
|
||||
}
|
||||
|
||||
}
|
||||
+14
@@ -0,0 +1,14 @@
|
||||
package com.sap.sailing.domain.base.configuration.impl;
|
||||
|
||||
import com.sap.sailing.domain.base.configuration.procedures.GateStartConfiguration;
|
||||
|
||||
public class GateStartConfigurationImpl extends RacingProcedureConfigurationImpl implements GateStartConfiguration {
|
||||
|
||||
private static final long serialVersionUID = 1862408542829215027L;
|
||||
|
||||
protected GateStartConfiguration copy() {
|
||||
GateStartConfigurationImpl copy = (GateStartConfigurationImpl) super.copy(new GateStartConfigurationImpl());
|
||||
return copy;
|
||||
}
|
||||
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package com.sap.sailing.domain.base.configuration.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.base.configuration.procedures.RRS26Configuration;
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
|
||||
public class RRS26ConfigurationImpl extends RacingProcedureConfigurationImpl implements
|
||||
RRS26Configuration {
|
||||
|
||||
private static final long serialVersionUID = 260941807346644026L;
|
||||
|
||||
private List<Flags> startModeFlags;
|
||||
|
||||
@Override
|
||||
public List<Flags> getStartModeFlags() {
|
||||
return startModeFlags;
|
||||
}
|
||||
|
||||
public void setStartModeFlags(List<Flags> flags) {
|
||||
this.startModeFlags = flags;
|
||||
}
|
||||
|
||||
protected RRS26Configuration copy() {
|
||||
RRS26ConfigurationImpl copy = (RRS26ConfigurationImpl) super.copy(new RRS26ConfigurationImpl());
|
||||
copy.setStartModeFlags(startModeFlags);
|
||||
return copy;
|
||||
}
|
||||
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
package com.sap.sailing.domain.base.configuration.impl;
|
||||
|
||||
import com.sap.sailing.domain.base.configuration.RacingProcedureConfiguration;
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
|
||||
public class RacingProcedureConfigurationImpl implements RacingProcedureConfiguration {
|
||||
|
||||
private static final long serialVersionUID = 8501755084811977792L;
|
||||
|
||||
private Flags classFlag;
|
||||
private Boolean hasInidividualRecall;@Override
|
||||
|
||||
public Flags getClassFlag() {
|
||||
return classFlag;
|
||||
}
|
||||
|
||||
public void setClassFlag(Flags classFlag) {
|
||||
this.classFlag = classFlag;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean hasInidividualRecall() {
|
||||
return hasInidividualRecall;
|
||||
}
|
||||
|
||||
public void setHasInidividualRecall(Boolean hasInidividualRecall) {
|
||||
this.hasInidividualRecall = hasInidividualRecall;
|
||||
}
|
||||
|
||||
protected RacingProcedureConfiguration copy() {
|
||||
return copy(new RacingProcedureConfigurationImpl());
|
||||
}
|
||||
|
||||
protected RacingProcedureConfiguration copy(RacingProcedureConfigurationImpl target) {
|
||||
target.setClassFlag(this.getClassFlag());
|
||||
target.setHasInidividualRecall(this.hasInidividualRecall());
|
||||
return target;
|
||||
}
|
||||
|
||||
}
|
||||
+24
-29
@@ -1,55 +1,50 @@
|
||||
package com.sap.sailing.domain.base.configuration.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.base.configuration.RacingProceduresConfiguration;
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
import com.sap.sailing.domain.base.configuration.procedures.ESSConfiguration;
|
||||
import com.sap.sailing.domain.base.configuration.procedures.GateStartConfiguration;
|
||||
import com.sap.sailing.domain.base.configuration.procedures.RRS26Configuration;
|
||||
|
||||
public class RacingProceduresConfigurationImpl implements RacingProceduresConfiguration {
|
||||
|
||||
private static final long serialVersionUID = 8501755084811977792L;
|
||||
|
||||
private Flags classFlag;
|
||||
private Boolean hasInidividualRecall;
|
||||
|
||||
private List<Flags> startModeFlags;
|
||||
|
||||
// GENERAL
|
||||
private RRS26Configuration rrs26Configuration;
|
||||
private GateStartConfiguration gateStartConfiguration;
|
||||
private ESSConfiguration essConfiguration;
|
||||
|
||||
@Override
|
||||
public Flags getClassFlag() {
|
||||
return classFlag;
|
||||
public RRS26Configuration getRRS26Configuration() {
|
||||
return rrs26Configuration;
|
||||
}
|
||||
|
||||
public void setClassFlag(Flags classFlag) {
|
||||
this.classFlag = classFlag;
|
||||
|
||||
public void setRRS26Configuration(RRS26Configuration rrs26Configuration) {
|
||||
this.rrs26Configuration = rrs26Configuration;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean hasInidividualRecall() {
|
||||
return hasInidividualRecall;
|
||||
public GateStartConfiguration getGateStartConfiguration() {
|
||||
return gateStartConfiguration;
|
||||
}
|
||||
|
||||
public void setHasInidividualRecall(Boolean hasInidividualRecall) {
|
||||
this.hasInidividualRecall = hasInidividualRecall;
|
||||
public void setGateStartConfiguration(GateStartConfiguration gateStartConfiguration) {
|
||||
this.gateStartConfiguration = gateStartConfiguration;
|
||||
}
|
||||
|
||||
// RRS26
|
||||
|
||||
@Override
|
||||
public List<Flags> getStartModeFlags() {
|
||||
return startModeFlags;
|
||||
}
|
||||
|
||||
public void setStartModeFlags(List<Flags> flags) {
|
||||
this.startModeFlags = flags;
|
||||
public ESSConfiguration getESSConfiguration() {
|
||||
return essConfiguration;
|
||||
}
|
||||
|
||||
public void setESSConfiguration(ESSConfiguration essConfiguration) {
|
||||
this.essConfiguration = essConfiguration;
|
||||
}
|
||||
|
||||
protected RacingProceduresConfiguration copy() {
|
||||
RacingProceduresConfigurationImpl copy = new RacingProceduresConfigurationImpl();
|
||||
copy.setClassFlag(classFlag);
|
||||
copy.setHasInidividualRecall(hasInidividualRecall);
|
||||
copy.setStartModeFlags(startModeFlags);
|
||||
copy.setRRS26Configuration(rrs26Configuration);
|
||||
copy.setGateStartConfiguration(gateStartConfiguration);
|
||||
copy.setESSConfiguration(essConfiguration);
|
||||
return copy;
|
||||
}
|
||||
|
||||
|
||||
+9
-2
@@ -3,9 +3,11 @@ package com.sap.sailing.domain.base.racegroup;
|
||||
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.configuration.RacingProceduresConfiguration;
|
||||
import com.sap.sailing.domain.common.CourseDesignerMode;
|
||||
import com.sap.sailing.domain.common.Named;
|
||||
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
|
||||
import com.sap.sailing.domain.racelog.state.racingprocedure.RacingProcedure;
|
||||
|
||||
/**
|
||||
* A {@link RaceGroup} is an abstract representation of a set of races managed in fleets and series.
|
||||
@@ -44,12 +46,17 @@ public interface RaceGroup extends Named {
|
||||
public Iterable<SeriesWithRows> getSeries();
|
||||
|
||||
/**
|
||||
* Gets the default {@link RacingProcedureType} of this RaceGroup's races.
|
||||
* Gets the default {@link RacingProcedureType} of this {@link RaceGroup}'s races.
|
||||
*/
|
||||
public RacingProcedureType getDefaultRacingProcedureType();
|
||||
|
||||
/**
|
||||
* Gets the default {@link CourseDesignerMode} of this RaceGroup's races.
|
||||
* Gets the default {@link CourseDesignerMode} of this {@link RaceGroup}'s races.
|
||||
*/
|
||||
public CourseDesignerMode getDefaultCourseDesignerMode();
|
||||
|
||||
/**
|
||||
* Gets configuration objects for {@link RacingProcedure}s of this {@link RaceGroup}'s races.
|
||||
*/
|
||||
public RacingProceduresConfiguration getRacingProceduresConfiguration();
|
||||
}
|
||||
+10
-1
@@ -2,6 +2,7 @@ package com.sap.sailing.domain.base.racegroup.impl;
|
||||
|
||||
import com.sap.sailing.domain.base.BoatClass;
|
||||
import com.sap.sailing.domain.base.CourseArea;
|
||||
import com.sap.sailing.domain.base.configuration.RacingProceduresConfiguration;
|
||||
import com.sap.sailing.domain.base.racegroup.RaceGroup;
|
||||
import com.sap.sailing.domain.base.racegroup.SeriesWithRows;
|
||||
import com.sap.sailing.domain.common.CourseDesignerMode;
|
||||
@@ -17,15 +18,18 @@ public class RaceGroupImpl extends NamedImpl implements RaceGroup {
|
||||
private final Iterable<SeriesWithRows> series;
|
||||
private final RacingProcedureType defaultRacingProcedureType;
|
||||
private final CourseDesignerMode defaultCourseDesignerMode;
|
||||
private final RacingProceduresConfiguration proceduresConfiguration;
|
||||
|
||||
public RaceGroupImpl(String name, BoatClass boatClass, CourseArea courseArea, Iterable<SeriesWithRows> series,
|
||||
RacingProcedureType defaultRacingProcedureType, CourseDesignerMode defaultCourseDesignerMode) {
|
||||
RacingProcedureType defaultRacingProcedureType, CourseDesignerMode defaultCourseDesignerMode,
|
||||
RacingProceduresConfiguration proceduresConfiguration) {
|
||||
super(name);
|
||||
this.boatClass = boatClass;
|
||||
this.courseArea = courseArea;
|
||||
this.series = series;
|
||||
this.defaultRacingProcedureType = defaultRacingProcedureType;
|
||||
this.defaultCourseDesignerMode = defaultCourseDesignerMode;
|
||||
this.proceduresConfiguration = proceduresConfiguration;
|
||||
}
|
||||
|
||||
public CourseArea getDefaultCourseArea() {
|
||||
@@ -50,4 +54,9 @@ public class RaceGroupImpl extends NamedImpl implements RaceGroup {
|
||||
return defaultCourseDesignerMode;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RacingProceduresConfiguration getRacingProceduresConfiguration() {
|
||||
return proceduresConfiguration;
|
||||
}
|
||||
|
||||
}
|
||||
+3
-3
@@ -27,11 +27,11 @@ public class ReadonlyRacingProcedureFactory implements RacingProcedureFactory {
|
||||
RacingProceduresConfiguration loadedConfiguration = configuration.load();
|
||||
switch (type) {
|
||||
case ESS:
|
||||
return new ESSRacingProcedureImpl(raceLog, author, factory, loadedConfiguration);
|
||||
return new ESSRacingProcedureImpl(raceLog, author, factory, loadedConfiguration.getESSConfiguration());
|
||||
case GateStart:
|
||||
return new GateStartRacingProcedureImpl(raceLog, author, factory, loadedConfiguration);
|
||||
return new GateStartRacingProcedureImpl(raceLog, author, factory, loadedConfiguration.getGateStartConfiguration());
|
||||
case RRS26:
|
||||
return new RRS26RacingProcedureImpl(raceLog, author, factory, loadedConfiguration);
|
||||
return new RRS26RacingProcedureImpl(raceLog, author, factory, loadedConfiguration.getRRS26Configuration());
|
||||
default:
|
||||
throw new UnsupportedOperationException("Unknown racing procedure " + type.toString());
|
||||
}
|
||||
|
||||
+2
-15
@@ -27,7 +27,6 @@ import com.google.gwt.user.cellview.client.Column;
|
||||
import com.google.gwt.user.cellview.client.ColumnSortEvent;
|
||||
import com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler;
|
||||
import com.google.gwt.user.cellview.client.TextColumn;
|
||||
import com.google.gwt.user.client.rpc.AsyncCallback;
|
||||
import com.google.gwt.user.client.ui.Anchor;
|
||||
import com.google.gwt.user.client.ui.Button;
|
||||
import com.google.gwt.user.client.ui.DialogBox;
|
||||
@@ -417,26 +416,14 @@ public class RegattaRaceStatesComponent extends SimplePanel implements Component
|
||||
raceCourseColumn.setFieldUpdater(new FieldUpdater<RegattaOverviewEntryDTO, SafeHtml>() {
|
||||
@Override
|
||||
public void update(int index, RegattaOverviewEntryDTO object, SafeHtml value) {
|
||||
/*RaceCourseDTO courseDTO = object.raceInfo.lastCourseDesign;
|
||||
RaceCourseDTO courseDTO = object.raceInfo.lastCourseDesign;
|
||||
if (courseDTO != null && courseDTO.waypoints.size() > 0) {
|
||||
DialogBox courseViewDialogBox = createCourseViewDialogBox(object.raceInfo);
|
||||
courseViewDialogBox.center();
|
||||
courseViewDialogBox.setGlassEnabled(true);
|
||||
courseViewDialogBox.setAnimationEnabled(true);
|
||||
courseViewDialogBox.show();
|
||||
} */
|
||||
sailingService.fakeNewStartTime(object, new Date(), new AsyncCallback<Void>() {
|
||||
|
||||
@Override
|
||||
public void onSuccess(Void result) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Throwable caught) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
raceCourseColumn.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
|
||||
|
||||
+22
-21
@@ -16,32 +16,33 @@ import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.DeviceConfigurationJsonSerializer;
|
||||
|
||||
public class DeviceConfigurationJsonDeserializer implements JsonDeserializer<DeviceConfiguration> {
|
||||
|
||||
|
||||
public static DeviceConfigurationJsonDeserializer create() {
|
||||
return new DeviceConfigurationJsonDeserializer(new RacingProceduresConfigurationJsonDeserializer());
|
||||
return new DeviceConfigurationJsonDeserializer(RacingProceduresConfigurationJsonDeserializer.create());
|
||||
}
|
||||
|
||||
private final JsonDeserializer<? extends RacingProceduresConfiguration> proceduresDeserializer;
|
||||
|
||||
public DeviceConfigurationJsonDeserializer(JsonDeserializer<? extends RacingProceduresConfiguration> proceduresDeserializer) {
|
||||
private final JsonDeserializer<RacingProceduresConfiguration> proceduresDeserializer;
|
||||
|
||||
public DeviceConfigurationJsonDeserializer(JsonDeserializer<RacingProceduresConfiguration> proceduresDeserializer) {
|
||||
this.proceduresDeserializer = proceduresDeserializer;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public DeviceConfiguration deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
|
||||
|
||||
RacingProceduresConfiguration proceduresConfiguration = null;
|
||||
|
||||
|
||||
if (object.containsKey(DeviceConfigurationJsonSerializer.FIELD_PROCEDURES_CONFIGURATION)) {
|
||||
JSONObject proceduresObject =
|
||||
Helpers.getNestedObjectSafe(object, DeviceConfigurationJsonSerializer.FIELD_PROCEDURES_CONFIGURATION);
|
||||
JSONObject proceduresObject = Helpers.getNestedObjectSafe(object,
|
||||
DeviceConfigurationJsonSerializer.FIELD_PROCEDURES_CONFIGURATION);
|
||||
proceduresConfiguration = proceduresDeserializer.deserialize(proceduresObject);
|
||||
}
|
||||
|
||||
|
||||
DeviceConfigurationImpl configuration = createConfiguration(proceduresConfiguration);
|
||||
|
||||
if (object.containsKey(DeviceConfigurationJsonSerializer.FIELD_COURSE_AREA_NAMES)) {
|
||||
JSONArray courseAreaNames = Helpers.getNestedArraySafe(object, DeviceConfigurationJsonSerializer.FIELD_COURSE_AREA_NAMES);
|
||||
JSONArray courseAreaNames = Helpers.getNestedArraySafe(object,
|
||||
DeviceConfigurationJsonSerializer.FIELD_COURSE_AREA_NAMES);
|
||||
List<String> allowedCourseAreaNames = new ArrayList<String>();
|
||||
for (Object name : courseAreaNames) {
|
||||
allowedCourseAreaNames.add(name.toString());
|
||||
@@ -53,23 +54,23 @@ public class DeviceConfigurationJsonDeserializer implements JsonDeserializer<Dev
|
||||
String resultsRecipient = (String) object.get(DeviceConfigurationJsonSerializer.FIELD_RESULTS_RECIPIENT);
|
||||
configuration.setResultsMailRecipient(resultsRecipient);
|
||||
}
|
||||
|
||||
|
||||
if (object.containsKey(DeviceConfigurationJsonSerializer.FIELD_DEFAULT_RACING_PROCEDURE_TYPE)) {
|
||||
RacingProcedureType type = RacingProcedureType.valueOf(
|
||||
object.get(DeviceConfigurationJsonSerializer.FIELD_DEFAULT_RACING_PROCEDURE_TYPE).toString());
|
||||
RacingProcedureType type = RacingProcedureType.valueOf(object.get(
|
||||
DeviceConfigurationJsonSerializer.FIELD_DEFAULT_RACING_PROCEDURE_TYPE).toString());
|
||||
configuration.setDefaultRacingProcedureType(type);
|
||||
}
|
||||
|
||||
|
||||
if (object.containsKey(DeviceConfigurationJsonSerializer.FIELD_DEFAULT_COURSE_DESIGNER_MODE)) {
|
||||
CourseDesignerMode mode = CourseDesignerMode.valueOf(
|
||||
object.get(DeviceConfigurationJsonSerializer.FIELD_DEFAULT_COURSE_DESIGNER_MODE).toString());
|
||||
CourseDesignerMode mode = CourseDesignerMode.valueOf(object.get(
|
||||
DeviceConfigurationJsonSerializer.FIELD_DEFAULT_COURSE_DESIGNER_MODE).toString());
|
||||
configuration.setDefaultCourseDesignerMode(mode);
|
||||
}
|
||||
|
||||
if (object.containsKey(DeviceConfigurationJsonSerializer.FIELD_BY_VALUE_COURSE_DESIGNER_COURSE_NAMES)) {
|
||||
JSONArray namesArray = Helpers.getNestedArraySafe(object,
|
||||
JSONArray namesArray = Helpers.getNestedArraySafe(object,
|
||||
DeviceConfigurationJsonSerializer.FIELD_BY_VALUE_COURSE_DESIGNER_COURSE_NAMES);
|
||||
|
||||
|
||||
List<String> names = new ArrayList<String>();
|
||||
for (Object name : namesArray) {
|
||||
names.add(name.toString());
|
||||
@@ -79,7 +80,7 @@ public class DeviceConfigurationJsonDeserializer implements JsonDeserializer<Dev
|
||||
|
||||
return configuration;
|
||||
}
|
||||
|
||||
|
||||
protected DeviceConfigurationImpl createConfiguration(RacingProceduresConfiguration proceduresConfiguration) {
|
||||
return new DeviceConfigurationImpl(proceduresConfiguration);
|
||||
}
|
||||
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.configuration.RacingProcedureConfiguration;
|
||||
import com.sap.sailing.domain.base.configuration.impl.ESSConfigurationImpl;
|
||||
import com.sap.sailing.domain.base.configuration.procedures.ESSConfiguration;
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
|
||||
public class ESSConfigurationJsonDeserializer extends RacingProcedureConfigurationJsonDeserializer implements
|
||||
JsonDeserializer<RacingProcedureConfiguration> {
|
||||
|
||||
public static ESSConfigurationJsonDeserializer create() {
|
||||
return new ESSConfigurationJsonDeserializer();
|
||||
}
|
||||
|
||||
public ESSConfigurationJsonDeserializer() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ESSConfiguration deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
return (ESSConfiguration) super.deserialize(object);
|
||||
}
|
||||
|
||||
protected ESSConfiguration createResult(JSONObject object, Flags classFlag, Boolean inidividualRecall)
|
||||
throws JsonDeserializationException {
|
||||
ESSConfigurationImpl result = new ESSConfigurationImpl();
|
||||
result.setClassFlag(classFlag);
|
||||
result.setHasInidividualRecall(inidividualRecall);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.configuration.RacingProcedureConfiguration;
|
||||
import com.sap.sailing.domain.base.configuration.impl.GateStartConfigurationImpl;
|
||||
import com.sap.sailing.domain.base.configuration.procedures.GateStartConfiguration;
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
|
||||
|
||||
public class GateStartConfigurationJsonDeserializer extends RacingProcedureConfigurationJsonDeserializer implements JsonDeserializer<RacingProcedureConfiguration> {
|
||||
|
||||
public static GateStartConfigurationJsonDeserializer create() {
|
||||
return new GateStartConfigurationJsonDeserializer();
|
||||
}
|
||||
|
||||
|
||||
public GateStartConfigurationJsonDeserializer() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public GateStartConfiguration deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
return (GateStartConfiguration) super.deserialize(object);
|
||||
}
|
||||
|
||||
protected GateStartConfiguration createResult(JSONObject object, Flags classFlag, Boolean inidividualRecall) throws JsonDeserializationException {
|
||||
GateStartConfigurationImpl result = new GateStartConfigurationImpl();
|
||||
result.setClassFlag(classFlag);
|
||||
result.setHasInidividualRecall(inidividualRecall);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.impl;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.sap.sailing.domain.base.configuration.impl.RRS26ConfigurationImpl;
|
||||
import com.sap.sailing.domain.base.configuration.procedures.RRS26Configuration;
|
||||
import com.sap.sailing.domain.base.configuration.RacingProcedureConfiguration;
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.RRS26ConfigurationJsonSerializer;
|
||||
|
||||
public class RRS26ConfigurationJsonDeserializer extends RacingProcedureConfigurationJsonDeserializer implements
|
||||
JsonDeserializer<RacingProcedureConfiguration> {
|
||||
|
||||
public static RRS26ConfigurationJsonDeserializer create() {
|
||||
return new RRS26ConfigurationJsonDeserializer();
|
||||
}
|
||||
|
||||
public RRS26ConfigurationJsonDeserializer() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public RRS26Configuration deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
return (RRS26Configuration) super.deserialize(object);
|
||||
}
|
||||
|
||||
protected RRS26Configuration createResult(JSONObject object, Flags classFlag, Boolean inidividualRecall)
|
||||
throws JsonDeserializationException {
|
||||
List<Flags> startModeFlags = null;
|
||||
if (object.containsKey(RRS26ConfigurationJsonSerializer.FIELD_START_MODE_FLAGS)) {
|
||||
startModeFlags = new ArrayList<Flags>();
|
||||
JSONArray objects = Helpers.getNestedArraySafe(object,
|
||||
RRS26ConfigurationJsonSerializer.FIELD_START_MODE_FLAGS);
|
||||
for (Object value : objects) {
|
||||
startModeFlags.add(Flags.valueOf(value.toString()));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
RRS26ConfigurationImpl result = new RRS26ConfigurationImpl();
|
||||
result.setClassFlag(classFlag);
|
||||
result.setHasInidividualRecall(inidividualRecall);
|
||||
result.setStartModeFlags(startModeFlags);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.configuration.RacingProcedureConfiguration;
|
||||
import com.sap.sailing.domain.base.configuration.impl.RacingProcedureConfigurationImpl;
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.RacingProcedureConfigurationJsonSerializer;
|
||||
|
||||
public class RacingProcedureConfigurationJsonDeserializer implements JsonDeserializer<RacingProcedureConfiguration> {
|
||||
|
||||
public static RacingProcedureConfigurationJsonDeserializer create() {
|
||||
return new RacingProcedureConfigurationJsonDeserializer();
|
||||
}
|
||||
|
||||
public RacingProcedureConfigurationJsonDeserializer() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public RacingProcedureConfiguration deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
|
||||
Boolean inidividualRecall = null;
|
||||
if (object.containsKey(RacingProcedureConfigurationJsonSerializer.FIELD_INIDIVIDUAL_RECALL)) {
|
||||
inidividualRecall = ((Boolean) object
|
||||
.get(RacingProcedureConfigurationJsonSerializer.FIELD_INIDIVIDUAL_RECALL));
|
||||
}
|
||||
|
||||
Flags classFlag = null;
|
||||
if (object.containsKey(RacingProcedureConfigurationJsonSerializer.FIELD_CLASS_FLAG)) {
|
||||
classFlag = Flags.valueOf(object.get(RacingProcedureConfigurationJsonSerializer.FIELD_CLASS_FLAG)
|
||||
.toString());
|
||||
}
|
||||
|
||||
return createResult(object, inidividualRecall, classFlag);
|
||||
}
|
||||
|
||||
protected RacingProcedureConfiguration createResult(JSONObject object, Boolean inidividualRecall, Flags classFlag)
|
||||
throws JsonDeserializationException{
|
||||
RacingProcedureConfigurationImpl result = new RacingProcedureConfigurationImpl();
|
||||
result.setHasInidividualRecall(inidividualRecall);
|
||||
result.setClassFlag(classFlag);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+32
-19
@@ -1,42 +1,55 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.configuration.RacingProceduresConfiguration;
|
||||
import com.sap.sailing.domain.base.configuration.impl.RacingProceduresConfigurationImpl;
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
import com.sap.sailing.domain.base.configuration.procedures.ESSConfiguration;
|
||||
import com.sap.sailing.domain.base.configuration.procedures.GateStartConfiguration;
|
||||
import com.sap.sailing.domain.base.configuration.procedures.RRS26Configuration;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.RacingProceduresConfigurationJsonSerializer;
|
||||
|
||||
public class RacingProceduresConfigurationJsonDeserializer implements JsonDeserializer<RacingProceduresConfiguration> {
|
||||
|
||||
private RRS26ConfigurationJsonDeserializer rrs26Deserializer;
|
||||
private GateStartConfigurationJsonDeserializer gateStartDeserializer;
|
||||
private ESSConfigurationJsonDeserializer essDeserializer;
|
||||
|
||||
public static RacingProceduresConfigurationJsonDeserializer create() {
|
||||
return new RacingProceduresConfigurationJsonDeserializer(RRS26ConfigurationJsonDeserializer.create(),
|
||||
GateStartConfigurationJsonDeserializer.create(), ESSConfigurationJsonDeserializer.create());
|
||||
}
|
||||
|
||||
public RacingProceduresConfigurationJsonDeserializer(RRS26ConfigurationJsonDeserializer rrs26,
|
||||
GateStartConfigurationJsonDeserializer gateStart, ESSConfigurationJsonDeserializer ess) {
|
||||
this.rrs26Deserializer = rrs26;
|
||||
this.gateStartDeserializer = gateStart;
|
||||
this.essDeserializer = ess;
|
||||
}
|
||||
|
||||
@Override
|
||||
public RacingProceduresConfiguration deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
RacingProceduresConfigurationImpl configuration = createConfiguration();
|
||||
|
||||
if (object.containsKey(RacingProceduresConfigurationJsonSerializer.FIELD_HAS_XRAY)) {
|
||||
Boolean hasIndividualRecall = (Boolean) object.get(RacingProceduresConfigurationJsonSerializer.FIELD_HAS_XRAY);
|
||||
configuration.setHasInidividualRecall(hasIndividualRecall);
|
||||
if (object.containsKey(RacingProceduresConfigurationJsonSerializer.FIELD_RRS26)) {
|
||||
RRS26Configuration rrs26Configuration = rrs26Deserializer.deserialize(
|
||||
Helpers.getNestedObjectSafe(object, RacingProceduresConfigurationJsonSerializer.FIELD_RRS26));
|
||||
configuration.setRRS26Configuration(rrs26Configuration);
|
||||
}
|
||||
|
||||
if (object.containsKey(RacingProceduresConfigurationJsonSerializer.FIELD_CLASS_FLAG)) {
|
||||
Flags classFlag = Flags.valueOf(object.get(RacingProceduresConfigurationJsonSerializer.FIELD_CLASS_FLAG).toString());
|
||||
configuration.setClassFlag(classFlag);
|
||||
if (object.containsKey(RacingProceduresConfigurationJsonSerializer.FIELD_GATE_START)) {
|
||||
GateStartConfiguration gateStartConfiguration =
|
||||
gateStartDeserializer.deserialize(
|
||||
Helpers.getNestedObjectSafe(object, RacingProceduresConfigurationJsonSerializer.FIELD_GATE_START));
|
||||
configuration.setGateStartConfiguration(gateStartConfiguration);
|
||||
}
|
||||
|
||||
if (object.containsKey(RacingProceduresConfigurationJsonSerializer.FIELD_START_MODE_FLAGS)) {
|
||||
List<Flags> result = new ArrayList<Flags>();
|
||||
JSONArray startModeFlags = Helpers.getNestedArraySafe(object,
|
||||
RacingProceduresConfigurationJsonSerializer.FIELD_START_MODE_FLAGS);
|
||||
for (Object startModeFlag : startModeFlags) {
|
||||
result.add(Flags.valueOf(startModeFlag.toString()));
|
||||
}
|
||||
configuration.setStartModeFlags(result);
|
||||
if (object.containsKey(RacingProceduresConfigurationJsonSerializer.FIELD_ESS)) {
|
||||
ESSConfiguration essConfiguration = essDeserializer.deserialize(
|
||||
Helpers.getNestedObjectSafe(object, RacingProceduresConfigurationJsonSerializer.FIELD_ESS));
|
||||
configuration.setESSConfiguration(essConfiguration);
|
||||
}
|
||||
|
||||
return configuration;
|
||||
|
||||
+40
-15
@@ -7,6 +7,8 @@ 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.SharedDomainFactory;
|
||||
import com.sap.sailing.domain.base.configuration.RacingProceduresConfiguration;
|
||||
import com.sap.sailing.domain.base.racegroup.RaceGroup;
|
||||
import com.sap.sailing.domain.base.racegroup.SeriesWithRows;
|
||||
import com.sap.sailing.domain.base.racegroup.impl.RaceGroupImpl;
|
||||
@@ -14,19 +16,35 @@ import com.sap.sailing.domain.common.CourseDesignerMode;
|
||||
import com.sap.sailing.domain.common.racelog.RacingProcedureType;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.BoatClassJsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.ColorDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.FleetDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.impl.Helpers;
|
||||
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogDeserializer;
|
||||
import com.sap.sailing.server.gateway.deserialization.racelog.impl.RaceLogEventDeserializer;
|
||||
import com.sap.sailing.server.gateway.serialization.racegroup.impl.RaceGroupJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.racegroup.impl.SeriesWithRowsOfRaceGroupSerializer;
|
||||
|
||||
public class RaceGroupDeserializer implements JsonDeserializer<RaceGroup> {
|
||||
|
||||
private JsonDeserializer<BoatClass> boatClassDeserializer;
|
||||
private JsonDeserializer<SeriesWithRows> seriesDeserializer;
|
||||
private final JsonDeserializer<BoatClass> boatClassDeserializer;
|
||||
private final JsonDeserializer<SeriesWithRows> seriesDeserializer;
|
||||
private final JsonDeserializer<RacingProceduresConfiguration> proceduresDeserializer;
|
||||
|
||||
public static RaceGroupDeserializer create(SharedDomainFactory domainFactory,
|
||||
JsonDeserializer<RacingProceduresConfiguration> proceduresDeserializer) {
|
||||
return new RaceGroupDeserializer(new BoatClassJsonDeserializer(domainFactory), new SeriesWithRowsDeserializer(
|
||||
new RaceRowDeserializer(new FleetDeserializer(new ColorDeserializer()), new RaceCellDeserializer(
|
||||
new RaceLogDeserializer(RaceLogEventDeserializer.create(domainFactory))))),
|
||||
proceduresDeserializer);
|
||||
}
|
||||
|
||||
public RaceGroupDeserializer(JsonDeserializer<BoatClass> boatClassDeserializer,
|
||||
JsonDeserializer<SeriesWithRows> seriesDeserializer) {
|
||||
JsonDeserializer<SeriesWithRows> seriesDeserializer,
|
||||
JsonDeserializer<RacingProceduresConfiguration> proceduresDeserializer) {
|
||||
this.boatClassDeserializer = boatClassDeserializer;
|
||||
this.seriesDeserializer = seriesDeserializer;
|
||||
this.proceduresDeserializer = proceduresDeserializer;
|
||||
}
|
||||
|
||||
public RaceGroup deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
@@ -35,32 +53,39 @@ public class RaceGroupDeserializer implements JsonDeserializer<RaceGroup> {
|
||||
CourseArea courseArea = null;
|
||||
RacingProcedureType procedure = RacingProcedureType.UNKNOWN;
|
||||
CourseDesignerMode designer = CourseDesignerMode.UNKNOWN;
|
||||
RacingProceduresConfiguration proceduresConfiguration = null;
|
||||
|
||||
if (object.containsKey(RaceGroupJsonSerializer.FIELD_COURSE_AREA)) {
|
||||
// TODO: deserialize CourseArea ...
|
||||
// WHY should I?
|
||||
}
|
||||
|
||||
|
||||
if (object.containsKey(RaceGroupJsonSerializer.FIELD_BOAT_CLASS)) {
|
||||
boatClass = boatClassDeserializer.deserialize(Helpers.getNestedObjectSafe(object,
|
||||
RaceGroupJsonSerializer.FIELD_BOAT_CLASS));
|
||||
}
|
||||
|
||||
if (object.containsKey(RaceGroupJsonSerializer.FIELD_DEFAULT_RACING_PROCEDURE)) {
|
||||
procedure = RacingProcedureType.valueOf(
|
||||
object.get(RaceGroupJsonSerializer.FIELD_DEFAULT_RACING_PROCEDURE).toString());
|
||||
}
|
||||
|
||||
if (object.containsKey(RaceGroupJsonSerializer.FIELD_DEFAULT_COURSE_DESIGNER)) {
|
||||
designer = CourseDesignerMode.valueOf(
|
||||
object.get(RaceGroupJsonSerializer.FIELD_DEFAULT_COURSE_DESIGNER).toString());
|
||||
}
|
||||
|
||||
Collection<SeriesWithRows> series = new ArrayList<SeriesWithRows>();
|
||||
for (Object seriesObject : Helpers.getNestedArraySafe(object, SeriesWithRowsOfRaceGroupSerializer.FIELD_SERIES)) {
|
||||
JSONObject seriesJson = Helpers.toJSONObjectSafe(seriesObject);
|
||||
series.add(seriesDeserializer.deserialize(seriesJson));
|
||||
}
|
||||
return new RaceGroupImpl(name, boatClass, courseArea, series, procedure, designer);
|
||||
|
||||
if (object.containsKey(RaceGroupJsonSerializer.FIELD_DEFAULT_RACING_PROCEDURE)) {
|
||||
procedure = RacingProcedureType.valueOf(object.get(RaceGroupJsonSerializer.FIELD_DEFAULT_RACING_PROCEDURE)
|
||||
.toString());
|
||||
}
|
||||
|
||||
if (object.containsKey(RaceGroupJsonSerializer.FIELD_DEFAULT_COURSE_DESIGNER)) {
|
||||
designer = CourseDesignerMode.valueOf(object.get(RaceGroupJsonSerializer.FIELD_DEFAULT_COURSE_DESIGNER)
|
||||
.toString());
|
||||
}
|
||||
|
||||
if (object.containsKey(RaceGroupJsonSerializer.FIELD_RACING_PROCEDURES_CONFIGURATION)) {
|
||||
JSONObject value = Helpers.getNestedObjectSafe(object, RaceGroupJsonSerializer.FIELD_RACING_PROCEDURES_CONFIGURATION);
|
||||
proceduresConfiguration = proceduresDeserializer.deserialize(value);
|
||||
}
|
||||
|
||||
return new RaceGroupImpl(name, boatClass, courseArea, series, procedure, designer, proceduresConfiguration);
|
||||
}
|
||||
}
|
||||
+1
-1
@@ -17,7 +17,7 @@ public class DeviceConfigurationJsonSerializer implements JsonSerializer<DeviceC
|
||||
public static final String FIELD_PROCEDURES_CONFIGURATION = "procedures";
|
||||
|
||||
public static DeviceConfigurationJsonSerializer create() {
|
||||
return new DeviceConfigurationJsonSerializer(new RacingProceduresConfigurationJsonSerializer());
|
||||
return new DeviceConfigurationJsonSerializer(RacingProceduresConfigurationJsonSerializer.create());
|
||||
}
|
||||
|
||||
private final JsonSerializer<RacingProceduresConfiguration> proceduresSerializer;
|
||||
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package com.sap.sailing.server.gateway.serialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.configuration.RacingProcedureConfiguration;
|
||||
import com.sap.sailing.domain.base.configuration.procedures.ESSConfiguration;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class ESSConfigurationJsonSerializer extends RacingProcedureConfigurationJsonSerializer implements
|
||||
JsonSerializer<RacingProcedureConfiguration> {
|
||||
|
||||
public static ESSConfigurationJsonSerializer create() {
|
||||
return new ESSConfigurationJsonSerializer();
|
||||
}
|
||||
|
||||
public ESSConfigurationJsonSerializer() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(RacingProcedureConfiguration baseObject) {
|
||||
JSONObject result = super.serialize(baseObject);
|
||||
@SuppressWarnings("unused")
|
||||
ESSConfiguration object = (ESSConfiguration) baseObject;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
package com.sap.sailing.server.gateway.serialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.configuration.RacingProcedureConfiguration;
|
||||
import com.sap.sailing.domain.base.configuration.procedures.GateStartConfiguration;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class GateStartConfigurationJsonSerializer extends RacingProcedureConfigurationJsonSerializer implements
|
||||
JsonSerializer<RacingProcedureConfiguration> {
|
||||
|
||||
public static GateStartConfigurationJsonSerializer create() {
|
||||
return new GateStartConfigurationJsonSerializer();
|
||||
}
|
||||
|
||||
public GateStartConfigurationJsonSerializer() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(RacingProcedureConfiguration baseObject) {
|
||||
JSONObject result = super.serialize(baseObject);
|
||||
@SuppressWarnings("unused")
|
||||
GateStartConfiguration object = (GateStartConfiguration) baseObject;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
package com.sap.sailing.server.gateway.serialization.impl;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.configuration.RacingProcedureConfiguration;
|
||||
import com.sap.sailing.domain.base.configuration.procedures.RRS26Configuration;
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class RRS26ConfigurationJsonSerializer extends RacingProcedureConfigurationJsonSerializer implements
|
||||
JsonSerializer<RacingProcedureConfiguration> {
|
||||
|
||||
public static RRS26ConfigurationJsonSerializer create() {
|
||||
return new RRS26ConfigurationJsonSerializer();
|
||||
}
|
||||
|
||||
public static final String FIELD_START_MODE_FLAGS = "startModeFlags";
|
||||
|
||||
public RRS26ConfigurationJsonSerializer() {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(RacingProcedureConfiguration baseObject) {
|
||||
JSONObject result = super.serialize(baseObject);
|
||||
RRS26Configuration object = (RRS26Configuration) baseObject;
|
||||
|
||||
if (object.getStartModeFlags() != null) {
|
||||
JSONArray startModeFlags = new JSONArray();
|
||||
for (Flags item : object.getStartModeFlags()) {
|
||||
startModeFlags.add(item);
|
||||
}
|
||||
result.put(FIELD_START_MODE_FLAGS, startModeFlags);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
package com.sap.sailing.server.gateway.serialization.impl;
|
||||
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.configuration.RacingProcedureConfiguration;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class RacingProcedureConfigurationJsonSerializer implements JsonSerializer<RacingProcedureConfiguration> {
|
||||
|
||||
public static RacingProcedureConfigurationJsonSerializer create() {
|
||||
return new RacingProcedureConfigurationJsonSerializer();
|
||||
}
|
||||
|
||||
public static final String FIELD_INIDIVIDUAL_RECALL = "inidividualRecall";
|
||||
public static final String FIELD_CLASS_FLAG = "classFlag";
|
||||
|
||||
public RacingProcedureConfigurationJsonSerializer() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(RacingProcedureConfiguration object) {
|
||||
JSONObject result = new JSONObject();
|
||||
|
||||
if (object.hasInidividualRecall() != null) {
|
||||
result.put(FIELD_INIDIVIDUAL_RECALL, object.hasInidividualRecall());
|
||||
}
|
||||
|
||||
if (object.getClassFlag() != null) {
|
||||
result.put(FIELD_CLASS_FLAG, object.getClassFlag().name());
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
+28
-17
@@ -1,34 +1,45 @@
|
||||
package com.sap.sailing.server.gateway.serialization.impl;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.base.configuration.RacingProcedureConfiguration;
|
||||
import com.sap.sailing.domain.base.configuration.RacingProceduresConfiguration;
|
||||
import com.sap.sailing.domain.common.racelog.Flags;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
|
||||
public class RacingProceduresConfigurationJsonSerializer implements JsonSerializer<RacingProceduresConfiguration> {
|
||||
|
||||
public static final String FIELD_CLASS_FLAG = "classFlag";
|
||||
public static final String FIELD_START_MODE_FLAGS = "startModeFlags";
|
||||
public static final String FIELD_HAS_XRAY = "hasIndividualRecall";
|
||||
|
||||
private JsonSerializer<RacingProcedureConfiguration> rrs26Serializer;
|
||||
private JsonSerializer<RacingProcedureConfiguration> gateStartSerializer;
|
||||
private JsonSerializer<RacingProcedureConfiguration> essSerializer;
|
||||
|
||||
public static RacingProceduresConfigurationJsonSerializer create() {
|
||||
return new RacingProceduresConfigurationJsonSerializer(RRS26ConfigurationJsonSerializer.create(),
|
||||
GateStartConfigurationJsonSerializer.create(), ESSConfigurationJsonSerializer.create());
|
||||
}
|
||||
|
||||
public RacingProceduresConfigurationJsonSerializer(JsonSerializer<RacingProcedureConfiguration> rrs26,
|
||||
JsonSerializer<RacingProcedureConfiguration> gateStart, JsonSerializer<RacingProcedureConfiguration> ess) {
|
||||
this.rrs26Serializer = rrs26;
|
||||
this.gateStartSerializer = gateStart;
|
||||
this.essSerializer = ess;
|
||||
}
|
||||
|
||||
public static final String FIELD_RRS26 = "rrs26";
|
||||
public static final String FIELD_GATE_START = "gateStart";
|
||||
public static final String FIELD_ESS = "ess";
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(RacingProceduresConfiguration object) {
|
||||
JSONObject result = new JSONObject();
|
||||
if (object.hasInidividualRecall() != null) {
|
||||
result.put(FIELD_HAS_XRAY, object.hasInidividualRecall());
|
||||
if (object.getRRS26Configuration() != null) {
|
||||
result.put(FIELD_RRS26, rrs26Serializer.serialize(object.getRRS26Configuration()));
|
||||
}
|
||||
|
||||
if (object.getClassFlag() != null) {
|
||||
result.put(FIELD_CLASS_FLAG, object.getClassFlag().name());
|
||||
|
||||
if (object.getGateStartConfiguration() != null) {
|
||||
result.put(FIELD_GATE_START, gateStartSerializer.serialize(object.getGateStartConfiguration()));
|
||||
}
|
||||
if (object.getStartModeFlags() != null) {
|
||||
JSONArray startModeFlags = new JSONArray();
|
||||
for (Flags startModeFlag : object.getStartModeFlags()) {
|
||||
startModeFlags.add(startModeFlag);
|
||||
}
|
||||
result.put(FIELD_START_MODE_FLAGS, startModeFlags);
|
||||
if (object.getESSConfiguration() != null) {
|
||||
result.put(FIELD_ESS, essSerializer.serialize(object.getESSConfiguration()));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
+5
@@ -15,6 +15,7 @@ public class RaceGroupJsonSerializer extends ExtendableJsonSerializer<RaceGroup>
|
||||
public static final String FIELD_BOAT_CLASS = "boatClass";
|
||||
public static final String FIELD_DEFAULT_RACING_PROCEDURE = "defaultProcedure";
|
||||
public static final String FIELD_DEFAULT_COURSE_DESIGNER = "defaultCourseDesigner";
|
||||
public static final String FIELD_RACING_PROCEDURES_CONFIGURATION = "proceduresConfiguration";
|
||||
|
||||
private JsonSerializer<BoatClass> boatClassSerializer;
|
||||
private JsonSerializer<CourseArea> courseAreaSerializer;
|
||||
@@ -49,6 +50,10 @@ public class RaceGroupJsonSerializer extends ExtendableJsonSerializer<RaceGroup>
|
||||
if (object.getDefaultCourseDesignerMode() != null) {
|
||||
result.put(FIELD_DEFAULT_COURSE_DESIGNER, object.getDefaultCourseDesignerMode().name());
|
||||
}
|
||||
|
||||
if (object.getRacingProceduresConfiguration() != null) {
|
||||
result.put(FIELD_RACING_PROCEDURES_CONFIGURATION, object.getRacingProceduresConfiguration());
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
+2
-2
@@ -29,8 +29,8 @@ public class RaceLogFlagEventSerializer extends BaseRaceLogEventSerializer {
|
||||
RaceLogFlagEvent flagEvent = (RaceLogFlagEvent) object;
|
||||
|
||||
JSONObject result = super.serialize(flagEvent);
|
||||
result.put(FIELD_UPPER_FLAG, flagEvent.getUpperFlag().toString());
|
||||
result.put(FIELD_LOWER_FLAG, flagEvent.getLowerFlag().toString());
|
||||
result.put(FIELD_UPPER_FLAG, flagEvent.getUpperFlag().name());
|
||||
result.put(FIELD_LOWER_FLAG, flagEvent.getLowerFlag().name());
|
||||
result.put(FIELD_DISPLAYED, flagEvent.isDisplayed());
|
||||
|
||||
return result;
|
||||
|
||||
+4
-1
@@ -14,6 +14,7 @@ import com.sap.sailing.domain.base.RaceColumn;
|
||||
import com.sap.sailing.domain.base.RaceColumnInSeries;
|
||||
import com.sap.sailing.domain.base.Regatta;
|
||||
import com.sap.sailing.domain.base.Series;
|
||||
import com.sap.sailing.domain.base.configuration.RacingProceduresConfiguration;
|
||||
import com.sap.sailing.domain.base.impl.SeriesImpl;
|
||||
import com.sap.sailing.domain.base.racegroup.RaceCell;
|
||||
import com.sap.sailing.domain.base.racegroup.RaceGroup;
|
||||
@@ -46,18 +47,20 @@ public class RaceGroupFactory {
|
||||
BoatClass boatClass = null;
|
||||
RacingProcedureType defaultProcedureType = RacingProcedureType.UNKNOWN;
|
||||
CourseDesignerMode defaultCourseDesignerMode = CourseDesignerMode.UNKNOWN;
|
||||
RacingProceduresConfiguration procedureConfiguration = null;
|
||||
|
||||
if (leaderboard instanceof RegattaLeaderboard) {
|
||||
Regatta regatta = ((RegattaLeaderboard) leaderboard).getRegatta();
|
||||
boatClass = regatta.getBoatClass();
|
||||
defaultProcedureType = regatta.getDefaultRacingProcedureType();
|
||||
defaultCourseDesignerMode = regatta.getDefaultCourseDesignerMode();
|
||||
//procedureConfiguration = regatta.getRacingProceduresConfiguration();
|
||||
}
|
||||
|
||||
Iterable<SeriesWithRows> series = getSeries(leaderboard);
|
||||
|
||||
return new RaceGroupImpl(name, boatClass, courseArea, series,
|
||||
defaultProcedureType, defaultCourseDesignerMode);
|
||||
defaultProcedureType, defaultCourseDesignerMode, procedureConfiguration);
|
||||
}
|
||||
|
||||
public Iterable<SeriesWithRows> getSeries(Leaderboard leaderboard) {
|
||||
|
||||
@@ -32,5 +32,5 @@
|
||||
<booleanAttribute key="tracing" value="false"/>
|
||||
<booleanAttribute key="useCustomFeatures" value="false"/>
|
||||
<booleanAttribute key="useDefaultConfigArea" value="false"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.google.gwt.osgi@default:default,com.googlecode.java-diff-utils@default:default,com.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain.igtimiadapter*1.0.0.qualifier@default:default,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@5:true,com.sap.sailing.domain.tractracadapter.persistence@default:default,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.domain@default:default,com.sap.sailing.ess40.resultimport@default:default,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.freg.resultimport@default:default,com.sap.sailing.geocoding@default:default,com.sap.sailing.gwt.ui@4:true,com.sap.sailing.kiworesultimport@default:default,com.sap.sailing.manage2sail.resultimport@default:default,com.sap.sailing.mongodb@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.operationaltransformation@default:default,com.sap.sailing.resultimport@default:default,com.sap.sailing.sailwave.resultimport@default:default,com.sap.sailing.server.gateway.ess40@4:true,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway@5:true,com.sap.sailing.server.replication@4:true,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.server@default:default,com.sap.sailing.simulator@default:default,com.sap.sailing.udpconnector@default:default,com.sap.sailing.velum.resultimport@default:default,com.sap.sailing.www.events@4:true,com.sap.sailing.www@4:true,com.sap.sailing.xcelsiusadapter@4:true,com.sap.sailing.xrr.resultimport@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@default:default,net.sf.marineapi@default:default,org.json.simple@default:default,org.moxieapps.gwt.highcharts@default:default"/>
|
||||
<stringAttribute key="workspace_bundles" value="com.google.gwt.osgi@default:default,com.googlecode.java-diff-utils@default:default,com.mongodb.driver@default:default,com.sap.sailing.barbados.resultimport@default:default,com.sap.sailing.declination@default:default,com.sap.sailing.domain.common@default:default,com.sap.sailing.domain.igtimiadapter.persistence@default:default,com.sap.sailing.domain.igtimiadapter@default:default,com.sap.sailing.domain.persistence@default:default,com.sap.sailing.domain.shared.android@default:default,com.sap.sailing.domain.swisstimingadapter.persistence@default:default,com.sap.sailing.domain.swisstimingadapter@5:true,com.sap.sailing.domain.swisstimingreplayadapter@5:true,com.sap.sailing.domain.tractracadapter.persistence@default:default,com.sap.sailing.domain.tractracadapter@5:true,com.sap.sailing.domain@default:default,com.sap.sailing.ess40.resultimport@default:default,com.sap.sailing.expeditionconnector@default:default,com.sap.sailing.freg.resultimport@default:default,com.sap.sailing.geocoding@default:default,com.sap.sailing.gwt.ui@4:true,com.sap.sailing.kiworesultimport@default:default,com.sap.sailing.manage2sail.resultimport@default:default,com.sap.sailing.mongodb@default:default,com.sap.sailing.nmeaconnector@default:default,com.sap.sailing.operationaltransformation@default:default,com.sap.sailing.resultimport@default:default,com.sap.sailing.sailwave.resultimport@default:default,com.sap.sailing.server.gateway.ess40@4:true,com.sap.sailing.server.gateway.serialization@default:default,com.sap.sailing.server.gateway@5:true,com.sap.sailing.server.replication@4:true,com.sap.sailing.server.trackfiles@default:default,com.sap.sailing.server@default:default,com.sap.sailing.simulator@default:default,com.sap.sailing.udpconnector@default:default,com.sap.sailing.velum.resultimport@default:default,com.sap.sailing.www.events@4:true,com.sap.sailing.www@4:true,com.sap.sailing.xcelsiusadapter@4:true,com.sap.sailing.xrr.resultimport@default:default,com.tractrac.clientmodule@default:default,de.csenk.gwt.ws@default:default,net.sf.marineapi@default:default,org.json.simple@default:default,org.moxieapps.gwt.highcharts@default:default"/>
|
||||
</launchConfiguration>
|
||||
Reference in new issue
Block a user