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 MessageSourceSupport
logger -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddMessage(String code, Locale locale, String msg) Associate the given message with the given code.voidaddMessages(Map<String, String> messages, Locale locale) Associate the given message values with the given keys as codes.protected @Nullable MessageFormatresolveCode(String code, Locale locale) Subclasses must implement this method to resolve a message.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 AbstractMessageSource
getCommonMessages, getDefaultMessage, getDefaultMessage, getMessage, getMessage, getMessage, getMessageFromParent, getMessageInternal, getParentMessageSource, isUseCodeAsDefaultMessage, resolveArguments, setCommonMessages, setParentMessageSource, setUseCodeAsDefaultMessageMethods inherited from class MessageSourceSupport
createMessageFormat, formatMessage, isAlwaysUseMessageFormat, renderDefaultMessage, setAlwaysUseMessageFormat
-
Constructor Details
-
StaticMessageSource
public StaticMessageSource()
-
-
Method Details
-
resolveCodeWithoutArguments
Description copied from class:AbstractMessageSourceSubclasses 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(String, Locale)method. Subclasses are encouraged to replace this with optimized resolution.Unfortunately,
java.text.MessageFormatis 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:
resolveCodeWithoutArgumentsin 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
nullif not found - See Also:
-
resolveCode
Description copied from class:AbstractMessageSourceSubclasses 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(String, Locale)javadoc for details.- Specified by:
resolveCodein 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
nullif not found - See Also:
-
addMessage
-
addMessages
-
toString
-