fixing bug 1081 by pulling out the analysis of the lastN parameter from its if block

This commit is contained in:
Axel Uhl
2012-11-30 14:28:00 +01:00
parent 0b9cb6c273
commit d01b116785
2 changed files with 25 additions and 17 deletions
@@ -139,23 +139,23 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint {
*/
private LeaderboardSettings createLeaderboardSettingsFromURLParameters(Map<String, List<String>> parameterMap) {
LeaderboardSettings result;
Long refreshIntervalMillis = parameterMap.containsKey(PARAM_REFRESH_INTERVAL_MILLIS) ?
Long.valueOf(parameterMap.get(PARAM_REFRESH_INTERVAL_MILLIS).get(0)) : null;
Long refreshIntervalMillis = parameterMap.containsKey(PARAM_REFRESH_INTERVAL_MILLIS) ? Long
.valueOf(parameterMap.get(PARAM_REFRESH_INTERVAL_MILLIS).get(0)) : null;
RaceColumnSelectionStrategies raceColumnSelectionStrategy;
if (parameterMap.containsKey(PARAM_NAME_LAST_N)) {
raceColumnSelectionStrategy = RaceColumnSelectionStrategies.LAST_N;
} else {
raceColumnSelectionStrategy = RaceColumnSelectionStrategies.EXPLICIT;
}
final Integer numberOfLastRacesToShow;
if (parameterMap.containsKey(PARAM_NAME_LAST_N)) {
numberOfLastRacesToShow = Integer.valueOf(parameterMap.get(PARAM_NAME_LAST_N).get(0));
} else {
numberOfLastRacesToShow = null;
}
if (parameterMap.containsKey(PARAM_RACE_NAME) || parameterMap.containsKey(PARAM_RACE_DETAIL) ||
parameterMap.containsKey(PARAM_LEG_DETAIL) || parameterMap.containsKey(PARAM_MANEUVER_DETAIL) ||
parameterMap.containsKey(PARAM_OVERALL_DETAIL)) {
RaceColumnSelectionStrategies raceColumnSelectionStrategy;
if (parameterMap.containsKey(PARAM_NAME_LAST_N)) {
raceColumnSelectionStrategy = RaceColumnSelectionStrategies.LAST_N;
} else {
raceColumnSelectionStrategy = RaceColumnSelectionStrategies.EXPLICIT;
}
final Integer numberOfLastRacesToShow;
if (parameterMap.containsKey(PARAM_NAME_LAST_N)) {
numberOfLastRacesToShow = Integer.valueOf(parameterMap.get(PARAM_NAME_LAST_N).get(0));
} else {
numberOfLastRacesToShow = null;
}
List<DetailType> maneuverDetails = getDetailTypeListFromParamValue(parameterMap.get(PARAM_MANEUVER_DETAIL));
List<DetailType> raceDetails = getDetailTypeListFromParamValue(parameterMap.get(PARAM_RACE_DETAIL));
List<DetailType> overallDetails = getDetailTypeListFromParamValue(parameterMap.get(PARAM_OVERALL_DETAIL));
@@ -176,7 +176,7 @@ public class LeaderboardEntryPoint extends AbstractEntryPoint {
final List<DetailType> overallDetails = Collections.emptyList();
result = LeaderboardSettingsFactory.getInstance().createNewDefaultSettings(null, null, /* overallDetails */
overallDetails, null,
/* autoExpandFirstRace */ false, refreshIntervalMillis);
/* autoExpandFirstRace */ false, refreshIntervalMillis, numberOfLastRacesToShow, raceColumnSelectionStrategy);
}
return result;
}
@@ -103,6 +103,14 @@ public class LeaderboardSettingsFactory {
public LeaderboardSettings createNewDefaultSettings(List<String> namesOfRaceColumnsToShow,
List<String> namesOfRacesToShow, List<DetailType> overallDetailsToShow, String nameOfRaceToSort,
boolean autoExpandPreSelectedRace, Long refreshIntervalMillis) {
return createNewDefaultSettings(namesOfRaceColumnsToShow, namesOfRacesToShow, overallDetailsToShow, nameOfRaceToSort, autoExpandPreSelectedRace, refreshIntervalMillis,
/* numberOfLastRacesToShow */ null, /* raceColumnSelectionStrategy */ RaceColumnSelectionStrategies.EXPLICIT);
}
public LeaderboardSettings createNewDefaultSettings(List<String> namesOfRaceColumnsToShow,
List<String> namesOfRacesToShow, List<DetailType> overallDetailsToShow, String nameOfRaceToSort,
boolean autoExpandPreSelectedRace, Long refreshIntervalMillis, Integer numberOfLastRacesToShow,
RaceColumnSelectionStrategies raceColumnSelectionStrategy) {
if (namesOfRaceColumnsToShow != null && namesOfRacesToShow != null) {
throw new IllegalArgumentException("Can specify race columns either by column or by race name, not both");
}
@@ -118,9 +126,9 @@ public class LeaderboardSettingsFactory {
raceDetails.add(DetailType.DISPLAY_LEGS);
return new LeaderboardSettings(maneuverDetails, legDetails, raceDetails, overallDetailsToShow,
namesOfRaceColumnsToShow,
namesOfRacesToShow, null,
namesOfRacesToShow, numberOfLastRacesToShow,
autoExpandPreSelectedRace, refreshIntervalMillis, /* delay to live */ null,
/* sort by column */ nameOfRaceToSort, /* ascending */ true, /* updateUponPlayStateChange */ true,
RaceColumnSelectionStrategies.EXPLICIT);
raceColumnSelectionStrategy);
}
}