org.springframework.ui.context.support

Class ResourceBundleThemeSource

  • java.lang.Object
    • org.springframework.ui.context.support.ResourceBundleThemeSource
    • Field Summary

      Fields 
      Modifier and Type Field and Description
      protected Log logger 
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method and Description
      protected MessageSource createMessageSource(java.lang.String basename)
      Create a MessageSource for the given basename, to be used as MessageSource for the corresponding theme.
      ThemeSource getParentThemeSource()
      Return the parent of this ThemeSource, or null if none.
      Theme getTheme(java.lang.String themeName)
      This implementation returns a SimpleTheme instance, holding a ResourceBundle-based MessageSource whose basename corresponds to the given theme name (prefixed by the configured "basenamePrefix").
      protected void initParent(Theme theme)
      Initialize the MessageSource of the given theme with the one from the corresponding parent of this ThemeSource.
      void setBasenamePrefix(java.lang.String basenamePrefix)
      Set the prefix that gets applied to the ResourceBundle basenames, i.e.
      void setBeanClassLoader(java.lang.ClassLoader beanClassLoader)
      Callback that supplies the bean class loader to a bean instance.
      void setDefaultEncoding(java.lang.String defaultEncoding)
      Set the default charset to use for parsing resource bundle files.
      void setFallbackToSystemLocale(boolean fallbackToSystemLocale)
      Set whether to fall back to the system Locale if no files for a specific Locale have been found.
      void setParentThemeSource(ThemeSource parent)
      Set the parent that will be used to try to resolve theme messages that this object can't resolve.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • logger

        protected final Log logger
    • Constructor Detail

      • ResourceBundleThemeSource

        public ResourceBundleThemeSource()
    • Method Detail

      • setParentThemeSource

        public void setParentThemeSource(@Nullable
                                         ThemeSource parent)
        Description copied from interface: HierarchicalThemeSource
        Set the parent that will be used to try to resolve theme messages that this object can't resolve.
        Specified by:
        setParentThemeSource in interface HierarchicalThemeSource
        Parameters:
        parent - the parent ThemeSource that will be used to resolve messages that this object can't resolve. May be null, in which case no further resolution is possible.
      • setBasenamePrefix

        public void setBasenamePrefix(@Nullable
                                      java.lang.String basenamePrefix)
        Set the prefix that gets applied to the ResourceBundle basenames, i.e. the theme names. E.g.: basenamePrefix="test.", themeName="theme" -> basename="test.theme".

        Note that ResourceBundle names are effectively classpath locations: As a consequence, the JDK's standard ResourceBundle treats dots as package separators. This means that "test.theme" is effectively equivalent to "test/theme", just like it is for programmatic java.util.ResourceBundle usage.

        See Also:
        ResourceBundle.getBundle(String)
      • getTheme

        @Nullable
        public Theme getTheme(java.lang.String themeName)
        This implementation returns a SimpleTheme instance, holding a ResourceBundle-based MessageSource whose basename corresponds to the given theme name (prefixed by the configured "basenamePrefix").

        SimpleTheme instances are cached per theme name. Use a reloadable MessageSource if themes should reflect changes to the underlying files.

        Specified by:
        getTheme in interface ThemeSource
        Parameters:
        themeName - the name of the theme
        Returns:
        the corresponding Theme, or null if none defined. Note that, by convention, a ThemeSource should at least be able to return a default Theme for the default theme name "theme" but may also return default Themes for other theme names.
        See Also:
        setBasenamePrefix(java.lang.String), createMessageSource(java.lang.String)
      • createMessageSource

        protected MessageSource createMessageSource(java.lang.String basename)
        Create a MessageSource for the given basename, to be used as MessageSource for the corresponding theme.

        Default implementation creates a ResourceBundleMessageSource. for the given basename. A subclass could create a specifically configured ReloadableResourceBundleMessageSource, for example.

        Parameters:
        basename - the basename to create a MessageSource for
        Returns:
        the MessageSource
        See Also:
        ResourceBundleMessageSource, ReloadableResourceBundleMessageSource
      • initParent

        protected void initParent(Theme theme)
        Initialize the MessageSource of the given theme with the one from the corresponding parent of this ThemeSource.
        Parameters:
        theme - the Theme to (re-)initialize