FileDocCategorySizeDatePackage
XMLMessageFormatter.javaAPI DocApache Xerces 3.0.14350Fri Sep 14 20:33:52 BST 2007org.apache.xerces.impl.msg

XMLMessageFormatter

public class XMLMessageFormatter extends Object implements org.apache.xerces.util.MessageFormatter
XMLMessageFormatter provides error messages for the XML 1.0 Recommendation and for the Namespaces Recommendation
xerces.internal
author
Eric Ye, IBM
version
$Id: XMLMessageFormatter.java 446717 2006-09-15 20:29:45Z mrglavas $

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("org.apache.xerces.impl.msg.XMLMessages", locale);
                // memorize the most-recent locale
                fLocale = locale;
            }
            if (fResourceBundle == null)
                fResourceBundle = PropertyResourceBundle.getBundle("org.apache.xerces.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;