mirror of
https://github.com/eclipse-sailing-analytics/sailing-analytics.git
synced 2026-10-17 01:31:01 +00:00
adding leaderboard group context to search results
This commit is contained in:
1 parent
93fe1d338e
commit
cef959a91f
5 files changed
+68
-6
No files matched your search
+14
-2
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user