package com.bitmonlab.osiris.core.validations.aspect.contractViolationProcessor.defaultImplementation;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import com.bitmonlab.osiris.core.validations.annotations.ValidateEmailInSet;
public class ValidateEmailInSetImpl implements ConstraintValidator<ValidateEmailInSet, Map<String, Object>> {
private static final String USER_CUSTOM_INFORMATION_EMAIL = "email";
private static final String EMAIL_PATTERN =
"^[_A-Za-z0-9-\\+]+(\\.[_A-Za-z0-9-]+)*@"
+ "[A-Za-z0-9-]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$";
private Pattern pattern;
private Matcher matcher;
public void initialize(ValidateEmailInSet constraintAnnotation) {
pattern = Pattern.compile(EMAIL_PATTERN);
}
public boolean isValid(Map<String, Object> value,ConstraintValidatorContext context) {
if(null!= value && value.containsKey(USER_CUSTOM_INFORMATION_EMAIL)){
String email = String.valueOf(value.get(USER_CUSTOM_INFORMATION_EMAIL));
if(null!=email&& !email.trim().isEmpty()&& !email.equals("null")){
matcher = pattern.matcher(email);
return matcher.matches();
}
}
// Not applies
return true;
}
}