info.magnolia.module.templating
Class AbstractRenderer

java.lang.Object
  extended by info.magnolia.module.templating.AbstractRenderer
All Implemented Interfaces:
RenderingModelBasedRenderer
Direct Known Subclasses:
AbstractParagraphRenderer, AbstractTemplateRenderer

public abstract class AbstractRenderer
extends java.lang.Object
implements RenderingModelBasedRenderer

Abstract renderer which can be used to implement paragraph or template renderers. Sets up the context by providing the following objects: content, aggregationState, page, model, actionResult, mgnl

Version:
$Id: AbstractRenderer.java 41223 2011-01-12 10:46:25Z tmattsson $
Author:
pbracher

Constructor Summary
AbstractRenderer()
           
 
Method Summary
protected  java.lang.String determineTemplatePath(Content content, RenderableDefinition definition, RenderingModel model, java.lang.String actionResult)
           
protected  AggregationState getAggregationStateSafely()
          This gets the aggregation state without throwing an exception if the current context is not a WebContext.
protected  AggregationState getAggrigationStateSafely()
          Deprecated. since 4.3 - typo, use getAggregationStateSafely()
protected  MagnoliaTemplatingUtilities getMagnoliaTemplatingUtilities()
           
protected  Content getMainContentSafely(Content current)
          Gets the current main contain and treats the situation where the context is not a web context nicely by using the current content instead.
protected  java.lang.String getPageAttributeName()
          Used to give JSP implementations to give the chance to use on other name than page which is a reserved name in JSPs.
protected abstract  java.util.Map newContext()
          Create a new context object which is a map.
 RenderingModel newModel(Content content, RenderableDefinition definition, RenderingModel parentModel)
          Creates the model for this rendering process.
protected abstract  void onRender(Content content, RenderableDefinition definition, java.io.Writer out, java.util.Map ctx, java.lang.String templatePath)
          Finally execute the rendering.
protected  void render(Content content, RenderableDefinition definition, java.io.Writer out)
           
protected  void restoreContext(java.util.Map ctx, java.util.Map state)
           
protected  void saveAttribute(java.util.Map ctx, java.util.Map state, java.lang.String name)
           
protected  java.util.Map saveContextState(java.util.Map ctx)
           
protected  java.lang.Object setContextAttribute(java.util.Map ctx, java.lang.String name, java.lang.Object value)
           
protected  void setupContext(java.util.Map ctx, Content content, RenderableDefinition definition, RenderingModel model, java.lang.Object actionResult)
           
protected  Content wrapNodeForModel(Content currentContent, Content mainContent)
          Wraps the current content node before passing it to the model.
protected  Content wrapNodeForTemplate(Content currentContent, Content mainContent)
          Wraps the current content node before exposing it to the template renderer.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractRenderer

public AbstractRenderer()
Method Detail

render

protected void render(Content content,
                      RenderableDefinition definition,
                      java.io.Writer out)
               throws RenderException
Throws:
RenderException

determineTemplatePath

protected java.lang.String determineTemplatePath(Content content,
                                                 RenderableDefinition definition,
                                                 RenderingModel model,
                                                 java.lang.String actionResult)

newModel

public RenderingModel newModel(Content content,
                               RenderableDefinition definition,
                               RenderingModel parentModel)
                        throws RenderException
Creates the model for this rendering process. Will set the properties

Specified by:
newModel in interface RenderingModelBasedRenderer
Throws:
RenderException

saveContextState

protected java.util.Map saveContextState(java.util.Map ctx)

saveAttribute

protected void saveAttribute(java.util.Map ctx,
                             java.util.Map state,
                             java.lang.String name)

restoreContext

protected void restoreContext(java.util.Map ctx,
                              java.util.Map state)

setupContext

protected void setupContext(java.util.Map ctx,
                            Content content,
                            RenderableDefinition definition,
                            RenderingModel model,
                            java.lang.Object actionResult)

getMainContentSafely

protected Content getMainContentSafely(Content current)
Gets the current main contain and treats the situation where the context is not a web context nicely by using the current content instead.


getAggrigationStateSafely

protected AggregationState getAggrigationStateSafely()
Deprecated. since 4.3 - typo, use getAggregationStateSafely()


getAggregationStateSafely

protected AggregationState getAggregationStateSafely()
This gets the aggregation state without throwing an exception if the current context is not a WebContext.


getMagnoliaTemplatingUtilities

protected MagnoliaTemplatingUtilities getMagnoliaTemplatingUtilities()

wrapNodeForModel

protected Content wrapNodeForModel(Content currentContent,
                                   Content mainContent)
Wraps the current content node before passing it to the model.

Parameters:
currentContent - the actual content
mainContent - the current "main content" or "page", which might be needed in certain wrapping situations

wrapNodeForTemplate

protected Content wrapNodeForTemplate(Content currentContent,
                                      Content mainContent)
Wraps the current content node before exposing it to the template renderer.

Parameters:
currentContent - the actual content being exposed to the template
mainContent - the current "main content" or "page", which might be needed in certain wrapping situations
See Also:
TODO : return an Object instance instead - more flexibility for the template engine ?

setContextAttribute

protected java.lang.Object setContextAttribute(java.util.Map ctx,
                                               java.lang.String name,
                                               java.lang.Object value)

getPageAttributeName

protected java.lang.String getPageAttributeName()
Used to give JSP implementations to give the chance to use on other name than page which is a reserved name in JSPs.


newContext

protected abstract java.util.Map newContext()
Create a new context object which is a map.


onRender

protected abstract void onRender(Content content,
                                 RenderableDefinition definition,
                                 java.io.Writer out,
                                 java.util.Map ctx,
                                 java.lang.String templatePath)
                          throws RenderException
Finally execute the rendering.

Parameters:
content - TODO
Throws:
RenderException


Copyright © 2003-2011 Magnolia International Ltd.. All Rights Reserved.