package edu.ualberta.med.biobank.gui.common.validators;
import java.util.regex.Pattern;
import org.eclipse.core.databinding.validation.ValidationStatus;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
/**
* Value can be empty but if is not empty, should be something like 'ddd@dd.dd'
*
* @author delphine
*/
public class EmailValidator extends AbstractValidator {
public static final String EMAIL_PATTERN = ".+@.+\\..+"; //$NON-NLS-1$
public EmailValidator(String message) {
super(message);
}
@Override
public IStatus validate(Object value) {
if ((value != null) && !(value instanceof String))
throw new RuntimeException(
Messages.NonEmptyStringValidator_non_string_error);
String email = (String) value;
if ((value == null) || (email.length() == 0)
|| Pattern.matches(EMAIL_PATTERN, email)) {
hideDecoration();
return Status.OK_STATUS;
}
showDecoration();
return ValidationStatus.error(errorMessage);
}
}