Common interface for all objects used for the resolution of externalized
(internationalized) messages.
A Template Engine can be set several message resolvers, which will be asked for
resolution of externalized messages in the order established by the
#getOrder()method.
Note that message resolution will return null if no message is found, in which case callers will have the
possibility to choose between asking the resolver to create an absent message representation or not.
This is precisely what the
useAbsentMessageRepresentation flag does in
ITemplateContext#getMessage(Class,String,Object[],boolean).
An absent message representation looks like
??mymessage_gl_ES?? and is useful to quickly determine
when a message is lacking from the application's configuration. Note
#{...}} message expressions will
always ask for an
absent message representation, whereas methods in the
#messagesexpression object will do it depending on the specific method being called.
Implementations of this interface should be thread-safe.