package freenet.config; import freenet.l10n.NodeL10n; import freenet.support.Fields; import freenet.support.api.ShortCallback; public class ShortOption extends Option<Short> { protected final boolean isSize; public ShortOption(SubConfig conf, String optionName, short defaultValue, int sortOrder, boolean expert, boolean forceWrite, String shortDesc, String longDesc, ShortCallback cb, boolean isSize) { super(conf, optionName, cb, sortOrder, expert, forceWrite, shortDesc, longDesc, Option.DataType.NUMBER); this.defaultValue = defaultValue; this.currentValue = defaultValue; this.isSize = isSize; } private String l10n(String key, String pattern, String value) { return NodeL10n.getBase().getString("ShortOption."+key, pattern, value); } @Override protected Short parseString(String val) throws InvalidConfigValueException { short x; try { x = Fields.parseShort(val); } catch (NumberFormatException e) { throw new InvalidConfigValueException(l10n("unrecognisedShort", "val", val)); } return x; } @Override protected String toDisplayString(Short val) { return Fields.shortToString(val, isSize); } @Override protected String toString(Short val) { return Fields.shortToString(val, false); } }