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
MessageSourcethat retrieves messages from aResourceBundle.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<java.lang.String>baseNamesprivate java.util.Map<java.util.Locale,java.util.Map<java.lang.String,java.text.MessageFormat>>messageFormatMapMessage Format Cache.private java.util.Map<java.util.Locale,java.util.Map<java.lang.String,java.lang.String>>messageMapMessage Cache.private java.util.Map<java.lang.String,java.util.Map<java.util.Locale,java.util.ResourceBundle>>resourceBundleMapResource 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.StringgetMessage(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.MessageFormatgetMessageFormat(java.util.Locale locale, java.lang.String message)protected java.lang.StringgetMessageFromCache(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.ResourceBundlegetResourceBundle(java.lang.String baseName, java.util.Locale locale)protected java.lang.StringresolveMessage(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:MessageSourceGets the message.- Specified by:
getMessagein 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)
-
-