Added getLeaderboardsByEvent to SailingService

This commit is contained in:
Lennart Hensler committed 2012-01-23 17:15:10 +01:00
1 parent 5c6b920d33
commit 0e20ee438e
3 files changed
+17 -10

No files matched your search

@@ -78,7 +78,7 @@ public interface SailingService extends RemoteService {
List<LeaderboardDTO> getLeaderboards();
List<LeaderboardDTO> getLeaderboardsByEvent(EventIdentifier eventIdentifier);
List<LeaderboardDTO> getLeaderboardsByEvent(EventDTO event);
void updateLeaderboard(String leaderboardName, String newLeaderboardName, int[] newDiscardingThreasholds);
@@ -143,7 +143,7 @@ public interface SailingServiceAsync {
* Does the same as {@link SailingServiceAsync#getLeaderboards(AsyncCallback) getLeaderboards} but returns only
* leaderboards which have the given event as race
*/
void getLeaderboardsByEvent(EventIdentifier eventIdentifier, AsyncCallback<List<LeaderboardDTO>> callback);
void getLeaderboardsByEvent(EventDTO event, AsyncCallback<List<LeaderboardDTO>> callback);
void updateLeaderboard(String leaderboardName, String newLeaderboardName, int[] newDiscardingThreasholds,
AsyncCallback<Void> callback);
@@ -866,20 +866,27 @@ public class SailingServiceImpl extends RemoteServiceServlet implements SailingS
}
@Override
public List<LeaderboardDTO> getLeaderboardsByEvent(EventIdentifier eventIdentifier) {
Event event = getEvent(eventIdentifier);
Map<String, Leaderboard> leaderboards = getService().getLeaderboards();
public List<LeaderboardDTO> getLeaderboardsByEvent(EventDTO event) {
List<LeaderboardDTO> results = new ArrayList<LeaderboardDTO>();
for (Leaderboard leaderboard : leaderboards.values()) {
for (RaceInLeaderboard race : leaderboard.getRaceColumns()) {
if (Util.contains(event.getAllRaces(), race.getTrackedRace().getRace())) {
LeaderboardDTO dao = createStrippedLeaderboardDTO(leaderboard);
results.add(dao);
for (RegattaDTO regatta : event.regattas) {
for (RaceDTO race : regatta.races) {
List<LeaderboardDTO> leaderboard = getLeaderboardByRace(race);
if (leaderboard != null && !leaderboard.isEmpty()) {
results.addAll(leaderboard);
}
}
}
return results;
}
private List<LeaderboardDTO> getLeaderboardByRace(RaceDTO race) {
List<LeaderboardDTO> results = new ArrayList<LeaderboardDTO>();
Map<String, Leaderboard> leaderboards = getService().getLeaderboards();
return results;
}