info.magnolia.templating.freemarker
Class ReadOnlyComponentDirective
java.lang.Object
info.magnolia.templating.freemarker.AbstractDirective<ComponentElement>
info.magnolia.templating.freemarker.ReadOnlyComponentDirective
- All Implemented Interfaces:
- freemarker.template.TemplateDirectiveModel, freemarker.template.TemplateModel
public class ReadOnlyComponentDirective
- extends AbstractDirective<ComponentElement>
A freemarker directive for rendering an arbitrary piece of content (read only).
- Version:
- $Id$
Fields inherited from interface freemarker.template.TemplateModel |
NOTHING |
Method Summary |
protected void |
prepareTemplatingElement(ComponentElement templatingElement,
freemarker.core.Environment env,
Map<String,freemarker.template.TemplateModel> params,
freemarker.template.TemplateModel[] loopVars,
freemarker.template.TemplateDirectiveBody body)
Implementations of this method should prepare the TemplatingElement with the known parameters. |
Methods inherited from class info.magnolia.templating.freemarker.AbstractDirective |
_param, bool, checkBody, content, createTemplatingElement, doBody, execute, getTemplatingElementClass, initContentElement, mandatoryBool, mandatoryContent, mandatoryObject, mandatoryString, mandatoryStringList, node, object, string |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ReadOnlyComponentDirective
public ReadOnlyComponentDirective()
prepareTemplatingElement
protected void prepareTemplatingElement(ComponentElement templatingElement,
freemarker.core.Environment env,
Map<String,freemarker.template.TemplateModel> params,
freemarker.template.TemplateModel[] loopVars,
freemarker.template.TemplateDirectiveBody body)
throws freemarker.template.TemplateModelException,
IOException
- Description copied from class:
AbstractDirective
- Implementations of this method should prepare the TemplatingElement with the known parameters.
If parameters have been grabbed using the methods provided by this class, they should be removed from
the map, thus leaving an empty map once the method returns.
AbstractDirective.execute(freemarker.core.Environment, java.util.Map, freemarker.template.TemplateModel[], freemarker.template.TemplateDirectiveBody)
will throw a TemplateModelException if there are leftover parameters.
note: The current FreeMarker implementation passes a "new" Map which we can safely manipulate.
is thrown away after the execution of the directive. When no parameters are passed, the Map is readonly, but it
is otherwise a regular HashMap which has been instantiated shortly before the execution of the directive. However, since
this behavior is not mandated by their API, nor documented (at the time of writing, with FreeMarker 2.3.16), we
should exert caution. Unit tests hopefully cover this, so we'll be safe when updating to newer FreeMarker versions.
- Specified by:
prepareTemplatingElement
in class AbstractDirective<ComponentElement>
- Throws:
freemarker.template.TemplateModelException
IOException
Copyright © 2003-2012 Magnolia International Ltd.. All Rights Reserved.