Biblioteca para Validação de CNPJ, CPF, IE

Salve, salve galera do GUJ.

Sou iniciante em Java e criei uma biblioteca para validar CNPJ, CPF e IE.
Estou disponibilizando a mesma para avaliação. Se alguém gostar e quiser utilizar em suas aplicações sinta se a vontade. A lib. foi implementada com base nas informações do sintegra (WWW.sintegra.gov).
Bem meu objetivo em postar esta lib. No fórum é receber opiniões e sugestões a seu repeito.
A utilização é simples, feita através da classe Validar de três métodos:
Construtor da classe validar: Validar(String t,String n)
// ‘t’ = tipo de validação desejada ex: cpf, CNPJ, SP, RJ e ‘n’ = número a ser validado.
Método que efetua a validação: verificador()
// retorna boolean.
Método que retorna o número: retornaNumFormatado()
// retorna a seqüência numérica validada acrescida dos caracteres especiais como: ?/?, ?.?,?-?etc .
No arquivo .rar também postei um formulário Swing para teste da biblioteca.

Link para baixar a biblioteca.: http://rapidshare.com/files/381411839/ValidacaoBR.rar.html

Link para baixar a biblioteca + código fonte.: http://rapidshare.com/files/381412642/ValidacaoBR_Jar_fonte.rar.html

Desde já obrigado

Contato: thiagohmatos@yahoo.com.br ou pelo fórum.

parabéns pela iniciativa de postar seu conhecimento…

existe uma biblioteta bem famosa por ter varias utilidades pra quem desenvolve soft brasileiro, é open source e vale dar uma olhada, até mesmo pra estudo

http://stella.caelum.com.br/

abrassssss

Existe um projeto brasileiro que faz essas validações (além de outras)

o nome do projeto se chama Stella o link para ele é http://stella.caelum.com.br/

ele utiliza no momento Hibernate Validator 3 para validar, mas em breve vai sair versão validando com o Bean Validator, que é a API padrão do Java EE 6… talvez valha a pena dar uma olhada no projeto, usar anotações em beans, é hoje a forma padrão de se validar com java…

De toda forma, parabens pela iniciativa.

Que legal kra, vou baixar para testar, valeu

[quote=Lavieri]Existe um projeto brasileiro que faz essas validações (além de outras)

o nome do projeto se chama Stella o link para ele é http://stella.caelum.com.br/[/quote]

Faz tanto tempo que eu não vejo movimentação do pessoal do stella que achei que o projeto estava zumbi. Semana passada eu fiz um projeto para validar essas coisas usando a JSR303 pensando em depois de testar publicar. Mas já que o stella tá saindo, vamos ver como vai ficar.

Hmm, tão novo assim no Java e já disponibilizando uma lib para a comunidade… meus parabéns pela iniciativa.

[quote=garcia-jj][quote=Lavieri]Existe um projeto brasileiro que faz essas validações (além de outras)

o nome do projeto se chama Stella o link para ele é http://stella.caelum.com.br/[/quote]

Faz tanto tempo que eu não vejo movimentação do pessoal do stella que achei que o projeto estava zumbi. Semana passada eu fiz um projeto para validar essas coisas usando a JSR303 pensando em depois de testar publicar. Mas já que o stella tá saindo, vamos ver como vai ficar.
[/quote]

já ta feito para o Bean Validator… fui eu que fiz na verdade… o.O

só falta publicar, é que sou pessimo na arte de FORK/MARGE no git hub … ai só sai com assistencia do lucas… mas já fiz e já testei no JSR 303 e esta funcionando OK ^^

Hmm, então já sei que posso esperar por coisa boa mesmo. Se tiver um snapshot manda o link :smiley:

Ta ai …

O caelum-stella-core-1.2.jar é o mesmo do site, é o core original 1.2

o caelum-stella-validator-1.2.jar é o pacote para bean validators em conformidade com o JSR 303

como nem precisa dizer o core é necessário. E é o jar orignal apenas com os .class, você pode pegar diretamente do site stella original.

o validator é o “caelum-stella-validator-1.2.jar” e além dos .class também tem os .java

.

Lavieri, obrigado. Cerveja por minha conta quando eu fazer uma visita aí para esses lados :slight_smile:

Valew pela foça

 Já tinha baixado a Stella e a BrazilUtils mais  num primeiro momento resolvi não descompactar por alguns motivos. O primeiro é que recem formado precisa é por a mão na massa, o segundo é que com conhecimento limitado iria levar algum tempo para compreender o funcionamento destas lib. consagradas que agora com certaza irei utilizar.

O objetivo pricipal foi desenvolver para afirmar alguns conceitos importantes da linguajem como: herança, polimorfismo e encapsulamento.

Fiz varios testes e achei facil de usar pra quem tá comessando, aplicavel a praticamente todos componentes swing.

Obs: Bom a quem se interessar pelo SRC já fica aqui registrado o meu pedido de desculpas pela falta de comentários no código

[quote=ThiagoMatos]Valew pela foça

 Já tinha baixado a Stella e a BrazilUtils mais  num primeiro momento resolvi não descompactar por alguns motivos. O primeiro é que recem formado precisa é por a mão na massa, o segundo é que com conhecimento limitado iria levar algum tempo para compreender o funcionamento destas lib. consagradas que agora com certaza irei utilizar.

O objetivo pricipal foi desenvolver para afirmar alguns conceitos importantes da linguajem como: herança, polimorfismo e encapsulamento.

Fiz varios testes e achei facil de usar pra quem tá comessando, aplicavel a praticamente todos componentes swing.

Obs: Bom a quem se interessar pelo SRC já fica aqui registrado o meu pedido de desculpas pela falta de comentários no código
[/quote]

se vc for bom de inglês, da uma lida aqui =>> http://docs.jboss.org/hibernate/stable/validator/reference/en/html_single/

em resumo, uma validação Beans Validator ficaraia assim

public Empresa { @Cnpj private String cnpj; @NotEmpty private String nome; @Email private String email; //gettrs and setter }

para criar um validador vc só precisa usar esses comandos

ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); validator = factory.getValidator();

e para validar algo seria assim;

[code]Empresa empresa = new Empresa();

emrepsa.setNome(“Coca cola”);
empresa.setEmail(“ou louco meu”);

Set<ConstraintViolation> violacoes = validator.validate(empresa);
[/code]

se violacoes.isEmpty() é pq passou em todos os testes, caso contrario vc pode ver quais forem os problemas usando a api do COnstraintViolation …

para mais informações, verificar a api no link

abraços!!!

e continue assim, buscando novas soluções…

Lavieri valeu pela dica
Nunca usei o hibernate. Vi que vc já o tinha citado anteriormente e dei uma procurada na web pra saber do que se trata.
O link vai ajudar bastante já que o meu ingles não é dos piores.

Duvida: Hibernate só funciona com Java EE? PQ estou desenvolvendo uma aplicação SE e tenho intenção de usar o stela mais se conseguir atingir aos padrões não tem motivos para não utilizar a ValidacaoBR.

mais uma vez obrigado por mostrar o caminho.

Abrass

Não. Você pode usa-lo em ambiente JEE ou até mesmo em ambiente JSE normalmente.

Importei o stella mas como faço para usá-lo na minha web app?

abs,

AS

[quote=ThiagoMatos]Lavieri valeu pela dica
Nunca usei o hibernate. Vi que vc já o tinha citado anteriormente e dei uma procurada na web pra saber do que se trata.
O link vai ajudar bastante já que o meu ingles não é dos piores.

Duvida: Hibernate só funciona com Java EE? PQ estou desenvolvendo uma aplicação SE e tenho intenção de usar o stela mais se conseguir atingir aos padrões não tem motivos para não utilizar a ValidacaoBR.

mais uma vez obrigado por mostrar o caminho.

Abrass

[/quote]

Bom, só para informar algumas coisas … o Hibernate é só uma das várias implementações para o BEAN VALIDATOR JS303 … pode haver outras…

Ela não depende do JEE, basta você colocar o pacoter das especificação JSR 303 dentro do seu classpath, e colcoar o pacote de uma implementação (por exemplo o hiberante) …

Feito isso é só usar… você pode criar facilmente suas proprias validações, é realmente bem simples, aquele link te esnina como fazer isso… você pode criar validações como combinações de outras validações existentes, ou criar uma totalmente nova…

qualquer dúvida fala ai

[quote=andredecotia]Importei o stella mas como faço para usá-lo na minha web app?

abs,

AS[/quote]

http://guj.com.br/posts/list/205405.java#1043594

mais ou menos assim… só que o CNPJ do stella é todo maiusculo =P …

para usar com o pacote que eu coloquei aki neste post, ou seja com o Beans Validator (equivalente ao Hiberante Validator 4) é necessário ter o jar do hiberante na pasta lib

Como usar na minha aplicação hibernate, onde devo chamar esta lib, no model, no control ou no view? Dê umexemplo prático

Alguem saberia me informar se estas bibliotecas de validação do Stella são compativeis com o JSF 2.0 ??

[quote=ThiagoMatos]Salve, salve galera do GUJ.

Sou iniciante em Java e criei uma biblioteca para validar CNPJ, CPF e IE.
Estou disponibilizando a mesma para avaliação. Se alguém gostar e quiser utilizar em suas aplicações sinta se a vontade. A lib. foi implementada com base nas informações do sintegra (WWW.sintegra.gov).
Bem meu objetivo em postar esta lib. No fórum é receber opiniões e sugestões a seu repeito.
A utilização é simples, feita através da classe Validar de três métodos:
Construtor da classe validar: Validar(String t,String n)
// ‘t’ = tipo de validação desejada ex: cpf, CNPJ, SP, RJ e ‘n’ = número a ser validado.
Método que efetua a validação: verificador()
// retorna boolean.
Método que retorna o número: retornaNumFormatado()
// retorna a seqüência numérica validada acrescida dos caracteres especiais como: ?/?, ?.?,?-?etc .
No arquivo .rar também postei um formulário Swing para teste da biblioteca.

Link para baixar a biblioteca.: http://rapidshare.com/files/381411839/ValidacaoBR.rar.html

Link para baixar a biblioteca + código fonte.: http://rapidshare.com/files/381412642/ValidacaoBR_Jar_fonte.rar.html

Desde já obrigado

Contato: thiagohmatos@yahoo.com.br ou pelo fórum.[/quote]

Thiago, posso adicionar sua contribuição no proj: http://code.google.com/p/opensutils-br4j/ ??

Ressucitando um tópico antigo mas td bem, tou precisando de uma ajudinha, certamente vcs trataram isso nas bibliotecas que vcs desenvolveram. Pois bem, estou utilizando o bean validator em um projeto e pra validar o cpf(deve ser válido e unico na base de dados)eu criei minha anotação:

@Documented
@Constraint(validatedBy = CPFUniqueConstraintValidator.class)
@Target({ ElementType.METHOD, ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
public @interface CPFUniqueConstraint {
	String message() default "{}";
	Class<?>[] groups() default {};
    Class<? extends Payload>[] payload() default {};

}
public class CPFUniqueConstraintValidator  implements ConstraintValidator<CPFUniqueConstraint, String> {
	
	
	public boolean isValid(String value, ConstraintValidatorContext ctx) {
			
		InitialContext ic = null ;
		 ResponsavelFacade rf = null;	
		 try {
			ic = new InitialContext();
			rf = (ResponsavelFacade)ic.lookup(ResponsavelFacade.URI);
		} catch (NamingException e) {
			e.printStackTrace();
		}
		  
		 if(value == null || value.isEmpty())
		 { 
			 ConstraintValidatorContext.ConstraintViolationBuilder builder =
						ctx.buildConstraintViolationWithTemplate("cpf=Informe o CPF");
					    builder.addConstraintViolation();
						return false;
		 }	
		 	 
		 if(!CnpjCpf.isValidCPF(value)){
			 
			 ConstraintValidatorContext.ConstraintViolationBuilder builder =
						ctx.buildConstraintViolationWithTemplate("cpf=Informe um número de CPF válido");
					    builder.addConstraintViolation();
						return false; 
			 
		 }	
		long count  = rf.findCountCPFResponsavel(value);	
		if(count > 0){	
			 ConstraintValidatorContext.ConstraintViolationBuilder builder =
						ctx.buildConstraintViolationWithTemplate("cpf=CPF já cadastrado na base de dados");
					    builder.addConstraintViolation();
						return false;
		}	
		return true;
	}
	@Override
	public void initialize(CPFUniqueConstraint arg0) {
		
	}

}

A anotação funciona, entretanto só quando estou inserindo, mas se por acaso na classe"Responsavel" que tem esse atributitos cpf e nome, se eu altero o nome e dou um update nessa classe, ele entra nessa anotação de validação e não deixa alterar porque o CPF já está cadastrado, como resolver essa situação?