You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by an...@apache.org on 2005/05/06 17:40:07 UTC

cvs commit: xml-xerces/java/src/org/apache/xerces/util DatatypeMessageFormatter.java

ankitp      2005/05/06 08:40:07

  Added:       java/src/org/apache/xerces/util
                        DatatypeMessageFormatter.java
  Log:
  message formatter used by JAXP 1.3 datatype impl
  
  Revision  Changes    Path
  1.1                  xml-xerces/java/src/org/apache/xerces/util/DatatypeMessageFormatter.java
  
  Index: DatatypeMessageFormatter.java
  ===================================================================
  /*
   * DatatypeMessageFormatter.java
   *
   * Created on June 28, 2004, 9:15 AM
   */
  
  package org.apache.xerces.util;
  
  import java.util.Locale;
  import java.util.MissingResourceException;
  import java.util.PropertyResourceBundle;
  import java.util.ResourceBundle;
  
  /**
   *
   * @author  Neeraj Bajaj, Sun Microsystems
   */
  
  public class DatatypeMessageFormatter {
      
      static final String BASE_NAME = "org.apache.xerces.impl.msg.DatatypeMessages";
      
      /**
       * Formats a message with the specified arguments using the given
       * locale information.
       * 
       * @param locale    The locale of the message.
       * @param key       The message key.
       * @param arguments The message replacement text arguments. The order
       *                  of the arguments must match that of the placeholders
       *                  in the actual message.
       * 
       * @return          the formatted message.
       *
       * @throws MissingResourceException Thrown if the message with the
       *                                  specified key cannot be found.
       */
      public static String formatMessage(Locale locale, 
          String key, Object[] arguments)
          throws MissingResourceException {
  
          ResourceBundle resourceBundle = null;
          if (locale != null) {
              resourceBundle = 
                  PropertyResourceBundle.getBundle(BASE_NAME, locale);
          }
          else {
              resourceBundle = 
                  PropertyResourceBundle.getBundle(BASE_NAME);
          }
  
          // format message
          String msg;
          try {
              msg = resourceBundle.getString(key);
              if (arguments != null) {
                  try {
                      msg = java.text.MessageFormat.format(msg, arguments);
                  } 
                  catch (Exception e) {
                      msg = resourceBundle.getString("FormatFailed");
                      msg += " " + resourceBundle.getString(key);
                  }
              } 
          }
          
          // error
          catch (MissingResourceException e) {
              msg = resourceBundle.getString("BadMessageKey");
              throw new MissingResourceException(key, msg, key);
          }
  
          // no message
          if (msg == null) {
              msg = key;
              if (arguments.length > 0) {
                  StringBuffer str = new StringBuffer(msg);
                  str.append('?');
                  for (int i = 0; i < arguments.length; i++) {
                      if (i > 0) {
                          str.append('&');
                      }
                      str.append(String.valueOf(arguments[i]));
                  }
              }
          }
          return msg;
      }
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org