Package 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
  Description
  `static final 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
  Description
  `CachingLocaleUrlDefinitionDAO(ApplicationContext applicationContext)`
  Constructor.

- ## Method Summary

  Modifier and Type
  Method
  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 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:
      - 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 Details

  - ### CachingLocaleUrlDefinitionDAO

    public CachingLocaleUrlDefinitionDAO(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