domingo, 14 de outubro de 2007

Construindo uma janela de consulta genérica - poder de Java Reflection + Annotations

Olá,

Hoje estarei comentando sobre algo que fiz semana passada em um sistema web que estou desenvolvendo. Por se tratar de um ERP cuja aplicação é Form-based, vi a necessidade de construir um sistema de consulta genérica, onde dada uma classe POJO qualquer, ele montasse uma janela de consulta baseada em todos os atributos da mesma. Para implementar tal funcionalidade, mais uma vez o grande poderio da tecnologia Java garantiu que isso fosse implementado de forma elegante e prática.
Basicamente, o que desenvolvi foi um método que retorna uma lista de parâmetros de consulta para que a tela genérica possa ser renderizada. Para descobrir os atributos da classe POJO passada por parâmetro ao método utilizei Java Reflection e Annotations.
Consegui implementar isso, graças a utilização de uma DaoFactory genérica, que inclusive detalhei em um post anterior aqui do blog. Com ela, dada uma POJO qualquer, pode-se obter sua respectiva Dao, e com sua dao, executar o método retornarTodos().

O código deste método postei em um pastebin externo para facilitar a leitura. Deixei o código bem comentado, por isso acho que está auto explicativo. O link é: http://fr.pastebin.ca/736916
Só peço desculpas pela identação do código-fonte, no eclipse está perfeita, porém ao transferir para o textarea do pastebin ficou errado.

Se achar interessante e tiver alguma dúvida, por favor não hesite em enviar um recado ou e-mail.

[]'s