Anotando com Java 5 em três passos

 

O conceito das anotações já é bem conhecido dos programadores Java. Quem nunca ouviu falar de XDoclet? A grande maioria de nós já viu e ouviu falar algo sobre XDoclet. Pois bem, a idéia que envolve XDoclet é basicamente a mesma das anotações do Java 5 (JSR 175 – java.lang.annotation).

 

Anotações são essencialmente metadados, que têm por objetivo simplificar o desenvolvimento de software, possibilitando que em tempo de compilação, carregamento ou execução de classes, as suas metainformações sejam acessadas, bem como de seus métodos e campos.

 

Essa é uma ferramenta potencialmente simples e poderosa para geração de código e configuração de aplicação.

 

Entendeu a teoria? Então vamos anotar o que você já aprendeu...

 

O primeiro passo: o que anotar?

Existem muitas anotações já prontas, com diversas finalidades, que poderíamos discutir nesse artigo, como por exemplo, as anotações do Hibernate. Porém, acho mais interessante nesse primeiro momento, vermos como criar a nossa própria anotação e, posteriormente, em um outro artigo que ficarei devendo, estudarmos algumas anotações de terceiros.

 

Para começar, vamos criar a nossa anotação, a ConfiguraCampoAnnotation.

 

anotacaojavafig011.JPG 

Figura 1 – A anotação ConfiguraCampoAnnotation.java

 

Como pode ser visto na Figura 1, uma anotação é essencialmente uma interface acrescida de algumas anotações também. No nosso caso, a principal anotação é @Retention, que determina o momento em que poderemos acessar essa anotação.

 

Qual é o objetivo dessa anotação que criamos? Espere mais um pouco e você verá.

 

O segundo passo: onde anotar?

Criamos no passo anterior a nossa primeira anotação, a ConfiguraCampoAnnotation (Figura 1). Agora, vamos utilizá-la para anotar algo em algum lugar.

 

anotacaojavafig02.JPG

Figura 2 – A classe anotada Usuario.java

 

Conforme a Figura 2, criamos uma classe chamada Usuario e anotamos os seus três campos com a nossa anotação, a ConfiguraCampoAnnotation (Figura 1).

 

O que isso quer dizer? Quer dizer que em tempo de execução poderemos extrair metadados sobre esses campos para utilizarmos conforme a nossa necessidade. Trocando em miúdos, em tempo de execução da nossa aplicação, poderemos saber qual o tipo, o tamanho e a mascara de cada um dos três campos da classe Usuario.

 

O terceiro passo: como acessar minhas anotações?

Já criamos a nossa notação; já anotamos uma classe; agora, vamos para o terceiro e último passo: acessar essa anotação e utilizar suas informações.

 

anotacaojavafig03.JPG 

Figura 3 – A classe AcessaConfiguracaoCampo.java

 

Pronto! Concluímos o nosso exemplo. Ou não...

 

Ou não, porque talvez você esteja com um pouco de dificuldade para entender o código da Figura 3, por ele trabalhar com Reflexão. Então, vamos entendê-lo um pouco melhor.

 

# usuario1.getClass().getDeclaredFields() Retornar um array com todos os campos (instâncias da classe Field) declarados na classe Usuario, mesmo que estes sejam privados.

 

# field.getAnnotaions()Retornar um array contendo todas as anotações de um campo.

 

Simples, não?

 

Vejamos, então, o resultado da execução dessa classe:

 

anotacaojavafig04.JPG

Figura 4 – O resultado

 

Conclusão: até onde anotar?

Nesse breve artigo aprendemos um pouco sobre como criar uma anotação no Java 5 – em apenas três passos simples e objetivos.

 

Agora, a pergunta que fica no ar é: até onde anotar? Boa pergunta, não? Só que essa quem vai responder é você!

 

Problemas que envolvem configuração de aplicação, geração de código, e até mesmo regras de negócio aplicadas ao domínio da informação podem ser resolvidos com anotações. Você pode encarar esses problemas com outros olhos (“Se os teus olhos forem bons, todo o teu corpo será luz” – Mt 6:22).

 

Até o próximo artigo!

 

Yeshua HaMashiach!