Class TemplateProcessor
- java.lang.Object
-
- org.craftercms.core.processors.impl.template.TemplateProcessor
-
- All Implemented Interfaces:
ItemProcessor
public class TemplateProcessor extends Object implements ItemProcessor
ItemProcessor
that processes the content of certain XML nodes in item descriptors as templates. Template engines that can be used are adapted through theTemplateCompiler
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:
TemplateCompiler
,FreeMarkerStringTemplateCompiler
,SpELStringTemplateCompiler
, FreeMarker,-
-
Field Summary
Fields Modifier and Type Field Description protected NodeTemplateModelFactory
modelFactory
Factory that provides the models for the templates.protected TemplateCompiler<IdentifiableStringTemplateSource>
templateCompiler
Template compiler.protected NodeScanner
templateNodeScanner
NodeScanner
for template nodes.
-
Constructor Summary
Constructors Constructor Description TemplateProcessor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
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.Item
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.String
toString()
-
-
-
-
Field Detail
-
templateNodeScanner
protected NodeScanner templateNodeScanner
NodeScanner
for template nodes.
-
templateCompiler
protected TemplateCompiler<IdentifiableStringTemplateSource> templateCompiler
Template compiler. It basically compiles the template provided in an element and then processes it by using a model obtained through themodelFactory
.
-
modelFactory
protected NodeTemplateModelFactory modelFactory
Factory that provides the models for the templates.
-
-
Method Detail
-
setTemplateNodeScanner
public void setTemplateNodeScanner(NodeScanner templateNodeScanner)
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
public void setModelFactory(NodeTemplateModelFactory modelFactory)
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
public boolean equals(Object o)
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.
-
-