FileDocCategorySizeDatePackage
XMLMessageFormatter.javaAPI DocJava SE 5 API6171Fri Aug 26 14:55:48 BST 2005com.sun.org.apache.xerces.internal.impl.msg

XMLMessageFormatter

public class XMLMessageFormatter extends Object implements MessageFormatter
XMLMessageFormatter provides error messages for the XML 1.0 Recommendation and for the Namespaces Recommendation
author
Eric Ye, IBM
version
$Id: XMLMessageFormatter.java,v 1.4 2002/01/29 01:15:13 lehors Exp $

Fields Summary
public static final String
XML_DOMAIN
The domain of messages concerning the XML 1.0 specification.
public static final String
XMLNS_DOMAIN
private Locale
fLocale
private ResourceBundle
fResourceBundle
Constructors Summary
Methods Summary
public java.lang.StringformatMessage(java.util.Locale locale, java.lang.String key, java.lang.Object[] arguments)
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
Returns the formatted message.
throws
MissingResourceException Thrown if the message with the specified key cannot be found.

    
    //
    // MessageFormatter methods
    //

                                                                                                                                                       
            
          
        
        if (fResourceBundle == null || locale != fLocale) {
            if (locale != null) {
                fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", locale);
                // memorize the most-recent locale
                fLocale = locale;
            }
            if (fResourceBundle == null)
                fResourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLMessages");
        }
        
        // format message
        String msg;
        try {
            msg = fResourceBundle.getString(key);
            if (arguments != null) {
                try {
                    msg = java.text.MessageFormat.format(msg, arguments);
                } 
                catch (Exception e) {
                    msg = fResourceBundle.getString("FormatFailed");
                    msg += " " + fResourceBundle.getString(key);
                }
            } 
        }

        // error
        catch (MissingResourceException e) {
            msg = fResourceBundle.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;