package bingo.game; import java.util.Properties; import bingo.shared.*; class GameParameters extends Parameters implements Constants { private long delay = TWENTY_SECONDS; private long countDown = FIVE_MINUTES; private int maxPlayers = 100; private int maxCards = 3; private String delayName = "ball.delay"; private String countDownName = "count.down"; private String maxPlayersName = "max.players"; private String maxCardsName = "max.cards"; GameParameters() { super("bingoServer.props", "BINGO Server Properties"); getParameters(); } protected void setDefaults(Properties defaults) { defaults.put(delayName, new Long(delay/ONE_SECOND).toString()); defaults.put(countDownName, new Long(countDown/ONE_SECOND).toString()); defaults.put(maxPlayersName, new Integer(maxPlayers).toString()); defaults.put(maxCardsName, new Integer(maxCards).toString()); } protected void updateSettingsFromProperties() { try { delay = Long.parseLong(properties.getProperty(delayName)) * ONE_SECOND; countDown = Long.parseLong(properties.getProperty(countDownName)) * ONE_SECOND; maxPlayers = Integer.parseInt(properties.getProperty(maxPlayersName)); maxCards = Integer.parseInt(properties.getProperty(maxCardsName)); } catch (NumberFormatException e) { // we don't care if the property was of the wrong format, // they've all got default values. So catch the exception // and keep going. } } protected void updatePropertiesFromSettings() { properties.put(delayName, new Long(delay/ONE_SECOND).toString()); properties.put(countDownName, new Long(countDown/ONE_SECOND).toString()); properties.put(maxCardsName, new Integer(maxCards).toString()); properties.put(maxPlayersName, new Integer(maxPlayers).toString()); } public String toString() { return "[" + "delay=" + delay + "," + "countDown=" + countDown + "," + "maxPlayers=" + maxPlayers + "," + "maxCards=" + maxCards + "]"; } void setDelay(long delay) { this.delay = delay; saveParameters(); } long getDelay() { return delay; } void setCountDown(long countDown) { this.countDown = countDown; saveParameters(); } long getCountDown() { return countDown; } void setMaxPlayers(int maxPlayers) { this.maxPlayers = maxPlayers; saveParameters(); } int getMaxPlayers() { return maxPlayers; } void setMaxCards(int maxCards) { this.maxCards = maxCards; saveParameters(); } int getMaxCards() { return maxCards; } }