Class DefaultSiteRenderer

java.lang.Object
org.codehaus.plexus.logging.AbstractLogEnabled
org.apache.maven.doxia.siterenderer.DefaultSiteRenderer
All Implemented Interfaces:
Renderer, org.codehaus.plexus.logging.LogEnabled

@Component(role=Renderer.class) public class DefaultSiteRenderer extends org.codehaus.plexus.logging.AbstractLogEnabled implements Renderer

DefaultSiteRenderer class.

Since:
1.0
Author:
Emmanuel Venisse, Vincent Siveton
  • Constructor Details

    • DefaultSiteRenderer

      public DefaultSiteRenderer()
  • Method Details

    • locateDocumentFiles

      public Map<String,DocumentRenderer> locateDocumentFiles(SiteRenderingContext siteRenderingContext) throws IOException, RendererException
      Locate Doxia document source files in the site source context.
      Specified by:
      locateDocumentFiles in interface Renderer
      Parameters:
      siteRenderingContext - the SiteRenderingContext to use
      Returns:
      the Doxia document renderers in a Map keyed by output file name.
      Throws:
      IOException - if it bombs.
      RendererException - if it bombs.
    • locateDocumentFiles

      public Map<String,DocumentRenderer> locateDocumentFiles(SiteRenderingContext siteRenderingContext, boolean editable) throws IOException, RendererException
      Locate Doxia document source files in the site source context.
      Specified by:
      locateDocumentFiles in interface Renderer
      Parameters:
      siteRenderingContext - the SiteRenderingContext to use
      editable - Doxia document renderer as editable? (should not set editable if generated Doxia source)
      Returns:
      the Doxia document renderers in a Map keyed by output file name.
      Throws:
      IOException - if it bombs.
      RendererException - if it bombs.
    • render

      public void render(Collection<DocumentRenderer> documents, SiteRenderingContext siteRenderingContext, File outputDirectory) throws RendererException, IOException
      Render a collection of documents into a site.
      Specified by:
      render in interface Renderer
      Parameters:
      documents - the documents to render.
      siteRenderingContext - the SiteRenderingContext to use.
      outputDirectory - the output directory to write results.
      Throws:
      RendererException - if it bombs.
      IOException - if it bombs.
    • renderDocument

      public void renderDocument(Writer writer, RenderingContext docRenderingContext, SiteRenderingContext siteContext) throws RendererException, FileNotFoundException, UnsupportedEncodingException
      Render a document written in a Doxia markup language. This method is an internal method, used by DoxiaDocumentRenderer.
      Specified by:
      renderDocument in interface Renderer
      Parameters:
      writer - the writer to render the document to.
      docRenderingContext - the document's rendering context, which is expected to have a non-null parser id.
      siteContext - the site's rendering context
      Throws:
      RendererException - if it bombs.
      FileNotFoundException - if it bombs.
      UnsupportedEncodingException - if it bombs.
    • createToolManagedVelocityContext

      protected org.apache.velocity.context.Context createToolManagedVelocityContext(SiteRenderingContext siteRenderingContext)
      Creates a Velocity Context with all generic tools configured wit the site rendering context.
      Parameters:
      siteRenderingContext - the site rendering context
      Returns:
      a Velocity tools managed context
    • createDocumentVelocityContext

      protected org.apache.velocity.context.Context createDocumentVelocityContext(RenderingContext renderingContext, SiteRenderingContext siteRenderingContext)
      Create a Velocity Context for a Doxia document, containing every information about rendered document.
      Parameters:
      renderingContext - the document's RenderingContext
      siteRenderingContext - the site rendering context
      Returns:
      a Velocity tools managed context
    • createSiteTemplateVelocityContext

      protected org.apache.velocity.context.Context createSiteTemplateVelocityContext(DocumentContent content, SiteRenderingContext siteRenderingContext)
      Create a Velocity Context for the site template decorating the document. In addition to all the informations from the document, this context contains data gathered in SiteRendererSink during document rendering.
      Parameters:
      content - the document content to be merged into the template
      siteRenderingContext - the site rendering context
      Returns:
      a Velocity tools managed context
    • generateDocument

      public void generateDocument(Writer writer, SiteRendererSink sink, SiteRenderingContext siteRenderingContext) throws RendererException
      Generate a document output from a Doxia SiteRenderer Sink, i.e. merge the document content into the site template.
      Specified by:
      generateDocument in interface Renderer
      Parameters:
      writer - the Writer to use.
      sink - the Site Renderer Sink that received the Doxia events during document content rendering.
      siteRenderingContext - the SiteRenderingContext to use.
      Throws:
      RendererException - if it bombs.
    • mergeDocumentIntoSite

      public void mergeDocumentIntoSite(Writer writer, DocumentContent content, SiteRenderingContext siteRenderingContext) throws RendererException
      Generate a document output integrated in a site from a document content, i.e. merge the document content into the site template.
      Specified by:
      mergeDocumentIntoSite in interface Renderer
      Parameters:
      writer - the Writer to use.
      content - the document content to be merged.
      siteRenderingContext - the SiteRenderingContext to use.
      Throws:
      RendererException - if it bombs.
    • createContextForSkin

      public SiteRenderingContext createContextForSkin(org.apache.maven.artifact.Artifact skin, Map<String,?> attributes, org.apache.maven.doxia.site.decoration.DecorationModel decoration, String defaultWindowTitle, Locale locale) throws IOException, RendererException
      Create a Site Rendering Context for a site using a skin.
      Specified by:
      createContextForSkin in interface Renderer
      Parameters:
      skin - a skin
      attributes - attributes to use
      decoration - a decoration model
      defaultWindowTitle - default window title
      locale - locale to use
      Returns:
      a SiteRenderingContext.
      Throws:
      IOException - if it bombs.
      RendererException - if it bombs.
    • createContextForTemplate

      @Deprecated public SiteRenderingContext createContextForTemplate(File templateFile, Map<String,?> attributes, org.apache.maven.doxia.site.decoration.DecorationModel decoration, String defaultWindowTitle, Locale locale) throws MalformedURLException
      Deprecated.
      Create a Site Rendering Context for a site using a local template.
      Specified by:
      createContextForTemplate in interface Renderer
      Parameters:
      templateFile - template file
      attributes - attributes to use
      decoration - a decoration model
      defaultWindowTitle - default window title
      locale - locale to use
      Returns:
      a SiteRenderingContext.
      Throws:
      MalformedURLException - if it bombs.
      See Also:
    • copyResources

      public void copyResources(SiteRenderingContext siteRenderingContext, File resourcesDirectory, File outputDirectory) throws IOException
      Copy resource files.
      Specified by:
      copyResources in interface Renderer
      Parameters:
      siteRenderingContext - the SiteRenderingContext to use
      resourcesDirectory - resources directory as file
      outputDirectory - output directory as file
      Throws:
      IOException - if it bombs.
    • copyResources

      public void copyResources(SiteRenderingContext siteRenderingContext, File outputDirectory) throws IOException
      Copy resource files from skin, template, and site resources.
      Specified by:
      copyResources in interface Renderer
      Parameters:
      siteRenderingContext - the SiteRenderingContext to use.
      outputDirectory - output directory as file
      Throws:
      IOException - if it bombs.
    • copyDirectory

      protected void copyDirectory(File source, File destination) throws IOException
      Copy the directory
      Parameters:
      source - source file to be copied
      destination - destination file
      Throws:
      IOException - if any