## org.springframework.context.support
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 of `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
`StaticMessageSource()`

Method Summary
`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
`getDefaultMessage, getMessage, getMessage, getMessage, getMessageFromParent, getMessageInternal, getParentMessageSource, isUseCodeAsDefaultMessage, resolveArguments, setParentMessageSource, setUseCodeAsDefaultMessage`

Methods inherited from class org.springframework.context.support.MessageSourceSupport
`createMessageFormat, formatMessage, isAlwaysUseMessageFormat, renderDefaultMessage, setAlwaysUseMessageFormat`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

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 class `AbstractMessageSource`
  Parameters:
    `code` - the code of the message to resolve
    `locale` - 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 class `AbstractMessageSource`
  Parameters:
    `code` - the code of the message to resolve
    `locale` - 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 code
    `locale` - the locale that the message should be found within
    `msg` - 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 values
    `locale` - the locale that the messages should be found within

### toString

    public String toString()

  Overrides:
    `toString` in class `Object`