Class StandardEngineContextFactory
- Object
-
- org.thymeleaf.context.StandardEngineContextFactory
-
- All Implemented Interfaces:
IEngineContextFactory
public final class StandardEngineContextFactory extends Object implements 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 theIWebContext
interface or not (i.e. whether support for the Servlet API should be enabled or not), return aWebEngineContext
or anEngineContext
instance as a result.This is the default factory implementation used by
TemplateEngine
.- Since:
- 3.0.0
- Author:
- Daniel Fernández
-
-
Constructor Summary
Constructors Constructor Description StandardEngineContextFactory()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description IEngineContext
createEngineContext(IEngineConfiguration configuration, TemplateData templateData, Map<String,Object> templateResolutionAttributes, IContext context)
Creates a newIEngineContext
to be used for processing a specific template.
-
-
-
Method Detail
-
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.
-
-