Я пытался создать собственный валидатор, чтобы я мог просто использовать аннотацию @NotEmpty для определенных классов (в данном случае java.util.Calendar или CommandItem). Но я получаю исключение:
javax.validation.UnexpectedTypeException: No validator could be found for type: com.bla.DocumentCommandItem
Теперь, единственное, что я могу придумать, почему это не работает, это то, что сама аннотация @NotEmpty объявляет это:
@Constraint(validatedBy = { })
Так что нет прямой связи с классом Validator. Но тогда как он проверяет строки и коллекции?
Это мой класс Validator:
public class DocumentNotEmptyExtender implements ConstraintValidator<NotEmpty,DocumentCommandItem> {
@Override
public void initialize( NotEmpty annotation ) {
}
@Override
public boolean isValid( DocumentCommandItem cmdItem, ConstraintValidatorContext context ) {
if ( !StringUtils.hasText( cmdItem.getId() ) && (cmdItem.getFilename() == null || cmdItem.getFilename().isEmpty()) ) {
return false;
} else {
return true;
}
}
}
Это вообще возможно?
(в качестве примечания ... Я также получил это исключение, когда делал свою аналогичную аннотацию, но таинственно исчезла).
Спасибо!