1 package gnu.classpath.tools.doclets.debugdoclet;
3 import com.sun.javadoc.ClassDoc;
4 import com.sun.javadoc.FieldDoc;
5 import com.sun.javadoc.MethodDoc;
6 import com.sun.javadoc.PackageDoc;
7 import com.sun.javadoc.RootDoc;
8 import com.sun.javadoc.Tag;
10 import java.io.PrintStream;
12 import java.util.Arrays;
14 public class DebugDoclet
16 public static boolean start(RootDoc rootDoc)
18 new DebugDoclet().run(rootDoc);
22 private PrintStream out;
29 private void printHeader(String header)
32 out.println("******** " + header + " ********");
36 private void printSubHeader(String header)
39 out.println("======== " + header + " ========");
43 private void printSub2Header(String header)
46 out.println("-------- " + header + " --------");
50 private void run(RootDoc rootDoc)
52 printHeader("Overview");
54 printSubHeader("Specified Packages");
56 PackageDoc[] specifiedPackages = rootDoc.specifiedPackages();
57 Arrays.sort(specifiedPackages);
58 for (int i=0; i<specifiedPackages.length; ++i) {
59 out.println(specifiedPackages[i].name());
62 printSubHeader("Specified Classes");
64 ClassDoc[] specifiedClasses = rootDoc.specifiedClasses();
65 Arrays.sort(specifiedClasses);
66 for (int i=0; i<specifiedClasses.length; ++i) {
67 out.println(specifiedClasses[i].qualifiedTypeName());
69 printSubHeader("Classes");
71 ClassDoc[] classes = rootDoc.classes();
73 for (int i=0; i<classes.length; ++i) {
74 out.println(classes[i].qualifiedTypeName());
77 printHeader("Class Detail");
79 for (int i=0; i<classes.length; ++i) {
80 printSubHeader(classes[i].qualifiedTypeName());
82 printTags(classes[i].firstSentenceTags());
84 printSub2Header("Methods");
86 MethodDoc[] methods = classes[i].methods();
88 for (int j=0; j<methods.length; ++j) {
89 out.println("name: \"" + methods[j].name() + "\"");
90 out.println("signature: \"" + methods[j].signature() + "\"");
91 out.println("modifiers: \"" + methods[j].modifiers() + "\"");
92 out.print("throws: ");
93 ClassDoc[] thrownExceptions = methods[j].thrownExceptions();
94 for (int k=0; k<thrownExceptions.length; ++k) {
95 if (k>0) { out.print(", "); }
96 out.print(thrownExceptions[k].qualifiedTypeName());
101 printSub2Header("Fields");
103 FieldDoc[] fields = classes[i].fields();
105 for (int j=0; j<fields.length; ++j) {
106 out.println("name: \"" + fields[j].name() + "\"");
107 out.println("modifiers: \"" + fields[j].modifiers() + "\"");
111 printSub2Header("Serializable Fields");
113 FieldDoc[] sfields = classes[i].serializableFields();
115 for (int j=0; j<sfields.length; ++j) {
116 out.println("name: \"" + sfields[j].name() + "\"");
117 out.println("modifiers: \"" + sfields[j].modifiers() + "\"");
123 private void printTag(Tag tag)
125 if (null != tag.text()) {
126 System.out.println(tag.text());
130 private void printTags(Tag[] tags)
132 for (int i=0; i<tags.length; ++i) {
133 out.println("Tag #" + (i+1) + ":");