13.2.3.2. 제약 조건 검증기 구현
주석을 정의한 경우 @Address 주석을 사용하여 요소를 검증할 수 있는 제한 조건 검증기를 생성해야 합니다. 이렇게 하려면 interface ConstraintValidator 를 다음과 같이 구현하십시오.
예제: AddressValidator Class
package org.jboss.as.quickstarts.bean_validation_custom_constraint;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import org.jboss.as.quickstarts.bean_validation_custom_constraint.PersonAddress;
public class AddressValidator implements ConstraintValidator<Address, PersonAddress> {
public void initialize(Address constraintAnnotation) {
}
/**
* 1. A null address is handled by the @NotNull constraint on the @Address.
* 2. The address should have all the data values specified.
* 3. Pin code in the address should be of at least 6 characters.
* 4. The country in the address should be of at least 4 characters.
*/
public boolean isValid(PersonAddress value, ConstraintValidatorContext context) {
if (value == null) {
return true;
}
if (value.getCity() == null || value.getCountry() == null || value.getLocality() == null
|| value.getPinCode() == null || value.getState() == null || value.getStreetAddress() == null) {
return false;
}
if (value.getCity().isEmpty()
|| value.getCountry().isEmpty() || value.getLocality().isEmpty()
|| value.getPinCode().isEmpty() || value.getState().isEmpty() || value.getStreetAddress().isEmpty()) {
return false;
}
if (value.getPinCode().length() < 6) {
return false;
}
if (value.getCountry().length() < 4) {
return false;
}
return true;
}
}