Class StaticMessageSource
- All Implemented Interfaces:
HierarchicalMessageSource
,MessageSource
MessageSource
which allows messages to be registered programmatically.
This MessageSource supports basic internationalization.
Intended for testing rather than for use in production systems.
- Author:
- Rod Johnson, Juergen Hoeller
-
Field Summary
Fields inherited from class org.springframework.context.support.MessageSourceSupport
logger
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addMessage
(String code, Locale locale, String msg) Associate the given message with the given code.void
addMessages
(Map<String, String> messages, Locale locale) Associate the given message values with the given keys as codes.protected MessageFormat
resolveCode
(String code, Locale locale) Subclasses must implement this method to resolve a message.protected String
resolveCodeWithoutArguments
(String code, Locale locale) Subclasses can override this method to resolve a message without arguments in an optimized fashion, i.e.toString()
Methods inherited from class org.springframework.context.support.AbstractMessageSource
getCommonMessages, getDefaultMessage, getDefaultMessage, getMessage, getMessage, getMessage, getMessageFromParent, getMessageInternal, getParentMessageSource, isUseCodeAsDefaultMessage, resolveArguments, setCommonMessages, setParentMessageSource, setUseCodeAsDefaultMessage
Methods inherited from class org.springframework.context.support.MessageSourceSupport
createMessageFormat, formatMessage, isAlwaysUseMessageFormat, renderDefaultMessage, setAlwaysUseMessageFormat
-
Constructor Details
-
StaticMessageSource
public StaticMessageSource()
-
-
Method Details
-
resolveCodeWithoutArguments
Description copied from class:AbstractMessageSource
Subclasses can override this method to resolve a message without arguments in an optimized fashion, i.e. to resolve without involving a MessageFormat.The default implementation does use MessageFormat, through delegating to the
AbstractMessageSource.resolveCode(java.lang.String, java.util.Locale)
method. Subclasses are encouraged to replace this with optimized resolution.Unfortunately,
java.text.MessageFormat
is not implemented in an efficient fashion. In particular, it does not detect that a message pattern doesn't contain argument placeholders in the first place. Therefore, it is advisable to circumvent MessageFormat for messages without arguments.- Overrides:
resolveCodeWithoutArguments
in classAbstractMessageSource
- Parameters:
code
- the code of the message to resolvelocale
- the locale to resolve the code for (subclasses are encouraged to support internationalization)- Returns:
- the message String, or
null
if not found - See Also:
-
resolveCode
Description copied from class:AbstractMessageSource
Subclasses must implement this method to resolve a message.Returns a MessageFormat instance rather than a message String, to allow for appropriate caching of MessageFormats in subclasses.
Subclasses are encouraged to provide optimized resolution for messages without arguments, not involving MessageFormat. See the
AbstractMessageSource.resolveCodeWithoutArguments(java.lang.String, java.util.Locale)
javadoc for details.- Specified by:
resolveCode
in classAbstractMessageSource
- Parameters:
code
- the code of the message to resolvelocale
- the locale to resolve the code for (subclasses are encouraged to support internationalization)- Returns:
- the MessageFormat for the message, or
null
if not found - See Also:
-
addMessage
Associate the given message with the given code.- Parameters:
code
- the lookup codelocale
- the locale that the message should be found withinmsg
- the message associated with this lookup code
-
addMessages
Associate the given message values with the given keys as codes.- Parameters:
messages
- the messages to register, with messages codes as keys and message texts as valueslocale
- the locale that the messages should be found within
-
toString
-