blob: 64bb0b5d4cd11ccf6d2aa4ba3c2f2e25e8d42118 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
Copyright (c) 2010, 2011, 2011 Oracle and/or its affiliates. All rights reserved.
-->
<html>
<head>
<title>Utilizando Suporte aos Processadores de Anotação no NetBeans IDE</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
<link rel="stylesheet" type="text/css" href="../../../netbeans.css">
<meta name="keywords" content="NETBEANS, TUTORIAL, GUIDE, USER, DOCUMENTATION">
<meta name="description" content="A very simple and quick introduction to the NetBeans IDE workflow by walking you through the creation of a
simple Hello World Java console application." >
</head>
<body>
<h1>Suporte aos Processadores de Anotação no NetBeans IDE, Parte I: Utilizando o Projeto Lombok </h1>
<img alt="O conteúdo desta página se aplica ao NetBeans IDE 6.9, 7.0 e 7.1" class="stamp" src="../../../images_www/articles/71/netbeans-stamp-71-72-73.png" title="O conteúdo nesta página se aplica ao NetBeans IDE 6.9, 7.0 e 7.1" width="114" />
<div class="margin-around">
<div class="feedback-box margin-around float-left" style="margin-right:15px">
<p><b>Conteúdo</b></p>
<ul class="toc">
<li><a href="annotations.html">Introdução</a></li>
<li><a href="annotations.html#map">Mapa das Opções javac e Comandos IDE</a> </li>
<li><strong>Utilizando Projeto Lombok para Anotações Personalizadas</strong>
<ul>
<li><a href="#create">Criando um Novo Projeto Java</a></li>
<li><a href="#enableann">Ativando Anotações Personalizadas para o Projeto</a> </li>
<li><a href="#writeapp">Escrevendo uma Aplicação com a Utilização de Anotações Personalizadas Lombok</a></li>
</ul>
</li>
<li><a href="annotations-custom.html">Utilizando Processadores Próprios de Anotação Personalizada no IDE</a></li>
<li><a href="annotations-custom.html#seealso" title="Compilando e Executando o Programa">Consulte Também </a></li>
</ul>
</div>
</div>
<p>Para demonstrar como as anotações personalizadas funcionam dentro do NetBeans IDE, vamos usar o Projeto Lombok, que fornece uma forma conveniente de gerar automaticamente diversos elementos de código Java, tais como getters, setters, construtores e outros. Para maiores informações sobre suas funcionalidades, visite o <a href="http://projectlombok.org/" target="_blank">website do projeto Lombok</a>. Entretanto, tenha em mente que o Projeto Lombok inclui algumas funcionalidades que podem não funcionar em todos os ambientes de desenvolvimento.</p>
<p style="clear:both"><b>Para concluir este tutorial, você precisa dos seguintes recursos e softwares.</b></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">Software ou Recurso</th>
<th class="tblheader" scope="col">Versão Necessária</th>
</tr>
<tr>
<td class="tbltd1"><a href="https://netbeans.org/downloads/index.html" target="_blank">NetBeans IDE</a></td>
<td class="tbltd1">7.1, 7.2, 7.3 </td>
</tr>
<tr>
<td class="tbltd1"><a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">Java Development Kit (JDK)</a></td>
<td class="tbltd1">versão 6</td>
</tr>
</tbody>
</table>
<p><strong class="notes">Observações:</strong></p>
<ul>
<li>O suporte a processadores de anotações personalizadas foi adicionado na release 6.9 do NetBeans IDE. Este tutorial não funcionará com versões anteriores do IDE. </li>
</ul>
<h2><a name="create"></a>Criando um Novo projeto Java </h2>
<p>Neste exercício você cria um projeto Java simples e uma classe denominada <tt>MyBooks.java</tt> que demonstra as anotações em ação.</p>
<ol>
<li>Escolha Arquivo > Novo Projeto e selecione Aplicação Java como o tipo de projeto.</li>
<li>Na página Nome e Localização do assistente do Novo Projeto, digite <tt>TestAnn</tt> como nome do projeto.</li>
<li>Digite <strong><tt>testann.TestBooks</tt></strong> no campo Criar Classe Principal para substituir o nome default da classe. Clique em Finalizar.<br> <img alt="tela do assistente Novo Projeto" class="margin-around b-all" src="../../../images_www/articles/72/java/annotations/newproj.png" title="Criando um novo projeto Java no NetBeans IDE">
<p>Quando você clica em Finalizar, o IDE cria a aplicação Java e abre a classe <tt>TestBooks.java</tt> no editor. Você pode ver que o novo projeto está agora visível na janela Projetos e que a classe <tt>TestBooks.java</tt> está no pacote <tt>testann</tt> sob o nó Pacotes de Código-fonte.</p></li>
<li>Clique com o botão direito do mouse no nó do pacote <tt>testann</tt> na janela Projetos e escolha Novo > Classe Java.</li>
<li>Digite <strong><tt>MyBooks</tt></strong> para o Nome da Classe e confirme que a classe será criada no pacote <tt>testann</tt>. Clique em Finalizar.
<p>Quando você clicar em Finalizar, o IDE abre a nova classe no editor.</p></li>
<li>No editor de código-fonte, adicione os seguintes três campos em <tt>MyBooks.java</tt>.
<pre class="examplecode">package testann;
public class MyBooks {
private int year; //fields
private String title;
private String author;
}</pre></li>
<li>Coloque o ponteiro do mouse na declaração da classe e pressione Ctrl-Espaço para chamar o suporte de autocompletar código do editor.</li>
<li>Selecione <tt>MyBooks (int year, String title, String author) - generate</tt> na lista autocompletar código para gerar um construtor para <tt>MyBooks.java</tt>.<br> <img alt="tela do recurso autocompletar código no editor" class="margin-around b-all" src="../../../images_www/articles/72/java/annotations/generate-constructor.png" title="Recurso autocompletar código para gerar o construtor">
</li>
<li>Salve as alterações.</li>
</ol>
<h2><a name="enableann"></a>Ativando Anotações Personalizadas (lombok.jar) para o Projeto </h2>
<p>Neste exercício, você irá modificar a janela de propriedades do projeto para adicionar uma biblioteca à classpath do projeto e ativar o processamento de anotações no editor.</p>
<ol>
<li>Faça download do arquivo <a href="http://code.google.com/p/projectlombok/downloads/list" target="_blank">lombok.jar</a> e salve no sistema. </li>
<li>Clique com o botão direito no nó do projeto <tt>TestAnn</tt> e escolha Propriedades. </li>
<li>Selecione a categoria Bibliotecas na caixa de diálogo Propriedades do Projeto.</li>
<li>Clique em Adicionar JAR/Pasta na guia Compilar e localize o arquivo <tt>lombok.jar</tt> submetido a download.<br> <img alt="tela de categoria das Bibliotecas na janela Propriedades" class="margin-around b-all" src="../../../images_www/articles/72/java/annotations/properties1.png" title="Categoria das bibliotecas na janela Propriedades">
<p>Os recursos adicionados à guia Compilar correspondem à opção <tt>-classpath</tt> do <a href="http://download.oracle.com/javase/6/docs/technotes/tools/windows/javac.html#options" target="_blank">compilador Java</a>. Como <tt>lombok.jar</tt> é um arquivo JAR único que contém definições de anotação e processadores de anotações, é recomendado adicioná-lo ao classpath do projeto, que é a guia Compilação. </p>
</li>
<li>Escolha a categoria Compilação na janela Propriedades do Projeto.</li>
<li>Confirme se a caixa de seleção Ativar o Processamento de Anotações está selecionada (ela é ativada por default) e selecione a caixa de seleção Ativar o Processamento de Anotações no Editor.<br> <img alt="tela de categoria de Compilação na janela Propriedades" class="margin-around b-all" src="../../../images_www/articles/72/java/annotations/properties2.png" title="Categoria de compilação na janela Propriedades">
<p>A caixa de seleção Ativar Processamento de Anotações ativa o processamento de anotação ao construir e compilar o projeto. Se a caixa de seleção não estiver selecionada, a opção <tt>-proc:none</tt> é passada para o compilador Java e a compilação ocorre sem qualquer processamento de anotações. Então, se deseja processar anotações no código, a caixa de seleção Ativar Processamento de Anotações deve estar selecionada.</p>
<p>Ao selecionar a caixa de seleção, Ativar Processamento de Anotações no Editor, você faz com que o processamento de anotações fique visível no editor. Quaisquer artefatos adicionais que forem gerados por processadores de anotações (classes, métodos, campos, etc.) ficam visíveis no editor IDE e disponíveis para a conclusão de código, no Navegador, Ir para Tipo, Localizar usos e outros.</p>
</li>
<li>Clique em OK na janela Propriedades do Projeto e retorne para o arquivo <tt>MyBooks.java</tt>. </li>
</ol>
<p>Caso você expanda o nó Bibliotecas na janela Projetos, verá que a <tt>lombok.jar</tt> está agora listada como uma biblioteca do projeto.</p>
<img alt="tela da janela Projetos" class="margin-around b-all" src="../../../images_www/articles/72/java/annotations/projects-window.png" title="Nó das bibliotecas na janela Projetos">
<h2><a name="writeapp"></a>Escrevendo uma Aplicação com a Utilização de Anotações Personalizadas Lombok </h2>
<ol>
<li>No arquivo <tt>MyBooks.java</tt>, digite <tt>@Data</tt> antes da declaração de classe <tt>MyBooks</tt>. <tt>@Data</tt> é uma anotação que gera o código padronizado para classes Java: getters para todos os campos, setters para todos os campos não-finais e o <tt>toString</tt> apropriado, <tt>equals</tt> e implementações <tt>hashCode</tt> que envolvem os campos da classe.
<p class="tips">Para aprender mais sobre quais anotações são suportadas pelo Projeto Lombok, consulte a <a href="http://projectlombok.org/features/index.html">Visão Geral das Funcionalidades</a> do Lombok.</p></li>
<li>Clique na dica na margem direita do editor e adicione importar para <tt>lombok.Data</tt>.<br> <img alt="tela de dicas no editor" class="margin-around b-all" src="../../../images_www/articles/72/java/annotations/import-lombok.png" title="Dica no editor para importar lombok">
<p>O código resultante no Editor deve ser parecido com o exemplo abaixo.</p>
<pre class="examplecode">package testann;
import lombok.Data;
@Data
public class MyBooks {
private int year; //fields
private String title;
private String author;
public MyBooks(int year, String title, String author) {
this.year = year;
this.title = title;
this.author = author;
}
}</pre>
<p>Observe que artefatos de código necessários, como getters, setters, toString, etc., têm sido gerados e é possível visualizá-los na janela do Navegador. A anotação <tt>@Data</tt> gera todos os códigos padronizados que são necessários para uma classe típica.</p>
<img alt="tela da janela Navegador" class="margin-around b-all" src="../../../images_www/articles/72/java/annotations/nav.png" title="Janela do Navegador mostrando os membros do projeto">
<p>É possível também chamar a janela autocompletar código (Ctrl-Espaço) e ver que os artefatos gerados estão disponíveis para pegá-los. Agora, veremos que o projeto compila e os artefatos gerados podem ser chamados de outras partes do programa.</p>
</li>
<li>Abra o arquivo <tt>Testbook.java</tt> com o método <em>main</em> e crie um novo objeto da classe <tt>MyBooks</tt>.
<pre class="examplecode">package testann;
public class TestBooks {
public static void main(String[] args) {
MyBooks books = new MyBooks(2009, "My Beautiful Dream", "John Smith");
}
}</pre>
</li>
<li>Adicione o seguinte código para imprimir os valores da variável <tt>books</tt>.
<p>Para voltar os valores, chamamos os métodos getter que são autogerados por <tt>lombok.jar</tt>. Enquanto estiver digitando, observe que os artefatos autogerados estão disponíveis da janela autocompletar código.</p>
<pre class="examplecode">package testann;
public class TestBooks {
public static void main(String[] args) {
MyBooks books = new MyBooks(2009, "My Beautiful Dream", "John Smith");
<span class="style4"><b>System.out.println("Year: " + books.getYear() + ", Title: " + books.getTitle() + ", Author: " + books.getAuthor());</b></span>
}
}</pre>
</li>
<li>Salve as alterações.</li>
<li>Clique com o botão direito do mouse no nó na janela Projetos e selecione Executar (F6).
<p>Ao executar a aplicação, você deverá ver a seguinte saída que mostra que a aplicação foi compilada com êxito.</p>
<img alt="tela da janela Saída" class="margin-around b-all" src="../../../images_www/articles/72/java/annotations/output.png" title="Janela de saída após a execução da aplicação"></li>
</ol>
<p>Você pode ver que os artefatos gerados pelo processador de anotação Lombok estão acessíveis de outras partes do programa.</p>
<h2><a name="nextsteps"></a>Próxima Etapa </h2>
<ul>
<li><a href="annotations-custom.html">Parte II: Utilizando o Próprio Processador de Anotação Personalizado no IDE</a></li>
</ul>
<div class="feedback-box"><a href="/about/contact_form.html?to=3&subject=Feedback:%20Using%20the%20Annotation%20Processors%20Support%20in%20NetBeans%20IDE">Envie-nos seu Feedback</a><br style="clear:both;" />
</div>
</body>
</html>