adding leaderboard group context to search results

This commit is contained in:
Axel Uhl committed 2014-06-04 17:22:06 +02:00
1 parent 93fe1d338e
commit cef959a91f
5 files changed
+68 -6

No files matched your search

@@ -1,11 +1,15 @@
package com.sap.sailing.server.gateway.serialization.impl;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import com.sap.sailing.domain.base.BoatClass;
import com.sap.sailing.domain.base.EventBase;
import com.sap.sailing.domain.base.LeaderboardGroupBase;
import com.sap.sailing.domain.base.LeaderboardSearchResult;
import com.sap.sailing.domain.base.Regatta;
import com.sap.sailing.domain.leaderboard.Leaderboard;
import com.sap.sailing.domain.leaderboard.LeaderboardGroup;
import com.sap.sailing.domain.leaderboard.RegattaLeaderboard;
import com.sap.sailing.domain.tracking.TrackedRace;
import com.sap.sailing.server.gateway.serialization.JsonSerializer;
@@ -18,11 +22,14 @@ public class LeaderboardSearchResultJsonSerializer implements JsonSerializer<Lea
public static final String FIELD_LEADERBOARD_DISPLAY_NAME = "displayName";
public static final String FIELD_LEADERBOARD_BOAT_CLASS_NAME = "boatClassName";
public static final String FIELD_LEADERBOARD_REGATTA_NAME = "regattaName";
public static final String FIELD_LEADERBOARD_IN_LEADERBOARD_GROUPS = "inLeaderboardGroups";
private final EventBaseJsonSerializer eventBaseJsonSerializer;
private final JsonSerializer<EventBase> eventBaseJsonSerializer;
private final JsonSerializer<LeaderboardGroupBase> leaderboardGroupBaseJsonSerializer;
public LeaderboardSearchResultJsonSerializer(EventBaseJsonSerializer eventBaseJsonSerializer) {
public LeaderboardSearchResultJsonSerializer(JsonSerializer<EventBase> eventBaseJsonSerializer, JsonSerializer<LeaderboardGroupBase> leaderboardGroupBaseJsonSerializer) {
this.eventBaseJsonSerializer = eventBaseJsonSerializer;
this.leaderboardGroupBaseJsonSerializer = leaderboardGroupBaseJsonSerializer;
}
@Override
@@ -48,6 +55,11 @@ public class LeaderboardSearchResultJsonSerializer implements JsonSerializer<Lea
}
leaderboardJson.put(FIELD_LEADERBOARD_BOAT_CLASS_NAME, boatClass == null ? null : boatClass.getName());
leaderboardJson.put(FIELD_LEADERBOARD_REGATTA_NAME, regatta == null ? null : regatta.getName());
JSONArray leaderboardGroupsJson = new JSONArray();
leaderboardJson.put(FIELD_LEADERBOARD_IN_LEADERBOARD_GROUPS, leaderboardGroupsJson);
for (LeaderboardGroup lg : leaderboardSearchResult.getLeaderboardGroups()) {
leaderboardGroupsJson.add(leaderboardGroupBaseJsonSerializer.serialize(lg));
}
return result;
}