org.apache.tiles.core.definition.dao

## Class CachingLocaleUrlDefinitionDAO

- java.lang.Object
- - org.apache.tiles.core.definition.dao.BaseLocaleUrlDefinitionDAO
  - - org.apache.tiles.core.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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `CHECK_REFRESH_INIT_PARAMETER` Initialization parameter to set whether we want to refresh URLs when they change.
    `protected boolean` | `checkRefresh` Flag that, when `true`, enables automatic checking of URLs changing.
    `protected PatternDefinitionResolver<Locale>` | `definitionResolver` Resolves definitions using patterns.
    `protected Map<Locale,Map<String,Definition>>` | `locale2definitionMap` The locale-specific set of definitions objects.

    - ### Fields inherited from class org.apache.tiles.core.definition.dao.BaseLocaleUrlDefinitionDAO

      `applicationContext, lastModifiedDates, reader, sources`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CachingLocaleUrlDefinitionDAO(ApplicationContext applicationContext)` Constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected Map<String,Definition>` | `checkAndloadDefinitions(Locale customizationKey)` Checks if sources have changed.
    `protected Map<String,Definition>` | `copyDefinitionMap(Map<String,Definition> localeDefsMap)` Copies the definition map to be passed to a higher level of customization key.
    `Definition` | `getDefinition(String name, Locale customizationKey)` Returns a definition, given its name and the customization key.
    `protected Definition` | `getDefinitionFromResolver(String name, Locale customizationKey)` Returns a definition from the definition resolver.
    `Map<String,Definition>` | `getDefinitions(Locale customizationKey)` Returns all the definitions used of a customization key.
    `protected Map<String,Definition>` | `loadDefinitions(Locale customizationKey)` Tries to load definitions if necessary.
    `protected Map<String,Definition>` | `loadDefinitionsFromResources(Locale customizationKey)` Loads definitions from the sources.
    `protected Map<String,Definition>` | `loadParentDefinitions(Locale parentLocale)` Loads parent definitions, i.e.
    `protected Map<String,Definition>` | `loadRawDefinitionsFromResources(Locale customizationKey)` Loads the raw definitions from the sources associated with a locale.
    `void` | `setCheckRefresh(boolean checkRefresh)` Sets the flag to check source refresh.
    `void` | `setPatternDefinitionResolver(PatternDefinitionResolver<Locale> definitionResolver)` Sets the pattern definition resolver to use.

    - ### Methods inherited from class org.apache.tiles.core.definition.dao.BaseLocaleUrlDefinitionDAO

      `loadDefinitionsFromResource, refreshRequired, setReader, setSources`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### 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:
        Constant Field Values

    - #### 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 Detail

    - #### CachingLocaleUrlDefinitionDAO

          public CachingLocaleUrlDefinitionDAO(ApplicationContext applicationContext)

      Constructor.
      Since:
        2.1.0

  - ### Method Detail

    - #### 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

Copyright © 2000–2026 Apache Software Foundation. All rights reserved.