From ccb12c533f403b64e6aa1bc1cdb4ea1cf0eb5bb2 Mon Sep 17 00:00:00 2001 From: "marcins78@gmail.com" Date: Wed, 2 May 2012 15:35:18 +0000 Subject: [PATCH] Maps based on String not League object. --- .../gempukku/lotro/league/LeagueService.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/LeagueService.java b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/LeagueService.java index 286014ebf..bfa93dfe0 100644 --- a/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/LeagueService.java +++ b/gemp-lotr/gemp-lotr-server/src/main/java/com/gempukku/lotro/league/LeagueService.java @@ -32,8 +32,8 @@ public class LeagueService { private CollectionsManager _collectionsManager; - private Map> _leagueStandings = new ConcurrentHashMap>(); - private Map> _leagueSerieStandings = new ConcurrentHashMap>(); + private Map> _leagueStandings = new ConcurrentHashMap>(); + private Map> _leagueSerieStandings = new ConcurrentHashMap>(); private int _activeLeaguesLoadedDate; private List _activeLeagues; @@ -147,8 +147,8 @@ public class LeagueService { addPoints(league, serie, winner, 2); addPoints(league, serie, loser, 1); - _leagueStandings.remove(league); - _leagueSerieStandings.remove(serie); + _leagueStandings.remove(getLeagueMapKey(league)); + _leagueSerieStandings.remove(getLeagueSerieMapKey(league, serie)); awardPrizesToPlayer(league, serie, winner, true); awardPrizesToPlayer(league, serie, loser, false); @@ -190,23 +190,32 @@ public class LeagueService { return result; } + private String getLeagueMapKey(League league) { + return league.getType(); + } + + private String getLeagueSerieMapKey(League league, LeagueSerieData leagueSerie) { + int serieIndex = league.getLeagueData().getSeries().indexOf(leagueSerie); + return league.getType() + "-serieIndex:" + serieIndex; + } + public List getLeagueStandings(League league) { - List leagueStandings = _leagueStandings.get(league); + List leagueStandings = _leagueStandings.get(getLeagueMapKey(league)); if (leagueStandings == null) { synchronized (this) { leagueStandings = createLeagueStandings(league); - _leagueStandings.put(league, leagueStandings); + _leagueStandings.put(getLeagueMapKey(league), leagueStandings); } } return leagueStandings; } public List getLeagueSerieStandings(League league, LeagueSerieData leagueSerie) { - List serieStandings = _leagueSerieStandings.get(leagueSerie); + List serieStandings = _leagueSerieStandings.get(getLeagueSerieMapKey(league, leagueSerie)); if (serieStandings == null) { synchronized (this) { serieStandings = createLeagueSerieStandings(league, leagueSerie); - _leagueSerieStandings.put(leagueSerie, serieStandings); + _leagueSerieStandings.put(getLeagueSerieMapKey(league, leagueSerie), serieStandings); } } return serieStandings;