import jalview.ws.params.ParameterI;
import jalview.ws.params.ValueConstrainI;
+import static java.util.Objects.requireNonNullElse;
/**
* @author jimp
*/
public class IntegerParameter extends Option implements ParameterI
{
+ public static class Builder extends Option.Builder
+ {
+ // assigning them the opposite way results in no limits unless both are set
+ protected int min = Integer.MAX_VALUE;
+
+ protected int max = Integer.MIN_VALUE;
+
+ @Override
+ public void setDefaultValue(String defaultValue)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setDefaultValue(Integer defaultValue)
+ {
+ if (defaultValue != null)
+ super.setDefaultValue(defaultValue.toString());
+ else
+ super.setDefaultValue(null);
+ }
+
+ @Override
+ public void setValue(String value)
+ {
+ throw new UnsupportedOperationException();
+ }
+
+ public void setValue(Integer value)
+ {
+ if (value != null)
+ super.setValue(value.toString());
+ else
+ super.setValue(null);
+ }
+
+ public void setMin(Integer min)
+ {
+ this.min = requireNonNullElse(min, Integer.MAX_VALUE);
+ }
+
+ public void setMax(Integer max)
+ {
+ this.max = requireNonNullElse(max, Integer.MIN_VALUE);
+ }
+
+ public void setBounds(Integer min, Integer max)
+ {
+ setMin(min);
+ setMax(max);
+ }
+
+ public IntegerParameter build()
+ {
+ return new IntegerParameter(this);
+ }
+ }
+
+ public static Builder newBuilder()
+ {
+ return new Builder();
+ }
+
int defval;
int min;
};
}
+ protected IntegerParameter(Builder builder)
+ {
+ super(builder);
+ min = builder.min;
+ max = builder.max;
+ if (defvalue != null)
+ defval = Integer.parseInt(defvalue);
+ }
+
public IntegerParameter(IntegerParameter parm)
{
super(parm);
}
public IntegerParameter(String name, String description, boolean required,
- int defValue, int min, int max)
+ int defValue, int min, int max)
{
super(name, description, required, String.valueOf(defValue), null, null,
- null);
+ null);
defval = defValue;
this.min = min;
this.max = max;
}
public IntegerParameter(String name, String description, boolean required,
- int defValue, int value, int min, int max)
+ int defValue, int value, int min, int max)
{
super(name, description, required, String.valueOf(defValue),
- String.valueOf(value), null, null);
+ String.valueOf(value), null, null);
defval = defValue;
this.min = min;
this.max = max;