@NotNull
@Constraint(validatedBy = OneContact.Validator.class)
@Retention(RetentionPolicy.RUNTIME)
public @interface OneContact {
String message() default "none or more than one contact";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
public class Validator implements ConstraintValidator<OneContact, Bean> {
@Override
public void initialize(final OneContact nonRecursive) {
}
@Override
public boolean isValid(final Bean validationBean, final ConstraintValidatorContext constraintValidatorContext) {
if (bean.getEmail() == null && bean.getPhone() == null) {
return false;
}
return bean.getEmail() != null || bean.getPhone() != null;
}
}
}