Ajouter des Doclet options

Fermé
taiji_n Messages postés 7 Date d'inscription dimanche 12 décembre 2021 Statut Membre Dernière intervention 16 août 2024 - 7 mai 2023 à 12:35
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 7 mai 2023 à 18:36

Bonjour à tous

Je dois créer un doclet en Java dans lequel je dois créer deux options, cependant je ne trouve pas comment faire

Merci par avance

A voir également:

2 réponses

ozone_ Messages postés 1518 Date d'inscription lundi 13 juillet 2009 Statut Membre Dernière intervention 2 juin 2023 478
7 mai 2023 à 14:14

Bonjour!

Pour créer un doclet en Java avec des options, vous pouvez suivre les étapes suivantes :

1. Créez une classe qui implémente l'interface `com.sun.javadoc.Doclet`. Cette classe sera votre doclet.

2. Ajoutez les options que vous souhaitez prendre en charge dans la méthode `optionLength(String option)` de votre doclet. Cette méthode renvoie le nombre d'arguments pour chaque option. Par exemple, si vous avez une option `-foo` qui ne prend pas d'argument et une option `-bar` qui prend un argument, vous pouvez implémenter cette méthode comme suit :

public static int optionLength(String option) {
    switch (option) {
        case "-foo":
            return 0;
        case "-bar":
            return 1;
        default:
            return 0;
    }
}

3. Récupérez les arguments des options dans la méthode `start(RootDoc root)`. Cette méthode est appelée par Javadoc au début du traitement de la documentation. Vous pouvez utiliser la méthode `getRootDoc()` pour récupérer la racine de la documentation, puis utiliser la méthode `options()` pour récupérer les options passées à votre doclet. Par exemple :

public static boolean start(RootDoc root) {
    String[][] options = root.options();
    for (int i = 0; i < options.length; ++i) {
        String[] opt = options[i];
        switch (opt[0]) {
            case "-foo":
                // Traiter l'option -foo
                break;
            case "-bar":
                String arg = opt[1];
                // Traiter l'option -bar avec l'argument arg
                break;
            default:
                // Ignorer les options inconnues
                break;
        }
    }
    // ...
}

4. Compilez votre doclet en utilisant `javac` et spécifiez-le à Javadoc à l'aide de l'option `-doclet`.

5. Exécutez Javadoc avec votre doclet et vos options personnalisées en utilisant les options standard de Javadoc, comme `-d` pour spécifier le répertoire de destination pour les fichiers de documentation.

Voici un exemple complet de doclet Java avec deux options :

import com.sun.javadoc.*;

public class MyDoclet implements com.sun.javadoc.Doclet {
    public static int optionLength(String option) {
        switch (option) {
            case "-foo":
                return 0;
            case "-bar":
                return 1;
            default:
                return 0;
        }
    }

    public static boolean start(RootDoc root) {
        String[][] options = root.options();
        for (int i = 0; i < options.length; ++i) {
            String[] opt = options[i];
            switch (opt[0]) {
                case "-foo":
                    System.out.println("Option -foo activée");
                    break;
                case "-bar":
                    String arg = opt[1];
                    System.out.println("Option -bar activée avec argument : " + arg);
                    break;
                default:
                    // Ignorer les options inconnues
                    break;
            }
        }
        // ...
        return true;
    }

    public static void main(String[] args) {
        com.sun.tools.javadoc.Main.execute("MyDoclet", args);
    }
}

Vous pouvez maintenant compiler et exécuter ce doclet en utilisant les commandes suivantes :

javac MyDoclet.java
javadoc -doclet MyDoclet -foo -bar baz -d ./

Source: ChatGPT


0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
7 mai 2023 à 18:36

Bonjour,

ChatGPT c'est bien mignon, mais les explications et le code qu'il a pondu utilise des fonctionnalités qui n'existent plus depuis Java 9 (2017)...

Peut être qu'il faudrait revenir aux bases : RTFM !!

https://docs.oracle.com/en/java/javase/20/docs/api/jdk.javadoc/jdk/javadoc/doclet/package-summary.html


0