2010-11-02 20 views
1

J'écris un taglet personnalisé pour l'inclusion d'un fichier mathML dans un fichier javadoc html. Je voudrais stocker tous mes fichiers * .mml dans le même dossier, éventuellement dans le dossierComment obtenir la valeur de {@docroot} dans un tableau de bord com.sun.javadoc.Taglet?

. Ma question est:!. Comment puis-je connaître la valeur de la chaîne de @docRoot dans un objet Taglet (plus précisément, dans la méthode toString(com.sun.javadoc.Tag tag) Un grand merci

Répondre

1

J'ai aussi besoin d'afficher MathML dans mon javadoc j'ai écrit un blog après avoir vu comment je l'ai résolu ici: http://chadretz.wordpress.com/2010/12/19/mathml-inside-javadoc-using-mathjax-and-a-custom-taglet/

Plus précisément à votre problème, si vous regardez le code source Taglet que j'ai posté là (effondré par défaut), vous pouvez voir où je reçois le niveau supérieur ClassDoc de la balise .holder() pour obtenir la profondeur de répertoire à laquelle je suis afin que je puisse traverser vers le haut.Ceci aide si vous avez besoin de la racine HTML relative.Si vous avez besoin de connaître l'emplacement de vos fichiers MML pendant que le Taglet fonctionne, je vous suggère de les mettre le classpath et accédez-les comme Ressources.

0

A partir de la fonction getPackageDoc de @ChadRetz's blog, j'ai créé une classe utilitaire qui contient une fonction qui fait ce que vous voulez: Avec un com.sun.javadoc.Tag, elle renvoie l'URL relative de son fichier englobante (le fichier contenant cette balise), dans le répertoire racine JavaDoc - c'est l'équivalent de {@docRoot}.

La classe est appelée ComSunJavaDocUtil et le nom de la fonction est getRelativeUrlToDocRoot.

Une fonction de taglet exemple toString():

public String toString(Tag tag) { 
    return "Relative url to DOC ROOT for this tag's enclosing file is \"" + 
     ComSunJavaDocUtil.getRelativeUrlToDocRoot(tag) + "\""; 
} 

Cette classe utilitaire fait partie de Codelet. Les instructions d'installation sont here. Si cette classe d'utilitaires est tout ce que vous allez utiliser, alors les seuls jars dont vous avez besoin sur votre chemin de classe sont codelet et xbnjava ... et, bien sûr, com.sun.javadoc.