From 34cbfde6394b0f885da757360221bdc331c2978c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kai=20B=C3=B6rnert?= Date: Mon, 7 May 2018 16:38:09 +0200 Subject: [PATCH] bug4564 extracted constants and removed all jsni code in the deserializer --- .../dto/ExpeditionAllInOneConstants.java | 20 ++++++-- .../domain/common/dto/ImportConstants.java | 18 +++++++ .../ExpeditionDataImportResponse.java | 47 ++++++++++--------- .../impl/ExpeditionAllInOneImportServlet.java | 20 ++++---- .../impl/ImportResultSerializer.java | 21 +++++---- 5 files changed, 80 insertions(+), 46 deletions(-) create mode 100644 java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/ImportConstants.java diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/ExpeditionAllInOneConstants.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/ExpeditionAllInOneConstants.java index 1dc69d141ba..e87a00b2e67 100644 --- a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/ExpeditionAllInOneConstants.java +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/ExpeditionAllInOneConstants.java @@ -6,11 +6,23 @@ public final class ExpeditionAllInOneConstants { public static final String REQUEST_PARAMETER_REGATTA_NAME = "regattaName"; public static final String REQUEST_PARAMETER_LOCALE = "locale"; public static final String REQUEST_PARAMETER_IMPORT_START_DATA = "importStartData"; - public static final String START_TIMES = "startTimes"; - public enum ImportMode{ - NEW_COMPETITOR, NEW_EVENT, NEW_RACE; + public static final String RESPONSE_START_TIMES = "startTimes"; + public static final String RESPONSE_EVENT_ID = "eventId"; + public static final String RESPONSE_LEADER_BOARD_NAME = "leaderboardName"; + public static final String RESPONSE_LEADER_BOARD_GROUP_NAME = "leaderboardGroupName"; + public static final String RESPONSE_REGATTA_NAME = "regattaName"; + public static final String RESPONSE_RACE_LIST = "raceNameRaceColumnNameFleetNameList"; + public static final String RESPONSE_ERRORS = "errors"; + public static final String RESPONSE_GPS_DEVICE_IDS = "gpsDeviceIds"; + public static final String RESPONSE_SENSOR_DEVICE_IDS = "sensorDeviceIds"; + public static final String RESPONSE_SENSOR_FIX_IMPORTER_TYPE = "sensorFixImporterType"; + + public enum ImportMode { + NEW_COMPETITOR, + NEW_EVENT, + NEW_RACE; } - + private ExpeditionAllInOneConstants() { } } diff --git a/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/ImportConstants.java b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/ImportConstants.java new file mode 100644 index 00000000000..098c62e8fc3 --- /dev/null +++ b/java/com.sap.sailing.domain.common/src/com/sap/sailing/domain/common/dto/ImportConstants.java @@ -0,0 +1,18 @@ +package com.sap.sailing.domain.common.dto; + +public class ImportConstants { + + public static final String RACE_NAME = "raceName"; + public static final String RACE_COLUMN_NAME = "raceColumnName"; + public static final String FLEET_NAME = "fleetName"; + public static final String FILENAME = "filename"; + public static final String REQUESTED_IMPORTER = "requestedImporter"; + public static final String EX_UUID = "exUUID"; + public static final String CLASS_NAME = "className"; + public static final String MESSAGE = "message"; + public static final String ERRORS = "errors"; + public static final String UPLOADS = "uploads"; + + private ImportConstants() { + } +} diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/resulthandling/ExpeditionDataImportResponse.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/resulthandling/ExpeditionDataImportResponse.java index 420a7442767..3912961e708 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/resulthandling/ExpeditionDataImportResponse.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/resulthandling/ExpeditionDataImportResponse.java @@ -4,9 +4,11 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; +import com.google.gwt.core.shared.GWT; import com.google.gwt.json.client.JSONArray; import com.google.gwt.json.client.JSONObject; import com.sap.sailing.domain.common.dto.ExpeditionAllInOneConstants; +import com.sap.sailing.domain.common.dto.ImportConstants; import com.sap.sse.common.TimePoint; import com.sap.sse.common.Util.Triple; import com.sap.sse.common.impl.MillisecondsTimePoint; @@ -14,6 +16,7 @@ import com.sap.sse.common.impl.MillisecondsTimePoint; public class ExpeditionDataImportResponse extends AbstractDataImportResponse { public static final ExpeditionDataImportResponse parse(String json) { + GWT.debugger(); return AbstractDataImportResponse.parse(json, "ExpeditionDataImportResponse"); } @@ -21,31 +24,31 @@ public class ExpeditionDataImportResponse extends AbstractDataImportResponse { } public final UUID getEventId() { - String eventId = getString("eventId"); + String eventId = getString(ExpeditionAllInOneConstants.RESPONSE_EVENT_ID); return eventId == null ? null : UUID.fromString(eventId); } - public final native String getLeaderboardGroupName() /*-{ - return this.leaderboardGroupName; - }-*/; - - public final native String getLeaderboardName() /*-{ - return this.leaderboardName; - }-*/; + public final String getLeaderboardGroupName() { + return getString(ExpeditionAllInOneConstants.RESPONSE_LEADER_BOARD_GROUP_NAME); + } + + public final String getLeaderboardName() { + return getString(ExpeditionAllInOneConstants.RESPONSE_LEADER_BOARD_NAME); + } + + public final String getRegattaName() { + return getString(ExpeditionAllInOneConstants.RESPONSE_REGATTA_NAME); + } - public final native String getRegattaName() /*-{ - return this.regattaName; - }-*/; - public final List> getRaceEntries() { ArrayList> raceNameRaceColumnNameFleetNameList = new ArrayList<>(); JSONObject jsonView = new JSONObject(this); - JSONArray entryList = jsonView.get("raceNameRaceColumnNameFleetNameList").isArray(); + JSONArray entryList = jsonView.get(ExpeditionAllInOneConstants.RESPONSE_RACE_LIST).isArray(); for (int i = 0; i < entryList.size(); i++) { JSONObject entry = entryList.get(i).isObject(); - String raceName = entry.get("raceName").isString().stringValue(); - String raceColumnName = entry.get("raceColumnName").isString().stringValue(); - String fleetName = entry.get("fleetName").isString().stringValue(); + String raceName = entry.get(ImportConstants.RACE_NAME).isString().stringValue(); + String raceColumnName = entry.get(ImportConstants.RACE_COLUMN_NAME).isString().stringValue(); + String fleetName = entry.get(ImportConstants.FLEET_NAME).isString().stringValue(); raceNameRaceColumnNameFleetNameList .add(new Triple(raceName, raceColumnName, fleetName)); } @@ -55,7 +58,7 @@ public class ExpeditionDataImportResponse extends AbstractDataImportResponse { public final Iterable getStartTimes() { final List result = new ArrayList<>(); JSONObject jsonView = new JSONObject(this); - JSONArray startTimesList = jsonView.get(ExpeditionAllInOneConstants.START_TIMES).isArray(); + JSONArray startTimesList = jsonView.get(ExpeditionAllInOneConstants.RESPONSE_START_TIMES).isArray(); for (int i = 0; i < startTimesList.size(); i++) { final long startTimeAsMillis = (long) startTimesList.get(i).isNumber().doubleValue(); result.add(new MillisecondsTimePoint(startTimeAsMillis)); @@ -64,16 +67,16 @@ public class ExpeditionDataImportResponse extends AbstractDataImportResponse { } public final List getGpsDeviceIds() { - return getStringList("gpsDeviceIds"); + return getStringList(ExpeditionAllInOneConstants.RESPONSE_GPS_DEVICE_IDS); } public final List getSensorDeviceIds() { - return getStringList("sensorDeviceIds"); + return getStringList(ExpeditionAllInOneConstants.RESPONSE_SENSOR_DEVICE_IDS); } - public final native String getSensorFixImporterType() /*-{ - return this.sensorFixImporterType; - }-*/; + public final String getSensorFixImporterType() { + return getString(ExpeditionAllInOneConstants.RESPONSE_SENSOR_FIX_IMPORTER_TYPE); + }; public final boolean hasEventId() { final String stringValue = getString("eventId"); diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImportServlet.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImportServlet.java index f5f13047bd0..a96b6867581 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImportServlet.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ExpeditionAllInOneImportServlet.java @@ -141,16 +141,16 @@ public class ExpeditionAllInOneImportServlet extends AbstractFileUploadServlet { private JSONObject toJSON(ImporterResult importerResult) { final JSONObject json = new JSONObject(); - json.put("eventId", importerResult.eventId == null ? null : importerResult.eventId.toString()); - json.put("leaderboardName", importerResult.leaderboardName); - json.put("leaderboardGroupName", importerResult.leaderboardGroupName); - json.put("regattaName", importerResult.regattaName); - json.put("raceNameRaceColumnNameFleetNameList", ImportResultSerializer.serializeRaceList(importerResult.raceNameRaceColumnNameFleetnameList)); - json.put("errors", ImportResultSerializer.serializeErrorList(importerResult.errorList)); - json.put("gpsDeviceIds", ImportResultSerializer.serializeTrackList(importerResult.importGpsFixData)); - json.put("sensorDeviceIds", ImportResultSerializer.serializeTrackList(importerResult.importSensorFixData)); - json.put("sensorFixImporterType", importerResult.sensorFixImporterType); - json.put(ExpeditionAllInOneConstants.START_TIMES, ImportResultSerializer.serializeIterable(importerResult.startData.getStartTimes(), + json.put(ExpeditionAllInOneConstants.RESPONSE_EVENT_ID, importerResult.eventId == null ? null : importerResult.eventId.toString()); + json.put(ExpeditionAllInOneConstants.RESPONSE_LEADER_BOARD_NAME, importerResult.leaderboardName); + json.put(ExpeditionAllInOneConstants.RESPONSE_LEADER_BOARD_GROUP_NAME, importerResult.leaderboardGroupName); + json.put(ExpeditionAllInOneConstants.RESPONSE_REGATTA_NAME, importerResult.regattaName); + json.put(ExpeditionAllInOneConstants.RESPONSE_RACE_LIST, ImportResultSerializer.serializeRaceList(importerResult.raceNameRaceColumnNameFleetnameList)); + json.put(ExpeditionAllInOneConstants.RESPONSE_ERRORS, ImportResultSerializer.serializeErrorList(importerResult.errorList)); + json.put(ExpeditionAllInOneConstants.RESPONSE_GPS_DEVICE_IDS, ImportResultSerializer.serializeTrackList(importerResult.importGpsFixData)); + json.put(ExpeditionAllInOneConstants.RESPONSE_SENSOR_DEVICE_IDS, ImportResultSerializer.serializeTrackList(importerResult.importSensorFixData)); + json.put(ExpeditionAllInOneConstants.RESPONSE_SENSOR_FIX_IMPORTER_TYPE, importerResult.sensorFixImporterType); + json.put(ExpeditionAllInOneConstants.RESPONSE_START_TIMES, ImportResultSerializer.serializeIterable(importerResult.startData.getStartTimes(), startTime->startTime.asMillis())); return json; } diff --git a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ImportResultSerializer.java b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ImportResultSerializer.java index bc28374835f..888c23c287c 100644 --- a/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ImportResultSerializer.java +++ b/java/com.sap.sailing.server.gateway/src/com/sap/sailing/server/gateway/trackfiles/impl/ImportResultSerializer.java @@ -7,6 +7,7 @@ import java.util.stream.StreamSupport; import org.json.simple.JSONArray; import org.json.simple.JSONObject; +import com.sap.sailing.domain.common.dto.ImportConstants; import com.sap.sailing.server.gateway.trackfiles.impl.ImportResultDTO.ErrorImportDTO; import com.sap.sailing.server.gateway.trackfiles.impl.ImportResultDTO.TrackImportDTO; import com.sap.sse.common.Util.Triple; @@ -18,8 +19,8 @@ class ImportResultSerializer { static JSONObject serializeImportResult(ImportResultDTO result) { final JSONObject json = new JSONObject(); - json.put("errors", serializeErrorList(result.getErrorList())); - json.put("uploads", serializeTrackList(result.getImportResult())); + json.put(ImportConstants.ERRORS, serializeErrorList(result.getErrorList())); + json.put(ImportConstants.UPLOADS, serializeTrackList(result.getImportResult())); return json; } @@ -43,19 +44,19 @@ class ImportResultSerializer { private static JSONObject serializeRaceEntry(Triple entry) { final JSONObject json = new JSONObject(); - json.put("raceName", entry.getA()); - json.put("raceColumnName", entry.getB()); - json.put("fleetName", entry.getC()); + json.put(ImportConstants.RACE_NAME, entry.getA()); + json.put(ImportConstants.RACE_COLUMN_NAME, entry.getB()); + json.put(ImportConstants.FLEET_NAME, entry.getC()); return json; } private static JSONObject serializeError(ErrorImportDTO error) { final JSONObject json = new JSONObject(); - json.put("filename", error.getFilename()); - json.put("requestedImporter", error.getRequestedImporter()); - json.put("exUUID", error.getExUUID()); - json.put("className", error.getName()); - json.put("message", error.getMessage()); + json.put(ImportConstants.FILENAME, error.getFilename()); + json.put(ImportConstants.REQUESTED_IMPORTER, error.getRequestedImporter()); + json.put(ImportConstants.EX_UUID, error.getExUUID()); + json.put(ImportConstants.CLASS_NAME, error.getName()); + json.put(ImportConstants.MESSAGE, error.getMessage()); return json; }