/** * 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 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 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 String[] getCodes() { return delegate.getCodes(); }
/** * @see org.springframework.context.MessageSource#getMessage(org.springframework.context.MessageSourceResolvable, * java.util.Locale) */ @Override public String getMessage(MessageSourceResolvable resolvable, Locale locale) { if((resolvable.getCodes()[0]).equals((activeMessageSource.getMessage(resolvable, locale)))){ return (resolvable.getCodes()[(resolvable.getCodes().length) - 1]); } else{ return activeMessageSource.getMessage(resolvable, locale); } }
/** * MessageSourceServiceImpl.getMessage()should return last error code if no localization found * * @see MessageSourceServiceImpl#getMessage(MessageSourceResolvable resolvable, Locale locale) */ @Test public void getMessage_shouldReturnTheLastErrorCodeIfnoLocalizationIsFound() { MapBindingResult errors = new MapBindingResult(new HashMap<String, Object>(), "request"); errors.rejectValue("myField", "myErrorCode"); MessageSourceResolvable fieldError = errors.getFieldError("myField"); Assert.assertEquals(3, fieldError.getCodes().length); Assert.assertEquals("myErrorCode.request.myField", fieldError.getCodes()[0]); Assert.assertEquals("myErrorCode.myField", fieldError.getCodes()[1]); Assert.assertEquals("myErrorCode", fieldError.getCodes()[2]); Assert.assertEquals("myErrorCode", Context.getMessageSourceService().getMessage(fieldError, Context.getLocale())); } }
@Override public String[] getCodes() { return delegate.getCodes(); }
@Override public String getMessage(MessageSourceResolvable resolvable, Locale locale) { if (!ObjectUtils.isEmpty(resolvable.getCodes())) { if (shouldBeRevealed(resolvable.getCodes()[0])) { return revealCodes(super.getMessage(resolvable, locale), resolvable.getCodes()); } } return super.getMessage(resolvable, locale); }
public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException { for(MessageSource messageSource : plugin.getMessageSources()) { try { return messageSource.getMessage(resolvable, locale); } catch (NoSuchMessageException e) { } } throw new NoSuchMessageException(Arrays.toString(resolvable.getCodes()), 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(); } }
/** * {@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); } }