1 52 53 package com.go.beandoc.teadoc; 54 55 import java.util.HashMap ; 56 import java.util.Iterator ; 57 58 64 public class RootDoc extends Doc implements com.sun.javadoc.DocErrorReporter { 65 66 private com.sun.javadoc.RootDoc mDoc; 67 private PackageDoc[] mPackages; 68 69 public RootDoc(com.sun.javadoc.RootDoc doc) { 70 super(null, doc); 71 mRootDoc = this; 72 mDoc = doc; 73 } 74 75 public String [][] getOptions() { 76 return mDoc.options(); 77 } 78 79 public PackageDoc[] getSpecifiedPackages() { 80 return PackageDoc.convert(mRootDoc, mDoc.specifiedPackages()); 81 } 82 83 public ClassDoc[] getSpecifiedClasses() { 84 return ClassDoc.convert(mRootDoc, mDoc.specifiedClasses()); 85 } 86 87 public ClassDoc[] getClasses() { 88 return ClassDoc.convert(mRootDoc, mDoc.classes()); 89 } 90 91 public PackageDoc[] getPackages() { 92 if (mPackages == null) { 93 ClassDoc[] classes = getClasses(); 94 HashMap map = new HashMap (); 95 96 for (int i=0; i<classes.length; i++) { 97 PackageDoc doc = classes[i].getContainingPackage(); 98 map.put(doc.getName(), doc); 99 } 100 101 for (int i=0; i<classes.length; i++) { 102 PackageDoc doc = classes[i].getContainingPackage(); 103 104 String [] path = doc.getPath(); 105 StringBuffer buf = new StringBuffer (); 106 String name = buf.toString(); 107 if (map.get(name) == null) { 108 map.put(name, new EmptyPackageDoc(mRootDoc, name)); 109 } 110 111 for (int j=0; j<path.length; j++) { 112 if (j > 0) { 113 buf.append('.'); 114 } 115 buf.append(path[j]); 116 name = buf.toString(); 117 if (map.get(name) == null) { 118 map.put(name, new EmptyPackageDoc(mRootDoc, name)); 119 } 120 } 121 } 122 123 mPackages = new PackageDoc[map.size()]; 124 Iterator it = map.keySet().iterator(); 125 int i = 0; 126 while (it.hasNext()) { 127 mPackages[i++] = (PackageDoc)map.get(it.next()); 128 } 129 } 130 131 return mPackages; 132 } 133 134 public void printError(String msg) { 135 mDoc.printError(msg); 136 } 137 138 public void printWarning(String msg) { 139 mDoc.printWarning(msg); 140 } 141 142 public void printNotice(String msg) { 143 mDoc.printNotice(msg); 144 } 145 } 146 | Popular Tags |