Author: ltheussl
Date: Mon May 11 12:01:17 2009
New Revision: 773534

URL: http://svn.apache.org/viewvc?rev=773534&view=rev
Log:
code simplification

Modified:
    
maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/fo/FoPdfRenderer.java
    
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java

Modified: 
maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/fo/FoPdfRenderer.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/fo/FoPdfRenderer.java?rev=773534&r1=773533&r2=773534&view=diff
==============================================================================
--- 
maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/fo/FoPdfRenderer.java
 (original)
+++ 
maven/doxia/doxia-sitetools/trunk/doxia-doc-renderer/src/main/java/org/apache/maven/doxia/docrenderer/pdf/fo/FoPdfRenderer.java
 Mon May 11 12:01:17 2009
@@ -31,6 +31,7 @@
 import org.apache.maven.doxia.docrenderer.DocumentRendererException;
 import org.apache.maven.doxia.docrenderer.pdf.AbstractPdfRenderer;
 import org.apache.maven.doxia.document.DocumentModel;
+import org.apache.maven.doxia.document.DocumentTOC;
 import org.apache.maven.doxia.document.DocumentTOCItem;
 import org.apache.maven.doxia.module.fo.FoAggregateSink;
 import org.apache.maven.doxia.module.fo.FoUtils;
@@ -88,7 +89,7 @@
     }
 
     /** {...@inheritdoc} */
-    public void render( Map filesToProcess, File outputDirectory, 
DocumentModel documentModel    )
+    public void render( Map filesToProcess, File outputDirectory, 
DocumentModel documentModel )
         throws DocumentRendererException, IOException
     {
         String outputName = documentModel.getOutputName();
@@ -153,87 +154,90 @@
             {
                 getLogger().info( "No TOC is defined in the document 
descriptor. Merging all documents." );
 
-                for ( Iterator j = filesToProcess.keySet().iterator(); 
j.hasNext(); )
-                {
-                    String key = (String) j.next();
-
-                    SiteModule module = (SiteModule) filesToProcess.get( key );
-
-                    sink.setDocumentName( key );
-                    // TODO: sink.setDocumentTitle( "Title" ); ???
-
-                    String fullDocPath = getBaseDir() + File.separator
-                                + module.getSourceDirectory() + File.separator 
+ key;
-
-                    if ( getLogger().isDebugEnabled() )
-                    {
-                        getLogger().debug( "Parsing file " + fullDocPath );
-                    }
-
-                    parse( fullDocPath, module.getParserId(), sink );
-                }
+                mergeAllSources( filesToProcess, sink );
             }
             else
             {
-                for ( Iterator k = 
documentModel.getToc().getItems().iterator(); k.hasNext(); )
-                {
-                    DocumentTOCItem tocItem = (DocumentTOCItem) k.next();
+                mergeSourcesFromTOC( documentModel.getToc(), sink );
+            }
 
-                    if ( tocItem.getRef() == null )
-                    {
-                        if ( getLogger().isInfoEnabled() )
-                        {
-                            getLogger().info( "No ref defined for tocItem " + 
tocItem.getName() );
-                        }
+            sink.endDocument();
+        }
+        finally
+        {
+            IOUtil.close( writer );
+        }
 
-                        continue;
-                    }
+        generatePdf( outputFOFile, pdfOutputFile );
+    }
 
-                    String href = StringUtils.replace( tocItem.getRef(), "\\", 
"/" );
+    private void mergeAllSources( Map filesToProcess, FoAggregateSink sink )
+            throws DocumentRendererException, IOException
+    {
+        for ( Iterator j = filesToProcess.keySet().iterator(); j.hasNext(); )
+        {
+            String key = (String) j.next();
+            SiteModule module = (SiteModule) filesToProcess.get( key );
+            sink.setDocumentName( key );
+            String fullDocPath = getBaseDir() + File.separator + 
module.getSourceDirectory() + File.separator + key;
 
-                    if ( href.lastIndexOf( "." ) != -1 )
-                    {
-                        href = href.substring( 0, href.lastIndexOf( "." ) );
-                    }
+            if ( getLogger().isDebugEnabled() )
+            {
+                getLogger().debug( "Parsing file " + fullDocPath );
+            }
 
-                    for ( Iterator i = 
siteModuleManager.getSiteModules().iterator(); i.hasNext(); )
-                    {
-                        SiteModule module = (SiteModule) i.next();
+            parse( fullDocPath, module.getParserId(), sink );
+        }
+    }
 
-                        File moduleBasedir = new File( getBaseDir(), 
module.getSourceDirectory() );
+    private void mergeSourcesFromTOC( DocumentTOC toc, FoAggregateSink sink )
+            throws IOException, DocumentRendererException
+    {
+        for ( Iterator k = toc.getItems().iterator(); k.hasNext(); )
+        {
+            DocumentTOCItem tocItem = (DocumentTOCItem) k.next();
 
-                        if ( moduleBasedir.exists() )
-                        {
-                            String doc = href + "." + module.getExtension();
+            if ( tocItem.getRef() == null )
+            {
+                if ( getLogger().isInfoEnabled() )
+                {
+                    getLogger().info( "No ref defined for tocItem " + 
tocItem.getName() );
+                }
 
-                            File source = new File( moduleBasedir, doc );
+                continue;
+            }
 
-                            if ( source.exists() )
-                            {
-                                if ( getLogger().isDebugEnabled() )
-                                {
-                                    getLogger().debug( "Parsing file " + 
source );
-                                }
+            String href = StringUtils.replace( tocItem.getRef(), "\\", "/" );
 
-                                sink.setDocumentName( doc );
+            if ( href.lastIndexOf( "." ) != -1 )
+            {
+                href = href.substring( 0, href.lastIndexOf( "." ) );
+            }
+
+            for ( Iterator i = siteModuleManager.getSiteModules().iterator(); 
i.hasNext(); )
+            {
+                SiteModule module = (SiteModule) i.next();
+                File moduleBasedir = new File( getBaseDir(), 
module.getSourceDirectory() );
 
-                                sink.setDocumentTitle( tocItem.getName() );
+                if ( moduleBasedir.exists() )
+                {
+                    String doc = href + "." + module.getExtension();
+                    File source = new File( moduleBasedir, doc );
 
-                                parse( source.getPath(), module.getParserId(), 
sink );
-                            }
+                    if ( source.exists() )
+                    {
+                        if ( getLogger().isDebugEnabled() )
+                        {
+                            getLogger().debug( "Parsing file " + source );
                         }
+
+                        sink.setDocumentName( doc );
+                        sink.setDocumentTitle( tocItem.getName() );
+
+                        parse( source.getPath(), module.getParserId(), sink );
                     }
                 }
             }
-
-            sink.endDocument();
         }
-        finally
-        {
-            IOUtil.close( writer );
-        }
-
-        generatePdf( outputFOFile, pdfOutputFile );
     }
-
 }

Modified: 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java
URL: 
http://svn.apache.org/viewvc/maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java?rev=773534&r1=773533&r2=773534&view=diff
==============================================================================
--- 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java
 (original)
+++ 
maven/doxia/doxia/trunk/doxia-modules/doxia-module-fo/src/main/java/org/apache/maven/doxia/module/fo/FoAggregateSink.java
 Mon May 11 12:01:17 2009
@@ -666,18 +666,13 @@
      */
     public void toc()
     {
-        if ( this.docModel == null )
+        if ( docModel == null || docModel.getToc() == null || 
docModel.getToc().getItems() == null )
         {
             return;
         }
 
         DocumentTOC toc = docModel.getToc();
 
-        if ( toc == null )
-        {
-            return;
-        }
-
         writeln( "<fo:page-sequence master-reference=\"toc\" 
initial-page-number=\"1\" format=\"i\">" );
         regionBefore( toc.getName() );
         regionAfter( getFooterText() );


Reply via email to