Package org.apache.maven.doxia.docrenderer

## Class AbstractDocumentRenderer

- java.lang.Object
- - org.codehaus.plexus.logging.AbstractLogEnabled
  - - org.apache.maven.doxia.docrenderer.AbstractDocumentRenderer

All Implemented Interfaces:
  `DocumentRenderer`, `org.codehaus.plexus.logging.LogEnabled`

Direct Known Subclasses:
  `AbstractPdfRenderer`

    public abstract class AbstractDocumentRenderer
    extends org.codehaus.plexus.logging.AbstractLogEnabled
    implements DocumentRenderer

Abstract `document` renderer.

Since:
  1.1
Version:
  $Id: AbstractDocumentRenderer.java 1726406 2016-01-23 15:06:45Z hboutemy $
Author:
  Vincent Siveton, ltheussl

### Field Summary

Fields
`protected org.apache.maven.doxia.Doxia` `doxia`
`protected org.apache.maven.doxia.parser.module.ParserModuleManager` `parserModuleManager`

### Fields inherited from interface org.apache.maven.doxia.docrenderer.DocumentRenderer

`ROLE`

### Constructor Summary

Constructors
`AbstractDocumentRenderer()`

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods
`protected void` `copyDirectory​(java.io.File source, java.io.File destination)` Copy content of a directory, excluding scm-specific files.
`protected void` `copyResources​(java.io.File outputDirectory)` Copies the contents of the resource directory to an output folder.
`protected static boolean` `endsWithIgnoreCase​(java.lang.String str, java.lang.String searchStr)`
`protected static boolean` `endsWithIgnoreCase​(java.lang.String str, java.lang.String[] searchStrs)`
`java.lang.String` `getBaseDir()` Return the current base directory.
`protected static java.lang.String[]` `getExtensions​(org.apache.maven.doxia.parser.module.ParserModule module)`
`java.util.Map<java.lang.String,​org.apache.maven.doxia.parser.module.ParserModule>` `getFilesToProcess​(java.io.File baseDirectory)` Returns a Map of files to process.
`java.util.Map<java.lang.String,​org.apache.maven.doxia.parser.module.ParserModule>` `getFilesToProcess​(java.util.Collection<java.lang.String> files)` Returns a Map of files to process.
`protected java.lang.String` `getOutputName​(org.apache.maven.doxia.document.DocumentModel documentModel)`
`protected void` `parse​(java.lang.String fullDocPath, java.lang.String parserId, org.apache.maven.doxia.sink.Sink sink)` Deprecated. since 1.1.2, use `parse(String, String, Sink, DocumentRendererContext)`
`protected void` `parse​(java.lang.String fullDocPath, java.lang.String parserId, org.apache.maven.doxia.sink.Sink sink, DocumentRendererContext context)` Parse a source document into a sink.
`org.apache.maven.doxia.document.DocumentModel` `readDocumentModel​(java.io.File documentDescriptor)` Read a document model from a file.
`void` `render​(java.io.File baseDirectory, java.io.File outputDirectory)` Render a document from the files found in baseDirectory.
`void` `render​(java.io.File baseDirectory, java.io.File outputDirectory, java.io.File documentDescriptor)` Render a document from the files found in baseDirectory.
`void` `render​(java.io.File baseDirectory, java.io.File outputDirectory, org.apache.maven.doxia.document.DocumentModel documentModel)` Render a document from the files found in a source directory, depending on a rendering context.
`void` `render​(java.io.File baseDirectory, java.io.File outputDirectory, org.apache.maven.doxia.document.DocumentModel documentModel, DocumentRendererContext context)` Render a document from the files found in a source directory, depending on a rendering context.
`void` `render​(java.util.Collection<java.lang.String> files, java.io.File outputDirectory, org.apache.maven.doxia.document.DocumentModel documentModel)` Render a document from a set of files, depending on a rendering context.
`abstract void` `render​(java.util.Map<java.lang.String,​org.apache.maven.doxia.parser.module.ParserModule> filesToProcess, java.io.File outputDirectory, org.apache.maven.doxia.document.DocumentModel documentModel)` Deprecated. since 1.1.2, use `render(Map, File, DocumentModel, DocumentRendererContext)`
`void` `render​(java.util.Map<java.lang.String,​org.apache.maven.doxia.parser.module.ParserModule> filesToProcess, java.io.File outputDirectory, org.apache.maven.doxia.document.DocumentModel documentModel, DocumentRendererContext context)` Render an aggregate document from the files found in a Map.
`void` `renderIndividual​(java.util.Map<java.lang.String,​org.apache.maven.doxia.parser.module.ParserModule> filesToProcess, java.io.File outputDirectory)` Deprecated. since 1.1.2, use `renderIndividual(Map, File, DocumentRendererContext)`
`void` `renderIndividual​(java.util.Map<java.lang.String,​org.apache.maven.doxia.parser.module.ParserModule> filesToProcess, java.io.File outputDirectory, DocumentRendererContext context)` Render documents separately for each file found in a Map.
`void` `setBaseDir​(java.lang.String newDir)` Sets the current base directory.

### Methods inherited from class org.codehaus.plexus.logging.AbstractLogEnabled

`enableLogging, getLogger, setupLogger, setupLogger, setupLogger`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods inherited from interface org.apache.maven.doxia.docrenderer.DocumentRenderer

`getOutputExtension`

### Field Detail

#### parserModuleManager

    @Requirement
    protected org.apache.maven.doxia.parser.module.ParserModuleManager parserModuleManager

#### doxia

    @Requirement
    protected org.apache.maven.doxia.Doxia doxia

### Constructor Detail

#### AbstractDocumentRenderer

    public AbstractDocumentRenderer()

### Method Detail

#### render

    public abstract void render​(java.util.Map<java.lang.String,​org.apache.maven.doxia.parser.module.ParserModule> filesToProcess,
                                java.io.File outputDirectory,
                                org.apache.maven.doxia.document.DocumentModel documentModel)
                         throws DocumentRendererException,
                                java.io.IOException

Deprecated.
since 1.1.2, use `render(Map, File, DocumentModel, DocumentRendererContext)`
Render an aggregate document from the files found in a Map.

Parameters:
  `filesToProcess` - the Map of Files to process. The Map should contain as keys the paths of the source files (relative to `baseDir`), and the corresponding ParserModule as values.
  `outputDirectory` - the output directory where the aggregate document should be generated.
  `documentModel` - the document model, containing all the metadata, etc.
Throws:
  `DocumentRendererException` - if any
  `java.io.IOException` - if any

#### render

    public void render​(java.util.Collection<java.lang.String> files,
                       java.io.File outputDirectory,
                       org.apache.maven.doxia.document.DocumentModel documentModel)
                throws DocumentRendererException,
                       java.io.IOException

Render a document from a set of files, depending on a rendering context.

Specified by:
  `render` in interface `DocumentRenderer`
Parameters:
  `files` - the path name Strings (relative to a common base directory) of files to include in the document generation.
  `outputDirectory` - the output directory where the document should be generated.
  `documentModel` - the document model, containing all the metadata, etc. If the model contains a TOC, only the files found in this TOC are rendered, otherwise all files from the Collection of files will be processed. If the model is null, render all files individually.
Throws:
  `DocumentRendererException` - if any.
  `java.io.IOException` - if any.

#### render

    public void render​(java.io.File baseDirectory,
                       java.io.File outputDirectory,
                       org.apache.maven.doxia.document.DocumentModel documentModel)
                throws DocumentRendererException,
                       java.io.IOException

Render a document from the files found in a source directory, depending on a rendering context.

Specified by:
  `render` in interface `DocumentRenderer`
Parameters:
  `baseDirectory` - the directory containing the source files. This should follow the standard Maven convention, ie containing all the site modules.
  `outputDirectory` - the output directory where the document should be generated.
  `documentModel` - the document model, containing all the metadata, etc. If the model contains a TOC, only the files found in this TOC are rendered, otherwise all files found under baseDirectory will be processed. If the model is null, render all files from baseDirectory individually.
Throws:
  `DocumentRendererException` - if any
  `java.io.IOException` - if any // * @deprecated since 1.1.2, use `#render(File, File, DocumentModel, DocumentRendererContext)`

#### render

    public void render​(java.util.Map<java.lang.String,​org.apache.maven.doxia.parser.module.ParserModule> filesToProcess,
                       java.io.File outputDirectory,
                       org.apache.maven.doxia.document.DocumentModel documentModel,
                       DocumentRendererContext context)
                throws DocumentRendererException,
                       java.io.IOException

Render an aggregate document from the files found in a Map.

Parameters:
  `filesToProcess` - the Map of Files to process. The Map should contain as keys the paths of the source files (relative to `baseDir`), and the corresponding ParserModule as values.
  `outputDirectory` - the output directory where the aggregate document should be generated.
  `documentModel` - the document model, containing all the metadata, etc.
  `context` - the rendering context when processing files.
Throws:
  `DocumentRendererException` - if any
  `java.io.IOException` - if any

#### render

    public void render​(java.io.File baseDirectory,
                       java.io.File outputDirectory,
                       org.apache.maven.doxia.document.DocumentModel documentModel,
                       DocumentRendererContext context)
                throws DocumentRendererException,
                       java.io.IOException

Render a document from the files found in a source directory, depending on a rendering context.

Parameters:
  `baseDirectory` - the directory containing the source files. This should follow the standard Maven convention, ie containing all the site modules.
  `outputDirectory` - the output directory where the document should be generated.
  `documentModel` - the document model, containing all the metadata, etc. If the model contains a TOC, only the files found in this TOC are rendered, otherwise all files found under baseDirectory will be processed. If the model is null, render all files from baseDirectory individually.
  `context` - the rendering context when processing files.
Throws:
  `DocumentRendererException` - if any
  `java.io.IOException` - if any
Since:
  1.1.2

#### render

    public void render​(java.io.File baseDirectory,
                       java.io.File outputDirectory)
                throws DocumentRendererException,
                       java.io.IOException

Render a document from the files found in baseDirectory. This just forwards to `render(File,File,DocumentModel)` with a new DocumentModel.

Parameters:
  `baseDirectory` - the directory containing the source files. This should follow the standard Maven convention, ie containing all the site modules.
  `outputDirectory` - the output directory where the document should be generated.
Throws:
  `DocumentRendererException` - if any
  `java.io.IOException` - if any
See Also:
  `render(File, File, DocumentModel)`

#### render

    public void render​(java.io.File baseDirectory,
                       java.io.File outputDirectory,
                       java.io.File documentDescriptor)
                throws DocumentRendererException,
                       java.io.IOException

Render a document from the files found in baseDirectory.

Parameters:
  `baseDirectory` - the directory containing the source files. This should follow the standard Maven convention, ie containing all the site modules.
  `outputDirectory` - the output directory where the document should be generated.
  `documentDescriptor` - a file containing the document model. If this file does not exist or is null, some default settings will be used.
Throws:
  `DocumentRendererException` - if any
  `java.io.IOException` - if any
See Also:
  `if documentDescriptor does not exist or is null`, `otherwise`

#### renderIndividual

    public void renderIndividual​(java.util.Map<java.lang.String,​org.apache.maven.doxia.parser.module.ParserModule> filesToProcess,
                                 java.io.File outputDirectory)
                          throws DocumentRendererException,
                                 java.io.IOException

Deprecated.
since 1.1.2, use `renderIndividual(Map, File, DocumentRendererContext)`
Render documents separately for each file found in a Map.

Parameters:
  `filesToProcess` - the Map of Files to process. The Map should contain as keys the paths of the source files (relative to `baseDir`), and the corresponding ParserModule as values.
  `outputDirectory` - the output directory where the documents should be generated.
Throws:
  `DocumentRendererException` - if any
  `java.io.IOException` - if any
Since:
  1.1.1

#### renderIndividual

    public void renderIndividual​(java.util.Map<java.lang.String,​org.apache.maven.doxia.parser.module.ParserModule> filesToProcess,
                                 java.io.File outputDirectory,
                                 DocumentRendererContext context)
                          throws DocumentRendererException,
                                 java.io.IOException

Render documents separately for each file found in a Map.

Parameters:
  `filesToProcess` - the Map of Files to process. The Map should contain as keys the paths of the source files (relative to `baseDir`), and the corresponding ParserModule as values.
  `outputDirectory` - the output directory where the documents should be generated.
  `context` - the rendering context.
Throws:
  `DocumentRendererException` - if any
  `java.io.IOException` - if any
Since:
  1.1.2

#### getFilesToProcess

    public java.util.Map<java.lang.String,​org.apache.maven.doxia.parser.module.ParserModule> getFilesToProcess​(java.io.File baseDirectory)
                                                                                                              throws java.io.IOException,
                                                                                                                     DocumentRendererException

Returns a Map of files to process. The Map contains as keys the paths of the source files (relative to `baseDir`), and the corresponding ParserModule as values.

Parameters:
  `baseDirectory` - the directory containing the source files. This should follow the standard Maven convention, ie containing all the site modules.
Returns:
  a Map of files to process.
Throws:
  `java.io.IOException` - in case of a problem reading the files under baseDirectory.
  `DocumentRendererException` - if any

#### getExtensions

    protected static java.lang.String[] getExtensions​(org.apache.maven.doxia.parser.module.ParserModule module)

#### endsWithIgnoreCase

    protected static boolean endsWithIgnoreCase​(java.lang.String str,
                                                java.lang.String searchStr)

#### endsWithIgnoreCase

    protected static boolean endsWithIgnoreCase​(java.lang.String str,
                                                java.lang.String[] searchStrs)

#### getFilesToProcess

    public java.util.Map<java.lang.String,​org.apache.maven.doxia.parser.module.ParserModule> getFilesToProcess​(java.util.Collection<java.lang.String> files)

Returns a Map of files to process. The Map contains as keys the paths of the source files (relative to `baseDir`), and the corresponding ParserModule as values.

Parameters:
  `files` - The Collection of source files.
Returns:
  a Map of files to process.

#### readDocumentModel

    public org.apache.maven.doxia.document.DocumentModel readDocumentModel​(java.io.File documentDescriptor)
                                                                    throws DocumentRendererException,
                                                                           java.io.IOException

Read a document model from a file.

Specified by:
  `readDocumentModel` in interface `DocumentRenderer`
Parameters:
  `documentDescriptor` - a document descriptor file that contains the document model.
Returns:
  the document model, containing all the metadata, etc.
Throws:
  `DocumentRendererException` - if any
  `java.io.IOException` - if any

#### setBaseDir

    public void setBaseDir​(java.lang.String newDir)

Sets the current base directory.

Parameters:
  `newDir` - the absolute path to the base directory to set.

#### getBaseDir

    public java.lang.String getBaseDir()

Return the current base directory.

Returns:
  the current base directory.

#### parse

    protected void parse​(java.lang.String fullDocPath,
                         java.lang.String parserId,
                         org.apache.maven.doxia.sink.Sink sink)
                  throws DocumentRendererException,
                         java.io.IOException

Deprecated.
since 1.1.2, use `parse(String, String, Sink, DocumentRendererContext)`
Parse a source document into a sink.

Parameters:
  `fullDocPath` - absolute path to the source document.
  `parserId` - determines the parser to use.
  `sink` - the sink to receive the events.
Throws:
  `DocumentRendererException` - in case of a parsing error.
  `java.io.IOException` - if the source document cannot be opened.

#### parse

    protected void parse​(java.lang.String fullDocPath,
                         java.lang.String parserId,
                         org.apache.maven.doxia.sink.Sink sink,
                         DocumentRendererContext context)
                  throws DocumentRendererException,
                         java.io.IOException

Parse a source document into a sink.

Parameters:
  `fullDocPath` - absolute path to the source document.
  `parserId` - determines the parser to use.
  `sink` - the sink to receive the events.
  `context` - the rendering context.
Throws:
  `DocumentRendererException` - in case of a parsing error.
  `java.io.IOException` - if the source document cannot be opened.

#### copyResources

    protected void copyResources​(java.io.File outputDirectory)
                          throws java.io.IOException

Copies the contents of the resource directory to an output folder.

Parameters:
  `outputDirectory` - the destination folder.
Throws:
  `java.io.IOException` - if any.

#### copyDirectory

    protected void copyDirectory​(java.io.File source,
                                 java.io.File destination)
                          throws java.io.IOException

Copy content of a directory, excluding scm-specific files.

Parameters:
  `source` - directory that contains the files and sub-directories to be copied.
  `destination` - destination folder.
Throws:
  `java.io.IOException` - if any.

#### getOutputName

    protected java.lang.String getOutputName​(org.apache.maven.doxia.document.DocumentModel documentModel)

Parameters:
  `documentModel` - not null
Returns:
  the output name defined in the documentModel without the output extension. If the output name is not defined, return target by default.
Since:
  1.1.1
See Also:
  `DocumentModel.getOutputName()`, `DocumentRenderer.getOutputExtension()`