[Resolvido] Caelum Stella - Validar IE

2 respostas
marciosouzajunior

Pessoal, estou usando a lib caelum stella pra validar alguns dados e estou com dúvida para validar inscrição estadual,
eu ví que tem um pacote com classes para validadar IE de quase todos estados:

br.com.caelum.stella.validation.ie.IEMinasGeraisValidator
br.com.caelum.stella.validation.ie.IEAcreValidator
etc…

Minha dúvida é se tenho que verificar o estado que o usuário escolher e validar de acordo com a classe ou
se tem alguma forma de fazer tipo um .setEstado e instanciar apenas uma classe pra todos.

2 Respostas

cinei

Veja se ajuda.
Meio grande mais acho que resolve todos os estados.

.
.
.

if (!validarIE(("SP", IE))
        System.out.println("IE incorreta");
.
.
.

	public boolean validarIE(String ufSigla, String ie){
		boolean retorno = true;
		List<ValidationMessage> msgs = new ArrayList<ValidationMessage>();
		try {
			if (ufSigla.toUpperCase().equals("AC")){
				IEAcreValidator obj = new IEAcreValidator();
				msgs = obj.invalidMessagesFor(ie);
			}else{
				if (ufSigla.toUpperCase().equals("AL")){
					IEAlagoasValidator obj = new IEAlagoasValidator();
					msgs = obj.invalidMessagesFor(ie);
				}else{
					if (ufSigla.toUpperCase().equals("AP")){
						IEAmapaValidator obj = new IEAmapaValidator();
						msgs = obj.invalidMessagesFor(ie);
					}else{
						if (ufSigla.toUpperCase().equals("AM")){
							IEAmazonasValidator obj = new IEAmazonasValidator();
							msgs = obj.invalidMessagesFor(ie);
						}else{
							if (ufSigla.toUpperCase().equals("BA")){
								IEBahiaValidator obj = new IEBahiaValidator();
								msgs = obj.invalidMessagesFor(ie);
							}else{
								if (ufSigla.toUpperCase().equals("CE")){
									IECearaValidator obj = new IECearaValidator();
									msgs = obj.invalidMessagesFor(ie);
								}else{
									if (ufSigla.toUpperCase().equals("DF")){
										IEDistritoFederalValidator obj = new IEDistritoFederalValidator();
										msgs = obj.invalidMessagesFor(ie);
									}else{
										if (ufSigla.toUpperCase().equals("ES")){
											IEEspiritoSantoValidator obj = new IEEspiritoSantoValidator();
											msgs = obj.invalidMessagesFor(ie);
										}else{
											if (ufSigla.toUpperCase().equals("GO")){
												IEGoiasValidator obj = new IEGoiasValidator();
												msgs = obj.invalidMessagesFor(ie);
											}else{
												if (ufSigla.toUpperCase().equals("MA")){
													IEMaranhaoValidator obj = new IEMaranhaoValidator();
													msgs = obj.invalidMessagesFor(ie);
												}else{
													if (ufSigla.toUpperCase().equals("MS")){
														IEMatoGrossoDoSulValidator obj = new IEMatoGrossoDoSulValidator();
														msgs = obj.invalidMessagesFor(ie);
													}else{
														if (ufSigla.toUpperCase().equals("MT")){
															IEMatoGrossoValidator obj = new IEMatoGrossoValidator();
															msgs = obj.invalidMessagesFor(ie);
														}else{
															if (ufSigla.toUpperCase().equals("MG")){
																IEMinasGeraisValidator obj = new IEMinasGeraisValidator();
																msgs = obj.invalidMessagesFor(ie);
															}else{
																if (ufSigla.toUpperCase().equals("PB")){
																	IEParaibaValidator obj = new IEParaibaValidator();
																	msgs = obj.invalidMessagesFor(ie);
																}else{
																	if (ufSigla.toUpperCase().equals("PR")){
																		IEParanaValidator obj = new IEParanaValidator();
																		msgs = obj.invalidMessagesFor(ie);
																	}else{
																		if (ufSigla.toUpperCase().equals("PA")){
																			IEParaValidator obj = new IEParaValidator();
																			msgs = obj.invalidMessagesFor(ie);
																		}
																	}
																}
															}
														}
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}

			if (ufSigla.toUpperCase().equals("PE")){
				IEPernambucoValidator obj = new IEPernambucoValidator();
				msgs = obj.invalidMessagesFor(ie);
			}else{
				if (ufSigla.toUpperCase().equals("PI")){
					IEPiauiValidator obj = new IEPiauiValidator();
					msgs = obj.invalidMessagesFor(ie);
				}else{
					if (ufSigla.toUpperCase().equals("RJ")){
						IERioDeJaneiroValidator obj = new IERioDeJaneiroValidator();
						msgs = obj.invalidMessagesFor(ie);
					}else{
						if (ufSigla.toUpperCase().equals("RN")){
							IERioGrandeDoNorteValidator obj = new IERioGrandeDoNorteValidator();
							msgs = obj.invalidMessagesFor(ie);
						}else{
							if (ufSigla.toUpperCase().equals("RS")){
								IERioGrandeDoSulValidator obj = new IERioGrandeDoSulValidator();
								msgs = obj.invalidMessagesFor(ie);
							}else{
								if (ufSigla.toUpperCase().equals("RO")){
									IERondoniaValidator obj = new IERondoniaValidator();
									msgs = obj.invalidMessagesFor(ie);
								}else{
									if (ufSigla.toUpperCase().equals("RR")){
										IERoraimaValidator obj = new IERoraimaValidator();
										msgs = obj.invalidMessagesFor(ie);
									}else{
										if (ufSigla.toUpperCase().equals("SC")){
											IESantaCatarinaValidator obj = new IESantaCatarinaValidator();
											msgs = obj.invalidMessagesFor(ie);
										}else{
											if (ufSigla.toUpperCase().equals("SP")){
												IESaoPauloValidator obj = new IESaoPauloValidator();
												msgs = obj.invalidMessagesFor(ie);
											}else{
												if (ufSigla.toUpperCase().equals("SE")){
													IESergipeValidator obj = new IESergipeValidator();
													msgs = obj.invalidMessagesFor(ie);
												}else{
													if (ufSigla.toUpperCase().equals("TO")){
														IETocantinsValidator obj = new IETocantinsValidator();
														msgs = obj.invalidMessagesFor(ie);
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}

			if (msgs.size() > 0)
				retorno = false;
			else
				retorno = true;
			
		} catch (Exception e) {
			retorno = false;
		}

		return retorno;
	}
marciosouzajunior

Realmente um pouco grande mas vou fazer dessa forma.
Muito obrigado!

Edit:
Implementei conforme o código abaixo, caso mais alguem precise:

import br.com.caelum.stella.validation.CNPJValidator;
import br.com.caelum.stella.validation.ie.*;

/**
 *
 * @author Márcio de Souza Júnior
 */
public class Validador {

    public static boolean validaCNPJ(String cnpj) {

        try {

            new CNPJValidator(false).assertValid(cnpj);
            return true;

        } catch (Exception e) {
            return false;
        }

    }

    public static boolean validaIE(String ie, String uf) {
        
        try {

            if (uf.equals("AC")) {
                new IEAcreValidator(false).assertValid(ie);
            }
            if (uf.equals("AL")) {
                new IEAlagoasValidator(false).assertValid(ie);
            }
            if (uf.equals("AP")) {
                new IEAmapaValidator(false).assertValid(ie);
            }
            if (uf.equals("AM")) {
                new IEAmazonasValidator(false).assertValid(ie);
            }
            if (uf.equals("BA")) {
                new IEBahiaValidator(false).assertValid(ie);
            }
            if (uf.equals("CE")) {
                new IECearaValidator(false).assertValid(ie);
            }
            if (uf.equals("DF")) {
                new IEDistritoFederalValidator(false).assertValid(ie);
            }
            if (uf.equals("ES")) {
                new IEEspiritoSantoValidator(false).assertValid(ie);
            }
            if (uf.equals("GO")) {
                new IEGoiasValidator(false).assertValid(ie);
            }
            if (uf.equals("MA")) {
                new IEMaranhaoValidator(false).assertValid(ie);
            }
            if (uf.equals("MS")) {
                new IEMatoGrossoDoSulValidator(false).assertValid(ie);
            }
            if (uf.equals("MT")) {
                new IEMatoGrossoValidator(false).assertValid(ie);
            }
            if (uf.equals("MG")) {
                new IEMinasGeraisValidator(false).assertValid(ie);
            }
            if (uf.equals("PA")) {
                new IEParaValidator(false).assertValid(ie);
            }
            if (uf.equals("PB")) {
                new IEParaibaValidator(false).assertValid(ie);
            }         
            if (uf.equals("PR")) {
                new IEParanaValidator(false).assertValid(ie);
            }
            if (uf.equals("PE")) {
                new IEPernambucoValidator(false).assertValid(ie);
            }
            if (uf.equals("PI")) {
                new IEPiauiValidator(false).assertValid(ie);
            }
            if (uf.equals("RJ")) {
                new IERioDeJaneiroValidator(false).assertValid(ie);
            }
            if (uf.equals("RN")) {
                new IERioGrandeDoNorteValidator(false).assertValid(ie);
            }
            if (uf.equals("RS")) {
                new IERioGrandeDoSulValidator(false).assertValid(ie);
            }
            if (uf.equals("RO")) {
                new IERondoniaValidator(false).assertValid(ie);
            }
            if (uf.equals("RR")) {
                new IERoraimaValidator(false).assertValid(ie);
            }
            if (uf.equals("SC")) {
                new IESantaCatarinaValidator(false).assertValid(ie);
            }
            if (uf.equals("SP")) {
                new IESaoPauloValidator(false).assertValid(ie);
            }
            if (uf.equals("SE")) {
                new IESergipeValidator(false).assertValid(ie);
            }
            if (uf.equals("TO")) {
                new IETocantinsValidator(false).assertValid(ie);
            }
            
            return true;

        } catch (Exception e) {
            return false;
        }
    }
}

Obs.: Passar o cnpj ou iscrição sem formatação (somente números)

Criado 13 de março de 2012
Ultima resposta 14 de mar. de 2012
Respostas 2
Participantes 2