001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.data.preferences;
003
004 import org.openstreetmap.josm.Main;
005
006 /**
007 * A property containing an {@code Integer} value.
008 */
009 public class IntegerProperty extends AbstractProperty<Integer> {
010
011 /**
012 * Constructs a new {@code IntegerProperty}.
013 * @param key The property key
014 * @param defaultValue The default value
015 */
016 public IntegerProperty(String key, int defaultValue) {
017 super(key, defaultValue);
018 }
019
020 @Override
021 public Integer get() {
022 return Main.pref.getInteger(getKey(), getDefaultValue());
023 }
024
025 @Override
026 public boolean put(Integer value) {
027 return Main.pref.putInteger(getKey(), value);
028 }
029
030 /**
031 * parses and saves an integer value
032 * @param value the value to be parsed
033 * @return true - preference value has changed
034 * false - parsing failed or preference value has not changed
035 */
036 public boolean parseAndPut(String value) {
037 Integer intVal;
038 try {
039 intVal = Integer.parseInt(value);
040 } catch (NumberFormatException ex) {
041 return false;
042 }
043 return put(intVal);
044 }
045 }