Mercurial > hg > release > icedtea7-forest-2.0 > jaxp
view sources/jaxp_src/src/com/sun/org/apache/xerces/internal/impl/msg/XMLMessageFormatter_ja.java @ 276:b68688478d61
7023289: jaxp 1.4.5 development jdk7 2nd integration
author | andrew |
---|---|
date | Wed, 28 Sep 2011 17:49:24 +0100 |
parents | |
children | b8d01501956a |
line wrap: on
line source
/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright (c) 1997-2010 Oracle and/or its affiliates. All rights reserved. * * The contents of this file are subject to the terms of either the GNU * General Public License Version 2 only ("GPL") or the Common Development * and Distribution License("CDDL") (collectively, the "License"). You * may not use this file except in compliance with the License. You can * obtain a copy of the License at * https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html * or packager/legal/LICENSE.txt. See the License for the specific * language governing permissions and limitations under the License. * * When distributing the software, include this License Header Notice in each * file and include the License file at packager/legal/LICENSE.txt. * * GPL Classpath Exception: * Oracle designates this particular file as subject to the "Classpath" * exception as provided by Oracle in the GPL Version 2 section of the License * file that accompanied this code. * * Modifications: * If applicable, add the following below the License Header, with the fields * enclosed by brackets [] replaced by your own identifying information: * "Portions Copyright [year] [name of copyright owner]" * * Contributor(s): * If you wish your version of this file to be governed by only the CDDL or * only the GPL Version 2, indicate your decision by adding "[Contributor] * elects to include this software in this distribution under the [CDDL or GPL * Version 2] license." If you don't indicate a single choice of license, a * recipient has the option to distribute your version of this file under * either the CDDL, the GPL Version 2 or to extend the choice of license to * its licensees as provided above. However, if you add GPL Version 2 code * and therefore, elected the GPL Version 2 license, then the option applies * only if the new code is made subject to such option by the copyright * holder. * * * This file incorporates work covered by the following copyright and * permission notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.sun.org.apache.xerces.internal.impl.msg; import java.util.Locale; import java.util.MissingResourceException; import java.util.ResourceBundle; import java.util.PropertyResourceBundle; import com.sun.org.apache.xerces.internal.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_ja.java 3021 2011-03-01 00:12:28Z joehw $ * */ public class XMLMessageFormatter_ja implements MessageFormatter { /** * The domain of messages concerning the XML 1.0 specification. */ public static final String XML_DOMAIN = "http://www.w3.org/TR/1998/REC-xml-19980210"; public static final String XMLNS_DOMAIN = "http://www.w3.org/TR/1999/REC-xml-names-19990114"; // private objects to cache the locale and resource bundle private Locale fLocale = null; private ResourceBundle fResourceBundle = null; // // MessageFormatter methods // /** * 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. */ public String formatMessage(Locale locale, String key, Object[] arguments) throws MissingResourceException { 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; } }