package org.limewire.setting; import java.util.Properties; /** * Provides an int setting value. As a subclass of <code>Setting</code>, * the setting has a key. * <p> * Create a <code>IntSetting</code> object with a * {@link SettingsFactory#createIntSetting(String, int)}. */ public final class IntSetting extends AbstractNumberSetting<Integer> { private volatile int value; /** * Creates a new <tt>IntSetting</tt> instance with the specified * key and default value. */ IntSetting(Properties defaultProps, Properties props, String key, int defaultInt) { super(defaultProps, props, key, String.valueOf(defaultInt), false, null, null); } /** * Constructor for Settable setting which specifies a remote-key and max and * min permissible values. */ IntSetting(Properties defaultProps, Properties props, String key, int defaultInt, int minRemoteVal, int maxRemoteVal) { super(defaultProps, props, key, String.valueOf(defaultInt), true, minRemoteVal, maxRemoteVal); } @Override public Integer get() { return getValue(); } @Override public void set(Integer newValue) { setValue(newValue); } /** * Returns the value of this setting. * * @return the value of this setting */ public int getValue() { return value; } /** * Mutator for this setting. * * @param value the value to store */ public void setValue(int value) { setValueInternal(String.valueOf(value)); } /** Load value from property string value * @param sValue property string value * */ @Override protected void loadValue(String sValue) { try { value = Integer.parseInt(sValue.trim()); } catch(NumberFormatException nfe) { revertToDefault(); } } @Override protected Comparable<Integer> convertToComparable(String value) { return new Integer(value); } @Override public IntSetting setAlwaysSave(boolean alwaysSave) { return (IntSetting)super.setAlwaysSave(alwaysSave); } }