- Revision
- 1315
- Author
- rfscholte
- Date
- 2011-09-10 08:46:11 -0500 (Sat, 10 Sep 2011)
Log Message
Use Collection for JavaProjectBuilder.search() and JavaProjectBuilder.getSources() as we cannot guarantee the order.
Modified Paths
Diff
Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/JavaProjectBuilder.java (1314 => 1315)
--- trunk/qdox/src/main/java/com/thoughtworks/qdox/JavaProjectBuilder.java 2011-09-10 12:03:01 UTC (rev 1314) +++ trunk/qdox/src/main/java/com/thoughtworks/qdox/JavaProjectBuilder.java 2011-09-10 13:46:11 UTC (rev 1315) @@ -26,6 +26,7 @@ import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.Reader; +import java.util.Collection; import java.util.LinkedList; import java.util.List; @@ -242,7 +243,7 @@ * @see #addSourceFolder(File) * @see #addSourceTree(File) */ - public List<JavaSource> getSources() + public Collection<JavaSource> getSources() { return classLibraryBuilder.getClassLibrary().getJavaSources(); } @@ -288,13 +289,12 @@ // Searcher - public List<JavaClass> search( Searcher searcher ) + public Collection<JavaClass> search( Searcher searcher ) { - List<JavaClass> result = new LinkedList<JavaClass>(); - List<JavaClass> classArray = classLibraryBuilder.getClassLibrary().getJavaClasses(); - for ( int classIndex = 0; classIndex < classArray.size(); classIndex++ ) + Collection<JavaClass> result = new LinkedList<JavaClass>(); + Collection<JavaClass> classArray = classLibraryBuilder.getClassLibrary().getJavaClasses(); + for ( JavaClass cls : classArray ) { - JavaClass cls = classArray.get( classIndex ); if ( searcher.eval( cls ) ) { result.add( cls );
Modified: trunk/qdox/src/test/java/com/thoughtworks/qdox/JavaProjectBuilderTest.java (1314 => 1315)
--- trunk/qdox/src/test/java/com/thoughtworks/qdox/JavaProjectBuilderTest.java 2011-09-10 12:03:01 UTC (rev 1314) +++ trunk/qdox/src/test/java/com/thoughtworks/qdox/JavaProjectBuilderTest.java 2011-09-10 13:46:11 UTC (rev 1315) @@ -12,6 +12,7 @@ import java.io.StringReader; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collection; import java.util.Collections; import java.util.HashSet; import java.util.List; @@ -56,17 +57,17 @@ } public void testParsingMultipleJavaFiles() { - builder.addSource(new StringReader(createTestClassList())); - builder.addSource(new StringReader(createTestClass())); - List<JavaSource> sources = builder.getSources(); + JavaSource source1 = builder.addSource(new StringReader(createTestClassList())); + JavaSource source2 = builder.addSource(new StringReader(createTestClass())); + Collection<JavaSource> sources = builder.getSources(); assertEquals(2, sources.size()); - JavaClass testClassList = sources.get(0).getClasses().get(0); + JavaClass testClassList = source1.getClasses().get(0); assertEquals("TestClassList", testClassList.getName()); assertEquals("TestClass", testClassList.getSuperClass().getValue()); assertEquals("com.thoughtworks.util.TestClass", testClassList.getSuperClass().getFullyQualifiedName()); - JavaClass testClass = sources.get(1).getClasses().get(0); + JavaClass testClass = source2.getClasses().get(0); assertEquals("TestClass", testClass.getName()); JavaClass testClassListByName = builder.getClassByName("com.thoughtworks.qdox.TestClassList"); @@ -98,11 +99,11 @@ } public void testParseWithInnerClass() { - builder.addSource(new StringReader(createOuter())); - List<JavaSource> sources = builder.getSources(); + JavaSource source = builder.addSource(new StringReader(createOuter())); + Collection<JavaSource> sources = builder.getSources(); assertEquals(1, sources.size()); - JavaClass outer = sources.get(0).getClasses().get(0); + JavaClass outer = source.getClasses().get(0); assertEquals("Outer", outer.getName()); assertEquals("foo.bar.Outer", outer.getFullyQualifiedName()); @@ -173,26 +174,37 @@ } public void testRecordFile() throws Exception { - builder.addSource(new File("target/test-source/com/blah/Thing.java")); + JavaSource source = builder.addSource(new File("target/test-source/com/blah/Thing.java")); - List<JavaSource> sources = builder.getSources(); + Collection<JavaSource> sources = builder.getSources(); assertEquals(1, sources.size()); assertEquals(new File("target/test-source/com/blah/Thing.java").toURL(), - sources.get(0).getURL()); + source.getURL()); } - public void testSearcher() throws Exception { - builder.addSourceTree(new File("target/test-source")); + public void testSearcher() + throws Exception + { + builder.addSourceTree( new File( "target/test-source" ) ); - List<JavaClass> results = builder.search(new Searcher() { - public boolean eval(JavaClass cls) { - return cls.getPackage().getName().equals("com.blah"); + Collection<JavaClass> results = builder.search( new Searcher() + { + public boolean eval( JavaClass cls ) + { + return cls.getPackage().getName().equals( "com.blah" ); } - }); + } ); - assertEquals(2, results.size()); - assertEquals("Another", ((JavaClass) results.get(0)).getName()); - assertEquals("Thing", ((JavaClass) results.get(1)).getName()); + assertEquals( 2, results.size() ); + + List<String> classNames = new ArrayList<String>(); + for ( JavaClass cls : results ) + { + classNames.add( cls.getName() ); + } + Collections.sort( classNames ); + assertEquals( "Another", classNames.get( 0 ) ); + assertEquals( "Thing", classNames.get( 1 ) ); } private void createFile(String fileName, String packageName, String className) throws Exception { @@ -525,15 +537,12 @@ */ public void testSerializable() throws Exception { - builder.addSource(new StringReader("package test; public class X{}")); - assertEquals("X", builder.getSources().get(0).getClasses().get(0).getName()); + JavaSource source = builder.addSource(new StringReader("package test; public class X{}")); + assertEquals("X", source.getClasses().get(0).getName()); try { - JavaProjectBuilder newBuilder = (JavaProjectBuilder) SerializationUtils.serializedCopy(builder); + SerializationUtils.serializedCopy(builder); - // - fail("JavaProjectBuilder should not serializable, but its ClassLibraryBuilder"); - - assertEquals("X", newBuilder.getSources().get(0).getClasses().get(0).getName()); + fail("JavaProjectBuilder should not serializable"); } catch(RuntimeException ex) { if ( !(ex.getCause() instanceof NotSerializableException)) { @@ -853,7 +862,7 @@ "class Y implements SomeInterface { }") ); - List<JavaClass> results = builder.search(new Searcher() { + Collection<JavaClass> results = builder.search(new Searcher() { public boolean eval(JavaClass javaClass) { return javaClass.isA("SomeInterface"); }
To unsubscribe from this list please visit:
