package de.urszeidler.shr5.ecp.binding;
import org.eclipse.core.databinding.validation.IValidator;
import org.eclipse.core.databinding.validation.ValidationStatus;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
/**
* A simple validator for integer rages.
*
* @author urs
*/
public class NumberInRangeValidator implements IValidator {
private long min;
private long max;
protected String toMutchMessage = "To much.";
protected String toLessMessage = "To less.";
public NumberInRangeValidator(long min, long max) {
this.min = min;
this.max = max;
}
public NumberInRangeValidator(long min) {
this.min = min;
this.max = Long.MAX_VALUE;
}
@Override
public IStatus validate(Object value) {
if (!(value instanceof Number)) {
throw new IllegalArgumentException("Parameter 'value' is not of type Number."); //$NON-NLS-1$
}
Number number = (Number)value;
if (number.longValue() > max) {
return ValidationStatus.error(toMutchMessage);
}
if (number.longValue() < min) {
return ValidationStatus.error(toLessMessage);
}
return Status.OK_STATUS;
}
public void setToMutchMessage(String toMutchMessage) {
this.toMutchMessage = toMutchMessage;
}
public void setToLessMessage(String toLessMessage) {
this.toLessMessage = toLessMessage;
}
}