public abstract class AbstractThymeleafBuilder<MYSELF extends AbstractThymeleafBuilder<MYSELF,P,E>,P,E extends AbstractThymeleafEngineConfigBuilder<E,MYSELF>> extends AbstractParent<P> implements DetectorBuilder<MYSELF>, ResourceResolutionBuilder<MYSELF>, Builder<TemplateParser>
Modifier and Type | Field and Description |
---|---|
protected BuildContext |
buildContext |
protected ThymeleafContextConverter |
contextConverter |
protected List<TemplateResolverAdapter> |
customAdapters |
protected TemplateEngineDetector |
detector |
protected ConfigurationValueBuilderHelper<MYSELF,Boolean> |
enableCacheValueBuilder |
protected org.thymeleaf.TemplateEngine |
engine |
protected E |
engineBuilder |
protected MYSELF |
myself |
protected ResourceResolutionBuilderHelper<MYSELF> |
resourceResolutionBuilderHelper |
parent
Modifier | Constructor and Description |
---|---|
protected |
AbstractThymeleafBuilder(Class<?> selfType) |
protected |
AbstractThymeleafBuilder(Class<?> selfType,
P parent,
BuildContext buildContext) |
protected |
AbstractThymeleafBuilder(P parent,
BuildContext buildContext) |
Modifier and Type | Method and Description |
---|---|
TemplateParser |
build()
Instantiate and configures the instance.
|
protected abstract FirstSupportingResolverAdapter |
buildAdapters() |
protected ThymeleafContextConverter |
buildContext() |
TemplateEngineDetector |
buildDetector()
Creates and configures the detector instance.
|
protected org.thymeleaf.TemplateEngine |
buildEngine() |
FirstSupportingResourceResolver |
buildResolver()
Builds the resolver used by Thymeleaf to resolve resources
|
protected abstract org.thymeleaf.templateresolver.ITemplateResolver |
buildTemplateResolver(org.thymeleaf.TemplateEngine builtEngine) |
protected TemplateResolverOptions |
buildTemplateResolverOptions() |
ConfigurationValueBuilder<MYSELF,Boolean> |
cache()
Enable/disable cache for templates.
|
MYSELF |
cache(Boolean enable)
Enable/disable cache for templates.
|
ClassPathResolutionBuilder<MYSELF> |
classpath()
Configure resource resolution based on classpath.
|
MYSELF |
contextConverter(ThymeleafContextConverter converter)
Ogham provides a generic context concept for template parsing.
|
protected abstract TemplateEngineDetector |
createTemplateDetector() |
MYSELF |
detector(TemplateEngineDetector detector)
Registers a detector to associate with a template parser.
|
E |
engine()
Fluent configurer for Thymeleaf engine configuration.
|
MYSELF |
engine(org.thymeleaf.TemplateEngine engine)
Sets a Thymeleaf engine.
|
FileResolutionBuilder<MYSELF> |
file()
Configure resource resolution based on filesystem.
|
protected abstract E |
getThymeleafEngineConfigBuilder() |
MYSELF |
resolver(ResourceResolver resolver)
Register a custom resolver.
|
MYSELF |
resolverAdapter(TemplateResolverAdapter adapter)
Ogham provides a generic resource resolution mechanism
(
ResourceResolver ). |
StringResolutionBuilder<MYSELF> |
string()
Configure lookup to use for direct string (when you provide directly the
content of a file as string).
|
and
protected final MYSELF extends AbstractThymeleafBuilder<MYSELF,P,E> myself
protected final BuildContext buildContext
protected TemplateEngineDetector detector
protected ResourceResolutionBuilderHelper<MYSELF extends AbstractThymeleafBuilder<MYSELF,P,E>> resourceResolutionBuilderHelper
protected org.thymeleaf.TemplateEngine engine
protected ThymeleafContextConverter contextConverter
protected E extends AbstractThymeleafEngineConfigBuilder<E,MYSELF> engineBuilder
protected final List<TemplateResolverAdapter> customAdapters
protected final ConfigurationValueBuilderHelper<MYSELF extends AbstractThymeleafBuilder<MYSELF,P,E>,Boolean> enableCacheValueBuilder
protected AbstractThymeleafBuilder(Class<?> selfType)
protected AbstractThymeleafBuilder(Class<?> selfType, P parent, BuildContext buildContext)
protected AbstractThymeleafBuilder(P parent, BuildContext buildContext)
public MYSELF cache(Boolean enable)
The value set using this method takes precedence over any property and
default value configured using cache()
.
.cache(false) .cache() .properties("${custom.property.high-priority}", "${custom.property.low-priority}") .defaultValue(true)
.cache(false) .cache() .properties("${custom.property.high-priority}", "${custom.property.low-priority}") .defaultValue(true)In both cases,
cache(false)
is used.
If this method is called several times, only the last value is used.
If null
value is set, it is like not setting a value at all. The
property/default value configuration is applied.
enable
- enable or disable cachepublic ConfigurationValueBuilder<MYSELF,Boolean> cache()
This method is mainly used by Configurer
s to register some
property keys and/or a default value. The aim is to let developer be able
to externalize its configuration (using system properties, configuration
file or anything else). If the developer doesn't configure any value for
the registered properties, the default value is used (if set).
.cache() .properties("${custom.property.high-priority}", "${custom.property.low-priority}") .defaultValue(true)
Non-null value set using cache(Boolean)
takes precedence over
property values and default value.
.cache(false) .cache() .properties("${custom.property.high-priority}", "${custom.property.low-priority}") .defaultValue(true)The value
false
is used regardless of the value of the properties
and default value.
See ConfigurationValueBuilder
for more information.
public E engine()
public MYSELF engine(org.thymeleaf.TemplateEngine engine)
engine()
method.
If this method is called several times, only the last provider is used.engine
- the Thymeleaf enginepublic MYSELF contextConverter(ThymeleafContextConverter converter)
ThymeleafContextConverter
) is the way to transform an Ogham
context into a Thymeleaf context.
Ogham provides and registers the default converter
If this method is called several times, only the last provider is used.
converter
- the context converterpublic MYSELF detector(TemplateEngineDetector detector)
DetectorBuilder
detector
in interface DetectorBuilder<MYSELF extends AbstractThymeleafBuilder<MYSELF,P,E>>
detector
- the detector to registerpublic ClassPathResolutionBuilder<MYSELF> classpath()
ResourceResolutionBuilder
You can define the lookup (the prefix that indicates that classpath resolution must be used). For example:
.classpath().lookup("classpath:"); // path prefixed by classpath: matches // then classpath resolver is used resourceResolver.getResource("classpath:foo/bar.html"); // path is not prefixed (or using another prefix) doesn't match // then classpath resolver is not used resourceResolver.getResource("foo/bar.html");
You can define a path prefix and suffix for finding resources:
.classpath().lookup("classpath:").pathPrefix("foo/").pathSuffix(".html"); resourceResolver.getResource("classpath:bar");This will use the classpath resolver and the real path is
foo/bar.html
.classpath
in interface ResourceResolutionBuilder<MYSELF extends AbstractThymeleafBuilder<MYSELF,P,E>>
public FileResolutionBuilder<MYSELF> file()
ResourceResolutionBuilder
You can define the lookup (the prefix that indicates that filesystem resolution must be used). For example:
.file().lookup("file:"); // path prefixed by file: matches // then file resolver is used resourceResolver.getResource("file:foo/bar.html"); // path is not prefixed (or using another prefix) doesn't match // then file resolver is not used resourceResolver.getResource("foo/bar.html");
You can define a path prefix and suffix for finding resources:
.file().lookup("file:").pathPrefix("foo/").pathSuffix(".html"); resourceResolver.getResource("file:bar");This will use the file resolver and the real path is
foo/bar.html
.file
in interface ResourceResolutionBuilder<MYSELF extends AbstractThymeleafBuilder<MYSELF,P,E>>
public StringResolutionBuilder<MYSELF> string()
ResourceResolutionBuilder
You can define the lookup (the prefix that indicates that direct string must be used). For example:
.string().lookup("string:", "s:"); // path prefixed by string: matches // then string is used resourceResolver.getResource("string:hello world"); // path is not prefixed (or using another prefix) doesn't match // then string resolver is not used resourceResolver.getResource("foo/bar.html");
string
in interface ResourceResolutionBuilder<MYSELF extends AbstractThymeleafBuilder<MYSELF,P,E>>
public MYSELF resolver(ResourceResolver resolver)
ResourceResolutionBuilder
This may be useful to use a custom implementation that is able to load file content from anywhere.
The implementation may be aware of the lookup prefix (see
AbstractPrefixedLookupPathResolver
). The implementation may also
use pathPrefix and pathSuffixes (see RelativeResolver
and
RelativisableResourceResolver
).
resolver
in interface ResourceResolutionBuilder<MYSELF extends AbstractThymeleafBuilder<MYSELF,P,E>>
resolver
- the custom resolver instancepublic MYSELF resolverAdapter(TemplateResolverAdapter adapter)
ResourceResolver
). Thymeleaf uses its own template resolution
mechanism (ITemplateResolver
). A resolver adapter
(TemplateResolverAdapter
) is the way to transform a
ResourceResolver
into a ITemplateResolver
.
Ogham provides and registers default resolver adapters but you may need
to use a custom ResourceResolver
. So you also need to provide the
corresponding TemplateResolverAdapter
.
adapter
- the resolver adapterpublic TemplateParser build()
Builder
build
in interface Builder<TemplateParser>
public TemplateEngineDetector buildDetector()
DetectorBuilder
buildDetector
in interface DetectorBuilder<MYSELF extends AbstractThymeleafBuilder<MYSELF,P,E>>
public FirstSupportingResourceResolver buildResolver()
protected org.thymeleaf.TemplateEngine buildEngine()
protected abstract TemplateEngineDetector createTemplateDetector()
protected abstract org.thymeleaf.templateresolver.ITemplateResolver buildTemplateResolver(org.thymeleaf.TemplateEngine builtEngine)
protected abstract E getThymeleafEngineConfigBuilder()
protected ThymeleafContextConverter buildContext()
protected abstract FirstSupportingResolverAdapter buildAdapters()
protected TemplateResolverOptions buildTemplateResolverOptions()
Copyright © 2021. All rights reserved.