FileDocCategorySizeDatePackage
JAXPValidationMessageFormatter.javaAPI DocJava SE 6 API3452Tue Jun 10 00:22:48 BST 2008com.sun.org.apache.xerces.internal.jaxp.validation

JAXPValidationMessageFormatter

public final class JAXPValidationMessageFormatter extends Object

Used to format JAXP Validation API error messages using a specified locale.

author
Michael Glavassevich, IBM
version
$Id: JAXPValidationMessageFormatter.java,v 1.1.4.1 2005/09/05 11:52:09 sunithareddy Exp $

Fields Summary
Constructors Summary
Methods Summary
public static 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
the formatted message.
throws
MissingResourceException Thrown if the message with the specified key cannot be found.


        ResourceBundle resourceBundle = null;
        if (locale != null) {
            resourceBundle = 
                PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.JAXPValidationMessages", locale);
        }
        else {
            resourceBundle = 
                PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.JAXPValidationMessages");
        }

        // 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;