org.apache.tiles.definition.dao
Class ResolvingLocaleUrlDefinitionDAO
java.lang.Object
org.apache.tiles.definition.dao.BaseLocaleUrlDefinitionDAO
org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO
org.apache.tiles.definition.dao.ResolvingLocaleUrlDefinitionDAO
- All Implemented Interfaces:
- TilesApplicationContextAware, DefinitionDAO<java.util.Locale>, URLReader, Refreshable, RefreshMonitor, Initializable
public class ResolvingLocaleUrlDefinitionDAO
- extends CachingLocaleUrlDefinitionDAO
A definitions DAO (loading URLs and using Locale as a customization key) that
caches definitions that have been loaded and resolves inheritances.
It can check if the URLs change, but by default this feature is turned off.
- Since:
- 2.1.0
Method Summary |
protected java.util.Map<java.lang.String,Definition> |
loadDefinitions(java.util.Locale customizationKey)
Tries to load definitions if necessary. |
protected java.util.Map<java.lang.String,Definition> |
loadParentDefinitions(java.util.Locale parentLocale)
Loads parent definitions, i.e. definitions mapped to a parent locale. |
protected void |
postDefinitionLoadOperations(java.util.Map<java.lang.String,Definition> localeDefsMap,
java.util.Locale customizationKey)
Tries to load definitions if necessary. |
protected void |
resolveInheritance(Definition definition,
java.util.Map<java.lang.String,Definition> definitions,
java.util.Locale locale,
java.util.Set<java.lang.String> alreadyResolvedDefinitions)
Resolve locale-specific inheritance. |
protected void |
resolveInheritances(java.util.Map<java.lang.String,Definition> map,
java.util.Locale locale)
Resolve locale-specific extended instances. |
Methods inherited from class org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO |
addWildcardPaths, checkAndloadDefinitions, getDefinition, getDefinitions, init, loadDefinitionsFromURLs, refresh, replace, replaceDefinition, resolveWildcardDefinition, setCheckRefresh |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ResolvingLocaleUrlDefinitionDAO
public ResolvingLocaleUrlDefinitionDAO()
loadDefinitions
protected java.util.Map<java.lang.String,Definition> loadDefinitions(java.util.Locale customizationKey)
- Tries to load definitions if necessary.
- Overrides:
loadDefinitions
in class CachingLocaleUrlDefinitionDAO
- Parameters:
customizationKey
- The locale to use when loading URLs.
- Returns:
- The loaded definitions.
loadParentDefinitions
protected java.util.Map<java.lang.String,Definition> loadParentDefinitions(java.util.Locale parentLocale)
- Loads parent definitions, i.e. definitions mapped to a parent locale.
- Overrides:
loadParentDefinitions
in class CachingLocaleUrlDefinitionDAO
- Parameters:
parentLocale
- The locale to use when loading URLs.
- Returns:
- The loaded parent definitions.
postDefinitionLoadOperations
protected void postDefinitionLoadOperations(java.util.Map<java.lang.String,Definition> localeDefsMap,
java.util.Locale customizationKey)
- Tries to load definitions if necessary.
- Overrides:
postDefinitionLoadOperations
in class CachingLocaleUrlDefinitionDAO
- Parameters:
localeDefsMap
- The loaded definitions.customizationKey
- The locale to use when loading URLs.
resolveInheritances
protected void resolveInheritances(java.util.Map<java.lang.String,Definition> map,
java.util.Locale locale)
- Resolve locale-specific extended instances.
- Parameters:
map
- The definition map containing the definitions to resolve.locale
- The locale to use.
- Throws:
NoSuchDefinitionException
- If a parent definition is not found.- Since:
- 2.1.0
resolveInheritance
protected void resolveInheritance(Definition definition,
java.util.Map<java.lang.String,Definition> definitions,
java.util.Locale locale,
java.util.Set<java.lang.String> alreadyResolvedDefinitions)
- Resolve locale-specific inheritance. First, resolve parent's inheritance,
then set template to the parent's template. Also copy attributes setted
in parent, and not set in child If instance doesn't extend anything, do
nothing.
- Parameters:
definition
- The definition to resolvedefinitions
- The definitions to take when obtaining a parent
definition.locale
- The locale to use.alreadyResolvedDefinitions
- The set of the definitions that have
been already resolved.
- Throws:
NoSuchDefinitionException
- If an inheritance can not be solved.- Since:
- 2.1.0