Merge remote-tracking branch 'origin/master' into windestimation

This commit is contained in:
Vladislav Chumak committed 2018-12-11 16:27:49 +01:00
commit c2bb35126d
3 files changed
+51 -2

No files matched your search

@@ -0,0 +1,22 @@
package com.sap.sailing.server.gateway.deserialization.impl;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.domain.common.impl.DegreePosition;
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
import com.sap.sailing.server.gateway.serialization.impl.MongoDbFriendlyPositionJsonSerializer;
public class MongoDbFriendlyPositionJsonDeserializer implements JsonDeserializer<Position> {
@Override
public Position deserialize(JSONObject object) throws JsonDeserializationException {
JSONArray coordinatesJson = (JSONArray) object.get(MongoDbFriendlyPositionJsonSerializer.FIELD_COORDINATES);
Number longitudeDeg = (Number) coordinatesJson.get(0);
Number latitudeDeg = (Number) coordinatesJson.get(1);
return new DegreePosition(latitudeDeg.doubleValue(), longitudeDeg.doubleValue());
}
}
@@ -0,0 +1,26 @@
package com.sap.sailing.server.gateway.serialization.impl;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.common.Position;
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
public class MongoDbFriendlyPositionJsonSerializer implements JsonSerializer<Position> {
public static final String FIELD_TYPE = "type";
public static final String FIELD_TYPE_VALUE = "Point";
public static final String FIELD_COORDINATES = "coordinates";
@Override
public JSONObject serialize(Position position) {
JSONObject result = new JSONObject();
JSONArray coordinates = new JSONArray();
coordinates.add(position.getLngDeg());
coordinates.add(position.getLatDeg());
result.put(FIELD_TYPE, FIELD_TYPE_VALUE);
result.put(FIELD_COORDINATES, coordinates);
return result;
}
}
@@ -31,7 +31,7 @@ public class RaceWindJsonSerializer extends AbstractTrackedRaceDataJsonSerialize
public static final String SAMPLING_RATE = "samplingRate";
public static final String FIXES = "fixes";
private final PositionJsonSerializer positionSerializer = new PositionJsonSerializer();
private final MongoDbFriendlyPositionJsonSerializer positionSerializer = new MongoDbFriendlyPositionJsonSerializer();
private final WindJsonSerializer windSerializer = new WindJsonSerializer(positionSerializer);
@Override
@@ -85,7 +85,8 @@ public class RaceWindJsonSerializer extends AbstractTrackedRaceDataJsonSerialize
windSourceJson.put(FIRST_POSITION, positionSerializer.serialize(firstWindSourcePosition));
windSourceJson.put(START_TIME_POINT, firstWindSourceTimePoint.asMillis());
windSourceJson.put(END_TIME_POINT, lastWindSourceTimePoint.asMillis());
double samplingRate = duration.asSeconds() > 0 ? windFixesJson.size() / duration.asSeconds() : 0;
double samplingRate = duration.asSeconds() > 0 ? windFixesJson.size() / duration.asSeconds()
: 0;
windSourceJson.put(SAMPLING_RATE, samplingRate);
windSourceJson.put(FIXES, windFixesJson);
windSourcesJson.add(windSourceJson);