36 * @author Robert G. Field |
36 * @author Robert G. Field |
37 */ |
37 */ |
38 public class PackageUseWriter extends SubWriterHolderWriter { |
38 public class PackageUseWriter extends SubWriterHolderWriter { |
39 |
39 |
40 final PackageDoc pkgdoc; |
40 final PackageDoc pkgdoc; |
41 final SortedMap usingPackageToUsedClasses = new TreeMap(); |
41 final SortedMap<String,Set<ClassDoc>> usingPackageToUsedClasses = new TreeMap<String,Set<ClassDoc>>(); |
42 |
42 |
43 /** |
43 /** |
44 * Constructor. |
44 * Constructor. |
45 * |
45 * |
46 * @param filename the file to be generated. |
46 * @param filename the file to be generated. |
59 // use these classes - produce a map between using package and |
59 // use these classes - produce a map between using package and |
60 // used classes. |
60 // used classes. |
61 ClassDoc[] content = pkgdoc.allClasses(); |
61 ClassDoc[] content = pkgdoc.allClasses(); |
62 for (int i = 0; i < content.length; ++i) { |
62 for (int i = 0; i < content.length; ++i) { |
63 ClassDoc usedClass = content[i]; |
63 ClassDoc usedClass = content[i]; |
64 Set usingClasses = (Set)mapper.classToClass.get(usedClass.qualifiedName()); |
64 Set<ClassDoc> usingClasses = mapper.classToClass.get(usedClass.qualifiedName()); |
65 if (usingClasses != null) { |
65 if (usingClasses != null) { |
66 for (Iterator it = usingClasses.iterator(); it.hasNext(); ) { |
66 for (Iterator it = usingClasses.iterator(); it.hasNext(); ) { |
67 ClassDoc usingClass = (ClassDoc)it.next(); |
67 ClassDoc usingClass = (ClassDoc)it.next(); |
68 PackageDoc usingPackage = usingClass.containingPackage(); |
68 PackageDoc usingPackage = usingClass.containingPackage(); |
69 Set usedClasses = (Set)usingPackageToUsedClasses |
69 Set<ClassDoc> usedClasses = usingPackageToUsedClasses |
70 .get(usingPackage.name()); |
70 .get(usingPackage.name()); |
71 if (usedClasses == null) { |
71 if (usedClasses == null) { |
72 usedClasses = new TreeSet(); |
72 usedClasses = new TreeSet<ClassDoc>(); |
73 usingPackageToUsedClasses.put(Util.getPackageName(usingPackage), |
73 usingPackageToUsedClasses.put(Util.getPackageName(usingPackage), |
74 usedClasses); |
74 usedClasses); |
75 } |
75 } |
76 usedClasses.add(usedClass); |
76 usedClasses.add(usedClass); |
77 } |
77 } |