public abstract class AbstractCacheManager extends Object implements ICacheManager
Common abstract class for ICacheManager
implementations, useful
for taking care of the lazy initialization of cache objects when their
corresponding getXCache() methods are called.
Modifier | Constructor and Description |
---|---|
protected |
AbstractCacheManager() |
Modifier and Type | Method and Description |
---|---|
void |
clearAllCaches()
Clears all the caches managed by this cache manager instance.
|
List<String> |
getAllSpecificCacheNames()
Returns a list with the names of all the specific caches
managed by this implementation.
|
ICache<String,Object> |
getExpressionCache()
Returns the cache of expression evaluation artifacts.
|
ICache<String,List<Node>> |
getFragmentCache()
Returns the cache of template code fragments.
|
ICache<String,Properties> |
getMessageCache()
Returns the cache used for externalized/internationalized messages.
|
<K,V> ICache<K,V> |
getSpecificCache(String name)
Returns a specific (non-default) cache, by its name.
|
ICache<String,Template> |
getTemplateCache()
Returns the cache of parsed templates.
|
protected abstract ICache<String,Object> |
initializeExpressionCache() |
protected abstract ICache<String,List<Node>> |
initializeFragmentCache() |
protected abstract ICache<String,Properties> |
initializeMessageCache() |
protected abstract ICache<String,Template> |
initializeTemplateCache() |
public final ICache<String,Template> getTemplateCache()
ICacheManager
Returns the cache of parsed templates. Keys are the template names,
as specified at the TemplateEngine.process(String, org.thymeleaf.context.IContext)
method.
getTemplateCache
in interface ICacheManager
public final ICache<String,List<Node>> getFragmentCache()
ICacheManager
Returns the cache of template code fragments. These fragments are pieces of template code that need to be parsed before adding them to the template DOM being processed.
Typical examples of these fragments are externalized/internationalized messages like:
home.header=Welcome to the <i>fruit market</i>!
...which are used in templates like th:utext="#{home.header}", and therefore need parsing in order to be converted to a DOM subtree (because that "<i>" should be a DOM element by itself).
Keys in this cache are the String representation of fragments themselves along with
the template mode used for such parsing (like
"{HTML5}Welcome to the <i>fruit market</i>"), and values
are the list of DOM Node
s that correspond to parsing each fragment.
Important: this fragments are not related to th:fragment processors.
getFragmentCache
in interface ICacheManager
public final ICache<String,Properties> getMessageCache()
ICacheManager
Returns the cache used for externalized/internationalized messages.
This cache uses as keys the template names (as specified at
TemplateEngine.process(String, org.thymeleaf.context.IContext)
)
along with the locale the messages refer to (like "main_gl_ES"), and
as values the Properties object containing the messages.
getMessageCache
in interface ICacheManager
public final ICache<String,Object> getExpressionCache()
ICacheManager
Returns the cache of expression evaluation artifacts.
This cache is meant to store artifacts of diverse nature needed along the process of parsing and executing expressions in the several languages available: Standard expressions, OGNL expressions, Spring EL expressions...
Parsing these expressions usually results in some kind of syntax tree object that represents the expression, and this is what this cache usually stores.
Keys are the expressions themselves (their String representation), along with a prefix that is normally used for identifying the nature of the object being cached (for example "{OGNL}person.name").
getExpressionCache
in interface ICacheManager
public <K,V> ICache<K,V> getSpecificCache(String name)
ICacheManager
Returns a specific (non-default) cache, by its name.
User-defined dialects might make use of additional caches (besides template, fragment, message and expression) defined at custom-made implementations of this interface, and they should use this method to retrieve them by their name.
getSpecificCache
in interface ICacheManager
K
- the type of the cache keysV
- the type of the cache valuesname
- the name of the needed cachepublic List<String> getAllSpecificCacheNames()
ICacheManager
Returns a list with the names of all the specific caches managed by this implementation.
Might return null if no specific caches are managed.
getAllSpecificCacheNames
in interface ICacheManager
public void clearAllCaches()
ICacheManager
Clears all the caches managed by this cache manager instance.
This method is mainly intended for use from external tools that might need to clean all caches completely, without having to worry about implementation details.
clearAllCaches
in interface ICacheManager
protected abstract ICache<String,Properties> initializeMessageCache()
Copyright © 2016 The THYMELEAF team. All rights reserved.