mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-02 18:33:54 +00:00
bug2059 Adjusted serializer and deserializer for Statistics by year
This commit is contained in:
1 parent
7ee311ebf5
commit
b188ae07ab
3 files changed
+17
-32
No files matched your search
+7
-15
@@ -1,17 +1,14 @@
|
||||
package com.sap.sailing.server.gateway.deserialization.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.statistics.Statistics;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.StatisticsByYearJsonSerializer;
|
||||
import com.sap.sse.common.Util.Pair;
|
||||
|
||||
public class StatisticsByYearJsonDeserializer implements JsonDeserializer<Map<Integer, Statistics>> {
|
||||
public class StatisticsByYearJsonDeserializer implements JsonDeserializer<Pair<Integer, Statistics>> {
|
||||
|
||||
private final StatisticsJsonDeserializer statisticsJsonDeserializer;
|
||||
|
||||
@@ -20,16 +17,11 @@ public class StatisticsByYearJsonDeserializer implements JsonDeserializer<Map<In
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Integer, Statistics> deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
Map<Integer, Statistics> result = new HashMap<>();
|
||||
for (Object entry : (JSONArray) object.get(StatisticsByYearJsonSerializer.FIELD_ARRAY)) {
|
||||
JSONObject jsonEntry = (JSONObject) entry;
|
||||
Integer year = (Integer) jsonEntry.get(StatisticsByYearJsonSerializer.FIELD_YEAR);
|
||||
Statistics statistics = statisticsJsonDeserializer
|
||||
.deserialize((JSONObject) jsonEntry.get(StatisticsByYearJsonSerializer.FIELD_STATISTICS));
|
||||
result.put(year, statistics);
|
||||
}
|
||||
return result;
|
||||
public Pair<Integer, Statistics> deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
Integer year = (Integer) object.get(StatisticsByYearJsonSerializer.FIELD_YEAR);
|
||||
Statistics statistics = statisticsJsonDeserializer
|
||||
.deserialize((JSONObject) object.get(StatisticsByYearJsonSerializer.FIELD_STATISTICS));
|
||||
return new Pair<Integer, Statistics>(year, statistics);
|
||||
}
|
||||
|
||||
}
|
||||
+5
-15
@@ -1,17 +1,13 @@
|
||||
package com.sap.sailing.server.gateway.serialization.impl;
|
||||
|
||||
import java.util.Map;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.domain.statistics.Statistics;
|
||||
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
|
||||
import com.sap.sse.common.Util.Pair;
|
||||
|
||||
public class StatisticsByYearJsonSerializer implements JsonSerializer<Map<Integer, Statistics>> {
|
||||
public class StatisticsByYearJsonSerializer implements JsonSerializer<Pair<Integer, Statistics>> {
|
||||
|
||||
public static final String FIELD_ARRAY = "array";
|
||||
public static final String FIELD_YEAR = "year";
|
||||
public static final String FIELD_STATISTICS = "statistics";
|
||||
|
||||
@@ -22,16 +18,10 @@ public class StatisticsByYearJsonSerializer implements JsonSerializer<Map<Intege
|
||||
}
|
||||
|
||||
@Override
|
||||
public JSONObject serialize(Map<Integer, Statistics> object) {
|
||||
public JSONObject serialize(Pair<Integer, Statistics> object) {
|
||||
JSONObject result = new JSONObject();
|
||||
JSONArray array = new JSONArray();
|
||||
result.put(FIELD_ARRAY, array);
|
||||
for (Entry<Integer, Statistics> entry : object.entrySet()) {
|
||||
JSONObject jsonEntry = new JSONObject();
|
||||
jsonEntry.put(FIELD_YEAR, entry.getKey());
|
||||
jsonEntry.put(FIELD_STATISTICS, statisticsJsonSerializer.serialize(entry.getValue()));
|
||||
array.add(jsonEntry);
|
||||
}
|
||||
result.put(FIELD_YEAR, object.getA());
|
||||
result.put(FIELD_STATISTICS, statisticsJsonSerializer.serialize(object.getB()));
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
+5
-2
@@ -6,12 +6,13 @@ import javax.ws.rs.Produces;
|
||||
import javax.ws.rs.core.MediaType;
|
||||
import javax.ws.rs.core.Response;
|
||||
|
||||
import org.json.simple.JSONArray;
|
||||
import org.json.simple.JSONAware;
|
||||
import org.json.simple.JSONObject;
|
||||
|
||||
import com.sap.sailing.server.gateway.jaxrs.AbstractSailingServerResource;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.StatisticsByYearJsonSerializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.StatisticsJsonSerializer;
|
||||
import com.sap.sse.common.Util.Pair;
|
||||
|
||||
@Path("/v1/statistics")
|
||||
public class StatisticsResource extends AbstractSailingServerResource {
|
||||
@@ -26,7 +27,9 @@ public class StatisticsResource extends AbstractSailingServerResource {
|
||||
@Produces(CONTENT_TYPE_JSON_UTF8)
|
||||
@Path("years")
|
||||
public Response getStatisticsByYear() {
|
||||
JSONObject json = statisticsByYearJsonSerializer.serialize(getService().getLocalStatisticsByYear());
|
||||
JSONArray json = new JSONArray();
|
||||
getService().getLocalStatisticsByYear().forEach(
|
||||
(year, statistics) -> json.add(statisticsByYearJsonSerializer.serialize(new Pair<>(year, statistics))));
|
||||
return getJsonResponse(json);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user