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; final double base; // todo is this even needed? @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; base = parm.base; } public LogarithmicParameter(String name, String description, boolean required, Double defValue, double min, double max, double base) { super(name, description, required, String.valueOf(defValue), null, null, null); defval = defValue; this.min = min; this.max = max; this.base = base; } public LogarithmicParameter(String name, String description, boolean required, Double defValue, double value, double min, double max, double base) { super(name, description, required, String.valueOf(defValue), String.valueOf(value), null, null); defval = defValue; this.min = min; this.max = max; this.base = base; } @Override public LogarithmicParameter copy() { return new LogarithmicParameter(this); } public double getBase() { return base; } }