started to add LeaderboardBase to make the LeaderboardSearchResult consistent with EventBase, LeaderboardGroupBase and then LeaderboardBase

This commit is contained in:
Axel Uhl committed 2014-06-04 18:27:13 +02:00
1 parent fd23806a5e
commit feb287bde1
5 files changed
+59 -9

No files matched your search

@@ -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);
}
}