Title: [755] trunk/qdox/src/java/com/thoughtworks/qdox/library: Add addEncoding and addSource(File) to ClassLibraryBuilder

Diff

Modified: trunk/qdox/src/java/com/thoughtworks/qdox/library/AbstractClassLibrary.java (754 => 755)

--- trunk/qdox/src/java/com/thoughtworks/qdox/library/AbstractClassLibrary.java	2010-09-28 22:07:38 UTC (rev 754)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/library/AbstractClassLibrary.java	2010-09-29 21:25:47 UTC (rev 755)
@@ -1,7 +1,6 @@
 package com.thoughtworks.qdox.library;
 
 import com.thoughtworks.qdox.JavaClassContext;
-import com.thoughtworks.qdox.JavaDocBuilder;
 import com.thoughtworks.qdox.model.JavaClass;
 
 /**

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

--- trunk/qdox/src/java/com/thoughtworks/qdox/library/ClassLibraryBuilder.java	2010-09-28 22:07:38 UTC (rev 754)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/library/ClassLibraryBuilder.java	2010-09-29 21:25:47 UTC (rev 755)
@@ -19,17 +19,23 @@
 
     public ClassLibraryBuilder appendSource( Reader reader );
 
-    public ClassLibraryBuilder appendSource( URL reader, String encoding ) throws IOException;
+    public ClassLibraryBuilder appendSource( URL url ) throws IOException;
 
+    public ClassLibraryBuilder appendSource( File file ) throws IOException;
+
     public JavaClass addSource( InputStream stream );
 
     public JavaClass addSource( Reader reader );
     
-    public JavaClass addSource( URL reader, String encoding ) throws IOException;
+    public JavaClass addSource( URL url ) throws IOException;
+    
+    public JavaClass addSource( File file ) throws IOException;
 
     public ClassLibraryBuilder setDebugLexer( boolean debugLexer );
 
     public ClassLibraryBuilder setDebugParser( boolean debugParser );
+    
+    public ClassLibraryBuilder setEncoding( String encoding );
 
     public ClassLibrary getClassLibrary();
 

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

--- trunk/qdox/src/java/com/thoughtworks/qdox/library/OrderedClassLibraryBuilder.java	2010-09-28 22:07:38 UTC (rev 754)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/library/OrderedClassLibraryBuilder.java	2010-09-29 21:25:47 UTC (rev 755)
@@ -27,6 +27,8 @@
 
     private boolean debugParser;
     
+    private String encoding;
+    
     public OrderedClassLibraryBuilder()
     {
         modelBuilderFactory = new ModelBuilderFactory()
@@ -69,8 +71,7 @@
             classLibrary = new SourceFolderLibrary( modelBuilderFactory, classLibrary );
         }
         SourceFolderLibrary sourceFolderLibrary = (SourceFolderLibrary) classLibrary;
-        sourceFolderLibrary.setDebugLexer( debugLexer );
-        sourceFolderLibrary.setDebugParser( debugParser );
+        prepareSourceLibrary( sourceFolderLibrary );
         sourceFolderLibrary.addSourceFolder( sourceFolder );
         return this;
     }
@@ -80,13 +81,7 @@
      */
     public ClassLibraryBuilder appendSource( InputStream stream )
     {
-        if ( !( classLibrary instanceof SourceLibrary ) )
-        {
-            classLibrary = new SourceLibrary( modelBuilderFactory, classLibrary );
-        }
-        SourceLibrary sourceLibrary = (SourceLibrary) classLibrary;
-        sourceLibrary.setDebugLexer( debugLexer );
-        sourceLibrary.setDebugParser( debugParser );
+        SourceLibrary sourceLibrary = getSourceLibrary();
         sourceLibrary.addSource( stream );
         return this;
     }
@@ -96,13 +91,7 @@
      */
     public ClassLibraryBuilder appendSource( Reader reader )
     {
-        if ( !( classLibrary instanceof SourceLibrary ) )
-        {
-            classLibrary = new SourceLibrary( modelBuilderFactory, classLibrary );
-        }
-        SourceLibrary sourceLibrary = (SourceLibrary) classLibrary;
-        sourceLibrary.setDebugLexer( debugLexer );
-        sourceLibrary.setDebugParser( debugParser );
+        SourceLibrary sourceLibrary = getSourceLibrary();
         sourceLibrary.addSource( reader );
         return this;
     }
@@ -124,6 +113,12 @@
         this.debugParser = debugParser;
         return this;
     }
+    
+    public ClassLibraryBuilder setEncoding( String encoding )
+    {
+        this.encoding = encoding;
+        return this;
+    }
 
     /* (non-Javadoc)
      * @see com.thoughtworks.qdox.library.ClassLibraryBuilder#getClassLibrary()
@@ -133,38 +128,60 @@
         return classLibrary;
     }
 
-    public ClassLibraryBuilder appendSource( URL url, String encoding ) throws IOException
+    public ClassLibraryBuilder appendSource( URL url ) throws IOException
     {
-        return appendSource(new InputStreamReader(url.openStream(), encoding));
+        SourceLibrary sourceLibrary = getSourceLibrary();
+        sourceLibrary.addSource( url );
+        return this;
     }
+    
+    public ClassLibraryBuilder appendSource( File file )
+        throws IOException
+    {
+        SourceLibrary sourceLibrary = getSourceLibrary();
+        sourceLibrary.addSource( file );
+        return this;
+    }
 
     public JavaClass addSource( InputStream stream )
     {
-        if ( !( classLibrary instanceof SourceLibrary ) )
-        {
-            classLibrary = new SourceLibrary( modelBuilderFactory, classLibrary );
-        }
-        SourceLibrary sourceLibrary = (SourceLibrary) classLibrary;
-        sourceLibrary.setDebugLexer( debugLexer );
-        sourceLibrary.setDebugParser( debugParser );
+        SourceLibrary sourceLibrary = getSourceLibrary();
         return sourceLibrary.addSource( stream );
     }
 
     public JavaClass addSource( Reader reader )
     {
+        SourceLibrary sourceLibrary = getSourceLibrary();
+        return sourceLibrary.addSource( reader );
+    }
+
+    public JavaClass addSource( URL url ) throws IOException
+    {
+        SourceLibrary sourceLibrary = getSourceLibrary();
+        return sourceLibrary.addSource( url );
+    }
+    
+    public JavaClass addSource( File file )
+        throws IOException
+    {
+        SourceLibrary sourceLibrary = getSourceLibrary();
+        return sourceLibrary.addSource( file );
+    }
+    
+    private void prepareSourceLibrary( SourceLibrary sourceLibrary ) {
+        sourceLibrary.setDebugLexer( debugLexer );
+        sourceLibrary.setDebugParser( debugParser );
+        sourceLibrary.setEncoding( encoding );
+    }
+    
+    private SourceLibrary getSourceLibrary() {
         if ( !( classLibrary instanceof SourceLibrary ) )
         {
             classLibrary = new SourceLibrary( modelBuilderFactory, classLibrary );
         }
         SourceLibrary sourceLibrary = (SourceLibrary) classLibrary;
-        sourceLibrary.setDebugLexer( debugLexer );
-        sourceLibrary.setDebugParser( debugParser );
-        return sourceLibrary.addSource( reader );
+        prepareSourceLibrary( sourceLibrary );
+        return sourceLibrary;
     }
 
-    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 (754 => 755)

--- trunk/qdox/src/java/com/thoughtworks/qdox/library/SortedClassLibraryBuilder.java	2010-09-28 22:07:38 UTC (rev 754)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/library/SortedClassLibraryBuilder.java	2010-09-29 21:25:47 UTC (rev 755)
@@ -71,6 +71,20 @@
         sourceLibrary.addSource( reader );
         return this;
     }
+    
+    public ClassLibraryBuilder appendSource( URL url )
+    throws IOException
+    {
+        sourceLibrary.addSource( url );
+        return this;
+    }
+    
+    public ClassLibraryBuilder appendSource( File file )
+        throws IOException
+    {
+        sourceLibrary.addSource( file );
+        return this;
+    }
 
     public ClassLibraryBuilder setDebugLexer( boolean debugLexer )
     {
@@ -85,18 +99,19 @@
         sourceLibrary.setDebugParser( debugParser );
         return this;
     }
+    
+    public ClassLibraryBuilder setEncoding( String encoding )
+    {
+        sourceFolderLibrary.setEncoding( encoding );
+        sourceLibrary.setEncoding( encoding );
+        return this;
+    }
 
     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 );
@@ -107,10 +122,16 @@
         return sourceLibrary.addSource( reader );
     }
 
-    public JavaClass addSource( URL url, String encoding )
+    public JavaClass addSource( URL url )
         throws IOException
     {
-        return addSource( new InputStreamReader( url.openStream(), encoding ) );
+        return sourceLibrary.addSource( url );
     }
+    
+    public JavaClass addSource( File file )
+        throws IOException
+    {
+        return sourceLibrary.addSource( file );
+    }
 
 }

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

--- trunk/qdox/src/java/com/thoughtworks/qdox/library/SourceLibrary.java	2010-09-28 22:07:38 UTC (rev 754)
+++ trunk/qdox/src/java/com/thoughtworks/qdox/library/SourceLibrary.java	2010-09-29 21:25:47 UTC (rev 755)
@@ -1,7 +1,12 @@
 package com.thoughtworks.qdox.library;
 
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
 import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.io.Reader;
+import java.net.URL;
 import java.util.Hashtable;
 import java.util.Map;
 
@@ -24,22 +29,29 @@
     private boolean debugLexer;
 
     private boolean debugParser;
+    
+    private String encoding;
 
     public SourceLibrary( ModelBuilderFactory modelBuilderFactory )
     {
         super();
+        this.modelBuilderFactory = modelBuilderFactory;
     }
 
     public SourceLibrary( ModelBuilderFactory modelBuilderFactory, ClassLibrary parent )
     {
         super( parent );
+        this.modelBuilderFactory = modelBuilderFactory;
     }
 
     public JavaClass addSource( Reader reader )
         throws ParseException
     {
         JavaClass clazz = parse( reader );
-        javaClassesMap.put( clazz.getFullyQualifiedName(), clazz );
+        if ( clazz != null )
+        {
+            javaClassesMap.put( clazz.getFullyQualifiedName(), clazz );
+        }
         return clazz;
     }
 
@@ -47,10 +59,24 @@
         throws ParseException
     {
         JavaClass clazz = parse( stream );
-        javaClassesMap.put( clazz.getFullyQualifiedName(), clazz );
+        if (clazz != null) {
+            javaClassesMap.put( clazz.getFullyQualifiedName(), clazz );
+        }
         return clazz;
     }
+    
+    public JavaClass addSource( URL url )
+        throws ParseException, IOException
+    {
+        return addSource( new InputStreamReader( url.openStream(), encoding) );
+    }
 
+    public JavaClass addSource( File file )
+        throws ParseException, IOException
+    {
+        return addSource( new FileInputStream( file ) );
+    }
+
     protected JavaClass parse( Reader reader )
         throws ParseException
     {
@@ -71,7 +97,7 @@
         Parser parser = new Parser( lexer, builder );
         parser.setDebugLexer( debugLexer );
         parser.setDebugParser( debugParser );
-        if ( parser.parse() )
+        if ( parser.parse() && builder.getSource().getClasses().length > 0 )
         {
             result = builder.getSource().getClasses()[0];
         }
@@ -97,4 +123,9 @@
     {
         this.debugParser = debugParser;
     }
+    
+    public void setEncoding( String encoding )
+    {
+        this.encoding = encoding;
+    }
 }


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to