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
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 MessageFormatresolveCode(String code, Locale locale) Subclasses must implement this method to resolve a message.protected StringresolveCodeWithoutArguments(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, setUseCodeAsDefaultMessageMethods 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: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(java.lang.String, java.util.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(java.lang.String, java.util.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
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
-