Skip to content
This repository has been archived by the owner on Dec 16, 2021. It is now read-only.

Commit

Permalink
add ExperimentalTaglet
Browse files Browse the repository at this point in the history
  • Loading branch information
MenoData committed Mar 31, 2015
1 parent 26fa7f2 commit 1984191
Show file tree
Hide file tree
Showing 2 changed files with 116 additions and 1 deletion.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ Additional JavaDoc-Tags
Goals:
------

This small library mainly serves for improvements of the JavaDoc of Time4J but might also be useful for any other java project. Three extra tags are offered:
This small library mainly serves for improvements of the JavaDoc of Time4J but might also be useful for any other java project. Four extra tags are offered:

- **doctags.concurrency** (documents the concurrency behaviour of a class)
- **doctags.experimental** (documents the experimental status of a class)
- **doctags.spec** (documents a specification requirement)
- **doctags.exclude** (excludes a program element from public API and JavaDoc)
114 changes: 114 additions & 0 deletions src/main/java/de/menodata/taglets/ExperimentalTaglet.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@

package de.menodata.taglets;

import com.sun.javadoc.Tag;
import com.sun.tools.doclets.Taglet;

import java.util.Map;


/**
* <p>Taglet zur Dokumentation des experimentellen Status. </p>
*
* @author Meno Hochschild
*/
public class ExperimentalTaglet
implements Taglet {

//~ Statische Felder/Initialisierungen --------------------------------

private static final String NAME = "doctags.experimental";
private static final String HEADER = "Experimental:";
private static final String DEFAULT_TEXT = "Public API can change in future without any notice.";

//~ Methoden ----------------------------------------------------------

public static void register(Map<String, Taglet> tagletMap) {
Taglet tag = new ExperimentalTaglet();
Taglet t = tagletMap.get(tag.getName());

if (t != null) {
tagletMap.remove(tag.getName());
}

tagletMap.put(tag.getName(), tag);
}

@Override
public boolean inField() {
return false;
}

@Override
public boolean inConstructor() {
return false;
}

@Override
public boolean inMethod() {
return false;
}

@Override
public boolean inOverview() {
return false;
}

@Override
public boolean inPackage() {
return false;
}

@Override
public boolean inType() {
return true;
}

@Override
public boolean isInlineTag() {
return false;
}

@Override
public String getName() {
return NAME;
}

@Override
public String toString(Tag tag) {
StringBuilder sb = new StringBuilder();
sb.append("<DT><B>");
sb.append(HEADER);
sb.append("</B></DT><DD>");
sb.append(toString(tag.text()));
sb.append("</DD>\n");
return sb.toString();
}

@Override
public String toString(Tag[] tags) {
if (tags.length == 0) {
return null;
}

StringBuilder sb = new StringBuilder();
sb.append("<DT><B>");
sb.append(HEADER);
sb.append("</B></DT><DD>");

for (int i = 0; i < tags.length; i++) {
if (i > 0) {
sb.append(" ");
}
sb.append(toString(tags[i].text()));
}

sb.append("</DD>\n");
return sb.toString();
}

private static String toString(String text) {
return ((text == null) || text.isEmpty() ? DEFAULT_TEXT : text);
}

}

0 comments on commit 1984191

Please sign in to comment.