package br.com.caelum.stella.bean.validation.logic;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import br.com.caelum.stella.bean.validation.AcceptAny;
import br.com.caelum.stella.validation.AcceptAnyValidator;
/**
* Valida a cadeia gerada através do método {@linkplain #toString()} para
* verificar se ela está de acordo com o padrão de qualquer um dos documentos
* passados como parametro.
*
* @author Leonardo Bessa
* @author David Paniz
*
*/
public class StellaAcceptAnyValidator implements ConstraintValidator<AcceptAny, String> {
private AcceptAnyValidator stellaValidator;
public void initialize(AcceptAny annotation) {
AnnotationMessageProducer messageProducer = new AnnotationMessageProducer(annotation);
stellaValidator = new AcceptAnyValidator(messageProducer, annotation.formatted(), annotation.documentos());
}
public boolean isValid(String document, ConstraintValidatorContext context) {
if (document != null) {
if (document.trim().length() == 0) {
return true;
} else {
return stellaValidator.invalidMessagesFor(document).isEmpty();
}
} else {
return true;
}
}
}