mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-17 01:31:01 +00:00
started to add LeaderboardBase to make the LeaderboardSearchResult consistent with EventBase, LeaderboardGroupBase and then LeaderboardBase
This commit is contained in:
1 parent
fd23806a5e
commit
feb287bde1
5 files changed
+59
-9
No files matched your search
+44
@@ -0,0 +1,44 @@
|
||||
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.EventBase;
|
||||
import com.sap.sailing.domain.base.LeaderboardGroupBase;
|
||||
import com.sap.sailing.domain.common.dto.LeaderboardSearchResultDTO;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializationException;
|
||||
import com.sap.sailing.server.gateway.deserialization.JsonDeserializer;
|
||||
import com.sap.sailing.server.gateway.serialization.impl.LeaderboardSearchResultJsonSerializer;
|
||||
|
||||
public class LeaderboardSearchResultDTOJsonDeserializer implements JsonDeserializer<StrippedLeaderboardSearchResult> {
|
||||
private final EventBaseJsonDeserializer eventDeserializer;
|
||||
|
||||
private final LeaderboardGroupBaseJsonDeserializer leaderboardGroupDeserializer;
|
||||
|
||||
public LeaderboardSearchResultDTOJsonDeserializer(EventBaseJsonDeserializer eventDeserializer,
|
||||
LeaderboardGroupBaseJsonDeserializer leaderboardGroupDeserializer) {
|
||||
super();
|
||||
this.eventDeserializer = eventDeserializer;
|
||||
this.leaderboardGroupDeserializer = leaderboardGroupDeserializer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public StrippedLeaderboardSearchResult deserialize(JSONObject object) throws JsonDeserializationException {
|
||||
EventBase event = eventDeserializer.deserialize(Helpers.getNestedObjectSafe(object, LeaderboardSearchResultJsonSerializer.FIELD_EVENT));
|
||||
JSONObject leaderboardJson = Helpers.getNestedObjectSafe(object, LeaderboardSearchResultJsonSerializer.FIELD_LEADERBOARD);
|
||||
String leaderboardName = (String) leaderboardJson.get(LeaderboardSearchResultJsonSerializer.FIELD_LEADERBOARD_NAME);
|
||||
String leaderboardDisplayName = (String) leaderboardJson.get(LeaderboardSearchResultJsonSerializer.FIELD_LEADERBOARD_DISPLAY_NAME);
|
||||
String boatClassName = (String) leaderboardJson.get(LeaderboardSearchResultJsonSerializer.FIELD_LEADERBOARD_BOAT_CLASS_NAME);
|
||||
String regattaName = (String) leaderboardJson.get(LeaderboardSearchResultJsonSerializer.FIELD_LEADERBOARD_REGATTA_NAME);
|
||||
JSONArray leaderboardGroupsJson = Helpers.getNestedArraySafe(leaderboardJson, LeaderboardSearchResultJsonSerializer.FIELD_LEADERBOARD_IN_LEADERBOARD_GROUPS);
|
||||
List<LeaderboardGroupBase> leaderboardGroups = new ArrayList<LeaderboardGroupBase>();
|
||||
for (Object leaderboardGroupJson : leaderboardGroupsJson) {
|
||||
leaderboardGroups.add(leaderboardGroupDeserializer.deserialize((JSONObject) leaderboardGroupJson));
|
||||
}
|
||||
return new StrippedLeaderboardSearchResult(event, leaderboardName, leaderboardDisplayName, boatClassName, regattaName, leaderboardGroups);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user