org.springframework.context.support

## Class MessageSourceResourceBundle

- java.lang.Object
- - java.util.ResourceBundle
  - - org.springframework.context.support.MessageSourceResourceBundle

-     public class MessageSourceResourceBundle
      extends ResourceBundle

  Helper class that allows for accessing a Spring `MessageSource` as a `ResourceBundle`. Used for example to expose a Spring MessageSource to JSTL web views.
  Since:
    27.02.2003
  Author:
    Juergen Hoeller
  See Also:
    `MessageSource`, `ResourceBundle`, `JstlUtils.exposeLocalizationContext(javax.servlet.http.HttpServletRequest, org.springframework.context.MessageSource)`

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class java.util.ResourceBundle

      `ResourceBundle.Control`

  - ### Field Summary

    - ### Fields inherited from class java.util.ResourceBundle

      `parent`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MessageSourceResourceBundle(MessageSource source, Locale locale)` Create a new MessageSourceResourceBundle for the given MessageSource and Locale.
    `MessageSourceResourceBundle(MessageSource source, Locale locale, ResourceBundle parent)` Create a new MessageSourceResourceBundle for the given MessageSource and Locale.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `containsKey(String key)` This implementation checks whether the target MessageSource can resolve a message for the given key, translating `NoSuchMessageException` accordingly.
    `Enumeration<String>` | `getKeys()` This implementation throws `UnsupportedOperationException`, as a MessageSource does not allow for enumerating the defined message codes.
    `Locale` | `getLocale()` This implementation exposes the specified Locale for introspection through the standard `ResourceBundle.getLocale()` method.
    `protected Object` | `handleGetObject(String key)` This implementation resolves the code in the MessageSource.

    - ### Methods inherited from class java.util.ResourceBundle

      `clearCache, clearCache, getBundle, getBundle, getBundle, getBundle, getBundle, getBundle, getObject, getString, getStringArray, handleKeySet, keySet, setParent`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### MessageSourceResourceBundle

          public MessageSourceResourceBundle(MessageSource source,
                                     Locale locale)

      Create a new MessageSourceResourceBundle for the given MessageSource and Locale.
      Parameters:
        `source` - the MessageSource to retrieve messages from
        `locale` - the Locale to retrieve messages for

    - #### MessageSourceResourceBundle

          public MessageSourceResourceBundle(MessageSource source,
                                     Locale locale,
                                     ResourceBundle parent)

      Create a new MessageSourceResourceBundle for the given MessageSource and Locale.
      Parameters:
        `source` - the MessageSource to retrieve messages from
        `locale` - the Locale to retrieve messages for
        `parent` - the parent ResourceBundle to delegate to if no local message found

  - ### Method Detail

    - #### handleGetObject

          protected Object handleGetObject(String key)

      This implementation resolves the code in the MessageSource. Returns `null` if the message could not be resolved.
      Specified by:
        `handleGetObject` in class `ResourceBundle`

    - #### containsKey

          public boolean containsKey(String key)

      This implementation checks whether the target MessageSource can resolve a message for the given key, translating `NoSuchMessageException` accordingly. In contrast to ResourceBundle's default implementation in JDK 1.6, this does not rely on the capability to enumerate message keys.
      Overrides:
        `containsKey` in class `ResourceBundle`

    - #### getKeys

          public Enumeration<String> getKeys()

      This implementation throws `UnsupportedOperationException`, as a MessageSource does not allow for enumerating the defined message codes.
      Specified by:
        `getKeys` in class `ResourceBundle`

    - #### getLocale

          public Locale getLocale()

      This implementation exposes the specified Locale for introspection through the standard `ResourceBundle.getLocale()` method.
      Overrides:
        `getLocale` in class `ResourceBundle`