Title: [757] trunk/qdox/src/test/com/thoughtworks/qdox/library: Add addDefaultClassLoaders to LibraryBuilder

Diff

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/library/ClassLibraryBuilder.java (756 => 757)

--- trunk/qdox/src/java/com/thoughtworks/qdox/library/ClassLibraryBuilder.java	2010-09-29 21:26:24 UTC (rev 756)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/library/ClassLibraryBuilder.java	2010-09-29 22:09:57 UTC (rev 757)
@@ -13,6 +13,8 @@
 
     public ClassLibraryBuilder appendClassLoader( ClassLoader classLoader );
 
+    public ClassLibraryBuilder appendDefaultClassLoaders();
+
     public ClassLibraryBuilder appendSourceFolder( File sourceFolder );
 
     public ClassLibraryBuilder appendSource( InputStream stream );
@@ -30,7 +32,7 @@
     public JavaClass addSource( URL url ) throws IOException;
     
     public JavaClass addSource( File file ) throws IOException;
-
+    
     public ClassLibraryBuilder setDebugLexer( boolean debugLexer );
 
     public ClassLibraryBuilder setDebugParser( boolean debugParser );

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/library/OrderedClassLibraryBuilder.java (756 => 757)

--- trunk/qdox/src/java/com/thoughtworks/qdox/library/OrderedClassLibraryBuilder.java	2010-09-29 21:26:24 UTC (rev 756)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/library/OrderedClassLibraryBuilder.java	2010-09-29 22:09:57 UTC (rev 757)
@@ -3,7 +3,6 @@
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
 import java.io.Reader;
 import java.net.URL;
 
@@ -29,6 +28,8 @@
     
     private String encoding;
     
+    private boolean appendDefaultClassLoaders;
+    
     public OrderedClassLibraryBuilder()
     {
         modelBuilderFactory = new ModelBuilderFactory()
@@ -48,8 +49,10 @@
         
     }
 
-    /* (non-Javadoc)
-     * @see com.thoughtworks.qdox.library.ClassLibraryBuilder#addClassLoader(java.lang.ClassLoader)
+    /**
+     * If the appendDefaultClassLoaders has been set and hans't been used, add those
+     * classloaders and reset the value to false.
+     * Next add the classloader
      */
     public ClassLibraryBuilder appendClassLoader( ClassLoader classLoader )
     {
@@ -57,10 +60,33 @@
         {
             classLibrary = new ClassLoaderLibrary( classLibrary );
         }
-        ( (ClassLoaderLibrary) classLibrary ).addClassLoader( classLoader );
+        ClassLoaderLibrary classLoaderLibrary = (ClassLoaderLibrary) classLibrary;
+        if ( appendDefaultClassLoaders ) {
+            classLoaderLibrary.addDefaultLoader();
+            appendDefaultClassLoaders = false;
+        }
+        classLoaderLibrary.addClassLoader( classLoader );
         return this;
     }
 
+    /**
+     * This method can be called both before or after appendClassLoader.
+     * If the current classLibrary is a ClassLoaderLibrary, add it immediately
+     * Otherwise keep this setting only for the first next ClassLoaderLibrary
+     */
+    public ClassLibraryBuilder appendDefaultClassLoaders()
+    {
+        if ( classLibrary instanceof ClassLoaderLibrary )
+        {
+            ClassLoaderLibrary classLoaderLibrary = (ClassLoaderLibrary) classLibrary;
+            classLoaderLibrary.addDefaultLoader();
+        }
+        else {
+            this.appendDefaultClassLoaders = true;
+        }
+        return this;
+    }
+
     /* (non-Javadoc)
      * @see com.thoughtworks.qdox.library.ClassLibraryBuilder#addSourceFolder(java.io.File)
      */

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/library/SortedClassLibraryBuilder.java (756 => 757)

--- trunk/qdox/src/java/com/thoughtworks/qdox/library/SortedClassLibraryBuilder.java	2010-09-29 21:26:24 UTC (rev 756)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/library/SortedClassLibraryBuilder.java	2010-09-29 22:09:57 UTC (rev 757)
@@ -53,6 +53,12 @@
         classLoaderLibrary.addClassLoader( classLoader );
         return this;
     }
+    
+    public ClassLibraryBuilder appendDefaultClassLoaders()
+    {
+        classLoaderLibrary.addDefaultLoader();
+        return this;
+    }
 
     public ClassLibraryBuilder appendSourceFolder( File sourceFolder )
     {

Modified: trunk/qdox/src/test/com/thoughtworks/qdox/library/ClassLibraryBuilderTest.java (756 => 757)

--- trunk/qdox/src/test/com/thoughtworks/qdox/library/ClassLibraryBuilderTest.java	2010-09-29 21:26:24 UTC (rev 756)
+++ trunk/qdox/src/test/com/thoughtworks/qdox/library/ClassLibraryBuilderTest.java	2010-09-29 22:09:57 UTC (rev 757)
@@ -18,6 +18,13 @@
         assertSame( libraryBuilder, result );
     }
 
+    public final void testAppendDefaultClassLoaders() throws Exception
+    {
+        ClassLibraryBuilder libraryBuilder = getClassLibraryBuilder();
+        ClassLibraryBuilder result = libraryBuilder.appendDefaultClassLoaders();
+        assertSame( libraryBuilder, result );
+    }
+
     public final void testAppendSourceFolder() throws Exception
     {
         ClassLibraryBuilder libraryBuilder = getClassLibraryBuilder();


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to