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:
  • Constructor Details

    • DelegatingMessageSource

      public DelegatingMessageSource()
  • Method Details

    • setParentMessageSource

      public void setParentMessageSource(@Nullable 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

      @Nullable 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

      @Nullable public String getMessage(String code, @Nullable Object[] args, @Nullable 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 message code to look up, e.g. 'calculator.noRateSet'. MessageSource users are encouraged to base message names on qualified class or package names, avoiding potential conflicts and ensuring maximum clarity.
      args - an 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 - a default message 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 (which may be null)
      See Also:
    • getMessage

      public String getMessage(String code, @Nullable 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 message code to look up, e.g. 'calculator.noRateSet'. MessageSource users are encouraged to base message names on qualified class or package names, avoiding potential conflicts and ensuring maximum clarity.
      args - an 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 (never null)
      Throws:
      NoSuchMessageException - if no corresponding message was found
      See Also:
    • 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 - the value object storing attributes required to resolve a message (may include a default message)
      locale - the locale in which to do the lookup
      Returns:
      the resolved message (never null since even a MessageSourceResolvable-provided default message needs to be non-null)
      Throws:
      NoSuchMessageException - if no corresponding message was found (and no default message was provided by the MessageSourceResolvable)
      See Also:
    • toString

      public String toString()
      Overrides:
      toString in class Object