org.springframework.context.support
Class DelegatingMessageSource

java.lang.Object
  extended by org.springframework.context.support.MessageSourceSupport
      extended by 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
DelegatingMessageSource()
           
 
Method Summary
 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