DOMError.hpp
上传用户:zhuqijet
上传日期:2013-06-25
资源大小:10074k
文件大小:10k
源码类别:

词法分析

开发平台:

Visual C++

  1. #ifndef DOMError_HEADER_GUARD_
  2. #define DOMError_HEADER_GUARD_
  3. /*
  4.  * The Apache Software License, Version 1.1
  5.  *
  6.  * Copyright (c) 2002 The Apache Software Foundation.  All rights
  7.  * reserved.
  8.  *
  9.  * Redistribution and use in source and binary forms, with or without
  10.  * modification, are permitted provided that the following conditions
  11.  * are met:
  12.  *
  13.  * 1. Redistributions of source code must retain the above copyright
  14.  *    notice, this list of conditions and the following disclaimer.
  15.  *
  16.  * 2. Redistributions in binary form must reproduce the above copyright
  17.  *    notice, this list of conditions and the following disclaimer in
  18.  *    the documentation and/or other materials provided with the
  19.  *    distribution.
  20.  *
  21.  * 3. The end-user documentation included with the redistribution,
  22.  *    if any, must include the following acknowledgment:
  23.  *       "This product includes software developed by the
  24.  *        Apache Software Foundation (http://www.apache.org/)."
  25.  *    Alternately, this acknowledgment may appear in the software itself,
  26.  *    if and wherever such third-party acknowledgments normally appear.
  27.  *
  28.  * 4. The names "Xerces" and "Apache Software Foundation" must
  29.  *    not be used to endorse or promote products derived from this
  30.  *    software without prior written permission. For written
  31.  *    permission, please contact apache@apache.org.
  32.  *
  33.  * 5. Products derived from this software may not be called "Apache",
  34.  *    nor may "Apache" appear in their name, without prior written
  35.  *    permission of the Apache Software Foundation.
  36.  *
  37.  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  38.  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  39.  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  40.  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
  41.  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  42.  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  43.  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  44.  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  45.  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  46.  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  47.  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  48.  * SUCH DAMAGE.
  49.  * ====================================================================
  50.  *
  51.  * This software consists of voluntary contributions made by many
  52.  * individuals on behalf of the Apache Software Foundation, and was
  53.  * originally based on software copyright (c) 1999, International
  54.  * Business Machines, Inc., http://www.ibm.com .  For more information
  55.  * on the Apache Software Foundation, please see
  56.  * <http://www.apache.org/>.
  57.  */
  58. /*
  59.  * $Log: DOMError.hpp,v $
  60.  * Revision 1.9  2003/05/14 18:06:53  gareth
  61.  * Updated DOMError to http://www.w3.org/TR/2003/WD-DOM-Level-3-Core-20030226/core.html.
  62.  *
  63.  * Revision 1.8  2003/03/07 19:59:04  tng
  64.  * [Bug 11692] Unimplement the hidden constructors and assignment operator to remove warnings from gcc.
  65.  *
  66.  * Revision 1.7  2002/11/04 15:09:24  tng
  67.  * C++ Namespace Support.
  68.  *
  69.  * Revision 1.6  2002/08/22 15:04:57  tng
  70.  * Remove unused parameter variables in inline functions.
  71.  *
  72.  * Revision 1.5  2002/07/15 19:25:25  tng
  73.  * DOM L3:  declare a dummy DOMError::set/getRelatedException
  74.  *
  75.  * Revision 1.4  2002/06/06 21:01:21  tng
  76.  * [Bug 9639] enum_mem in DOMError clashes with constant.
  77.  *
  78.  * Revision 1.3  2002/06/06 20:53:06  tng
  79.  * Documentation Fix: Update the API Documentation for DOM headers
  80.  *
  81.  * Revision 1.2  2002/05/30 19:24:48  knoaman
  82.  * documentation update
  83.  *
  84.  * Revision 1.1  2002/05/23 15:47:24  knoaman
  85.  * DOM L3 core - support for DOMError, DOMErrorHandler and DOMLocator
  86.  *
  87.  */
  88. #include <xercesc/util/XercesDefs.hpp>
  89. XERCES_CPP_NAMESPACE_BEGIN
  90. class DOMLocator;
  91. /**
  92.   * DOMError is an interface that describes an error.
  93.   *
  94.   * @see DOMErrorHandler#handleError
  95.   * @since DOM Level 3
  96.   */
  97. class CDOM_EXPORT DOMError
  98. {
  99. protected:
  100.     // -----------------------------------------------------------------------
  101.     //  Hidden constructors
  102.     // -----------------------------------------------------------------------
  103.     /** @name Hidden constructors */
  104.     //@{    
  105.     DOMError() {};
  106.     //@}
  107. private:
  108.     // -----------------------------------------------------------------------
  109.     // Unimplemented constructors and operators
  110.     // -----------------------------------------------------------------------
  111.     /** @name Unimplemented constructors and operators */
  112.     //@{
  113.     DOMError(const DOMError &);
  114.     DOMError & operator = (const DOMError &);
  115.     //@}
  116. public:
  117.     // -----------------------------------------------------------------------
  118.     //  All constructors are hidden, just the destructor is available
  119.     // -----------------------------------------------------------------------
  120.     /** @name Destructor */
  121.     //@{
  122.     /**
  123.      * Destructor
  124.      *
  125.      */
  126.     virtual ~DOMError() {};
  127.     //@}
  128.     // -----------------------------------------------------------------------
  129.     //  Class types
  130.     // -----------------------------------------------------------------------
  131.     /** @name Public constants */
  132.     //@{
  133.     /**
  134.      * The severity of the error described by the <code>DOMError</code>.
  135.      *
  136.      * @since DOM Level 3
  137.      */
  138.     enum ErrorSeverity
  139.     {
  140.         DOM_SEVERITY_WARNING     = 0,
  141.         DOM_SEVERITY_ERROR       = 1,
  142.         DOM_SEVERITY_FATAL_ERROR = 2
  143.     };
  144.     //@}
  145.     // -----------------------------------------------------------------------
  146.     //  Virtual DOMError interface
  147.     // -----------------------------------------------------------------------
  148.     /** @name Functions introduced in DOM Level 3 */
  149.     //@{
  150.     // -----------------------------------------------------------------------
  151.     //  Getter methods
  152.     // -----------------------------------------------------------------------
  153.     /**
  154.      * Get the severity of the error
  155.      *
  156.      * <p><b>"Experimental - subject to change"</b></p>
  157.      *
  158.      * @see   setSeverity
  159.      * @since DOM Level 3
  160.      */
  161.     virtual short getSeverity() const = 0;
  162.     /**
  163.      * Get the message describing the error that occured.
  164.      *
  165.      * <p><b>"Experimental - subject to change"</b></p>
  166.      *
  167.      * @see   setMessage
  168.      * @since DOM Level 3
  169.      */
  170.     virtual const XMLCh* getMessage() const = 0;
  171.     /**
  172.      * Get the location of the error
  173.      *
  174.      * <p><b>"Experimental - subject to change"</b></p>
  175.      *
  176.      * @see   setLocation
  177.      * @since DOM Level 3
  178.      */
  179.     virtual DOMLocator* getLocation() const = 0;
  180.     /**
  181.      * The related platform dependent exception if any.
  182.      *
  183.      * <p><b>"Experimental - subject to change"</b></p>
  184.      *
  185.      * @see   setRelatedException
  186.      * @since DOM Level 3
  187.      */
  188.     virtual void* getRelatedException() const = 0;
  189.     /**
  190.      * A <code>XMLCh*</code> indicating which related data is expected in 
  191.      * relatedData. Users should refer to the specification of the error
  192.      * in order to find its <code>XMLCh*</code> type and relatedData
  193.      * definitions if any.
  194.      *
  195.      * Note: As an example, [DOM Level 3 Load and Save] does not keep the
  196.      * [baseURI] property defined on a Processing Instruction information item.
  197.      * Therefore, the DOMBuilder generates a SEVERITY_WARNING with type 
  198.      * "infoset-baseURI" and the lost [baseURI] property represented as a
  199.      * DOMString in the relatedData attribute.
  200.      *
  201.      * <p><b>"Experimental - subject to change"</b></p>
  202.      *
  203.      * @see   setType
  204.      * @since DOM Level 3
  205.      */
  206.     virtual const XMLCh* getType() const = 0;
  207.     /**
  208.      * The related DOMError.type dependent data if any.
  209.      *
  210.      * <p><b>"Experimental - subject to change"</b></p>
  211.      *
  212.      * @see   setRelatedData
  213.      * @since DOM Level 3
  214.      */
  215.     virtual void* getRelatedData() const = 0;
  216.     // -----------------------------------------------------------------------
  217.     //  Setter methods
  218.     // -----------------------------------------------------------------------
  219.     /**
  220.      * Set the severity of the error
  221.      *
  222.      * <p><b>"Experimental - subject to change"</b></p>
  223.      *
  224.      * @param severity the type of the error to set
  225.      * @see   getLocation
  226.      * @since DOM Level 3
  227.      */
  228.     virtual void setSeverity(const short severity) = 0;
  229.     /**
  230.      * Set the error message
  231.      *
  232.      * <p><b>"Experimental - subject to change"</b></p>
  233.      *
  234.      * @param message the error message to set.
  235.      * @see   getMessage
  236.      * @since DOM Level 3
  237.      */
  238.     virtual void setMessage(const XMLCh* const message) = 0;
  239.     /**
  240.      * Set the location of the error
  241.      *
  242.      * <p><b>"Experimental - subject to change"</b></p>
  243.      *
  244.      * @param location the location of the error to set.
  245.      * @see   getLocation
  246.      * @since DOM Level 3
  247.      */
  248.     virtual void setLocation(DOMLocator* const location) = 0;
  249.     /**
  250.      * The related platform dependent exception if any.
  251.      *
  252.      * <p><b>"Experimental - subject to change"</b></p>
  253.      *
  254.      * @param exception the related exception to set.
  255.      * @see   getRelatedException
  256.      * @since DOM Level 3
  257.      */
  258.     virtual void setRelatedException(void* exception) const = 0;
  259.     /**
  260.      * A <code>XMLCh*</code> indicating which related data is expected in 
  261.      * relatedData. Users should refer to the specification of the error
  262.      * in order to find its <code>XMLCh*</code> type and relatedData
  263.      * definitions if any.
  264.      *
  265.      * Note: As an example, [DOM Level 3 Load and Save] does not keep the
  266.      * [baseURI] property defined on a Processing Instruction information item.
  267.      * Therefore, the DOMBuilder generates a SEVERITY_WARNING with type 
  268.      * "infoset-baseURI" and the lost [baseURI] property represented as a
  269.      * DOMString in the relatedData attribute.
  270.      *
  271.      * <p><b>"Experimental - subject to change"</b></p>
  272.      *
  273.      * @see   getType
  274.      * @since DOM Level 3
  275.      */
  276.     virtual void setType(const XMLCh* type) = 0;
  277.     /**
  278.      * The related DOMError.type dependent data if any.
  279.      *
  280.      * <p><b>"Experimental - subject to change"</b></p>
  281.      *
  282.      * @see   getRelatedData
  283.      * @since DOM Level 3
  284.      */
  285.     virtual void setRelatedData(void* relatedData) = 0;
  286.     //@}
  287. };
  288. XERCES_CPP_NAMESPACE_END
  289. #endif