public static FacesMessage getMessage()

in tobago-core/src/main/java/org/apache/myfaces/tobago/util/MessageUtils.java [71:130]


  public static FacesMessage getMessage(
      final FacesContext facesContext, final Locale locale,
      final FacesMessage.Severity severity, final String messageId, final Object... args) {

    final ResourceBundle appBundle = getApplicationBundle(facesContext, locale);
    String summary = getBundleString(appBundle, messageId);
    String detail = getBundleString(appBundle, messageId + DETAIL_SUFFIX);

    if (summary == null || detail == null) {
      final ResourceBundle tobagoMessages
          = ResourceBundle.getBundle("org.apache.myfaces.tobago.context.TobagoMessageBundle", locale);
      if (summary == null) {
        summary = getBundleString(tobagoMessages, messageId);
      }
      if (detail == null) {
        detail = getBundleString(tobagoMessages, messageId + DETAIL_SUFFIX);
      }

      if (summary == null || detail == null) {
        final ResourceBundle tobagoBundle
            = ResourceBundle.getBundle("org.apache.myfaces.tobago.context.TobagoResourceBundle", locale);
        if (summary == null) {
          summary = getBundleString(tobagoBundle, messageId);
        }
        if (detail == null) {
          detail = getBundleString(tobagoBundle, messageId + DETAIL_SUFFIX);
        }

        if (summary == null || detail == null) {
          final ResourceBundle defBundle = getDefaultBundle(facesContext, locale);
          if (summary == null) {
            summary = getBundleString(defBundle, messageId);
          }
          if (detail == null) {
            detail = getBundleString(defBundle, messageId + DETAIL_SUFFIX);
          }
        }
      }
    }

    if (summary == null && detail == null) {
      //Neither detail nor summary found
      facesContext.getExternalContext().log("No message with id " + messageId + " found in any bundle");
      return new FacesMessage(severity, messageId, null);
    }

    if (args != null && args.length > 0) {
      MessageFormat format;
      if (summary != null) {
        format = new MessageFormat(summary, locale);
        summary = format.format(args);
      }

      if (detail != null) {
        format = new MessageFormat(detail, locale);
        detail = format.format(args);
      }
    }
    return new LabelValueExpressionFacesMessage(severity, summary, detail);
  }