Java 类org.springframework.context.MessageSourceResolvable 实例源码

项目:lams    文件:AbstractMessageSource.java   
@Override
public final String getMessage(MessageSourceResolvable resolvable, Locale locale)
        throws NoSuchMessageException {

    String[] codes = resolvable.getCodes();
    if (codes == null) {
        codes = new String[0];
    }
    for (String code : codes) {
        String msg = getMessageInternal(code, resolvable.getArguments(), locale);
        if (msg != null) {
            return msg;
        }
    }
    String defaultMessage = resolvable.getDefaultMessage();
    if (defaultMessage != null) {
        return renderDefaultMessage(defaultMessage, resolvable.getArguments(), locale);
    }
    if (codes.length > 0) {
        String fallback = getDefaultMessage(codes[0]);
        if (fallback != null) {
            return fallback;
        }
    }
    throw new NoSuchMessageException(codes.length > 0 ? codes[codes.length - 1] : null, locale);
}
项目:lams    文件:AbstractMessageSource.java   
/**
 * Searches through the given array of objects, finds any MessageSourceResolvable
 * objects and resolves them.
 * <p>Allows for messages to have MessageSourceResolvables as arguments.
 * @param args array of arguments for a message
 * @param locale the locale to resolve through
 * @return an array of arguments with any MessageSourceResolvables resolved
 */
@Override
protected Object[] resolveArguments(Object[] args, Locale locale) {
    if (args == null) {
        return new Object[0];
    }
    List<Object> resolvedArgs = new ArrayList<Object>(args.length);
    for (Object arg : args) {
        if (arg instanceof MessageSourceResolvable) {
            resolvedArgs.add(getMessage((MessageSourceResolvable) arg, locale));
        }
        else {
            resolvedArgs.add(arg);
        }
    }
    return resolvedArgs.toArray(new Object[resolvedArgs.size()]);
}
项目:spring4-understanding    文件:AbstractMessageSource.java   
@Override
public final String getMessage(MessageSourceResolvable resolvable, Locale locale)
        throws NoSuchMessageException {

    String[] codes = resolvable.getCodes();
    if (codes == null) {
        codes = new String[0];
    }
    for (String code : codes) {
        String msg = getMessageInternal(code, resolvable.getArguments(), locale);
        if (msg != null) {
            return msg;
        }
    }
    String defaultMessage = resolvable.getDefaultMessage();
    if (defaultMessage != null) {
        return renderDefaultMessage(defaultMessage, resolvable.getArguments(), locale);
    }
    if (codes.length > 0) {
        String fallback = getDefaultMessage(codes[0]);
        if (fallback != null) {
            return fallback;
        }
    }
    throw new NoSuchMessageException(codes.length > 0 ? codes[codes.length - 1] : null, locale);
}
项目:spring4-understanding    文件:AbstractMessageSource.java   
/**
 * Searches through the given array of objects, finds any MessageSourceResolvable
 * objects and resolves them.
 * <p>Allows for messages to have MessageSourceResolvables as arguments.
 * @param args array of arguments for a message
 * @param locale the locale to resolve through
 * @return an array of arguments with any MessageSourceResolvables resolved
 */
@Override
protected Object[] resolveArguments(Object[] args, Locale locale) {
    if (args == null) {
        return new Object[0];
    }
    List<Object> resolvedArgs = new ArrayList<Object>(args.length);
    for (Object arg : args) {
        if (arg instanceof MessageSourceResolvable) {
            resolvedArgs.add(getMessage((MessageSourceResolvable) arg, locale));
        }
        else {
            resolvedArgs.add(arg);
        }
    }
    return resolvedArgs.toArray(new Object[resolvedArgs.size()]);
}
项目:spring4-understanding    文件:StaticMessageSourceTests.java   
@Test
public void messageSourceResolvable() {
    // first code valid
    String[] codes1 = new String[] {"message.format.example3", "message.format.example2"};
    MessageSourceResolvable resolvable1 = new DefaultMessageSourceResolvable(codes1, null, "default");
    assertTrue("correct message retrieved", MSG_TXT3_US.equals(sac.getMessage(resolvable1, Locale.US)));

    // only second code valid
    String[] codes2 = new String[] {"message.format.example99", "message.format.example2"};
    MessageSourceResolvable resolvable2 = new DefaultMessageSourceResolvable(codes2, null, "default");
    assertTrue("correct message retrieved", MSG_TXT2_US.equals(sac.getMessage(resolvable2, Locale.US)));

    // no code valid, but default given
    String[] codes3 = new String[] {"message.format.example99", "message.format.example98"};
    MessageSourceResolvable resolvable3 = new DefaultMessageSourceResolvable(codes3, null, "default");
    assertTrue("correct message retrieved", "default".equals(sac.getMessage(resolvable3, Locale.US)));

    // no code valid, no default
    String[] codes4 = new String[] {"message.format.example99", "message.format.example98"};
    MessageSourceResolvable resolvable4 = new DefaultMessageSourceResolvable(codes4);

    exception.expect(NoSuchMessageException.class);
    sac.getMessage(resolvable4, Locale.US);
}
项目:spring4-understanding    文件:MessageTagTests.java   
@Test
@SuppressWarnings("rawtypes")
public void requestContext() throws ServletException {
    PageContext pc = createPageContext();
    RequestContext rc = new RequestContext((HttpServletRequest) pc.getRequest(), pc.getServletContext());
    assertEquals("test message", rc.getMessage("test"));
    assertEquals("test message", rc.getMessage("test", (Object[]) null));
    assertEquals("test message", rc.getMessage("test", "default"));
    assertEquals("test message", rc.getMessage("test", (Object[]) null, "default"));
    assertEquals("test arg1 message arg2",
            rc.getMessage("testArgs", new String[] {"arg1", "arg2"}, "default"));
    assertEquals("test arg1 message arg2",
            rc.getMessage("testArgs", Arrays.asList(new String[] {"arg1", "arg2"}), "default"));
    assertEquals("default", rc.getMessage("testa", "default"));
    assertEquals("default", rc.getMessage("testa", (List) null, "default"));
    MessageSourceResolvable resolvable = new DefaultMessageSourceResolvable(new String[] {"test"});
    assertEquals("test message", rc.getMessage(resolvable));
}
项目:spring4-understanding    文件:ThemeTagTests.java   
@Test
@SuppressWarnings("rawtypes")
public void requestContext() throws ServletException {
    PageContext pc = createPageContext();
    RequestContext rc = new RequestContext((HttpServletRequest) pc.getRequest());
    assertEquals("theme test message", rc.getThemeMessage("themetest"));
    assertEquals("theme test message", rc.getThemeMessage("themetest", (String[]) null));
    assertEquals("theme test message", rc.getThemeMessage("themetest", "default"));
    assertEquals("theme test message", rc.getThemeMessage("themetest", (Object[]) null, "default"));
    assertEquals("theme test message arg1",
            rc.getThemeMessage("themetestArgs", new String[] {"arg1"}));
    assertEquals("theme test message arg1",
            rc.getThemeMessage("themetestArgs", Arrays.asList(new String[] {"arg1"})));
    assertEquals("default", rc.getThemeMessage("themetesta", "default"));
    assertEquals("default", rc.getThemeMessage("themetesta", (List) null, "default"));
    MessageSourceResolvable resolvable = new DefaultMessageSourceResolvable(new String[] {"themetest"});
    assertEquals("theme test message", rc.getThemeMessage(resolvable));
}
项目:my-spring-cache-redis    文件:AbstractMessageSource.java   
@Override
public final String getMessage(MessageSourceResolvable resolvable, Locale locale)
        throws NoSuchMessageException {

    String[] codes = resolvable.getCodes();
    if (codes == null) {
        codes = new String[0];
    }
    for (String code : codes) {
        String msg = getMessageInternal(code, resolvable.getArguments(), locale);
        if (msg != null) {
            return msg;
        }
    }
    String defaultMessage = resolvable.getDefaultMessage();
    if (defaultMessage != null) {
        return renderDefaultMessage(defaultMessage, resolvable.getArguments(), locale);
    }
    if (codes.length > 0) {
        String fallback = getDefaultMessage(codes[0]);
        if (fallback != null) {
            return fallback;
        }
    }
    throw new NoSuchMessageException(codes.length > 0 ? codes[codes.length - 1] : null, locale);
}
项目:my-spring-cache-redis    文件:AbstractMessageSource.java   
/**
 * Searches through the given array of objects, finds any MessageSourceResolvable
 * objects and resolves them.
 * <p>Allows for messages to have MessageSourceResolvables as arguments.
 * @param args array of arguments for a message
 * @param locale the locale to resolve through
 * @return an array of arguments with any MessageSourceResolvables resolved
 */
@Override
protected Object[] resolveArguments(Object[] args, Locale locale) {
    if (args == null) {
        return new Object[0];
    }
    List<Object> resolvedArgs = new ArrayList<Object>(args.length);
    for (Object arg : args) {
        if (arg instanceof MessageSourceResolvable) {
            resolvedArgs.add(getMessage((MessageSourceResolvable) arg, locale));
        }
        else {
            resolvedArgs.add(arg);
        }
    }
    return resolvedArgs.toArray(new Object[resolvedArgs.size()]);
}
项目:spring    文件:AbstractMessageSource.java   
@Override
public final String getMessage(MessageSourceResolvable resolvable, Locale locale)
        throws NoSuchMessageException {

    String[] codes = resolvable.getCodes();
    if (codes == null) {
        codes = new String[0];
    }
    for (String code : codes) {
        String msg = getMessageInternal(code, resolvable.getArguments(), locale);
        if (msg != null) {
            return msg;
        }
    }
    String defaultMessage = resolvable.getDefaultMessage();
    if (defaultMessage != null) {
        return renderDefaultMessage(defaultMessage, resolvable.getArguments(), locale);
    }
    if (codes.length > 0) {
        String fallback = getDefaultMessage(codes[0]);
        if (fallback != null) {
            return fallback;
        }
    }
    throw new NoSuchMessageException(codes.length > 0 ? codes[codes.length - 1] : null, locale);
}
项目:spring    文件:AbstractMessageSource.java   
/**
 * Searches through the given array of objects, finds any MessageSourceResolvable
 * objects and resolves them.
 * <p>Allows for messages to have MessageSourceResolvables as arguments.
 * @param args array of arguments for a message
 * @param locale the locale to resolve through
 * @return an array of arguments with any MessageSourceResolvables resolved
 */
@Override
protected Object[] resolveArguments(Object[] args, Locale locale) {
    if (args == null) {
        return new Object[0];
    }
    List<Object> resolvedArgs = new ArrayList<Object>(args.length);
    for (Object arg : args) {
        if (arg instanceof MessageSourceResolvable) {
            resolvedArgs.add(getMessage((MessageSourceResolvable) arg, locale));
        }
        else {
            resolvedArgs.add(arg);
        }
    }
    return resolvedArgs.toArray(new Object[resolvedArgs.size()]);
}
项目:sample-boot-hibernate    文件:RestErrorAdvice.java   
protected Warns convert(List<ObjectError> errors) {
    Warns warns = Warns.init();
    errors.forEach((oe) -> {
        String field = "";
        if (1 == oe.getCodes().length) {
            field = bindField(oe.getCodes()[0]);
        } else if (1 < oe.getCodes().length) {
            // low: プリフィックスは冗長なので外してます
            field = bindField(oe.getCodes()[1]);
        }
        List<String> args = Arrays.stream(oe.getArguments())
                .filter((arg) -> !(arg instanceof MessageSourceResolvable))
                .map(Object::toString)
                .collect(Collectors.toList());
        String message = oe.getDefaultMessage();
        if (0 <= oe.getCodes()[0].indexOf("typeMismatch")) {
            message = oe.getCodes()[2];
        }
        warns.add(field, message, args.toArray(new String[0]));
    });
    return warns;
}
项目:ipplan-api    文件:SwaggerConfig.java   
@Bean
public Docket api(){
    return new Docket(DocumentationType.SWAGGER_2)
            .useDefaultResponseMessages(false)
            .forCodeGeneration(false)
            .alternateTypeRules(
                    getAlternateTypeRule(Collection.class, WildcardType.class, List.class,
                            WildcardType.class),
                    getAlternateTypeRule(Stream.class, WildcardType.class, List.class,
                            WildcardType.class),
                    getAlternateTypeRule(DeferredResult.class, List.class, WildcardType.class,
                            List.class, WildcardType.class))
            .ignoredParameterTypes(PagedResourcesAssembler.class, Pageable.class)
            .directModelSubstitute(MessageSourceResolvable.class, String.class)
        .select()
        .apis(RequestHandlerSelectors.any())
        .paths(PathSelectors.regex("/api/.*"))
        .build()
        .apiInfo(apiInfo());
}
项目:svarog    文件:AbstractViewerTree.java   
@Override
public String convertValueToText(Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
    {
        if (value instanceof I18nMessage) {
            return ((I18nMessage) value).i18n();
        }
        if (value instanceof MessageSourceResolvable) {
            return ((MessageSourceResolvable) value).getDefaultMessage();
        }
        String s = value.toString();
        if (s != null && s.length() > 0) {
            return s;
        }
    }
    return super.convertValueToText(value, selected, expanded, leaf, row, hasFocus);
}
项目:svarog    文件:AtomFilterChainTableModel.java   
@Override
public Class<?> getColumnClass(int columnIndex) {
    switch (columnIndex) {

    case INDEX_COLUMN :
            return Integer.class;

    case NAME_COLUMN :
        return String.class;

    case TYPE_COLUMN :
        return MessageSourceResolvable.class;

    case BLOCKING_COLUMN :
        return Boolean.class;

    case ENABLED_COLUMN :
        return Boolean.class;

    default :
        throw new SanityCheckException("Unsupported index [" + columnIndex + "]");

    }
}
项目:springapp    文件:DeindexMessageSource.java   
private MessageSourceResolvable parse2(String code, Object[] args, String defaultMessage) {

        List<MessageSourceResolvable> params = new ArrayList<>();

        Matcher m = pattern.matcher(code);
        boolean result = m.find();
        if (!result) {
            return new DefaultMessageSourceResolvable(new String[] { code }, getArgs(params, args), defaultMessage);
        }

        StringBuffer sb = new StringBuffer();
        do {
            String s = m.group(1);
            params.add(create(sb.toString(), s));
            m.appendReplacement(sb, "[]");
            result = m.find();
        } while (result);
        m.appendTail(sb);

        return new DefaultMessageSourceResolvable(new String[] { code, sb.toString() }, getArgs(params, args),
                defaultMessage);
    }
项目:class-guard    文件:AbstractMessageSource.java   
/**
 * Searches through the given array of objects, finds any MessageSourceResolvable
 * objects and resolves them.
 * <p>Allows for messages to have MessageSourceResolvables as arguments.
 * @param args array of arguments for a message
 * @param locale the locale to resolve through
 * @return an array of arguments with any MessageSourceResolvables resolved
 */
@Override
protected Object[] resolveArguments(Object[] args, Locale locale) {
    if (args == null) {
        return new Object[0];
    }
    List<Object> resolvedArgs = new ArrayList<Object>(args.length);
    for (Object arg : args) {
        if (arg instanceof MessageSourceResolvable) {
            resolvedArgs.add(getMessage((MessageSourceResolvable) arg, locale));
        }
        else {
            resolvedArgs.add(arg);
        }
    }
    return resolvedArgs.toArray(new Object[resolvedArgs.size()]);
}
项目:class-guard    文件:MessageTagTests.java   
public void testRequestContext() throws ServletException {
    PageContext pc = createPageContext();
    RequestContext rc = new RequestContext((HttpServletRequest) pc.getRequest(), pc.getServletContext());
    assertEquals("test message", rc.getMessage("test"));
    assertEquals("test message", rc.getMessage("test", (Object[]) null));
    assertEquals("test message", rc.getMessage("test", "default"));
    assertEquals("test message", rc.getMessage("test", (Object[]) null, "default"));
    assertEquals("test arg1 message arg2",
            rc.getMessage("testArgs", new String[] {"arg1", "arg2"}, "default"));
    assertEquals("test arg1 message arg2",
            rc.getMessage("testArgs", Arrays.asList(new String[] {"arg1", "arg2"}), "default"));
    assertEquals("default", rc.getMessage("testa", "default"));
    assertEquals("default", rc.getMessage("testa", (List) null, "default"));
    MessageSourceResolvable resolvable = new DefaultMessageSourceResolvable(new String[] {"test"});
    assertEquals("test message", rc.getMessage(resolvable));
}
项目:class-guard    文件:ThemeTagTests.java   
public void testRequestContext() throws ServletException {
    PageContext pc = createPageContext();
    RequestContext rc = new RequestContext((HttpServletRequest) pc.getRequest());
    assertEquals("theme test message", rc.getThemeMessage("themetest"));
    assertEquals("theme test message", rc.getThemeMessage("themetest", (String[]) null));
    assertEquals("theme test message", rc.getThemeMessage("themetest", "default"));
    assertEquals("theme test message", rc.getThemeMessage("themetest", (Object[]) null, "default"));
    assertEquals("theme test message arg1",
            rc.getThemeMessage("themetestArgs", new String[] {"arg1"}));
    assertEquals("theme test message arg1",
            rc.getThemeMessage("themetestArgs", Arrays.asList(new String[] {"arg1"})));
    assertEquals("default", rc.getThemeMessage("themetesta", "default"));
    assertEquals("default", rc.getThemeMessage("themetesta", (List) null, "default"));
    MessageSourceResolvable resolvable = new DefaultMessageSourceResolvable(new String[] {"themetest"});
    assertEquals("theme test message", rc.getThemeMessage(resolvable));
}
项目:lams    文件:DefaultMessageSourceResolvable.java   
@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());
}
项目:lams    文件:DelegatingMessageSource.java   
@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] : null);
        throw new NoSuchMessageException(code, locale);
    }
}
项目:onboarding-service    文件:InputErrorsConverter.java   
/**
 * For some reason Spring puts MessageSourceResolvable as argument so need to remove it
 */
private List<String> getArguments(ObjectError error) {
    if (error.getArguments() == null) {
        return emptyList();
    }
    return Arrays.stream(error.getArguments())
            .filter(arg -> !(arg instanceof MessageSourceResolvable))
            .map(Object::toString)
            .collect(toList());
}
项目:spring4-understanding    文件:DefaultMessageSourceResolvable.java   
@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());
}
项目:spring4-understanding    文件:DelegatingMessageSource.java   
@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] : null);
        throw new NoSuchMessageException(code, locale);
    }
}
项目:spring4-understanding    文件:StaticMessageSourceTests.java   
@Test
public void nestedMessageSourceWithParamInChild() {
    StaticMessageSource source = new StaticMessageSource();
    StaticMessageSource parent = new StaticMessageSource();
    source.setParentMessageSource(parent);

    source.addMessage("param", Locale.ENGLISH, "value");
    parent.addMessage("with.param", Locale.ENGLISH, "put {0} here");

    MessageSourceResolvable resolvable = new DefaultMessageSourceResolvable(
            new String[] {"with.param"}, new Object[] {new DefaultMessageSourceResolvable("param")});

    assertEquals("put value here", source.getMessage(resolvable, Locale.ENGLISH));
}
项目:spring4-understanding    文件:StaticMessageSourceTests.java   
@Test
public void nestedMessageSourceWithParamInParent() {
    StaticMessageSource source = new StaticMessageSource();
    StaticMessageSource parent = new StaticMessageSource();
    source.setParentMessageSource(parent);

    parent.addMessage("param", Locale.ENGLISH, "value");
    source.addMessage("with.param", Locale.ENGLISH, "put {0} here");

    MessageSourceResolvable resolvable = new DefaultMessageSourceResolvable(
            new String[] {"with.param"}, new Object[] {new DefaultMessageSourceResolvable("param")});

    assertEquals("put value here", source.getMessage(resolvable, Locale.ENGLISH));
}
项目:my-spring-cache-redis    文件:DefaultMessageSourceResolvable.java   
@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());
}
项目:my-spring-cache-redis    文件:DelegatingMessageSource.java   
@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] : null);
        throw new NoSuchMessageException(code, locale);
    }
}
项目:java-samples    文件:FailSafeMessageSource.java   
@Override
public String getMessage(final MessageSourceResolvable resolvable, final Locale locale)
        throws NoSuchMessageException {
    try {
        return source.getMessage(resolvable, locale);
    } catch (NoSuchMessageException e) {
        return getUnknownMessages(resolvable.getCodes());
    }
}
项目:spring    文件:DefaultMessageSourceResolvable.java   
@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()));
}
项目:spring    文件:DelegatingMessageSource.java   
@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] : null);
        throw new NoSuchMessageException(code, locale);
    }
}
项目:communote-server    文件:ResourceBundleManagerMessageSource.java   
/**
 * {@inheritDoc}
 */
public String getMessage(MessageSourceResolvable resolvable, Locale locale)
        throws NoSuchMessageException {
    for (String code : resolvable.getCodes()) {
        String message = getMessage(code, resolvable.getArguments(), locale);
        if (message != null && message.length() > 0) {
            return message;
        }
    }
    return resolvable.getDefaultMessage();
}
项目:spring-struts-forwardport    文件:SpringBindingActionForm.java   
private Object[] resolveArguments(Object[] arguments) {
    if (arguments == null || arguments.length == 0) {
        return arguments;
    }
    for (int i = 0; i < arguments.length; i++) {
        Object arg = arguments[i];
        if (arg instanceof MessageSourceResolvable) {
            MessageSourceResolvable resolvable = (MessageSourceResolvable)arg;
            String[] codes = resolvable.getCodes();
            boolean resolved = false;
            if (this.messageResources != null) {
                for (int j = 0; j < codes.length; j++) {
                    String code = codes[j];
                    if (this.messageResources.isPresent(this.locale, code)) {
                        arguments[i] = this.messageResources.getMessage(
                                this.locale, code, resolveArguments(resolvable.getArguments()));
                        resolved = true;
                        break;
                    }
                }
            }
            if (!resolved) {
                arguments[i] = resolvable.getDefaultMessage();
            }
        }
    }
    return arguments;
}
项目:springapp    文件:ResponseHelperImpl.java   
@Override
public <T> Response<T> createResponse(StatusCode statusCode, List<? extends MessageSourceResolvable> messages) {
    Response<T> response = new Response<>();
    response.setStatusCode(statusCode.code());
    response.setDescription(getMessageList(messages));
    return response;
}
项目:spring-component-framework    文件:CombinedMessageSource.java   
@Override
public String getMessage(MessageSourceResolvable resolvable, Locale locale) throws NoSuchMessageException {
    String message = null;
    for (ResourceBundleMessageSource source : sources) {
        try {
            message = source.getMessage(resolvable, locale);
            break;
        } catch (NoSuchMessageException e) {
            //continue
        }
    }
    if( message == null )
        return super.getMessage(resolvable, locale);
    return message;
}
项目:grails-icu    文件:ICUAbstractMessageSource.java   
@Override
public final String getMessage(MessageSourceResolvable resolvable, Locale locale)
        throws NoSuchMessageException {

    String[] codes = resolvable.getCodes();
    if (codes == null) {
        codes = new String[0];
    }
    ICUMessageArguments args = new ICUListMessageArguments(resolvable.getArguments());
    for (String code : codes) {
        String msg = getMessageInternal(code, args, locale);
        if (msg != null) {
            return msg;
        }
    }
    String defaultMessage = resolvable.getDefaultMessage();
    if (defaultMessage != null) {
        return renderDefaultMessage(defaultMessage, args, locale);
    }
    if (codes.length > 0) {
        String fallback = getDefaultMessage(codes[0]);
        if (fallback != null) {
            return fallback;
        }
    }
    throw new NoSuchMessageException(codes.length > 0 ? codes[codes.length - 1] : null, locale);
}
项目:grails-icu    文件:ICUAbstractMessageSource.java   
/**
 * Searches through the given arguments, finds any MessageSourceResolvable
 * objects and resolves them.
 * <p>Allows for messages to have MessageSourceResolvables as arguments.
 * @param args arguments for a message
 * @param locale the locale to resolve through
 */
@Override
protected ICUMessageArguments resolveArguments(ICUMessageArguments args, final Locale locale) {
    return args.transform(new ICUMessageArguments.Transformation() {
        @Override
        public Object transform(Object item) {
            if (item instanceof MessageSourceResolvable)
                return getMessage((MessageSourceResolvable) item, locale);
            return item;
        }
    });
}
项目:sqlapp    文件:MessageSourceUtil.java   
public static List<String> getMessageList(List<MessageSourceResolvable> messages) {
    Locale locale = LocaleContextHolder.getLocale();
    List<String> list = new ArrayList<>(messages.size());
    for (MessageSourceResolvable resolvable : messages) {
        list.add(messageSource.getMessage(resolvable, locale));
    }
    return list;
}
项目:sqlapp    文件:LogicalErrorUtilTest.java   
@Test
public void testResolveFromCode() {
    MessageSourceResolvable resolvable = LogicalErrorUtil.resolve(new Code<String>() {
        @Override
        public String code() {
            return "property";
        }
    });
    assertNotNull(resolvable.getCodes());
    assertEquals(1, resolvable.getCodes().length);
    assertEquals("property", resolvable.getCodes()[0]);
    assertNotNull(resolvable.getArguments());
    assertEquals(0, resolvable.getArguments().length);
    assertNull(resolvable.getDefaultMessage());
}
项目:sqlapp    文件:LogicalErrorUtilTest.java   
@Test
public void testResolveFromString() {
    MessageSourceResolvable resolvable = LogicalErrorUtil.resolve("property");
    assertNotNull(resolvable.getCodes());
    assertEquals(1, resolvable.getCodes().length);
    assertEquals("property", resolvable.getCodes()[0]);
    assertNotNull(resolvable.getArguments());
    assertEquals(0, resolvable.getArguments().length);
    assertNull(resolvable.getDefaultMessage());
}