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 Double} value. 008 * @since 3246 009 */ 010public class DoubleProperty extends AbstractProperty<Double> { 011 012 /** 013 * Constructs a new {@code DoubleProperty}. 014 * @param key The property key 015 * @param defaultValue The default value 016 */ 017 public DoubleProperty(String key, double defaultValue) { 018 super(key, defaultValue); 019 } 020 021 @Override 022 public Double get() { 023 return Main.pref.getDouble(getKey(), getDefaultValue()); 024 } 025 026 @Override 027 public boolean put(Double value) { 028 return Main.pref.putDouble(getKey(), value); 029 } 030 031 /** 032 * parses and saves a double precision value 033 * @param value the value to be parsed 034 * @return true - preference value has changed 035 * false - parsing failed or preference value has not changed 036 */ 037 public boolean parseAndPut(String value) { 038 try { 039 return put(Double.valueOf(value)); 040 } catch (NumberFormatException ex) { 041 return false; 042 } 043 } 044}