Class CachingLocaleUrlDefinitionDAO

java.lang.Object
org.apache.tiles.definition.dao.BaseLocaleUrlDefinitionDAO
org.apache.tiles.definition.dao.CachingLocaleUrlDefinitionDAO
All Implemented Interfaces:
DefinitionDAO<Locale>, PatternDefinitionResolverAware<Locale>, RefreshMonitor
Direct Known Subclasses:
ResolvingLocaleUrlDefinitionDAO

public class CachingLocaleUrlDefinitionDAO extends BaseLocaleUrlDefinitionDAO implements PatternDefinitionResolverAware<Locale>

A definitions DAO (loading URLs and using Locale as a customization key) that caches definitions that have been loaded in a raw way (i.e. with inheritance that is not resolved).

It can check if the URLs change, but by default this feature is turned off.

Since:
2.1.0
Version:
$Rev: 1752405 $ $Date: 2016-07-13 22:13:34 +1000 (Wed, 13 Jul 2016) $
  • Field Details

    • CHECK_REFRESH_INIT_PARAMETER

      public static final String CHECK_REFRESH_INIT_PARAMETER
      Initialization parameter to set whether we want to refresh URLs when they change.
      Since:
      2.1.0
      See Also:
    • locale2definitionMap

      protected Map<Locale,Map<String,Definition>> locale2definitionMap
      The locale-specific set of definitions objects.
      Since:
      2.1.0
    • checkRefresh

      protected boolean checkRefresh
      Flag that, when true, enables automatic checking of URLs changing.
      Since:
      2.1.0
    • definitionResolver

      protected PatternDefinitionResolver<Locale> definitionResolver
      Resolves definitions using patterns.
      Since:
      2.2.0
  • Constructor Details

    • CachingLocaleUrlDefinitionDAO

      public CachingLocaleUrlDefinitionDAO(org.apache.tiles.request.ApplicationContext applicationContext)
      Constructor.
      Since:
      2.1.0
  • Method Details

    • setPatternDefinitionResolver

      public void setPatternDefinitionResolver(PatternDefinitionResolver<Locale> definitionResolver)
      Sets the pattern definition resolver to use.
      Specified by:
      setPatternDefinitionResolver in interface PatternDefinitionResolverAware<Locale>
      Parameters:
      definitionResolver - The pattern definition resolver.
    • getDefinition

      public Definition getDefinition(String name, Locale customizationKey)
      Returns a definition, given its name and the customization key.
      Specified by:
      getDefinition in interface DefinitionDAO<Locale>
      Parameters:
      name - The name of the definition.
      customizationKey - The customization key.
      Returns:
      The requested definition, if found, otherwise null. The inheritance of the definition must not be resolved.
    • getDefinitions

      public Map<String,Definition> getDefinitions(Locale customizationKey)
      Returns all the definitions used of a customization key.
      Specified by:
      getDefinitions in interface DefinitionDAO<Locale>
      Parameters:
      customizationKey - The customization key.
      Returns:
      All the definitions that are connected to the customization key. The inheritance of the definitions must not be resolved.
    • setCheckRefresh

      public void setCheckRefresh(boolean checkRefresh)
      Sets the flag to check source refresh. If not called, the default is false.
      Parameters:
      checkRefresh - When true, enables automatic checking of sources changing.
      Since:
      2.1.0
    • getDefinitionFromResolver

      protected Definition getDefinitionFromResolver(String name, Locale customizationKey)
      Returns a definition from the definition resolver.
      Parameters:
      name - The name of the definition.
      customizationKey - The customization key to use.
      Returns:
      The resolved definition.
    • checkAndloadDefinitions

      protected Map<String,Definition> checkAndloadDefinitions(Locale customizationKey)
      Checks if sources have changed. If yes, it clears the cache. Then continues loading definitions.
      Parameters:
      customizationKey - The locale to use when loading sources.
      Returns:
      The loaded definitions.
      Since:
      2.1.0
    • loadDefinitions

      protected Map<String,Definition> loadDefinitions(Locale customizationKey)
      Tries to load definitions if necessary.
      Parameters:
      customizationKey - The locale to use when loading sources.
      Returns:
      The loaded definitions.
      Since:
      2.1.0
    • loadDefinitionsFromResources

      protected Map<String,Definition> loadDefinitionsFromResources(Locale customizationKey)
      Loads definitions from the sources.
      Parameters:
      customizationKey - The locale to use when loading Resources.
      Returns:
      The loaded definitions.
      Since:
      2.1.0
    • loadRawDefinitionsFromResources

      protected Map<String,Definition> loadRawDefinitionsFromResources(Locale customizationKey)
      Loads the raw definitions from the sources associated with a locale.
      Parameters:
      customizationKey - The locale to use when loading Resources.
      Returns:
      The loaded definitions.
      Since:
      2.1.3
    • loadParentDefinitions

      protected Map<String,Definition> loadParentDefinitions(Locale parentLocale)
      Loads parent definitions, i.e. definitions mapped to a parent locale.
      Parameters:
      parentLocale - The locale to use when loading URLs.
      Returns:
      The loaded parent definitions.
      Since:
      2.1.0
    • copyDefinitionMap

      protected Map<String,Definition> copyDefinitionMap(Map<String,Definition> localeDefsMap)
      Copies the definition map to be passed to a higher level of customization key.
      Parameters:
      localeDefsMap - The map of definition to be copied.
      Returns:
      The copy of the definition map. This particular implementation return the localeDefsMap itself.
      Since:
      2.1.4