Aplicar meta-programação em projeto grails
17/05/2012 16:18
0
Olá, pessoal!

Estou desenvolvendo um projeto em Grails no qual tenho que lidar com a leitura e correção de vários registros provenientes de diversas fontes (txt, csv, etc...) e popular diversas tabelas em minha base de dados. Para que isto seja possível, preciso fazer uma série de validações, como extrair acentos, verificar existência de espaços em branco, etc. Ou seja, várias dessas minhas entidades compartilham os mesmos métodos.

Inicialmente, criei os método em uma classe de serviço genérica:

static String removeAcentos(String str) {
str = Normalizer.normalize(str, Normalizer.Form.NFD)
str = str.replaceAll("[^\p{ASCII}]", "")
return str
}


O que eu queria fazer mesmo, era injetar o método acima (e diversos outros) diretamente na classe String, utilizando meta-programação, como abaixo:

String.metaClass.removeAcentos = {->
delegate = Normalizer.normalize(delegate, Normalizer.Form.NFD)
delegate = delegate.replaceAll("[^\p{ASCII}]", "")
return delegate
}


Minhas dúvidas são:
1) Onde crio esses métodos para que fiquem disponíveis em todos os escopos do sistema (inclusive no Bootstrap e, se possível, em ambiente de teste);
2) Existe impacto na produtividade de alguma forma ao utilizar essa abordagem?

Muito obrigado!
Tags: metaClass, meta-programação, groovy


1
Fala CarlosG,

Brother eu ainda ñ mexi com meta-programação, fiquei curioso e dei uma pesquisada rápida! achei um link muito interessante, creio que ñ te ajude muito, mas pra quem tah começando, achei bacana registrar aqui, segue o LINK


0
Muito bacana o link, Gabriel. Obrigado!

Consegui fazer o que eu queria inserindo o código na minha classe Bootstrap. E vou te dizer... Esse é um assunto muito pouco explorado e de uma utilidade absurda!!

Abraços.
30/05/2012 22:24



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto