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() );