Il n’y a pas que les adeptes de Lombok qui trouvent que la création d’un Java bean est une tâche répétitive et non gratifiante. Et que dire de la JavaDoc de ces derniers ? Ne vous est-il jamais arrivé de devoir ajouter la JavaDoc sur un Java bean avec plus d’une dizaine d’attributs ? Et donc 2 fois plus de méthodes !

Vous avez peut-être commencé à ajouter manuellement chaque bloc de JavaDoc attribut par attribut, méthode par méthode… Stop ! Il est possible d’automatiser cette tâche en lançant une génération sur tous les attributs et toutes les méthodes.

Imaginons la classe Java suivante :

package com.mycompany.myproject.mymodule;

import java.util.Date;

public class MyEntity {
	public long getId() {
		return id;
	}
	public void setId(long id) {
		this.id = id;
	}
	public Date getCreateDate() {
		return createDate;
	}
	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}
	public int getNumberOfCounters() {
		return numberOfCounters;
	}
	public void setNumberOfCounters(int numberOfCounters) {
		this.numberOfCounters = numberOfCounters;
	}
	private long id;
	private Date createDate;
	private int numberOfCounters;
}

Rendez-vous dans l’onglet “Project Explorer” ou “Outline” et sélectionnez tous les éléments pour lesquels il faut générer la JavaDoc :

project_exploreroutline

Faites le raccourci clavier “Alt+ Shift + J” et observez le résultat :

package com.mycompany.myproject.mymodule;

import java.util.Date;

public class MyEntity {
	/**
	 * @return
	 */
	public long getId() {
		return id;
	}
	/**
	 * @param id
	 */
	public void setId(long id) {
		this.id = id;
	}
	/**
	 * @return
	 */
	public Date getCreateDate() {
		return createDate;
	}
	/**
	 * @param createDate
	 */
	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}
	/**
	 * @return
	 */
	public int getNumberOfCounters() {
		return numberOfCounters;
	}
	/**
	 * @param numberOfCounters
	 */
	public void setNumberOfCounters(int numberOfCounters) {
		this.numberOfCounters = numberOfCounters;
	}
	/**
	 *
	 */
	private long id;
	/**
	 *
	 */
	private Date createDate;
	/**
	 *
	 */
	private int numberOfCounters;
}

La JavaDoc a été générée. Mais il faut avouer que de la JavaDoc vide ne fait pas très sérieux… C’est ici qu’entre en scène JAutodoc. Ce plugin pour Eclipse se charge d’ajouter automatiquement la JavaDoc dans les fichiers source. Pour cela, il faut faire un clic droit sur votre classe Java (ou sur un package pour appliquer la génération à toutes les classes), puis choisir “JAutodoc -> Add Javadoc”.

before_jautodoc

La JavaDoc générée automatiquement ressemble maintenant à quelque chose :

package com.mycompany.myproject.mymodule;

import java.util.Date;

// TODO: Auto-generated Javadoc
/**
 * The Class MyEntity.
 */
public class MyEntity {

	/**
	 * Gets the id.
	 *
	 * @return the id
	 */
	public long getId() {
		return id;
	}

	/**
	 * Sets the id.
	 *
	 * @param id the new id
	 */
	public void setId(long id) {
		this.id = id;
	}

	/**
	 * Gets the creates the date.
	 *
	 * @return the creates the date
	 */
	public Date getCreateDate() {
		return createDate;
	}

	/**
	 * Sets the creates the date.
	 *
	 * @param createDate the new creates the date
	 */
	public void setCreateDate(Date createDate) {
		this.createDate = createDate;
	}

	/**
	 * Gets the number of counters.
	 *
	 * @return the number of counters
	 */
	public int getNumberOfCounters() {
		return numberOfCounters;
	}

	/**
	 * Sets the number of counters.
	 *
	 * @param numberOfCounters the new number of counters
	 */
	public void setNumberOfCounters(int numberOfCounters) {
		this.numberOfCounters = numberOfCounters;
	}

	/** The id. */
	private long id;

	/** The create date. */
	private Date createDate;

	/** The number of counters. */
	private int numberOfCounters;
}

Remarquez que non seulement la JavaDoc n’est plus vide mais en plus JAutodoc utilise le CamelCase pour formuler une documentation pour naturelle.

Ce plugin offre de nombreuses autres possibilités que je n’ai pas encore exploré et que je vous laisse découvrir. En 5 minutes de lecture, cet article va soit vous en faire gagner des dizaines si ce n’est pas plus, soit vous faire ajouter de la JavaDoc là où elle faisait défaut…