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 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 39093 2010-11-12 14:05:49Z tmattsson $
Author:
pbracher

Constructor Summary
AbstractRenderer()
           
 
Method Summary
protected  String determineTemplatePath(info.magnolia.cms.core.Content content, RenderableDefinition definition, RenderingModel model, String actionResult)
           
protected  info.magnolia.cms.core.AggregationState getAggregationStateSafely()
          This gets the aggregation state without throwing an exception if the current context is not a WebContext.
protected  info.magnolia.cms.core.AggregationState getAggrigationStateSafely()
          Deprecated. since 4.3 - typo, use getAggregationStateSafely()
protected  MagnoliaTemplatingUtilities getMagnoliaTemplatingUtilities()
           
protected  info.magnolia.cms.core.Content getMainContentSafely(info.magnolia.cms.core.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  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  Map newContext()
          Create a new context object which is a map.
 RenderingModel newModel(info.magnolia.cms.core.Content content, RenderableDefinition definition, RenderingModel parentModel)
          Creates the model for this rendering process.
protected abstract  void onRender(info.magnolia.cms.core.Content content, RenderableDefinition definition, Writer out, Map ctx, String templatePath)
          Finally execute the rendering.
protected  void render(info.magnolia.cms.core.Content content, RenderableDefinition definition, Writer out)
           
protected  void restoreContext(Map ctx, Map state)
           
protected  void saveAttribute(Map ctx, Map state, String name)
           
protected  Map saveContextState(Map ctx)
           
protected  Object setContextAttribute(Map ctx, String name, Object value)
           
protected  void setupContext(Map ctx, info.magnolia.cms.core.Content content, RenderableDefinition definition, RenderingModel model, Object actionResult)
           
protected  info.magnolia.cms.core.Content wrapNodeForModel(info.magnolia.cms.core.Content currentContent, info.magnolia.cms.core.Content mainContent)
          Wraps the current content node before passing it to the model.
protected  info.magnolia.cms.core.Content wrapNodeForTemplate(info.magnolia.cms.core.Content currentContent, info.magnolia.cms.core.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(info.magnolia.cms.core.Content content,
                      RenderableDefinition definition,
                      Writer out)
               throws RenderException
Throws:
RenderException

determineTemplatePath

protected String determineTemplatePath(info.magnolia.cms.core.Content content,
                                       RenderableDefinition definition,
                                       RenderingModel model,
                                       String actionResult)

newModel

public RenderingModel newModel(info.magnolia.cms.core.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 Map saveContextState(Map ctx)

saveAttribute

protected void saveAttribute(Map ctx,
                             Map state,
                             String name)

restoreContext

protected void restoreContext(Map ctx,
                              Map state)

setupContext

protected void setupContext(Map ctx,
                            info.magnolia.cms.core.Content content,
                            RenderableDefinition definition,
                            RenderingModel model,
                            Object actionResult)

getMainContentSafely

protected info.magnolia.cms.core.Content getMainContentSafely(info.magnolia.cms.core.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 info.magnolia.cms.core.AggregationState getAggrigationStateSafely()
Deprecated. since 4.3 - typo, use getAggregationStateSafely()


getAggregationStateSafely

protected info.magnolia.cms.core.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 info.magnolia.cms.core.Content wrapNodeForModel(info.magnolia.cms.core.Content currentContent,
                                                          info.magnolia.cms.core.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 info.magnolia.cms.core.Content wrapNodeForTemplate(info.magnolia.cms.core.Content currentContent,
                                                             info.magnolia.cms.core.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 Object setContextAttribute(Map ctx,
                                     String name,
                                     Object value)

getPageAttributeName

protected 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 Map newContext()
Create a new context object which is a map.


onRender

protected abstract void onRender(info.magnolia.cms.core.Content content,
                                 RenderableDefinition definition,
                                 Writer out,
                                 Map ctx,
                                 String templatePath)
                          throws RenderException
Finally execute the rendering.

Parameters:
content - TODO
Throws:
RenderException


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