Annotation of parser3/src/main/pa_xml_exception.C, revision 1.2

1.1       paf         1: /** @file
                      2:        Parser: exception class.
                      3: 
                      4:        Copyright (c) 2001-2003 ArtLebedev Group (http://www.artlebedev.com)
                      5:        Author: Alexandr Petrosian <paf@design.ru> (http://paf.design.ru)
                      6: */
                      7: 
                      8: #include "pa_config_includes.h"
                      9: 
                     10: #ifdef XML
                     11: 
1.2     ! paf        12: static const char * const IDENT="$Date: 2003/11/06 08:51:01 $";
1.1       paf        13: 
                     14: #include "pa_xml_exception.h"
                     15: #include "pa_globals.h"
                     16: #include "pa_common.h"
                     17: 
                     18: // methods
                     19: 
                     20: XmlException::XmlException(
                     21:        const String* aproblem_source, 
                     22:        GdomeException& exc) {
                     23:        ftype="xml";
                     24:        fproblem_source=aproblem_source;
                     25: 
                     26:        const char* xml_generic_errors=xmlGenericErrors();
                     27:        if(xml_generic_errors || exc) {
                     28:                const char* s;
                     29:                switch((GdomeExceptionCode)exc) {
                     30:                case GDOME_NOEXCEPTION_ERR: s="NOEXCEPTION_ERR"; break;
                     31:                case GDOME_INDEX_SIZE_ERR: s="INDEX_SIZE_ERR"; break;
                     32:                case GDOME_DOMSTRING_SIZE_ERR: s="DOMSTRING_SIZE_ERR"; break;
                     33:                case GDOME_HIERARCHY_REQUEST_ERR: s="HIERARCHY_REQUEST_ERR"; break;
                     34:                case GDOME_WRONG_DOCUMENT_ERR: s="WRONG_DOCUMENT_ERR"; break;
                     35:                case GDOME_INVALID_CHARACTER_ERR: s="INVALID_CHARACTER_ERR"; break;
                     36:                case GDOME_NO_DATA_ALLOWED_ERR: s="NO_DATA_ALLOWED_ERR"; break;
                     37:                case GDOME_NO_MODIFICATION_ALLOWED_ERR: s="NO_MODIFICATION_ALLOWED_ERR"; break;
                     38:                case GDOME_NOT_FOUND_ERR: s="NOT_FOUND_ERR"; break;
                     39:                case GDOME_NOT_SUPPORTED_ERR: s="NOT_SUPPORTED_ERR"; break;
                     40:                case GDOME_INUSE_ATTRIBUTE_ERR: s="INUSE_ATTRIBUTE_ERR"; break;
                     41:                case GDOME_INVALID_STATE_ERR: s="INVALID_STATE_ERR"; break;
                     42:                case GDOME_SYNTAX_ERR: s="SYNTAX_ERR"; break;
                     43:                case GDOME_INVALID_MODIFICATION_ERR: s="INVALID_MODIFICATION_ERR"; break;
                     44:                case GDOME_NAMESPACE_ERR: s="NAMESPACE_ERR"; break;
                     45:                case GDOME_INVALID_ACCESS_ERR: s="INVALID_ACCESS_ERR"; break;
                     46:                case GDOME_NULL_POINTER_ERR: s="NULL_POINTER_ERR"; break;
                     47:                default: s="<UNKNOWN CODE>"; break;
                     48:                }
                     49:                
                     50:                fcomment=new(PointerFreeGC) char[MAX_STRING];
                     51:                const char* xml_error_message;
                     52:                const char* xml_error_prefix;
                     53:                if(xml_generic_errors) {
                     54:                        xml_error_prefix="\n";
                     55:                        xml_error_message=xml_generic_errors;
                     56:                } else {
                     57:                        xml_error_prefix="";
                     58:                        xml_error_message="";
                     59:                }
                     60:                if(exc)
                     61:                        snprintf(fcomment, MAX_STRING, 
                     62:                                "DOMException %s (%d)."
                     63:                                "%s%s", 
                     64:                                        s,  // decoded code of exception
                     65:                                        exc, // DOM exception code
                     66:                                        xml_error_prefix, xml_error_message // xml generic messages accumulated
                     67:                        );
                     68:                else // no DOM exception
                     69:                        snprintf(fcomment, MAX_STRING, 
                     70:                                "%s", 
                     71:                                        xml_error_message // xml generic messages accumulated
                     72:                        );
                     73:        } else
                     74:                fcomment=0;
                     75: }
                     76: #endif

E-mail: