Title: [1168] trunk/qdox/src/test/java/com/thoughtworks/qdox: Restore and improve getJavaPackage() from ClassLibraries

Diff

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/library/AbstractClassLibrary.java (1167 => 1168)

--- trunk/qdox/src/main/java/com/thoughtworks/qdox/library/AbstractClassLibrary.java	2011-04-15 20:18:00 UTC (rev 1167)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/library/AbstractClassLibrary.java	2011-04-19 20:14:01 UTC (rev 1168)
@@ -215,7 +215,7 @@
         return context.getPackages();
     }
     
-    public JavaPackage getJavaPackage( String name ) {
+    public final JavaPackage getJavaPackage( String name ) {
         JavaPackage result = context.getPackageByName( name );
         if (result == null) {
         	result = resolveJavaPackage( name );

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/library/ClassLoaderLibrary.java (1167 => 1168)

--- trunk/qdox/src/main/java/com/thoughtworks/qdox/library/ClassLoaderLibrary.java	2011-04-15 20:18:00 UTC (rev 1167)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/library/ClassLoaderLibrary.java	2011-04-19 20:14:01 UTC (rev 1168)
@@ -159,10 +159,11 @@
     
     @Override
     protected JavaPackage resolveJavaPackage(String name) {
-    	JavaPackage result = null;
+        DefaultJavaPackage result = null;
     	Package pckg = Package.getPackage(name);
     	if(pckg != null) {
     		result = new DefaultJavaPackage(name);
+    		result.setClassLibrary( this );
     	}
     	return result;
     }

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/library/ClassNameLibrary.java (1167 => 1168)

--- trunk/qdox/src/main/java/com/thoughtworks/qdox/library/ClassNameLibrary.java	2011-04-15 20:18:00 UTC (rev 1167)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/library/ClassNameLibrary.java	2011-04-19 20:14:01 UTC (rev 1168)
@@ -55,7 +55,7 @@
     
     @Override
     protected JavaPackage resolveJavaPackage(String name) {
-    	return new DefaultJavaPackage(name);
+    	return null;
     }
     
     @Override

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/library/SourceLibrary.java (1167 => 1168)

--- trunk/qdox/src/main/java/com/thoughtworks/qdox/library/SourceLibrary.java	2011-04-15 20:18:00 UTC (rev 1167)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/library/SourceLibrary.java	2011-04-19 20:14:01 UTC (rev 1168)
@@ -31,6 +31,7 @@
 import java.util.List;
 
 import com.thoughtworks.qdox.builder.ModelBuilder;
+import com.thoughtworks.qdox.model.DefaultJavaPackage;
 import com.thoughtworks.qdox.model.JavaClass;
 import com.thoughtworks.qdox.model.JavaPackage;
 import com.thoughtworks.qdox.model.JavaSource;
@@ -125,19 +126,25 @@
     public JavaSource addSource( File file )
         throws ParseException, IOException
     {
-    	JavaSource result = parse( new FileInputStream( file ) );
-    	// if an error is handled by the errorHandler the result will be null
-    	if( result != null )
-    	{
-            if(context.getPackageByName(result.getPackageName()) == null) {
-                File packageFile = new File(file.getParentFile(), "package-info.java");
-                if(packageFile.exists() && packageFile.isFile()) {
-                    JavaSource packageSource = parse(new FileInputStream(packageFile));
-                    context.add(packageSource.getPackage());
+        JavaSource result = null;
+        if ( !"package-info.java".equals( file.getName() ) ) 
+        {
+            result = parse( new FileInputStream( file ) );
+            // if an error is handled by the errorHandler the result will be null
+            if( result != null )
+            {
+                if( getJavaPackage( result.getPackageName() ) == null )
+                {
+                    File packageInfo = new File(file.getParentFile(), "package-info.java");
+                    if( packageInfo.exists() )
+                    {
+                        JavaPackage pckg = parse( new FileInputStream( packageInfo ) ).getPackage();
+                        context.add( pckg );
+                    }
                 }
+                registerJavaSource(result);
             }
-            registerJavaSource(result);
-    	}
+        }
     	return result;
     }
 
@@ -228,20 +235,28 @@
         if ( source != null )
         {
             context.add( source );
-            if(context.getPackageByName(source.getPackageName()) == null) {
-                context.add( source.getPackage() );
-            }
-
+            registerJavaPackage( source.getPackage() );
             for( JavaClass clazz : source.getClasses()) {
                 registerJavaClass( clazz );
             }
         }
     }
     
-    //@todo move to JavaClassContext
+    private void registerJavaPackage( JavaPackage pckg )
+    {
+        String pckgName = ( pckg == null || pckg.getName() == null ? "" : pckg.getName() );
+        if( getJavaPackage( pckgName ) == null )
+        {
+            DefaultJavaPackage packageInfo = new DefaultJavaPackage( pckgName );
+            packageInfo.setClassLibrary( this );
+            context.add( packageInfo );
+        }
+    }
+    
     private void registerJavaClass(JavaClass clazz) {
         if (clazz != null) {
             context.add( clazz );
+            getJavaPackage( clazz.getPackageName() ).getClasses().add( clazz );
         }
         for( JavaClass innerClazz : clazz.getNestedClasses()) {
             registerJavaClass( innerClazz );

Modified: trunk/qdox/src/main/java/com/thoughtworks/qdox/model/DefaultJavaPackage.java (1167 => 1168)

--- trunk/qdox/src/main/java/com/thoughtworks/qdox/model/DefaultJavaPackage.java	2011-04-15 20:18:00 UTC (rev 1167)
+++ trunk/qdox/src/main/java/com/thoughtworks/qdox/model/DefaultJavaPackage.java	2011-04-19 20:14:01 UTC (rev 1168)
@@ -32,9 +32,6 @@
 	private String name;
 	private List<JavaClass> classes = new LinkedList<JavaClass>();
 
-    public DefaultJavaPackage() {
-	}
-
     public DefaultJavaPackage(String name) {
 		this.name= name;
     }

Modified: trunk/qdox/src/test/java/com/thoughtworks/qdox/JavaProjectBuilderTest.java (1167 => 1168)

--- trunk/qdox/src/test/java/com/thoughtworks/qdox/JavaProjectBuilderTest.java	2011-04-15 20:18:00 UTC (rev 1167)
+++ trunk/qdox/src/test/java/com/thoughtworks/qdox/JavaProjectBuilderTest.java	2011-04-19 20:14:01 UTC (rev 1168)
@@ -126,14 +126,14 @@
         assertEquals(2, classes.size());
     }
 
-    public void QDOX2_2FIX___testGetPackagesShowsOnePackageAndTwoClasses() {
+    public void testGetPackagesShowsOnePackageAndTwoClasses() {
         builder.addSourceTree(new File("target/test-source"));
         List<JavaPackage> packages = builder.getPackages();
         assertEquals(2, packages.size());
-        JavaPackage comBlahSubpackage = packages.get(0);
+        JavaPackage comBlah = packages.get(0);
+        assertEquals("com.blah", comBlah.getName());
+        JavaPackage comBlahSubpackage = packages.get(1);
         assertEquals("com.blah.subpackage", comBlahSubpackage.getName());
-        JavaPackage comBlah = packages.get(1);
-        assertEquals("com.blah", comBlah.getName());
         List<JavaClass> classes = comBlahSubpackage.getClasses();
         assertEquals(1, classes.size());
         assertEquals("Cheese", classes.get(0).getName());
@@ -1267,7 +1267,7 @@
     }
     
     // for QDOX-195
-    public void QDOX2_2FIX___testSharedPackageJavaClasses() {
+    public void testSharedPackageJavaClasses() {
         String source1 = "@javax.xml.bind.annotation.XmlSchema(namespace = \"http://docs.oasis-open.org/wsn/br-2\")\n" +
                 "package com.foo;\n" +
                 "public class Bar1 {}";


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to