/** * */ package org.javabuilders.handler.validation.validator; import java.util.regex.Pattern; import org.apache.commons.lang.StringUtils; import org.javabuilders.BuildResult; import org.javabuilders.NamedObjectProperty; import org.javabuilders.handler.validation.ValidationMessage; import org.javabuilders.handler.validation.ValidationMessageList; /** * Email address validator * @author Jacek Furmankiewicz * */ public class EmailAddressValidator extends AbstractValidator { private static String REGEX = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?"; /** * @param property * @param label * @param messageFormat * @param result */ public EmailAddressValidator(NamedObjectProperty property, String label, String messageFormat, BuildResult result) { super(property, label, messageFormat, result); } /* (non-Javadoc) * @see org.javabuilders.handler.validation.IValidator#validate(java.lang.Object, org.javabuilders.handler.validation.ValidationMessageList) */ public void validate(Object value, ValidationMessageList list) { String sValue = getStringValue(value); if (StringUtils.isNotEmpty(sValue)) { if (!Pattern.matches(REGEX, sValue)) { list.add(new ValidationMessage(getProperty(), getMessage(getLabel()))); } } } }