package jalview.ws.params.simple; import jalview.ws.params.ParameterI; import jalview.ws.params.ValueConstrainI; /** * A model for a numeric-valued parameter which should be displayed using a * logarithmic scale * * @author TZVanaalten */ public class LogarithmicParameter extends Option implements ParameterI { final double defval; final double min; final double max; @Override public ValueConstrainI getValidValue() { return new ValueConstrainI() { @Override public ValueType getType() { return ValueType.Double; } @Override public Number getMin() { return min < max ? min : null; } @Override public Number getMax() { return min < max ? max : null; } }; } public LogarithmicParameter(LogarithmicParameter parm) { super(parm); max = parm.max; min = parm.min; defval = 0D; } public LogarithmicParameter(String name, String description, boolean required, Double defValue, double min, double max) { super(name, description, required, String.valueOf(defValue), null, null, null); defval = defValue; this.min = min; this.max = max; } public LogarithmicParameter(String name, String description, boolean required, Double defValue, double value, double min, double max) { super(name, description, required, String.valueOf(defValue), String.valueOf(value), null, null); defval = defValue; this.min = min; this.max = max; } @Override public LogarithmicParameter copy() { return new LogarithmicParameter(this); } }