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