package org.xcolab.view.util.validation; import org.xcolab.client.members.MembersClient; import org.xcolab.client.members.exceptions.MemberNotFoundException; import org.xcolab.client.sharedcolab.SharedColabClient; import javax.validation.ConstraintValidatorContext; public class UniqueEmailValidator extends CustomValidator<UniqueEmail> { private String emailProperty; @Override public void initialize(UniqueEmail constraintAnnotation) { emailProperty = constraintAnnotation.emailProperty(); } @Override public boolean isValid(Object value, ConstraintValidatorContext context) { String email = ConstraintValidatorHelper.getPropertyValue(String.class, emailProperty, value); if (email == null) { return true; } boolean isValid = !SharedColabClient.isEmailUsed(email); if(!isValid) { context.disableDefaultConstraintViolation(); processDefaultErrorMessage("User with given email already exists", isValid, context); } return isValid; } }