public class DelegatingMessageSource extends MessageSourceSupport implements HierarchicalMessageSource
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.
AbstractApplicationContext
Modifier and Type | Field and Description |
---|---|
private MessageSource |
parentMessageSource |
logger
Constructor and Description |
---|
DelegatingMessageSource() |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
getMessage(MessageSourceResolvable resolvable,
java.util.Locale locale)
Try to resolve the message using all the attributes contained within the
MessageSourceResolvable argument that was passed in. |
java.lang.String |
getMessage(java.lang.String code,
java.lang.Object[] args,
java.util.Locale locale)
Try to resolve the message.
|
java.lang.String |
getMessage(java.lang.String code,
java.lang.Object[] args,
java.lang.String defaultMessage,
java.util.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.
|
java.lang.String |
toString() |
createMessageFormat, formatMessage, isAlwaysUseMessageFormat, renderDefaultMessage, resolveArguments, setAlwaysUseMessageFormat
@Nullable private MessageSource parentMessageSource
public void setParentMessageSource(@Nullable MessageSource parent)
HierarchicalMessageSource
setParentMessageSource
in interface HierarchicalMessageSource
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.@Nullable public MessageSource getParentMessageSource()
HierarchicalMessageSource
null
if none.getParentMessageSource
in interface HierarchicalMessageSource
@Nullable public java.lang.String getMessage(java.lang.String code, @Nullable java.lang.Object[] args, @Nullable java.lang.String defaultMessage, java.util.Locale locale)
MessageSource
getMessage
in interface MessageSource
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
- 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 failslocale
- the locale in which to do the lookupMessageFormat
public java.lang.String getMessage(java.lang.String code, @Nullable java.lang.Object[] args, java.util.Locale locale) throws NoSuchMessageException
MessageSource
getMessage
in interface MessageSource
code
- the code to lookup up, such as 'calculator.noRateSet'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 lookupNoSuchMessageException
- if the message wasn't foundMessageFormat
public java.lang.String getMessage(MessageSourceResolvable resolvable, java.util.Locale locale) throws NoSuchMessageException
MessageSource
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.
getMessage
in interface MessageSource
resolvable
- the value object storing attributes required to resolve a messagelocale
- the locale in which to do the lookupNoSuchMessageException
- if the message wasn't foundMessageFormat
public java.lang.String toString()
toString
in class java.lang.Object