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 }