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
logger
Constructor and Description |
---|
DelegatingMessageSource() |
Modifier and Type | Method and Description |
---|---|
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.
|
createMessageFormat, formatMessage, isAlwaysUseMessageFormat, renderDefaultMessage, resolveArguments, setAlwaysUseMessageFormat
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 String getMessage(String code, @Nullable Object[] args, @Nullable String defaultMessage, Locale locale)
MessageSource
getMessage
in interface MessageSource
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 nonedefaultMessage
- a default message to return if the lookup failslocale
- the locale in which to do the lookupnull
)MessageSource.getMessage(MessageSourceResolvable, Locale)
,
MessageFormat
public String getMessage(String code, @Nullable Object[] args, Locale locale) throws NoSuchMessageException
MessageSource
getMessage
in interface MessageSource
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 nonelocale
- the locale in which to do the lookupnull
)NoSuchMessageException
- if no corresponding message was foundMessageSource.getMessage(MessageSourceResolvable, Locale)
,
MessageFormat
public String getMessage(MessageSourceResolvable resolvable, 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 message
(may include a default message)locale
- the locale in which to do the lookupnull
since even a
MessageSourceResolvable
-provided default message needs to be non-null)NoSuchMessageException
- if no corresponding message was found
(and no default message was provided by the MessageSourceResolvable
)MessageSourceResolvable.getCodes()
,
MessageSourceResolvable.getArguments()
,
MessageSourceResolvable.getDefaultMessage()
,
MessageFormat