182 |
182 |
183 public ClassUseMapper(RootDoc root, ClassTree classtree) { |
183 public ClassUseMapper(RootDoc root, ClassTree classtree) { |
184 this.classtree = classtree; |
184 this.classtree = classtree; |
185 |
185 |
186 // Map subclassing, subinterfacing implementing, ... |
186 // Map subclassing, subinterfacing implementing, ... |
187 for (Iterator it = classtree.baseclasses().iterator(); it.hasNext();) { |
187 for (Iterator<ClassDoc> it = classtree.baseclasses().iterator(); it.hasNext();) { |
188 subclasses((ClassDoc)it.next()); |
188 subclasses(it.next()); |
189 } |
189 } |
190 for (Iterator it = classtree.baseinterfaces().iterator(); it.hasNext();) { |
190 for (Iterator<ClassDoc> it = classtree.baseinterfaces().iterator(); it.hasNext();) { |
191 // does subinterfacing as side-effect |
191 // does subinterfacing as side-effect |
192 implementingClasses((ClassDoc)it.next()); |
192 implementingClasses(it.next()); |
193 } |
193 } |
194 // Map methods, fields, constructors using a class. |
194 // Map methods, fields, constructors using a class. |
195 ClassDoc[] classes = root.classes(); |
195 ClassDoc[] classes = root.classes(); |
196 for (int i = 0; i < classes.length; i++) { |
196 for (int i = 0; i < classes.length; i++) { |
197 PackageDoc pkg = classes[i].containingPackage(); |
197 PackageDoc pkg = classes[i].containingPackage(); |
277 if (ret == null) { |
277 if (ret == null) { |
278 ret = new TreeSet<ClassDoc>(); |
278 ret = new TreeSet<ClassDoc>(); |
279 List<ClassDoc> impl = classtree.implementingclasses(cd); |
279 List<ClassDoc> impl = classtree.implementingclasses(cd); |
280 if (impl != null) { |
280 if (impl != null) { |
281 ret.addAll(impl); |
281 ret.addAll(impl); |
282 for (Iterator it = impl.iterator(); it.hasNext();) { |
282 for (Iterator<ClassDoc> it = impl.iterator(); it.hasNext();) { |
283 ret.addAll(subclasses((ClassDoc)it.next())); |
283 ret.addAll(subclasses(it.next())); |
284 } |
284 } |
285 } |
285 } |
286 for (Iterator it = subinterfaces(cd).iterator(); it.hasNext();) { |
286 for (Iterator<ClassDoc> it = subinterfaces(cd).iterator(); it.hasNext();) { |
287 ret.addAll(implementingClasses((ClassDoc)it.next())); |
287 ret.addAll(implementingClasses(it.next())); |
288 } |
288 } |
289 addAll(classToImplementingClass, cd, ret); |
289 addAll(classToImplementingClass, cd, ret); |
290 } |
290 } |
291 return ret; |
291 return ret; |
292 } |
292 } |
326 } |
326 } |
327 |
327 |
328 private <T> List<T> refList(Map<String,List<T>> map, ClassDoc cd) { |
328 private <T> List<T> refList(Map<String,List<T>> map, ClassDoc cd) { |
329 List<T> list = map.get(cd.qualifiedName()); |
329 List<T> list = map.get(cd.qualifiedName()); |
330 if (list == null) { |
330 if (list == null) { |
331 @SuppressWarnings("unchecked") |
331 List<T> l = new ArrayList<T>(); |
332 List<T> l = new ArrayList(); |
|
333 list = l; |
332 list = l; |
334 map.put(cd.qualifiedName(), list); |
333 map.put(cd.qualifiedName(), list); |
335 } |
334 } |
336 return list; |
335 return list; |
337 } |
336 } |
346 } |
345 } |
347 |
346 |
348 private Set<ClassDoc> classSet(ClassDoc cd) { |
347 private Set<ClassDoc> classSet(ClassDoc cd) { |
349 Set<ClassDoc> clsSet = classToClass.get(cd.qualifiedName()); |
348 Set<ClassDoc> clsSet = classToClass.get(cd.qualifiedName()); |
350 if (clsSet == null) { |
349 if (clsSet == null) { |
351 @SuppressWarnings("unchecked") |
350 Set<ClassDoc> s = new TreeSet<ClassDoc>(); |
352 Set<ClassDoc> s = new TreeSet(); |
|
353 clsSet = s; |
351 clsSet = s; |
354 classToClass.put(cd.qualifiedName(), clsSet); |
352 classToClass.put(cd.qualifiedName(), clsSet); |
355 } |
353 } |
356 return clsSet; |
354 return clsSet; |
357 } |
355 } |