1 package jalview.ws.params.simple;
3 import jalview.ws.params.ArgumentI;
4 import jalview.ws.params.ParameterI;
5 import jalview.ws.params.ValueConstrainI;
12 public class DoubleParameter extends Option implements ParameterI
14 public static class Builder extends Option.Builder
16 // setting them the opposite way disables limits until both are set.
17 protected double min = Double.POSITIVE_INFINITY;
19 protected double max = Double.NEGATIVE_INFINITY;
22 * Setting string on double parameter is not allowed, use
23 * {@link #setValue(Double)} instead.
26 public void setValue(String value)
28 throw new UnsupportedOperationException();
31 public void setValue(Double value)
34 super.setValue(value.toString());
40 * Setting string on double parameter is not allowed, use
41 * {@link #setDefaultValue(Double)} instead.
44 public void setDefaultValue(String defaultValue)
46 throw new UnsupportedOperationException();
49 public void setDefaultValue(Double defaultValue)
51 if (defaultValue != null)
52 super.setDefaultValue(defaultValue.toString());
54 super.setDefaultValue(null);
57 public void setMin(Double min)
59 this.min = min != null ? min : Double.POSITIVE_INFINITY;
62 public void setMax(Double max)
64 this.max = max != null ? max : Double.NEGATIVE_INFINITY;
67 public void setBounds(Double min, Double max)
73 public DoubleParameter build()
75 return new DoubleParameter(this);
79 public static Builder newBuilder()
91 public ValueConstrainI getValidValue()
93 return new ValueConstrainI()
96 public ValueType getType()
98 return ValueType.Double;
102 public Number getMin()
104 return min < max ? min : null;
108 public Number getMax()
110 return min < max ? max : null;
115 protected DoubleParameter(Builder builder)
118 this.min = builder.min;
119 this.max = builder.max;
120 if (defvalue != null)
121 defval = Double.parseDouble(defvalue);
124 public DoubleParameter(DoubleParameter parm)
131 public DoubleParameter(String name, String description, boolean required,
132 Double defValue, double min, double max)
134 super(name, description, required, String.valueOf(defValue), null, null,
141 public DoubleParameter(String name, String description, boolean required,
142 Double defValue, Double value, double min, double max)
144 super(name, description, required, String.valueOf(defValue),
145 String.valueOf(value), null, null);
152 public DoubleParameter copy()
154 return new DoubleParameter(this);
158 * Return argument value as double or null if string value is null or empty.
160 * @param arg argument to extract value form
161 * @return argument value as double
163 public static Double parseDouble(ArgumentI arg)
165 return arg.getValue() != null && !arg.getValue().isEmpty() ?
166 Double.parseDouble(arg.getValue()) : null;
170 * Return argument value as float or null if string value is null or empty.
172 * @param arg argument to extract value from
173 * @return value as float
175 public static Float parseFloat(ArgumentI arg)
177 return arg.getValue() != null && !arg.getValue().isEmpty() ?
178 Float.parseFloat(arg.getValue()) : null;