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