From 8ad12148c300f10b6add1a171e91ddfe3504660d Mon Sep 17 00:00:00 2001 From: "dwitte%stanford.edu" Date: Mon, 19 Jul 2004 04:04:41 +0000 Subject: [PATCH] implement exception constants defined in DOM level 3 b=245476, patch by jonathan.watt@strath.ac.uk, r=peterv, sr=jst remove redundant declarations and correct comment b=251824, patch by jonathan.watt@strath.ac.uk, r+sr=peterv --- dom/public/idl/core/nsIDOMDOMException.idl | 16 ++- dom/public/nsDOMError.h | 7 +- dom/public/nsIBaseDOMException.h | 3 - dom/src/base/domerr.msg | 5 + .../source/xpath/nsXPathException.cpp | 116 ------------------ 5 files changed, 21 insertions(+), 126 deletions(-) diff --git a/dom/public/idl/core/nsIDOMDOMException.idl b/dom/public/idl/core/nsIDOMDOMException.idl index 3596d655920..2302c3bf5d8 100644 --- a/dom/public/idl/core/nsIDOMDOMException.idl +++ b/dom/public/idl/core/nsIDOMDOMException.idl @@ -40,15 +40,15 @@ #include "domstubs.idl" /** - * In general, DOM methods return specific error values in ordinary + * In general, DOM methods return specific error values in ordinary * processing situations, such as out-of-bound errors. - * However, DOM operations can 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 + * However, DOM operations can 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) * - * For more information on this interface please see - * http://www.w3.org/TR/DOM-Level-2-Core/ + * For more information on this interface please see + * http://www.w3.org/TR/DOM-Level-3-Core/ * * @status FROZEN */ @@ -76,6 +76,10 @@ interface nsIDOMDOMException : nsISupports const unsigned short NAMESPACE_ERR = 14; // Introduced in DOM Level 2: const unsigned short INVALID_ACCESS_ERR = 15; + // Introduced in DOM Level 3: + const unsigned short VALIDATION_ERR = 16; + // Introduced in DOM Level 3: + const unsigned short TYPE_MISMATCH_ERR = 17; readonly attribute unsigned long code; }; diff --git a/dom/public/nsDOMError.h b/dom/public/nsDOMError.h index 450d3d5e31e..24f74ef34f3 100644 --- a/dom/public/nsDOMError.h +++ b/dom/public/nsDOMError.h @@ -41,7 +41,7 @@ #include "nsError.h" // XXX If you add a new error code, also add an error string to -// dom/base/src/domerr.msg +// dom/src/base/domerr.msg /* DOM error codes from http://www.w3.org/TR/REC-DOM-Level-1/ */ @@ -69,6 +69,11 @@ #define NS_ERROR_DOM_RANGE_BAD_BOUNDARYPOINTS_ERR NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_DOM_RANGE, 1) #define NS_ERROR_DOM_RANGE_INVALID_NODE_TYPE_ERR NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_DOM_RANGE, 2) +/* DOM error codes from http://www.w3.org/TR/DOM-Level-3/ */ + +#define NS_ERROR_DOM_VALIDATION_ERR NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_DOM,16) +#define NS_ERROR_DOM_TYPE_MISMATCH_ERR NS_ERROR_GENERATE_FAILURE(NS_ERROR_MODULE_DOM,17) + /* DOM error codes defined by us */ diff --git a/dom/public/nsIBaseDOMException.h b/dom/public/nsIBaseDOMException.h index a02e69373f6..ba10e39ade6 100644 --- a/dom/public/nsIBaseDOMException.h +++ b/dom/public/nsIBaseDOMException.h @@ -100,9 +100,6 @@ NS_INTERFACE_MAP_END \ NS_DEFINE_CID(kBaseDOMException_CID_##domname, NS_BASE_DOM_EXCEPTION_CID); \ \ nsresult \ -NS_New##domname(nsresult aNSResult, nsIException* aDefaultException, \ - nsIException** aException); \ -nsresult \ NS_New##domname(nsresult aNSResult, nsIException* aDefaultException, \ nsIException** aException) \ { \ diff --git a/dom/src/base/domerr.msg b/dom/src/base/domerr.msg index e8c9ab0a89f..45a9ff21298 100644 --- a/dom/src/base/domerr.msg +++ b/dom/src/base/domerr.msg @@ -64,6 +64,11 @@ DOM_MSG_DEF(NS_ERROR_DOM_SYNTAX_ERR, "An invalid or illegal string was specified DOM_MSG_DEF(NS_ERROR_DOM_RANGE_BAD_BOUNDARYPOINTS_ERR, "The boundary-points of a range does not meet specific requirements.") DOM_MSG_DEF(NS_ERROR_DOM_RANGE_INVALID_NODE_TYPE_ERR, "The container of an boundary-point of a range is being set to either a node of an invalid type or a node with an ancestor of an invalid type.") +/* DOM error codes from http://www.w3.org/TR/DOM-Level-3/ */ + +DOM_MSG_DEF(NS_ERROR_DOM_VALIDATION_ERR, "A call to a method would make the Node invalid with respect to \"partial validity\", so the operation was not done") +DOM_MSG_DEF(NS_ERROR_DOM_TYPE_MISMATCH_ERR, "The type of an object is incompatible with the expected type of the parameter associated to the object") + /* DOM error codes defined by us */ /* XXX string should be specified by norris */ diff --git a/extensions/transformiix/source/xpath/nsXPathException.cpp b/extensions/transformiix/source/xpath/nsXPathException.cpp index 847816cd6d5..e69de29bb2d 100644 --- a/extensions/transformiix/source/xpath/nsXPathException.cpp +++ b/extensions/transformiix/source/xpath/nsXPathException.cpp @@ -1,116 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* ***** BEGIN LICENSE BLOCK ***** - * Version: MPL 1.1/GPL 2.0/LGPL 2.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (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.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is TransforMiiX XSLT processor code. - * - * The Initial Developer of the Original Code is - * Netscape Communications Corporation. - * Portions created by the Initial Developer are Copyright (C) 2001 - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * Peter Van der Beken - * - * Alternatively, the contents of this file may be used under the terms of - * either the GNU General Public License Version 2 or later (the "GPL"), or - * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), - * in which case the provisions of the GPL or the LGPL are applicable instead - * of those above. If you wish to allow use of your version of this file only - * under the terms of either the GPL or the LGPL, and not to allow others to - * use your version of this file under the terms of the MPL, indicate your - * decision by deleting the provisions above and replace them with the notice - * and other provisions required by the GPL or the LGPL. If you do not delete - * the provisions above, a recipient may use your version of this file under - * the terms of any one of the MPL, the GPL or the LGPL. - * - * ***** END LICENSE BLOCK ***** */ - -#include "nsXPathException.h" -#include "nsCRT.h" -#include "nsIDOMClassInfo.h" -#include "nsIBaseDOMException.h" -#include "prprf.h" - -static const char kInvalidExpressionErrName[] = "NS_ERROR_DOM_INVALID_EXPRESSION_ERR"; -static const char kInvalidExpressionErrMessage[] = NS_ERROR_DOM_INVALID_EXPRESSION_MSG; -static const char kTypeErrName[] = "NS_ERROR_DOM_TYPE_ERR"; -static const char kTypeErrMessage[] = NS_ERROR_DOM_TYPE_MSG; - -static void -TXResultToNameAndMessage(nsresult aNSResult, - const char** aName, - const char** aMessage); - -void -TXResultToNameAndMessage(nsresult aNSResult, - const char** aName, - const char** aMessage) -{ - if (aNSResult == NS_ERROR_DOM_INVALID_EXPRESSION_ERR) { - *aName = kInvalidExpressionErrName; - *aMessage = kInvalidExpressionErrMessage; - } - else if (aNSResult == NS_ERROR_DOM_TYPE_ERR) { - *aName = kTypeErrName; - *aMessage = kTypeErrMessage; - } - else { - NS_WARNING("Huh, someone is throwing non-XPath DOM errors using the XPath DOM module!"); - *aName = nsnull; - *aMessage = nsnull; - } - - return; -} - - -IMPL_DOM_EXCEPTION_HEAD(nsXPathException, nsIDOMXPathException) - NS_DECL_NSIDOMXPATHEXCEPTION -IMPL_DOM_EXCEPTION_TAIL(nsXPathException, nsIDOMXPathException, XPathException, - NS_ERROR_MODULE_DOM_XPATH, TXResultToNameAndMessage) - -NS_IMETHODIMP -nsXPathException::GetCode(PRUint16* aCode) -{ - NS_ENSURE_ARG_POINTER(aCode); - nsresult result; - mBase->GetResult(&result); - *aCode = NS_ERROR_GET_CODE(result); - - return NS_OK; -} - - -NS_IMPL_ISUPPORTS1(nsXPathExceptionProvider, nsIExceptionProvider) - -nsXPathExceptionProvider::nsXPathExceptionProvider() -{ -} - -nsXPathExceptionProvider::~nsXPathExceptionProvider() -{ -} - -NS_IMETHODIMP -nsXPathExceptionProvider::GetException(nsresult aNSResult, - nsIException *aDefaultException, - nsIException **aException) -{ - NS_ENSURE_ARG_POINTER(aException); - - NS_NewXPathException(aNSResult, aDefaultException, aException); - NS_ENSURE_TRUE(*aException, NS_ERROR_OUT_OF_MEMORY); - - return NS_OK; -}