Class StaticMessageSource
- java.lang.Object
- org.springframework.context.support.MessageSourceSupport
- org.springframework.context.support.AbstractMessageSource
- org.springframework.context.support.StaticMessageSource
- All Implemented Interfaces:
HierarchicalMessageSource
,MessageSource
public class StaticMessageSource extends AbstractMessageSource
Simple implementation ofMessageSource
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 Constructor Description StaticMessageSource()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
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.String
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 Detail
StaticMessageSource
public StaticMessageSource()
Method Detail
resolveCodeWithoutArguments
protected String resolveCodeWithoutArguments(String code, Locale locale)
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:
AbstractMessageSource.resolveCode(java.lang.String, java.util.Locale)
,MessageFormat
resolveCode
protected MessageFormat resolveCode(String code, Locale locale)
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:
AbstractMessageSource.resolveCodeWithoutArguments(String, java.util.Locale)
addMessage
public void addMessage(String code, Locale locale, String msg)
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
public void addMessages(Map<String,String> messages, Locale locale)
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