Title: [753] trunk/qdox/src/java/com/thoughtworks/qdox/library: Added interface for LibraryBuilder
Revision
753
Author
rfscholte
Date
2010-09-28 15:49:45 -0500 (Tue, 28 Sep 2010)

Log Message

Added interface for LibraryBuilder
Using 'append' to return Builder, using 'add' to return JavaClass
Added URL support

Modified Paths

Added Paths

Diff

Added: trunk/qdox/src/java/com/thoughtworks/qdox/library/ClassLibraryBuilder.java (0 => 753)

--- trunk/qdox/src/java/com/thoughtworks/qdox/library/ClassLibraryBuilder.java	                        (rev 0)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/library/ClassLibraryBuilder.java	2010-09-28 20:49:45 UTC (rev 753)
@@ -0,0 +1,36 @@
+package com.thoughtworks.qdox.library;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+import java.net.URL;
+
+import com.thoughtworks.qdox.model.JavaClass;
+
+public interface ClassLibraryBuilder
+{
+
+    public ClassLibraryBuilder appendClassLoader( ClassLoader classLoader );
+
+    public ClassLibraryBuilder appendSourceFolder( File sourceFolder );
+
+    public ClassLibraryBuilder appendSource( InputStream stream );
+
+    public ClassLibraryBuilder appendSource( Reader reader );
+
+    public ClassLibraryBuilder appendSource( URL reader, String encoding ) throws IOException;
+
+    public JavaClass addSource( InputStream stream );
+
+    public JavaClass addSource( Reader reader );
+    
+    public JavaClass addSource( URL reader, String encoding ) throws IOException;
+
+    public ClassLibraryBuilder setDebugLexer( boolean debugLexer );
+
+    public ClassLibraryBuilder setDebugParser( boolean debugParser );
+
+    public ClassLibrary getClassLibrary();
+
+}
\ No newline at end of file
Property changes on: trunk/qdox/src/java/com/thoughtworks/qdox/library/ClassLibraryBuilder.java
___________________________________________________________________
Name: svn:keywords
   + Author Date Id Revision
Name: svn:eol-style
   + native

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

--- trunk/qdox/src/java/com/thoughtworks/qdox/library/OrderedClassLibraryBuilder.java	2010-09-27 20:33:31 UTC (rev 752)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/library/OrderedClassLibraryBuilder.java	2010-09-28 20:49:45 UTC (rev 753)
@@ -1,15 +1,20 @@
 package com.thoughtworks.qdox.library;
 
 import java.io.File;
+import java.io.IOException;
 import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.io.Reader;
+import java.net.URL;
 
+import com.thoughtworks.qdox.model.JavaClass;
+
 /**
  * This library resolves JavaClasses in the order in which class sources are added.
  * 
  * @author Robert Scholte
  */
-public class OrderedClassLibraryBuilder
+public class OrderedClassLibraryBuilder implements ClassLibraryBuilder
 {
 
     private ClassLibrary classLibrary;
@@ -23,7 +28,10 @@
         classLibrary = new ClassNameLibrary();
     }
 
-    public OrderedClassLibraryBuilder addClassLoader( ClassLoader classLoader )
+    /* (non-Javadoc)
+     * @see com.thoughtworks.qdox.library.ClassLibraryBuilder#addClassLoader(java.lang.ClassLoader)
+     */
+    public ClassLibraryBuilder appendClassLoader( ClassLoader classLoader )
     {
         if ( !( classLibrary instanceof ClassLoaderLibrary ) )
         {
@@ -33,54 +41,112 @@
         return this;
     }
 
-    public OrderedClassLibraryBuilder addSourceFolder( File sourceFolder )
+    /* (non-Javadoc)
+     * @see com.thoughtworks.qdox.library.ClassLibraryBuilder#addSourceFolder(java.io.File)
+     */
+    public ClassLibraryBuilder appendSourceFolder( File sourceFolder )
     {
         if ( !( classLibrary instanceof SourceFolderLibrary ) )
         {
             classLibrary = new SourceFolderLibrary( classLibrary );
         }
-        ( (SourceFolderLibrary) classLibrary ).addSourceFolder( sourceFolder );
+        SourceFolderLibrary sourceFolderLibrary = (SourceFolderLibrary) classLibrary;
+        sourceFolderLibrary.setDebugLexer( debugLexer );
+        sourceFolderLibrary.setDebugParser( debugParser );
+        sourceFolderLibrary.addSourceFolder( sourceFolder );
         return this;
     }
 
-    public OrderedClassLibraryBuilder addSource( InputStream stream )
+    /* (non-Javadoc)
+     * @see com.thoughtworks.qdox.library.ClassLibraryBuilder#addSource(java.io.InputStream)
+     */
+    public ClassLibraryBuilder appendSource( InputStream stream )
     {
         if ( !( classLibrary instanceof SourceLibrary ) )
         {
             classLibrary = new SourceLibrary( classLibrary );
         }
         SourceLibrary sourceLibrary = (SourceLibrary) classLibrary;
-        sourceLibrary.addSource( stream );
         sourceLibrary.setDebugLexer( debugLexer );
         sourceLibrary.setDebugParser( debugParser );
+        sourceLibrary.addSource( stream );
         return this;
     }
 
-    public OrderedClassLibraryBuilder addSource( Reader reader )
+    /* (non-Javadoc)
+     * @see com.thoughtworks.qdox.library.ClassLibraryBuilder#addSource(java.io.Reader)
+     */
+    public ClassLibraryBuilder appendSource( Reader reader )
     {
         if ( !( classLibrary instanceof SourceLibrary ) )
         {
             classLibrary = new SourceLibrary( classLibrary );
         }
-        ( (SourceLibrary) classLibrary ).addSource( reader );
+        SourceLibrary sourceLibrary = (SourceLibrary) classLibrary;
+        sourceLibrary.setDebugLexer( debugLexer );
+        sourceLibrary.setDebugParser( debugParser );
+        sourceLibrary.addSource( reader );
         return this;
     }
     
-    public OrderedClassLibraryBuilder setDebugLexer( boolean debugLexer )
+    /* (non-Javadoc)
+     * @see com.thoughtworks.qdox.library.ClassLibraryBuilder#setDebugLexer(boolean)
+     */
+    public ClassLibraryBuilder setDebugLexer( boolean debugLexer )
     {
         this.debugLexer = debugLexer;
         return this;
     }
     
-    public OrderedClassLibraryBuilder setDebugParser( boolean debugParser )
+    /* (non-Javadoc)
+     * @see com.thoughtworks.qdox.library.ClassLibraryBuilder#setDebugParser(boolean)
+     */
+    public ClassLibraryBuilder setDebugParser( boolean debugParser )
     {
         this.debugParser = debugParser;
         return this;
     }
 
+    /* (non-Javadoc)
+     * @see com.thoughtworks.qdox.library.ClassLibraryBuilder#getClassLibrary()
+     */
     public ClassLibrary getClassLibrary()
     {
         return classLibrary;
     }
 
+    public ClassLibraryBuilder appendSource( URL url, String encoding ) throws IOException
+    {
+        return appendSource(new InputStreamReader(url.openStream(), encoding));
+    }
+
+    public JavaClass addSource( InputStream stream )
+    {
+        if ( !( classLibrary instanceof SourceLibrary ) )
+        {
+            classLibrary = new SourceLibrary( classLibrary );
+        }
+        SourceLibrary sourceLibrary = (SourceLibrary) classLibrary;
+        sourceLibrary.setDebugLexer( debugLexer );
+        sourceLibrary.setDebugParser( debugParser );
+        return sourceLibrary.addSource( stream );
+    }
+
+    public JavaClass addSource( Reader reader )
+    {
+        if ( !( classLibrary instanceof SourceLibrary ) )
+        {
+            classLibrary = new SourceLibrary( classLibrary );
+        }
+        SourceLibrary sourceLibrary = (SourceLibrary) classLibrary;
+        sourceLibrary.setDebugLexer( debugLexer );
+        sourceLibrary.setDebugParser( debugParser );
+        return sourceLibrary.addSource( reader );
+    }
+
+    public JavaClass addSource( URL url, String encoding ) throws IOException
+    {
+        return addSource(new InputStreamReader(url.openStream(), encoding));
+    }
+
 }

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

--- trunk/qdox/src/java/com/thoughtworks/qdox/library/SortedClassLibraryBuilder.java	2010-09-27 20:33:31 UTC (rev 752)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/library/SortedClassLibraryBuilder.java	2010-09-28 20:49:45 UTC (rev 753)
@@ -1,16 +1,19 @@
 package com.thoughtworks.qdox.library;
 
 import java.io.File;
+import java.io.IOException;
 import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.io.Reader;
+import java.net.URL;
 
+import com.thoughtworks.qdox.model.JavaClass;
+
 /**
- * 
- * 
  * @author Robert Scholte
- *
  */
 public class SortedClassLibraryBuilder
+    implements ClassLibraryBuilder
 {
     private ClassNameLibrary classNameLibrary;
 
@@ -19,7 +22,7 @@
     private SourceFolderLibrary sourceFolderLibrary;
 
     private SourceLibrary sourceLibrary;
-    
+
     public SortedClassLibraryBuilder()
     {
         classNameLibrary = new ClassNameLibrary();
@@ -28,45 +31,69 @@
         sourceLibrary = new SourceLibrary( sourceFolderLibrary );
     }
 
-    public SortedClassLibraryBuilder addClassLoader( ClassLoader classLoader )
+    public ClassLibraryBuilder appendClassLoader( ClassLoader classLoader )
     {
         classLoaderLibrary.addClassLoader( classLoader );
         return this;
     }
 
-    public SortedClassLibraryBuilder addSourceFolder( File sourceFolder )
+    public ClassLibraryBuilder appendSourceFolder( File sourceFolder )
     {
         sourceFolderLibrary.addSourceFolder( sourceFolder );
         return this;
     }
 
-    public SortedClassLibraryBuilder addSource( InputStream stream )
+    public ClassLibraryBuilder appendSource( InputStream stream )
     {
         sourceLibrary.addSource( stream );
         return this;
     }
 
-    public SortedClassLibraryBuilder addSource( Reader reader )
+    public ClassLibraryBuilder appendSource( Reader reader )
     {
         sourceLibrary.addSource( reader );
         return this;
     }
-    
-    public SortedClassLibraryBuilder setDebugLexer( boolean debugLexer )
+
+    public ClassLibraryBuilder setDebugLexer( boolean debugLexer )
     {
         sourceFolderLibrary.setDebugLexer( debugLexer );
         sourceLibrary.setDebugLexer( debugLexer );
         return this;
     }
-    
-    public SortedClassLibraryBuilder setDebugParser( boolean debugParser )
+
+    public ClassLibraryBuilder setDebugParser( boolean debugParser )
     {
         sourceFolderLibrary.setDebugParser( debugParser );
         sourceLibrary.setDebugParser( debugParser );
         return this;
     }
 
-    public ClassLibrary getClassLibrary() {
+    public ClassLibrary getClassLibrary()
+    {
         return sourceLibrary;
     }
+
+    public ClassLibraryBuilder appendSource( URL url, String encoding )
+        throws IOException
+    {
+        return appendSource( new InputStreamReader( url.openStream(), encoding ) );
+    }
+
+    public JavaClass addSource( InputStream stream )
+    {
+        return sourceLibrary.addSource( stream );
+    }
+
+    public JavaClass addSource( Reader reader )
+    {
+        return sourceLibrary.addSource( reader );
+    }
+
+    public JavaClass addSource( URL url, String encoding )
+        throws IOException
+    {
+        return addSource( new InputStreamReader( url.openStream(), encoding ) );
+    }
+
 }

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/library/SourceLibrary.java (752 => 753)

--- trunk/qdox/src/java/com/thoughtworks/qdox/library/SourceLibrary.java	2010-09-27 20:33:31 UTC (rev 752)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/library/SourceLibrary.java	2010-09-28 20:49:45 UTC (rev 753)
@@ -32,18 +32,20 @@
         super( parent );
     }
 
-    public void addSource( Reader reader )
+    public JavaClass addSource( Reader reader )
         throws ParseException
     {
         JavaClass clazz = parse( reader );
         javaClassesMap.put( clazz.getFullyQualifiedName(), clazz );
+        return clazz;
     }
 
-    public void addSource( InputStream stream )
+    public JavaClass addSource( InputStream stream )
         throws ParseException
     {
         JavaClass clazz = parse( stream );
         javaClassesMap.put( clazz.getFullyQualifiedName(), clazz );
+        return clazz;
     }
 
     protected JavaClass parse( Reader reader )


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to