Package: org.codehaus.groovy.grails.context.support

## [Java] Class PluginAwareResourceBundleMessageSource

- org.codehaus.groovy.grails.context.support.PluginAwareResourceBundleMessageSource

- All Implemented Interfaces and Traits:
    GrailsApplicationAware, PluginManagerAware, org.springframework.beans.factory.InitializingBean

      public class PluginAwareResourceBundleMessageSource
      extends ReloadableResourceBundleMessageSource

  A ReloadableResourceBundleMessageSource that is capable of loading message sources from plugins.

  Authors:
    Graeme Rocher
  Since:
    1.1

- - ### Field Summary

    Fields
    Modifiers | Name | Description
    --- | --- | ---
    `protected GrailsApplication` | `application` |
    `protected java.util.List<java.lang.String>` | `pluginBaseNames` |
    `protected GrailsPluginManager` | `pluginManager` |

  - Inherited fields
    Fields inherited from class | Fields
    --- | ---
    `class ReloadableResourceBundleMessageSource` | `cacheMillis, fileCacheMillis`

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `void` | `afterPropertiesSet()`
    `protected java.lang.String` | `getInlinePluginPath(GrailsPlugin grailsPlugin)` Returns the absolute path to the provided Grails plugin if it is being used "inline" or `null` if the plugin is not being used "inline".
    `protected PropertiesHolder` | `getMergedBinaryPluginProperties(java.util.Locale locale)`
    `protected PropertiesHolder` | `getMergedPluginProperties(java.util.Locale locale)` Get a PropertiesHolder that contains the actually visible properties for a Locale, after merging all specified resource bundles.
    `java.util.List<java.lang.String>` | `getPluginBaseNames()`
    `protected org.springframework.core.io.Resource[]` | `getPluginBundles(GrailsPlugin grailsPlugin)` Returns the i18n message bundles for the provided plugin or an empty array if the plugin does not contain any .properties files in its grails-app/i18n folder.
    `protected boolean` | `isInlinePlugin(GrailsPlugin grailsPlugin)` Tests whether or not the Grails plugin is currently being run "inline".
    `protected void` | `mergeBinaryPluginProperties(java.util.Locale locale, java.util.Properties mergedProps)`
    `protected java.text.MessageFormat` | `resolveCode(java.lang.String code, java.util.Locale locale)`
    `protected java.text.MessageFormat` | `resolveCodeFromPlugins(java.lang.String code, java.util.Locale locale)` Attempts to resolve a MessageFormat for the code from the list of plugin base names
    `protected java.lang.String` | `resolveCodeWithoutArguments(java.lang.String code, java.util.Locale locale)`
    `protected java.lang.String` | `resolveCodeWithoutArgumentsFromPlugins(java.lang.String code, java.util.Locale locale)` Attempts to resolve a String for the code from the list of plugin base names
    `void` | `setGrailsApplication(GrailsApplication grailsApplication)`
    `void` | `setPluginBaseNames(java.util.List<java.lang.String> pluginBaseNames)`
    `void` | `setPluginCacheSeconds(int pluginCacheSeconds)` Set the number of seconds to cache the list of matching properties files loaded from plugin.
    `void` | `setPluginManager(GrailsPluginManager pluginManager)`
    `void` | `setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)`
    `void` | `setResourceResolver(org.springframework.core.io.support.PathMatchingResourcePatternResolver resourceResolver)`

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class ReloadableResourceBundleMessageSource` | `calculateAllFilenames, calculateFilenamesForLocale, clearCache, clearCacheIncludingAncestors, getMergedProperties, getProperties, loadProperties, locateResource, locateResourceWithoutCache, resolveCode, resolveCodeWithoutArguments, setBasename, setBasenames, setCacheSeconds, setDefaultEncoding, setFallbackToSystemLocale, setFileCacheSeconds, setFileEncodings, setPropertiesPersister, setResourceLoader, toString`
    `class org.springframework.context.support.AbstractMessageSource` | `org.springframework.context.support.AbstractMessageSource#getMessage(java.lang.String, [Ljava.lang.Object;, java.lang.String, java.util.Locale), org.springframework.context.support.AbstractMessageSource#getMessage(java.lang.String, [Ljava.lang.Object;, java.util.Locale), org.springframework.context.support.AbstractMessageSource#getMessage(org.springframework.context.MessageSourceResolvable, java.util.Locale), org.springframework.context.support.AbstractMessageSource#getParentMessageSource(), org.springframework.context.support.AbstractMessageSource#setParentMessageSource(org.springframework.context.MessageSource), org.springframework.context.support.AbstractMessageSource#setCommonMessages(java.util.Properties), org.springframework.context.support.AbstractMessageSource#setUseCodeAsDefaultMessage(boolean), org.springframework.context.support.AbstractMessageSource#setAlwaysUseMessageFormat(boolean), org.springframework.context.support.AbstractMessageSource#wait(long, int), org.springframework.context.support.AbstractMessageSource#wait(long), org.springframework.context.support.AbstractMessageSource#wait(), org.springframework.context.support.AbstractMessageSource#equals(java.lang.Object), org.springframework.context.support.AbstractMessageSource#toString(), org.springframework.context.support.AbstractMessageSource#hashCode(), org.springframework.context.support.AbstractMessageSource#getClass(), org.springframework.context.support.AbstractMessageSource#notify(), org.springframework.context.support.AbstractMessageSource#notifyAll()`

- - ### Field Detail

    - #### protected GrailsApplication application

    - #### protected java.util.List<java.lang.String> pluginBaseNames

    - #### protected GrailsPluginManager pluginManager

  - ### Method Detail

    - #### public void afterPropertiesSet()

    - #### protected java.lang.String getInlinePluginPath(GrailsPlugin grailsPlugin)

      Returns the absolute path to the provided Grails plugin if it is being used "inline" or `null` if the plugin is not being used "inline".

      Parameters:
        `grailsPlugin` - The Grails plugin.
      Returns:
        The absolute path to the "inline" plugin or `null` if the plugin is not being used "inline".

    - #### protected PropertiesHolder getMergedBinaryPluginProperties(java.util.Locale locale)

    - #### protected PropertiesHolder getMergedPluginProperties(java.util.Locale locale)

      Get a PropertiesHolder that contains the actually visible properties for a Locale, after merging all specified resource bundles. Either fetches the holder from the cache or freshly loads it.

      Only used when caching resource bundle contents forever, i.e. with cacheSeconds < 0. Therefore, merged properties are always cached forever.

    - #### public java.util.List<java.lang.String> getPluginBaseNames()

    - #### protected org.springframework.core.io.Resource[] getPluginBundles(GrailsPlugin grailsPlugin)

      Returns the i18n message bundles for the provided plugin or an empty array if the plugin does not contain any .properties files in its grails-app/i18n folder.

      Parameters:
        `grailsPlugin` - The grails plugin that may or may not contain i18n internationalization files.
      Returns:
        An array of `Resource` objects representing the internationalization files or an empty array if no files are found.

    - #### protected boolean isInlinePlugin(GrailsPlugin grailsPlugin)

      Tests whether or not the Grails plugin is currently being run "inline".

      Parameters:
        `grailsPlugin` - The Grails plugin to test.
      Returns:
        `true` if the plugin is being used "inline" or `false` if the plugin is not being used "inline".

    - #### protected void mergeBinaryPluginProperties(java.util.Locale locale, java.util.Properties mergedProps)

    - #### @java.lang.Override protected java.text.MessageFormat resolveCode(java.lang.String code, java.util.Locale locale)

    - #### protected java.text.MessageFormat resolveCodeFromPlugins(java.lang.String code, java.util.Locale locale)

      Attempts to resolve a MessageFormat for the code from the list of plugin base names

      Parameters:
        `code` - The code
        `locale` - The locale
      Returns:
        a MessageFormat

    - #### @java.lang.Override protected java.lang.String resolveCodeWithoutArguments(java.lang.String code, java.util.Locale locale)

    - #### protected java.lang.String resolveCodeWithoutArgumentsFromPlugins(java.lang.String code, java.util.Locale locale)

      Attempts to resolve a String for the code from the list of plugin base names

      Parameters:
        `code` - The code
        `locale` - The locale
      Returns:
        a MessageFormat

    - #### public void setGrailsApplication(GrailsApplication grailsApplication)

    - #### public void setPluginBaseNames(java.util.List<java.lang.String> pluginBaseNames)

    - #### public void setPluginCacheSeconds(int pluginCacheSeconds)

      Set the number of seconds to cache the list of matching properties files loaded from plugin.

      - Default value is the same value as cacheSeconds

    - #### public void setPluginManager(GrailsPluginManager pluginManager)

    - #### @java.lang.Override public void setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)

    - #### public void setResourceResolver(org.springframework.core.io.support.PathMatchingResourcePatternResolver resourceResolver)