Class StandardEngineContextFactory
- All Implemented Interfaces:
IEngineContextFactory
Standard implementation of the IEngineContextFactory
interface.
This factory will examine the context
being passed as a parameter and, depending on whether
this context object implements the IWebContext
interface or not (i.e. whether support for a web
application container should be enabled or not), return a WebEngineContext
or an EngineContext
instance as a result.
This is the default factory implementation used by TemplateEngine
.
- Since:
- 3.0.0
- Author:
- Daniel Fernández
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateEngineContext
(IEngineConfiguration configuration, TemplateData templateData, Map<String, Object> templateResolutionAttributes, IContext context) Creates a newIEngineContext
to be used for processing a specific template.
-
Constructor Details
-
StandardEngineContextFactory
public StandardEngineContextFactory()
-
-
Method Details
-
createEngineContext
public IEngineContext createEngineContext(IEngineConfiguration configuration, TemplateData templateData, Map<String, Object> templateResolutionAttributes, IContext context) Description copied from interface:IEngineContextFactory
Creates a new
IEngineContext
to be used for processing a specific template.Note this factory method will be only called once during the processing of a template. Once a engine context instance has been created, the engine will try to reuse it for any nested processing operations as far as possible. This means that, e.g., the
templateData
specified here will only be the root-level template data (the one for the template that is actually being used as anITemplateEngine
.process(...)
argument). Anyth:insert
orth:replace
operations inside that template will not ask this factory to create a new engine context, but instead just increase the nesting level of the already-existing one (seeIEngineContext.increaseLevel()
) and set the new, nested template data for that level (seeIEngineContext.setTemplateData(TemplateData)
).Note also that the
context
object passed here as an argument will normally correspond to the simpleIContext
implementation used for callingITemplateEngine
.process(...)
and, therefore, will normally be an object of classEngineContext
,WebContext
or similar.- Specified by:
createEngineContext
in interfaceIEngineContextFactory
- Parameters:
configuration
- the engine configuration being used.templateData
- theTemplateData
to be applied at level 0, i.e. the top-level template being processed.templateResolutionAttributes
- the template resolution attributes specified for processing this template.context
- the context, normally the one used for calling the Template Engine itself.- Returns:
- a new, freshly built engine context instance.
-