2005/5/9

     
 

DOMException.h

artefaktur
// -*- mode:C++; tab-width:2; c-basic-offset:2; indent-tabs-mode:nil -*- 
//
// Copyright (C) 2000-2005 by Roger Rene Kommer / artefaktur, Kassel, Germany.
// 
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Library General Public License (LGPL).
// 
// 
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the 
// License ACDK-FreeLicense document enclosed in the distribution
// for more for more details.
// This file is part of the Artefaktur Component Development Kit:
//                         ACDK
// 
// Please refer to
// - http://www.acdk.de
// - http://www.artefaktur.com
// - http://acdk.sourceforge.net
// for more information.
// 
// $Header: /cvsroot/acdk/acdk/acdk_xml/src/org/w3c/dom/DOMException.h,v 1.14 2005/02/05 10:45:37 kommer Exp $

/*
  Documentation:
  Copyright (c) 2004 World Wide Web Consortium,
 
  (Massachusetts Institute of Technology, European Research Consortium for
  Informatics and Mathematics, Keio University). All Rights Reserved. This
  work is distributed under the W3C(r) Software License [1] in the hope that
  it will be useful, but WITHOUT ANY WARRANTY; without even the implied
  warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
  [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
*/

#ifndef org_w3c_dom_DOMException_h
#define org_w3c_dom_DOMException_h

#include <acdk.h>

namespace org {
namespace w3c {
namespace dom {



enum ErrorCodes
{
  /**
     * If index or size is negative, or greater than the allowed value.
     */
  INDEX_SIZE_ERR = 1,
    /**
     * If the specified range of text does not fit into a 
     * <code>DOMString</code>.
     */
    DOMSTRING_SIZE_ERR = 2,
    /**
     * If any <code>Node</code> is inserted somewhere it doesn't belong.
     */
    HIERARCHY_REQUEST_ERR = 3,
    /**
     * If a <code>Node</code> is used in a different document than the one 
     * that created it (that doesn't support it).
     */
    WRONG_DOCUMENT_ERR = 4,
    /**
     * If an invalid or illegal character is specified, such as in an XML name.
     */
    INVALID_CHARACTER_ERR = 5,
    /**
     * If data is specified for a <code>Node</code> which does not support 
     * data.
     */
    NO_DATA_ALLOWED_ERR = 6,
    /**
     * If an attempt is made to modify an object where modifications are not 
     * allowed.
     */
    NO_MODIFICATION_ALLOWED_ERR = 7,
    /**
     * If an attempt is made to reference a <code>Node</code> in a context 
     * where it does not exist.
     */
    NOT_FOUND_ERR = 8,
    /**
     * If the implementation does not support the requested type of object or 
     * operation.
     */
    NOT_SUPPORTED_ERR = 9,
    /**
     * If an attempt is made to add an attribute that is already in use 
     * elsewhere.
     */
    INUSE_ATTRIBUTE_ERR = 10,
    /**
     * If an attempt is made to use an object that is not, or is no longer, 
     * usable.
     * @since DOM Level 2
     */
    INVALID_STATE_ERR = 11,
    /**
     * If an invalid or illegal string is specified.
     * @since DOM Level 2
     */
    SYNTAX_ERR = 12,
    /**
     * If an attempt is made to modify the type of the underlying object.
     * @since DOM Level 2
     */
    INVALID_MODIFICATION_ERR = 13,
    /**
     * If an attempt is made to create or change an object in a way which is 
     * incorrect with regard to namespaces.
     * @since DOM Level 2
     */
    NAMESPACE_ERR = 14,
    /**
     * If a parameter or an operation is not supported by the underlying 
     * object.
     * @since DOM Level 2
     */
    INVALID_ACCESS_ERR = 15,
    /**
     * If a call to a method such as <code>insertBefore</code> or 
     * <code>removeChild</code> would make the <code>Node</code> invalid 
     * with respect to "partial validity", this exception would be raised 
     * and the operation would not be done. This code is used in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Val-20040127/'>DOM Level 3 Validation</a>]
     * . Refer to this specification for further information.
     * @since DOM Level 3
     */
     VALIDATION_ERR            = 16,
     /**
     *  If the type of an object is incompatible with the expected type of the 
     * parameter associated to the object. 
     * @since DOM Level 3
     */
    TYPE_MISMATCH_ERR         = 17
};
ACDK_DEF_LIB_ENUM(ACDK_ORG_XML_PUBLIC, ErrorCodes);

ACDK_DECL_THROWABLE_FQ(DOMException, acdk::lang::, Exception);


/**
 * DOM operations only raise exceptions in "exceptional" circumstances, i.e., 
 * when an operation is impossible to perform (either for logical reasons, 
 * because data is lost, or because the implementation has become unstable). 
 * In general, DOM methods return specific error values in ordinary 
 * processing situations, such as out-of-bound errors when using 
 * <code>NodeList</code>.
 * <p>Implementations should raise other exceptions under other circumstances. 
 * For example, implementations should raise an implementation-dependent 
 * exception if a <code>null</code> argument is passed when <code>null</code>
 *  was not expected.
 * <p>Some languages and object systems do not support the concept of 
 * exceptions. For such systems, error conditions may be indicated using 
 * native error reporting mechanisms. For some bindings, for example, 
 * methods may return error codes similar to those listed in the 
 * corresponding method descriptions.
 * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document acdk::lang::Object Model (DOM) Level 3 Core Specification</a>.

  @author Roger Rene Kommer
  @version $Revision: 1.14 $DOMException
  @date $Date: 2005/02/05 10:45:37 $
*/
class ACDK_ORG_XML_PUBLIC DOMException
: extends acdk::lang::Exception
{
  ACDK_WITH_METAINFO(DOMException)
private:
  short _code;
public: 
 
  DOMException(short code, IN(RString) s)
  : Exception(s),
    _code(code)
  {
  }
  /// @see enumeration ErrorCodes
  short getCode() { return _code; }
};

} // namespace dom
} // namespace w3c
} // namespace org
#endif //org_w3c_dom_DOMException_h