package br.com.caelum.stella.bean.validation.logic;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import br.com.caelum.stella.bean.validation.NIT;
import br.com.caelum.stella.validation.NITValidator;
/**
* Valida a cadeia gerada através do método {@linkplain #toString()} para
* verificar se ela está de acordo com o padrão de um NIT. O padrão NIT é o
* mesmo utilizado no PIS, PASEP e o SUS.
*
* @author Fabio Kung
* @author Leonardo Bessa
*/
public class StellaNITValidator implements ConstraintValidator<NIT, String> {
private NITValidator stellaValidator;
public void initialize(NIT nit) {
AnnotationMessageProducer messageProducer = new AnnotationMessageProducer(
nit);
stellaValidator = new NITValidator(messageProducer, nit.formatted());
}
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value != null) {
if (value.trim().length() == 0) {
return true;
} else {
return stellaValidator.invalidMessagesFor(value).isEmpty();
}
} else {
return true;
}
}
}