参考ソース

■参考ソース

org.hibernate.impl.CriteriaImpl

com.sun.org.apache.xerces.internal.impl.dv.DatatypeException


* Copyright 2001, 2002,2004 The Apache Software Foundation.

package com.sun.org.apache.xerces.internal.impl.dv;

import java.util.ResourceBundle;
import java.util.PropertyResourceBundle;
import java.util.MissingResourceException;

/**
* Base class for datatype exceptions. For DTD types, the exception can be
* created from an error message. For Schema types, it needs an error code
* (as defined in Appendix C of the structure spec), plus an array of arguents,
* for error message substitution.
* 
* @xerces.internal 
*
* @author Sandy Gao, IBM
*
* @version $Id: DatatypeException.java,v 1.4 2007/07/19 04:38:28 ofung Exp $
*/
public class DatatypeException extends Exception {

   /** Serialization version. */
   static final long serialVersionUID = 1940805832730465578L;
   
   // used to store error code and error substitution arguments
   protected String key;
   protected Object[] args;

   /**
    * Create a new datatype exception by providing an error code and a list
    * of error message substitution arguments.
    *
    * @param key  error code
    * @param args error arguments
    */
   public DatatypeException(String key, Object[] args) {
       super(key);
       this.key = key;
       this.args = args;
   }

   /**
    * Return the error code
    *
    * @return  error code
    */
   public String getKey() {
       return key;
   }

   /**
    * Return the list of error arguments
    *
    * @return  error arguments
    */
   public Object[] getArgs() {
       return args;
   }
   
   /**
    * Overrides this method to get the formatted&localized error message.
    * 
    * REVISIT: the system locale is used to load the property file.
    *          do we want to allow the appilcation to specify a
    *          different locale?
    */
   public String getMessage() {
       ResourceBundle resourceBundle = null;
       resourceBundle = PropertyResourceBundle.getBundle("com.sun.org.apache.xerces.internal.impl.msg.XMLSchemaMessages");
       if (resourceBundle == null)
           throw new MissingResourceException("Property file not found!", "com.sun.org.apache.xerces.internal.impl.msg.XMLSchemaMessages", key);

       String msg = resourceBundle.getString(key);
       if (msg == null) {
           msg = resourceBundle.getString("BadMessageKey");
           throw new MissingResourceException(msg, "com.sun.org.apache.xerces.internal.impl.msg.XMLSchemaMessages", key);
       }

       if (args != null) {
           try {
               msg = java.text.MessageFormat.format(msg, args);
           } catch (Exception e) {
               msg = resourceBundle.getString("FormatFailed");
               msg += " " + resourceBundle.getString(key);
           }
       } 

       return msg;
   }
}
最終更新:2010年06月29日 02:34
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。