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

Commit 1984191

Browse files
committed
add ExperimentalTaglet
1 parent 26fa7f2 commit 1984191

File tree

2 files changed

+116
-1
lines changed

2 files changed

+116
-1
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,9 @@ Additional JavaDoc-Tags
77
Goals:
88
------
99

10-
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:
10+
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:
1111

1212
- **doctags.concurrency** (documents the concurrency behaviour of a class)
13+
- **doctags.experimental** (documents the experimental status of a class)
1314
- **doctags.spec** (documents a specification requirement)
1415
- **doctags.exclude** (excludes a program element from public API and JavaDoc)
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
2+
package de.menodata.taglets;
3+
4+
import com.sun.javadoc.Tag;
5+
import com.sun.tools.doclets.Taglet;
6+
7+
import java.util.Map;
8+
9+
10+
/**
11+
* <p>Taglet zur Dokumentation des experimentellen Status. </p>
12+
*
13+
* @author Meno Hochschild
14+
*/
15+
public class ExperimentalTaglet
16+
implements Taglet {
17+
18+
//~ Statische Felder/Initialisierungen --------------------------------
19+
20+
private static final String NAME = "doctags.experimental";
21+
private static final String HEADER = "Experimental:";
22+
private static final String DEFAULT_TEXT = "Public API can change in future without any notice.";
23+
24+
//~ Methoden ----------------------------------------------------------
25+
26+
public static void register(Map<String, Taglet> tagletMap) {
27+
Taglet tag = new ExperimentalTaglet();
28+
Taglet t = tagletMap.get(tag.getName());
29+
30+
if (t != null) {
31+
tagletMap.remove(tag.getName());
32+
}
33+
34+
tagletMap.put(tag.getName(), tag);
35+
}
36+
37+
@Override
38+
public boolean inField() {
39+
return false;
40+
}
41+
42+
@Override
43+
public boolean inConstructor() {
44+
return false;
45+
}
46+
47+
@Override
48+
public boolean inMethod() {
49+
return false;
50+
}
51+
52+
@Override
53+
public boolean inOverview() {
54+
return false;
55+
}
56+
57+
@Override
58+
public boolean inPackage() {
59+
return false;
60+
}
61+
62+
@Override
63+
public boolean inType() {
64+
return true;
65+
}
66+
67+
@Override
68+
public boolean isInlineTag() {
69+
return false;
70+
}
71+
72+
@Override
73+
public String getName() {
74+
return NAME;
75+
}
76+
77+
@Override
78+
public String toString(Tag tag) {
79+
StringBuilder sb = new StringBuilder();
80+
sb.append("<DT><B>");
81+
sb.append(HEADER);
82+
sb.append("</B></DT><DD>");
83+
sb.append(toString(tag.text()));
84+
sb.append("</DD>\n");
85+
return sb.toString();
86+
}
87+
88+
@Override
89+
public String toString(Tag[] tags) {
90+
if (tags.length == 0) {
91+
return null;
92+
}
93+
94+
StringBuilder sb = new StringBuilder();
95+
sb.append("<DT><B>");
96+
sb.append(HEADER);
97+
sb.append("</B></DT><DD>");
98+
99+
for (int i = 0; i < tags.length; i++) {
100+
if (i > 0) {
101+
sb.append(" ");
102+
}
103+
sb.append(toString(tags[i].text()));
104+
}
105+
106+
sb.append("</DD>\n");
107+
return sb.toString();
108+
}
109+
110+
private static String toString(String text) {
111+
return ((text == null) || text.isEmpty() ? DEFAULT_TEXT : text);
112+
}
113+
114+
}

0 commit comments

Comments
 (0)