Estoy desarrollando una API con muchos métodos con nombres idénticos que solo se diferencian por la firma, que supongo que es bastante común. Todos hacen lo mismo, excepto que inicializan varios valores por defecto si el usuario no quiere especificar. Como ejemplo digerible, considere
public interface Forest
{
public Tree addTree();
public Tree addTree(int amountOfLeaves);
public Tree addTree(int amountOfLeaves, Fruit fruitType);
public Tree addTree(int amountOfLeaves, int height);
public Tree addTree(int amountOfLeaves, Fruit fruitType, int height);
}
La acción esencial realizada por todos estos métodos es la misma; se planta un árbol en el bosque. Muchas cosas importantes que los usuarios de mi API deben saber sobre cómo agregar árboles se mantienen para todos estos métodos.
Idealmente, me gustaría escribir un bloque Javadoc que sea utilizado por todos los métodos:
/**
* Plants a new tree in the forest. Please note that it may take
* up to 30 years for the tree to be fully grown.
*
* @param amountOfLeaves desired amount of leaves. Actual amount of
* leaves at maturity may differ by up to 10%.
* @param fruitType the desired type of fruit to be grown. No warranties
* are given with respect to flavour.
* @param height desired hight in centimeters. Actual hight may differ by
* up to 15%.
*/
En mi imaginación, una herramienta podría elegir mágicamente cuál de los @params se aplica a cada uno de los métodos, y así generar buenos documentos para todos los métodos a la vez.
Con Javadoc, si lo entiendo correctamente, todo lo que puedo hacer es esencialmente copiar y pegar el mismo bloque de javadoc cinco veces, con solo una lista de parámetros ligeramente diferente para cada método. Esto me suena engorroso y también es difícil de mantener.
¿Hay alguna forma de evitar eso? ¿Alguna extensión de javadoc que tenga este tipo de soporte? ¿O hay una buena razón por la que esto no es compatible y me perdí?