/** * Copy constructor: Create a new instance from another resolvable. * @param resolvable the resolvable to copy from */ public DefaultMessageSourceResolvable(MessageSourceResolvable resolvable) { this(resolvable.getCodes(), resolvable.getArguments(), resolvable.getDefaultMessage()); }
@Override public boolean equals(Object other) { if (this == other) { return true; } if (!(other instanceof MessageSourceResolvable)) { return false; } MessageSourceResolvable otherResolvable = (MessageSourceResolvable) other; return (ObjectUtils.nullSafeEquals(getCodes(), otherResolvable.getCodes()) && ObjectUtils.nullSafeEquals(getArguments(), otherResolvable.getArguments()) && ObjectUtils.nullSafeEquals(getDefaultMessage(), otherResolvable.getDefaultMessage())); }
/** * Copy constructor: Create a new instance from another resolvable. * @param resolvable the resolvable to copy from */ public DefaultMessageSourceResolvable(MessageSourceResolvable resolvable) { this(resolvable.getCodes(), resolvable.getArguments(), resolvable.getDefaultMessage()); }
/** * Get a default message for the given {@code MessageSourceResolvable}. * <p>This implementation fully renders the default message if available, * or just returns the plain default message {@code String} if the primary * message code is being used as a default message. * @param resolvable the value object to resolve a default message for * @param locale the current locale * @return the default message, or {@code null} if none * @since 4.3.6 * @see #renderDefaultMessage(String, Object[], Locale) * @see #getDefaultMessage(String) */ @Nullable protected String getDefaultMessage(MessageSourceResolvable resolvable, Locale locale) { String defaultMessage = resolvable.getDefaultMessage(); String[] codes = resolvable.getCodes(); if (defaultMessage != null) { if (!ObjectUtils.isEmpty(codes) && defaultMessage.equals(codes[0])) { // Never format a code-as-default-message, even with alwaysUseMessageFormat=true return defaultMessage; } return renderDefaultMessage(defaultMessage, resolvable.getArguments(), locale); } return (!ObjectUtils.isEmpty(codes) ? getDefaultMessage(codes[0]) : null); }
@Override public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException { if (this.parentMessageSource != null) { return this.parentMessageSource.getMessage(resolvable, locale); } else { if (resolvable.getDefaultMessage() != null) { return renderDefaultMessage(resolvable.getDefaultMessage(), resolvable.getArguments(), locale); } String[] codes = resolvable.getCodes(); String code = (codes != null && codes.length > 0 ? codes[0] : ""); throw new NoSuchMessageException(code, locale); } }
@Override public final String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException { String[] codes = resolvable.getCodes(); if (codes != null) { for (String code : codes) { String message = getMessageInternal(code, resolvable.getArguments(), locale); if (message != null) { return message; } } } String defaultMessage = getDefaultMessage(resolvable, locale); if (defaultMessage != null) { return defaultMessage; } throw new NoSuchMessageException(!ObjectUtils.isEmpty(codes) ? codes[codes.length - 1] : "", locale); }
@Override public boolean equals(Object other) { if (this == other) { return true; } if (!(other instanceof MessageSourceResolvable)) { return false; } MessageSourceResolvable otherResolvable = (MessageSourceResolvable) other; return (ObjectUtils.nullSafeEquals(getCodes(), otherResolvable.getCodes()) && ObjectUtils.nullSafeEquals(getArguments(), otherResolvable.getArguments()) && ObjectUtils.nullSafeEquals(getDefaultMessage(), otherResolvable.getDefaultMessage())); }
/** * Get a default message for the given {@code MessageSourceResolvable}. * <p>This implementation fully renders the default message if available, * or just returns the plain default message {@code String} if the primary * message code is being used as a default message. * @param resolvable the value object to resolve a default message for * @param locale the current locale * @return the default message, or {@code null} if none * @since 4.3.6 * @see #renderDefaultMessage(String, Object[], Locale) * @see #getDefaultMessage(String) */ @Nullable protected String getDefaultMessage(MessageSourceResolvable resolvable, Locale locale) { String defaultMessage = resolvable.getDefaultMessage(); String[] codes = resolvable.getCodes(); if (defaultMessage != null) { if (!ObjectUtils.isEmpty(codes) && defaultMessage.equals(codes[0])) { // Never format a code-as-default-message, even with alwaysUseMessageFormat=true return defaultMessage; } return renderDefaultMessage(defaultMessage, resolvable.getArguments(), locale); } return (!ObjectUtils.isEmpty(codes) ? getDefaultMessage(codes[0]) : null); }
@Override public final String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException { String[] codes = resolvable.getCodes(); if (codes != null) { for (String code : codes) { String message = getMessageInternal(code, resolvable.getArguments(), locale); if (message != null) { return message; } } } String defaultMessage = getDefaultMessage(resolvable, locale); if (defaultMessage != null) { return defaultMessage; } throw new NoSuchMessageException(!ObjectUtils.isEmpty(codes) ? codes[codes.length - 1] : "", locale); }
@Override public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException { if (this.parentMessageSource != null) { return this.parentMessageSource.getMessage(resolvable, locale); } else { if (resolvable.getDefaultMessage() != null) { return renderDefaultMessage(resolvable.getDefaultMessage(), resolvable.getArguments(), locale); } String[] codes = resolvable.getCodes(); String code = (codes != null && codes.length > 0 ? codes[0] : ""); throw new NoSuchMessageException(code, locale); } }
@Override public Object[] getArguments() { return delegate.getArguments(); }
@Override public Object[] getArguments() { return delegate.getArguments(); }
@Override public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException { return resolve(delegate.getMessage(resolvable, locale), resolvable.getArguments(), locale); }
/** * Copy constructor: Create a new instance from another resolvable. * @param resolvable the resolvable to copy from */ public DefaultMessageSourceResolvable(MessageSourceResolvable resolvable) { this(resolvable.getCodes(), resolvable.getArguments(), resolvable.getDefaultMessage()); }
@Override public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException { Translations translations = Translations.getTranslations(locale); for (String key : resolvable.getCodes()) { String t = translations.translateAllowNull(key); if (t != null) return MessageFormat.format(t, resolvable.getArguments()); } return resolvable.getDefaultMessage(); } }
@Override public boolean equals(Object other) { if (this == other) { return true; } if (!(other instanceof MessageSourceResolvable)) { return false; } MessageSourceResolvable otherResolvable = (MessageSourceResolvable) other; return (ObjectUtils.nullSafeEquals(getCodes(), otherResolvable.getCodes()) && ObjectUtils.nullSafeEquals(getArguments(), otherResolvable.getArguments()) && ObjectUtils.nullSafeEquals(getDefaultMessage(), otherResolvable.getDefaultMessage())); }
/** * {@inheritDoc} */ public String getMessage(MessageSourceResolvable resolvable, Locale locale) { return getMessage(resolvable.getCodes()[0], resolvable.getArguments(), resolvable.getDefaultMessage(), locale); }
@Override public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException { if (this.parentMessageSource != null) { return this.parentMessageSource.getMessage(resolvable, locale); } else { if (resolvable.getDefaultMessage() != null) { return renderDefaultMessage(resolvable.getDefaultMessage(), resolvable.getArguments(), locale); } String[] codes = resolvable.getCodes(); String code = (codes != null && codes.length > 0 ? codes[0] : ""); throw new NoSuchMessageException(code, locale); } }
@Override public final String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException { String[] codes = resolvable.getCodes(); if (codes != null) { for (String code : codes) { String message = getMessageInternal(code, resolvable.getArguments(), locale); if (message != null) { return message; } } } String defaultMessage = getDefaultMessage(resolvable, locale); if (defaultMessage != null) { return defaultMessage; } throw new NoSuchMessageException(!ObjectUtils.isEmpty(codes) ? codes[codes.length - 1] : "", locale); }
@Override public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException { Validate.notNull(resolvable, "Message source resolvable must not be null"); for (String code : resolvable.getCodes()) { String msg = localizationService.translate(code, resolvable.getArguments(), locale); if (msg != null) { return msg; } } if (resolvable.getDefaultMessage() != null) { return resolvable.getDefaultMessage(); } throw new NoSuchMessageException("Can't resolve message: " + resolvable); } }