Documentando con Javadoc
Problema Como saber quais classes podemos usar? Quais os seus métodos e o que eles fazem? Através de alguma documentação. A documentação do Java pode ser acessada via Internet a partir do endereço: http://java.sun.com/javase/6/docs/api/ Javadoc: Quadro superior esquerdo: pacotes Quadro inferior esquerdo: classes e interfaces. Quadro da direita: detalhes do que foi escolhido. Métodos e atributos privados não aparecem. Podemos gerar nossos próprios javadoc a partir da linha de comando, usando o comando javadoc.
Geração de Javadoc A partir do Eclipse Menu Project > Generate Javadoc Ou pelo export do projeto.
Javadoc O Javadoc é criado a partir de comentários delimitados por /** e */. Linhas entre os delimitadores apenas precisam de um *. Nos comentários podemos definir autor, versão, parâmetros, retorno, etc. /** * Classe responsavel por moldar as Contas do Banco * * @author Guilherme */ public abstract class Conta {
Javadoc /** * Metodo que incrementa o saldo. * * @param valor */ public void deposita(double valor) {
Javadoc
Comentários em Java Comentários de linha Iniciam com duas barras consecutivas (//) e continuam até o final da linha Comentários em bloco Iniciam com a seqüência barra asterisco (/*) e encerram com a seqüência inversa asterisco barra (*/) Podem se estender por mais de uma linha Comumente usa-se um asterisco no início de cada linha que compõe o comentário
Comentários em Java //Exemplo de comentário de linha //Outra linha de comentário /* Exemplo de comentário * em bloco que se estende por mais * de uma linha */ /* Outro exemplo de comentário em bloco */
Documentação com Javadoc Sintaxe Possui um conjunto doc tags que são comandos iniciados por @ e divididas em dois subconjuntos: Standalone doc tags devem estar no início de cada linha In line doc tags podem aparecer em qualquer parte do javadoc e devem vir entre chaves {...} Aceita HTML embutido.
Documentação /** * Classe base responsável pelo armazenamento das * informações do cliente da loja. * @autor Fulano * @version 1.0 */ public class Pessoa { * Identidicador único do Cliente no sistema private int id; ... * Construtor ... public Pessoa() { } * Fornece o identificador único do cliente * @return Número que identifica o clienete no sistema public int getId(){ return id; // ...
HTML embutido javadoc passa todo código HTML contido no comentário para o HTML gerado Usado para formatar o comentário Exemplo: /** * <pre> * System.out.println(new Date()); * </pre> */ * Você pode <b>inserir</b> listas: * <ol> * <li> Item um * <li> Item dois * <li> Item três * </ol>
doc tags @see – faz referência à documentação de outra classe @see nome-da-classe @see nome-completamente-qualificado @see nome-completamente-qualificado#nome-metodo Gera o link “See Also” na documentação {@link} – semelhante à tag see, exceto pelo fato de poder ser usada inline e permitir a adição de um rótulo {@link nome-completamente-qualificado#nome-metodo rotulo} {@docRoot} - fornece um path relativo para o diretório raiz da documentação gerada /** * Veja o <a href="{@docRoot}/copyright.html">Copyright</a>. */
doc tags {@inheritDoc} – herda o comentário de uma superclasse dentro do comentário corrente @version – informação sobre a versão da classe /** * Insere as informações no Banco de Dados. {@inheritDoc} */ public void save(Pessoa pessoa) /** * Classe responsável pela persistência das informações. * * @version 1.2 */ public class PessoaBD{ ... }
doc tags @author – informação sobre o autor da classe @since – permite informar a versão do código a partir da qual um característica e suportada /** * Classe responsável pela persistência das informações. * * @author Fulano da Silva * @author Beltrano da Silva */ public class PessoaBD{...} /** * Insere as informações no Banco de Dados. * * @since 1.2 */ public void save(Pessoa pessoa)
doc tags @param – usada na documentação de métodos. Permite fazer uma descrição da lista de parâmetros de um método @return – usada na documentação de métodos. Permite fazer uma descrição do retorno do método /** * Insere as informações no Banco de Dados. * * @param pessoa Objeto que contém as informações * @param usuario Usuario responsável pela operação * @since 1.2 */ public void insert(Pessoa pessoa, Usuario usuario) /** * Lista todos as pessoas cadastradas * * @return Uma lista formada por todas as pessoas cadastradas */ public List findAll(){...}
doc tags @deprecated – indica que o elemento relacionado será substituído por outro melhorado /** * Insere as informações no Banco de Dados. * * @param pessoa Objeto que comtém as informações * @deprecated */ public void insert(Pessoa pessoa)
Parte integrante do JDK Sinopse: javadoc [ options ] [ packagenames ] [ sourcefilenames ] [ @argfiles ] options: Opções de linha de comando packagenames: lista de nomes de pacotes, separados por espaço, que deverão ser documentados sourcefilenames: lista de nomes de arquivos, separados por espaço. Javadoc processará todos os arquivos terminados com .java @argfiles: um ou mais arquivos que contém opções Javadoc, lista de pacotes ou lista de arquivos fontes em qualquer ordem