コンマで区切られた電子メールのリストを含む文字列があるため、独自のAnnatotation Constraintを作成したいと考えています。
ここからドキュメントに従います:http://docs.jboss.org/hibernate/validator/4.1/reference/en-US/html/validator-customconstraints.html
私のプロジェクトでは、Bean 検証のプロバイダーとして Hibernate Validator を使用しています。@Email
そして、Hibernate が制約を提供していることに気付きました。
自分の Validator クラスから org.hibernate.validator.constraints.impl.EmailValidator::isValid を呼び出すことは可能ですか?
私は以下とその作品を作りました:
public class EmailsValidator implements ConstraintValidator<Emails, String> {
private EmailValidator emailValidator = new EmailValidator();
@Override
public void initialize(Emails constraintAnnotation) {
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
System.out.println("EmailsValidator::isValid");
if (value == null || value.isEmpty()) {
return true;
}
final String[] emails = value.split(",\\s*");
for (String anEmail : emails) {
System.out.println("anEmail = " + anEmail);
if (!emailValidator.isValid(anEmail, context)) {
return false;
}
}
return true;
}
}
それはそれを作るための最も効率的な方法ですか?
さよなら。