1 52 53 package com.go.beandoc.teadoc; 54 55 import java.util.Arrays ; 56 import java.util.ArrayList ; 57 58 64 public class PackageDoc extends Doc { 65 66 private com.sun.javadoc.PackageDoc mDoc; 67 private PackageDoc[] mPackages; 68 69 public static PackageDoc[] convert(RootDoc root, 70 com.sun.javadoc.PackageDoc[] docs) { 71 int length = docs.length; 72 PackageDoc[] newDocs = new PackageDoc[length]; 73 for (int i=0; i<length; i++) { 74 newDocs[i] = new PackageDoc(root, docs[i]); 75 } 76 return newDocs; 77 } 78 79 public PackageDoc(RootDoc root, com.sun.javadoc.PackageDoc doc) { 80 super(root, doc); 81 mDoc = doc; 82 } 83 84 public ClassDoc[] getAllClasses() { 85 return ClassDoc.convert(mRootDoc, mDoc.allClasses()); 86 } 87 88 public ClassDoc[] getSortedAllClasses() { 89 ClassDoc[] docs = (ClassDoc[])getAllClasses().clone(); 90 Arrays.sort(docs); 91 return docs; 92 } 93 94 public ClassDoc[] getOrdinaryClasses() { 95 return ClassDoc.convert(mRootDoc, mDoc.ordinaryClasses()); 96 } 97 98 public ClassDoc[] getSortedOrdinaryClasses() { 99 ClassDoc[] docs = (ClassDoc[])getOrdinaryClasses().clone(); 100 Arrays.sort(docs); 101 return docs; 102 } 103 104 public ClassDoc[] getExceptions() { 105 return ClassDoc.convert(mRootDoc, mDoc.exceptions()); 106 } 107 108 public ClassDoc[] getSortedExceptions() { 109 ClassDoc[] docs = (ClassDoc[])getExceptions().clone(); 110 Arrays.sort(docs); 111 return docs; 112 } 113 114 public ClassDoc[] getErrors() { 115 return ClassDoc.convert(mRootDoc, mDoc.errors()); 116 } 117 118 public ClassDoc[] getSortedErrors() { 119 ClassDoc[] docs = (ClassDoc[])getErrors().clone(); 120 Arrays.sort(docs); 121 return docs; 122 } 123 124 public ClassDoc[] getInterfaces() { 125 return ClassDoc.convert(mRootDoc, mDoc.interfaces()); 126 } 127 128 public ClassDoc[] getSortedInterfaces() { 129 ClassDoc[] docs = (ClassDoc[])getInterfaces().clone(); 130 Arrays.sort(docs); 131 return docs; 132 } 133 134 public PackageDoc[] getPackages() { 135 if (mPackages == null) { 136 ArrayList list = new ArrayList (); 137 PackageDoc[] allPackages = mRootDoc.getPackages(); 138 String thisName = getName(); 139 140 for (int i=0; i<allPackages.length; i++) { 141 PackageDoc doc = allPackages[i]; 142 String name = doc.getName(); 143 if (name.startsWith(thisName) && doc != this) { 144 name = name.substring(thisName.length()); 145 if (name.lastIndexOf('.') <= 0) { 146 list.add(doc); 147 } 148 } 149 } 150 151 mPackages = 152 (PackageDoc[])list.toArray(new PackageDoc[list.size()]); 153 } 154 155 return mPackages; 156 } 157 158 public PackageDoc[] getSortedPackages() { 159 PackageDoc[] docs = (PackageDoc[])getPackages().clone(); 160 Arrays.sort(docs); 161 return docs; 162 } 163 164 public int hashCode() { 165 if (mDoc != null) { 166 return getName().hashCode(); 167 } 168 else { 169 return super.hashCode(); 170 } 171 } 172 173 public boolean equals(Object other) { 174 if (this == other) { 175 return true; 176 } 177 178 if (other instanceof PackageDoc) { 179 PackageDoc doc = (PackageDoc)other; 180 return getName().equals(doc.getName()); 181 } 182 183 return false; 184 } 185 186 public int compareTo(Object obj) { 187 if (obj instanceof PackageDoc) { 188 return getName().compareTo(((PackageDoc)obj).getName()); 189 } 190 else { 191 return 0; 192 } 193 } 194 } 195 | Popular Tags |