package edu.ualberta.med.biobank.validators;
import org.eclipse.core.databinding.validation.ValidationStatus;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import edu.ualberta.med.biobank.gui.common.validators.AbstractValidator;
public class TelephoneNumberValidator extends AbstractValidator {
public TelephoneNumberValidator(String message) {
super(message);
}
@Override
public IStatus validate(Object value) {
if (!(value instanceof String)) {
throw new RuntimeException(
Messages.TelephoneNumberValidator_nonstring_error_msg);
}
String v = (String) value;
int len = v.length();
int numDigits = 0;
if (len == 0) {
hideDecoration();
return Status.OK_STATUS;
}
for (int i = 0; i < len; ++i) {
if (Character.isDigit(v.charAt(i))) {
++numDigits;
}
}
if (numDigits >= 10) {
hideDecoration();
return Status.OK_STATUS;
}
showDecoration();
return ValidationStatus.error(errorMessage);
}
}