Class TemplateProcessor
java.lang.Object
org.craftercms.core.processors.impl.template.TemplateProcessor
- All Implemented Interfaces:
ItemProcessor
ItemProcessor
that processes the content of certain XML nodes in item descriptors as templates. Template
engines that can be used are adapted through the TemplateCompiler
interface. Current implementations of this
interface include an adapter for FreeMarker templates and another one for SpEL (Spring Expression Language)
templates.- Author:
- Sumer Jabri, Alfonso Vásquez
- See Also:
-
Field Summary
Modifier and TypeFieldDescriptionprotected NodeTemplateModelFactory
Factory that provides the models for the templates.protected TemplateCompiler<IdentifiableStringTemplateSource>
Template compiler.protected NodeScanner
NodeScanner
for template nodes. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
Returns true if the specifiedTemplateProcessor
's and this instance's fields are equal.int
hashCode()
Returns the hash code for this instance, which is basically the combination of the hash code of each field.process
(Context context, CachingOptions cachingOptions, Item item) Processes the content of certain nodes (found by theNodeScanner
in the item's descriptor as templates, by compiling the node text templates through thetemplateCompiler
and then processing the compiled template with a model returned bymodelFactory
.void
setModelFactory
(NodeTemplateModelFactory modelFactory) Sets the factory that provides the models for the templates.void
setTemplateCompiler
(TemplateCompiler<IdentifiableStringTemplateSource> templateCompiler) Sets the template compiler.void
setTemplateNodeScanner
(NodeScanner templateNodeScanner) Sets theNodeScanner
for template nodes.toString()
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.craftercms.core.processors.ItemProcessor
isExclusive
-
Field Details
-
templateNodeScanner
NodeScanner
for template nodes. -
templateCompiler
Template compiler. It basically compiles the template provided in an element and then processes it by using a model obtained through themodelFactory
. -
modelFactory
Factory that provides the models for the templates.
-
-
Constructor Details
-
TemplateProcessor
public TemplateProcessor()
-
-
Method Details
-
setTemplateNodeScanner
Sets theNodeScanner
for template nodes. -
setTemplateCompiler
public void setTemplateCompiler(TemplateCompiler<IdentifiableStringTemplateSource> templateCompiler) Sets the template compiler. It basically compiles the template provided in an element and then processes it by using a model obtained through themodelFactory
. -
setModelFactory
Sets the factory that provides the models for the templates. -
process
public Item process(Context context, CachingOptions cachingOptions, Item item) throws ItemProcessingException Processes the content of certain nodes (found by theNodeScanner
in the item's descriptor as templates, by compiling the node text templates through thetemplateCompiler
and then processing the compiled template with a model returned bymodelFactory
.- Specified by:
process
in interfaceItemProcessor
- Parameters:
context
- the current contextcachingOptions
- caching options in case you need access to itemsitem
- the item to process- Returns:
- the modified item or a new item.
- Throws:
ItemProcessingException
- if an error occurred while processing a template
-
equals
Returns true if the specifiedTemplateProcessor
's and this instance's fields are equal. -
hashCode
public int hashCode()Returns the hash code for this instance, which is basically the combination of the hash code of each field. As with any otherItemProcessor
, this method is defined because any processor which is passed in the method call of aContentStoreService
can be used as part of a key for caching. -
toString
-