Package com.networknt.schema.i18n
Class ResourceBundleMessageSource
- java.lang.Object
-
- com.networknt.schema.i18n.ResourceBundleMessageSource
-
- All Implemented Interfaces:
MessageSource
public class ResourceBundleMessageSource extends java.lang.Object implements MessageSource
MessageSource
that retrieves messages from aResourceBundle
.
-
-
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.
-
Constructor Summary
Constructors Constructor Description ResourceBundleMessageSource(java.lang.String... baseName)
-
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
-
Methods inherited from interface com.networknt.schema.i18n.MessageSource
getMessage, getMessage
-
-
-
-
Field Detail
-
resourceBundleMap
private final java.util.Map<java.lang.String,java.util.Map<java.util.Locale,java.util.ResourceBundle>> resourceBundleMap
Resource Bundle Cache. baseName -> locale -> resourceBundle.
-
messageMap
private final java.util.Map<java.util.Locale,java.util.Map<java.lang.String,java.lang.String>> messageMap
Message Cache. locale -> key -> message.
-
messageFormatMap
private final 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
-
-
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 interfaceMessageSource
- Parameters:
key
- to look up the messagedefaultMessage
- the default messagelocale
- the locale to usearguments
- 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 localekey
- 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 localekey
- 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)
-
-