package com.constellio.model.services.schemas.validators;
import java.util.HashMap;
import java.util.Map;
import com.constellio.model.entities.schemas.ConfigProvider;
import com.constellio.model.entities.schemas.Metadata;
import com.constellio.model.entities.schemas.validation.RecordMetadataValidator;
import com.constellio.model.frameworks.validation.ValidationErrors;
public class EmailValidator implements RecordMetadataValidator<String> {
@Override
public void validate(Metadata metadata, String email, ConfigProvider configProvider, ValidationErrors validationErrors) {
if (email != null && !isValid(email)) {
Map<String, Object> parameters = new HashMap<>();
parameters.put("EMAIL", email);
validationErrors.add(getClass(), "INVALID_EMAIL", parameters);
}
}
public static boolean isValid(String email) {
return email.matches(
"^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$");
}
}