package org.geogebra.common.util;
import org.geogebra.common.util.debug.Log;
public class Validation {
public static double validateDouble(TextObject tf, double def) {
return new DoubleValidator().validateDouble(tf, def);
}
public static double validateDoublePositive(TextObject tf, double def) {
DoubleValidator dv = new DoubleValidator() {
@Override
protected boolean checkInterval(double val) {
return val > 0;
}
};
return dv.validateDouble(tf, def);
}
private static class DoubleValidator {
protected DoubleValidator() {
}
public double validateDouble(TextObject tf, double def) {
double val = Double.NaN;
try {
val = Double.parseDouble(tf.getText());
} catch (NumberFormatException e) {
Log.debug("invalid number:" + tf.getText());
}
if (!Double.isNaN(val) && !Double.isInfinite(val)
&& checkInterval(val)) {
return val;
}
tf.setText(def + "");
return def;
}
protected boolean checkInterval(double val) {
return true;
}
}
}