public final String getMessage(
final Class<?> origin, final String key, final Object[] messageParameters, final boolean useAbsentMessageRepresentation) {
Validate.notNull(key, "Message key cannot be null");
final Set<IMessageResolver> messageResolvers = this.configuration.getMessageResolvers();
for (final IMessageResolver messageResolver : messageResolvers) {
final String resolvedMessage =
messageResolver.resolveMessage(this, origin, key, messageParameters);
if (resolvedMessage != null) {
return resolvedMessage;
}
}
if (useAbsentMessageRepresentation) {
for (final IMessageResolver messageResolver : messageResolvers) {
final String absentMessageRepresentation =
messageResolver.createAbsentMessageRepresentation(this, origin, key, messageParameters);
if (absentMessageRepresentation != null) {
return absentMessageRepresentation;
}
}
}
return null;
}