Class ResourceBundleMessageSource

  • All Implemented Interfaces:
    MessageSource

    public class ResourceBundleMessageSource
    extends java.lang.Object
    implements MessageSource
    MessageSource that retrieves messages from a ResourceBundle.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.util.List<java.lang.String> baseNames  
      private java.util.Map<java.util.Locale,​java.util.Map<java.lang.String,​java.text.MessageFormat>> messageFormatMap
      Message Format Cache.
      private java.util.Map<java.util.Locale,​java.util.Map<java.lang.String,​java.lang.String>> messageMap
      Message Cache.
      private java.util.Map<java.lang.String,​java.util.Map<java.util.Locale,​java.util.ResourceBundle>> resourceBundleMap
      Resource Bundle Cache.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String getMessage​(java.lang.String key, java.util.function.Supplier<java.lang.String> defaultMessage, java.util.Locale locale, java.lang.Object... arguments)
      Gets the message.
      protected java.text.MessageFormat getMessageFormat​(java.util.Locale locale, java.lang.String message)  
      protected java.lang.String getMessageFromCache​(java.util.Locale locale, java.lang.String key)
      Gets the message from cache or the resource bundles.
      protected java.util.Map<java.util.Locale,​java.util.ResourceBundle> getResourceBundle​(java.lang.String baseName)  
      protected java.util.ResourceBundle getResourceBundle​(java.lang.String baseName, java.util.Locale locale)  
      protected java.lang.String resolveMessage​(java.util.Locale locale, java.lang.String key)
      Gets the message from the resource bundles.
      • Methods inherited from class java.lang.Object

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

      • resourceBundleMap

        private java.util.Map<java.lang.String,​java.util.Map<java.util.Locale,​java.util.ResourceBundle>> resourceBundleMap
        Resource Bundle Cache. baseName -> locale -> resourceBundle.
      • messageMap

        private java.util.Map<java.util.Locale,​java.util.Map<java.lang.String,​java.lang.String>> messageMap
        Message Cache. locale -> key -> message.
      • messageFormatMap

        private java.util.Map<java.util.Locale,​java.util.Map<java.lang.String,​java.text.MessageFormat>> messageFormatMap
        Message Format Cache. locale -> message -> messageFormat.

        Note that Message Format is not threadsafe.

      • baseNames

        private final java.util.List<java.lang.String> baseNames
    • Constructor Detail

      • ResourceBundleMessageSource

        public ResourceBundleMessageSource​(java.lang.String... baseName)
    • Method Detail

      • getMessage

        public java.lang.String getMessage​(java.lang.String key,
                                           java.util.function.Supplier<java.lang.String> defaultMessage,
                                           java.util.Locale locale,
                                           java.lang.Object... arguments)
        Description copied from interface: MessageSource
        Gets the message.
        Specified by:
        getMessage in interface MessageSource
        Parameters:
        key - to look up the message
        defaultMessage - the default message
        locale - the locale to use
        arguments - the message arguments
        Returns:
        the message
      • getMessageFormat

        protected java.text.MessageFormat getMessageFormat​(java.util.Locale locale,
                                                           java.lang.String message)
      • getMessageFromCache

        protected java.lang.String getMessageFromCache​(java.util.Locale locale,
                                                       java.lang.String key)
        Gets the message from cache or the resource bundles. Returns an empty string if not found.
        Parameters:
        locale - the locale
        key - the message key
        Returns:
        the message
      • resolveMessage

        protected java.lang.String resolveMessage​(java.util.Locale locale,
                                                  java.lang.String key)
        Gets the message from the resource bundles. Returns an empty string if not found.
        Parameters:
        locale - the locale
        key - the message key
        Returns:
        the message
      • getResourceBundle

        protected java.util.Map<java.util.Locale,​java.util.ResourceBundle> getResourceBundle​(java.lang.String baseName)
      • getResourceBundle

        protected java.util.ResourceBundle getResourceBundle​(java.lang.String baseName,
                                                             java.util.Locale locale)