- Revision
- 549
- Author
- paul
- Date
- 2009-02-16 14:39:16 -0600 (Mon, 16 Feb 2009)
Log Message
towards QDOX-65
Modified Paths
Diff
Modified: trunk/qdox/src/java/com/thoughtworks/qdox/JavaDocBuilder.java (548 => 549)
--- trunk/qdox/src/java/com/thoughtworks/qdox/JavaDocBuilder.java 2009-02-16 20:17:41 UTC (rev 548) +++ trunk/qdox/src/java/com/thoughtworks/qdox/JavaDocBuilder.java 2009-02-16 20:39:16 UTC (rev 549) @@ -10,6 +10,7 @@ import com.thoughtworks.qdox.model.JavaClassCache; import com.thoughtworks.qdox.model.JavaSource; import com.thoughtworks.qdox.model.ModelBuilder; +import com.thoughtworks.qdox.model.JavaPackage; import com.thoughtworks.qdox.parser.Lexer; import com.thoughtworks.qdox.parser.ParseException; import com.thoughtworks.qdox.parser.impl.JFlexLexer; @@ -80,6 +81,7 @@ public class JavaDocBuilder implements Serializable, JavaClassCache { private Map classes = new HashMap(); + private Set packages = new HashSet(); private ClassLibrary classLibrary; private List sources = new ArrayList(); private DocletTagFactory docletTagFactory; @@ -323,6 +325,18 @@ JavaSource source = builder.getSource(); sources.add(source); addClasses(source); + + JavaPackage pkg = source.getPackage(); + JavaClass[] classes = getClasses(); + if (!packages.contains(pkg)) { + packages.add(pkg); + } + for (int i = 0; i < classes.length; i++) { + if (pkg != null) { + pkg.addClass(classes[i]); + } + } + return source; } @@ -362,6 +376,16 @@ return result; } + /** + * Returns all the packages found in all the sources. + * + * @return all the packages found in all the sources. + * @since 1.9 + */ + public JavaPackage[] getPackages() { + return (JavaPackage[]) packages.toArray(new JavaPackage[packages.size()]); + } + private void addClassesRecursive(JavaSource javaSource, Set resultSet) { JavaClass[] classes = javaSource.getClasses(); for (int j = 0; j < classes.length; j++) {
Modified: trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaPackage.java (548 => 549)
--- trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaPackage.java 2009-02-16 20:17:41 UTC (rev 548) +++ trunk/qdox/src/java/com/thoughtworks/qdox/model/JavaPackage.java 2009-02-16 20:39:16 UTC (rev 549) @@ -1,11 +1,15 @@ package com.thoughtworks.qdox.model; +import java.util.List; +import java.util.ArrayList; + public class JavaPackage extends AbstractBaseJavaEntity { private String name; private Annotation[] annotations = new Annotation[0]; private int lineNumber = -1; + private List classes = new ArrayList(); public JavaPackage() { } @@ -37,4 +41,18 @@ public void setLineNumber(int lineNumber) { this.lineNumber = lineNumber; } + + public void addClass(JavaClass clazz) { + classes.add(clazz); + } + + /** + * Returns all the classes found for the package. + * + * @return all the classes found for the package + * @since 1.9 + */ + public JavaClass[] getClasses() { + return (JavaClass[]) classes.toArray(new JavaClass[classes.size()]); + } }
Modified: trunk/qdox/src/test/com/thoughtworks/qdox/JavaDocBuilderTest.java (548 => 549)
--- trunk/qdox/src/test/com/thoughtworks/qdox/JavaDocBuilderTest.java 2009-02-16 20:17:41 UTC (rev 548) +++ trunk/qdox/src/test/com/thoughtworks/qdox/JavaDocBuilderTest.java 2009-02-16 20:39:16 UTC (rev 549) @@ -107,6 +107,14 @@ assertEquals(2, classes.length); } + public void testGetPackagesShowsOnePackageAndTwoClasses() { + builder.addSource(new StringReader(createOuter())); + JavaPackage[] packages = builder.getPackages(); + assertEquals(1, packages.length); + assertEquals("foo.bar", packages[0].getName()); + assertEquals(2, packages[0].getClasses().length); // same result as testGetClasses() + } + private String createOuter() { StringBuffer buffer = new StringBuffer(); buffer.append("package foo.bar;");
To unsubscribe from this list please visit:
