org.springframework.context.support

## Class DelegatingMessageSource

- java.lang.Object
- - org.springframework.context.support.MessageSourceSupport
  - - org.springframework.context.support.DelegatingMessageSource

All Implemented Interfaces:
  HierarchicalMessageSource, MessageSource

    public class DelegatingMessageSource
    extends MessageSourceSupport
    implements HierarchicalMessageSource

Empty `MessageSource` that delegates all calls to the parent MessageSource. If no parent is available, it simply won't resolve any message.

Used as placeholder by AbstractApplicationContext, if the context doesn't define its own MessageSource. Not intended for direct use in applications.

Since:
  1.1.5
Author:
  Juergen Hoeller
See Also:
  `AbstractApplicationContext`

### Field Summary

### Fields inherited from class org.springframework.context.support.MessageSourceSupport

`logger`

### Constructor Summary

Constructors
Constructor and Description
`DelegatingMessageSource()`

### Method Summary

Methods
`String` `getMessage(MessageSourceResolvable resolvable, Locale locale)` Try to resolve the message using all the attributes contained within the `MessageSourceResolvable` argument that was passed in.
`String` `getMessage(String code, Object[] args, Locale locale)` Try to resolve the message.
`String` `getMessage(String code, Object[] args, String defaultMessage, Locale locale)` Try to resolve the message.
`MessageSource` `getParentMessageSource()` Return the parent of this MessageSource, or `null` if none.
`void` `setParentMessageSource(MessageSource parent)` Set the parent that will be used to try to resolve messages that this object can't resolve.

### Methods inherited from class org.springframework.context.support.MessageSourceSupport

`createMessageFormat, formatMessage, isAlwaysUseMessageFormat, renderDefaultMessage, resolveArguments, setAlwaysUseMessageFormat`

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

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

### Constructor Detail

#### DelegatingMessageSource

    public DelegatingMessageSource()

### Method Detail

#### setParentMessageSource

    public void setParentMessageSource(MessageSource parent)

Description copied from interface: `HierarchicalMessageSource`
Set the parent that will be used to try to resolve messages that this object can't resolve.

Specified by:
  `setParentMessageSource` in interface `HierarchicalMessageSource`
Parameters:
  `parent` - the parent MessageSource that will be used to resolve messages that this object can't resolve. May be `null`, in which case no further resolution is possible.

#### getParentMessageSource

    public MessageSource getParentMessageSource()

Description copied from interface: `HierarchicalMessageSource`
Return the parent of this MessageSource, or `null` if none.

Specified by:
  `getParentMessageSource` in interface `HierarchicalMessageSource`

#### getMessage

    public String getMessage(String code,
                    Object[] args,
                    String defaultMessage,
                    Locale locale)

Description copied from interface: `MessageSource`
Try to resolve the message. Return default message if no message was found.

Specified by:
  `getMessage` in interface `MessageSource`
Parameters:
  `code` - the code to lookup up, such as 'calculator.noRateSet'. Users of this class are encouraged to base message names on the relevant fully qualified class name, thus avoiding conflict and ensuring maximum clarity.
  `args` - array of arguments that will be filled in for params within the message (params look like "{0}", "{1,date}", "{2,time}" within a message), or `null` if none.
  `defaultMessage` - String to return if the lookup fails
  `locale` - the Locale in which to do the lookup
Returns:
  the resolved message if the lookup was successful; otherwise the default message passed as a parameter
See Also:
  `MessageFormat`

#### getMessage

    public String getMessage(String code,
                    Object[] args,
                    Locale locale)
                      throws NoSuchMessageException

Description copied from interface: `MessageSource`
Try to resolve the message. Treat as an error if the message can't be found.

Specified by:
  `getMessage` in interface `MessageSource`
Parameters:
  `code` - the code to lookup up, such as 'calculator.noRateSet'
  `args` - Array of arguments that will be filled in for params within the message (params look like "{0}", "{1,date}", "{2,time}" within a message), or `null` if none.
  `locale` - the Locale in which to do the lookup
Returns:
  the resolved message
Throws:
  `NoSuchMessageException` - if the message wasn't found
See Also:
  `MessageFormat`

#### getMessage

    public String getMessage(MessageSourceResolvable resolvable,
                    Locale locale)
                      throws NoSuchMessageException

Description copied from interface: `MessageSource`
Try to resolve the message using all the attributes contained within the `MessageSourceResolvable` argument that was passed in.

NOTE: We must throw a `NoSuchMessageException` on this method since at the time of calling this method we aren't able to determine if the `defaultMessage` property of the resolvable is null or not.

Specified by:
  `getMessage` in interface `MessageSource`
Parameters:
  `resolvable` - value object storing attributes required to properly resolve a message
  `locale` - the Locale in which to do the lookup
Returns:
  the resolved message
Throws:
  `NoSuchMessageException` - if the message wasn't found
See Also:
  `MessageFormat`