elena 2004/01/29 13:03:06 Modified: java/src/org/apache/xerces/dom DOMMessageFormatter.java Log: Let DOMMessageFormatter also support reporting XML messages (needed for well-formness check). Revision Changes Path 1.3 +43 -16 xml-xerces/java/src/org/apache/xerces/dom/DOMMessageFormatter.java Index: DOMMessageFormatter.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/dom/DOMMessageFormatter.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- DOMMessageFormatter.java 17 Jul 2002 18:36:58 -0000 1.2 +++ DOMMessageFormatter.java 29 Jan 2004 21:03:06 -0000 1.3 @@ -69,8 +69,11 @@ */ public class DOMMessageFormatter { + public static final String XML_DOMAIN = "http://www.w3.org/TR/1998/REC-xml-19980210"; public static final String DOM_DOMAIN = "http://www.w3.org/dom/DOMTR"; public static final String SERIALIZER_DOMAIN = "http://apache.org/xml/serializer"; + + /** * Formats a message with the specified arguments using the given @@ -90,33 +93,57 @@ public static String formatMessage(String domain, String key, Object[] arguments) throws MissingResourceException { - + + // TODO: need to support locale information ResourceBundle resourceBundle = null; if(domain.equals(DOM_DOMAIN)) { resourceBundle = PropertyResourceBundle.getBundle("org.apache.xerces.impl.msg.DOMMessages"); } else if (domain.equals(SERIALIZER_DOMAIN)) { resourceBundle = PropertyResourceBundle.getBundle("org.apache.xerces.impl.msg.XMLSerializerMessages"); - } else { + } else if (domain.equals(XML_DOMAIN)){ + resourceBundle = PropertyResourceBundle.getBundle("org.apache.xerces.impl.msg.XMLMessages"); + + }else { throw new MissingResourceException("Unknown domain" + domain, null, key); } - if (resourceBundle == null) - throw new MissingResourceException("Property file not found!", "org.apache.xerces.impl.msg.DOMMessages", key); - String msg = key + ": " + resourceBundle.getString(key); + // format message + String msg; + try { + msg = key + ": " + 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); + } + } + } + - 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 = resourceBundle.getString("BadMessageKey"); - throw new MissingResourceException(msg, "org.apache.xerces.impl.msg.DOMMessages", key); + 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]