package com.netifera.platform.tools.options;
import com.netifera.platform.api.tools.IParsableOption;
public class IntegerOption extends Option implements IParsableOption {
private static final long serialVersionUID = -390336028552394422L;
Integer value;
Integer defaultValue;
Integer maximumValue;
public IntegerOption(String name, String label, String description, Integer value, Integer maximum) {
super(name,label,description);
this.value = value;
this.defaultValue = value;
this.maximumValue = maximum;
}
public IntegerOption(final String name, final String label, final String description, final Integer value) {
super(name, label, description);
this.value = value;
this.defaultValue = value;
this.maximumValue = null;
}
public Integer getValue() {
return value;
}
public Integer getDefault() {
return defaultValue;
}
public boolean hasMaximumValue() {
return maximumValue != null;
}
public Integer getMaximumValue() {
return maximumValue;
}
public void setDefault(final int number) {
defaultValue = Integer.valueOf(number);
}
public void setValue(final int number) {
value = Integer.valueOf(number);
}
@Override
public boolean isDefault() {
return value.equals(defaultValue);
}
@Override
public void setToDefault() {
value = defaultValue;
}
public boolean fromString(final String text) {
try {
value = Integer.decode(text);
} catch (NumberFormatException e) {
return false;
}
return true;
}
}