xmlmessages.java

来自「JAVA 所有包」· Java 代码 · 共 213 行

JAVA
213
字号
/* * Copyright 1999-2004 The Apache Software Foundation. * * Licensed 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. *//* * $Id: XMLMessages.java,v 1.2.4.1 2005/09/15 07:45:48 suresh_emailid Exp $ */package com.sun.org.apache.xml.internal.res;import java.util.ListResourceBundle;import java.util.Locale;import java.util.MissingResourceException;import java.util.ResourceBundle;/** * A utility class for issuing XML error messages. * @xsl.usage internal */public class XMLMessages{  /** The local object to use.  */  protected Locale fLocale = Locale.getDefault();  /** The language specific resource object for XML messages.  */  private static ListResourceBundle XMLBundle = null;  /** The class name of the XML error message string table.    */  private static final String XML_ERROR_RESOURCES =    "com.sun.org.apache.xml.internal.res.XMLErrorResources";  /** String to use if a bad message code is used. */  protected static final String BAD_CODE = "BAD_CODE";  /** String to use if the message format operation failed.  */  protected static final String FORMAT_FAILED = "FORMAT_FAILED";      /**   * Set the Locale object to use.   *    * @param locale non-null reference to Locale object.   */   public void setLocale(Locale locale)  {    fLocale = locale;  }  /**   * Get the Locale object that is being used.   *    * @return non-null reference to Locale object.   */  public Locale getLocale()  {    return fLocale;  }      /**   * Creates a message from the specified key and replacement   * arguments, localized to the given locale.   *   * @param msgKey    The key for the message text.   * @param args      The arguments to be used as replacement text   *                  in the message created.   *   * @return The formatted message string.   */  public static final String createXMLMessage(String msgKey, Object args[])  {    if (XMLBundle == null)      XMLBundle = loadResourceBundle(XML_ERROR_RESOURCES);        if (XMLBundle != null)    {      return createMsg(XMLBundle, msgKey, args);    }    else      return "Could not load any resource bundles.";  }  /**   * Creates a message from the specified key and replacement   * arguments, localized to the given locale.   *   * @param fResourceBundle The resource bundle to use.   * @param msgKey  The message key to use.   * @param args      The arguments to be used as replacement text   *                  in the message created.   *   * @return The formatted message string.   */  public static final String createMsg(ListResourceBundle fResourceBundle,	String msgKey, Object args[])  //throws Exception  {    String fmsg = null;    boolean throwex = false;    String msg = null;    if (msgKey != null)      msg = fResourceBundle.getString(msgKey);    if (msg == null)    {      msg = fResourceBundle.getString(BAD_CODE);      throwex = true;    }    if (args != null)    {      try      {        // Do this to keep format from crying.        // This is better than making a bunch of conditional        // code all over the place.        int n = args.length;        for (int i = 0; i < n; i++)        {          if (null == args[i])            args[i] = "";        }        fmsg = java.text.MessageFormat.format(msg, args);      }      catch (Exception e)      {        fmsg = fResourceBundle.getString(FORMAT_FAILED);        fmsg += " " + msg;      }    }    else      fmsg = msg;    if (throwex)    {      throw new RuntimeException(fmsg);    }    return fmsg;  }  /**   * Return a named ResourceBundle for a particular locale.  This method mimics the behavior   * of ResourceBundle.getBundle().   *   * @param className The class name of the resource bundle.   * @return the ResourceBundle   * @throws MissingResourceException   */  public static ListResourceBundle loadResourceBundle(String className)          throws MissingResourceException  {        Locale locale = Locale.getDefault();    try    {      return (ListResourceBundle)ResourceBundle.getBundle(className, locale);    }    catch (MissingResourceException e)    {      try  // try to fall back to en_US if we can't load      {        // Since we can't find the localized property file,        // fall back to en_US.        return (ListResourceBundle)ResourceBundle.getBundle(          className, new Locale("en", "US"));      }      catch (MissingResourceException e2)      {        // Now we are really in trouble.        // very bad, definitely very bad...not going to get very far        throw new MissingResourceException(          "Could not load any resource bundles." + className, className, "");      }    }  }  /**   * Return the resource file suffic for the indicated locale   * For most locales, this will be based the language code.  However   * for Chinese, we do distinguish between Taiwan and PRC   *   * @param locale the locale   * @return an String suffix which can be appended to a resource name   */  protected static String getResourceSuffix(Locale locale)  {    String suffix = "_" + locale.getLanguage();    String country = locale.getCountry();    if (country.equals("TW"))      suffix += "_" + country;    return suffix;  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?