2 // File: SALOME_DataTypeCatalog_Handler.cxx
3 // Created: Mon Aug 08 2001
4 // Author: Estelle Deville
6 // Copyright : CEA/DEN/DMSS/LGLS
9 #define WRITE_CATA_DATA_TYPE
10 #include "SALOME_DataTypeCatalog_Handler.hxx"
12 //----------------------------------------------------------------------
13 // Function : SALOME_DataTypeCatalog_Handler
14 // Purpose : Constructor
15 //----------------------------------------------------------------------
16 SALOME_DataTypeCatalog_Handler::SALOME_DataTypeCatalog_Handler()
18 MESSAGE("SALOME_DataTypeCatalog_Handler creation");
19 // XML Tags initialisation
20 // Used in the function endElement
21 test_data_type_name = "DataType-name";
22 test_data_type_interf_read = "DataType-interface-read";
23 test_data_type_interf_write = "DataType-interface-write";
24 test_data_type_parent_name = "Parent-name" ;
25 test_data_type_parents = "DataType-Parents-list";
26 test_data_type = "DataType";
29 //----------------------------------------------------------------------
30 // Function : ~SALOME_DataTypeCatalog_Handler
31 // Purpose : Destructor
32 //----------------------------------------------------------------------
33 SALOME_DataTypeCatalog_Handler::~SALOME_DataTypeCatalog_Handler()
35 MESSAGE("SALOME_DataTypeCatalog_Handler destruction");
38 //----------------------------------------------------------------------
39 // Function : startDocument
40 // Purpose : overload handler function
41 //----------------------------------------------------------------------
42 bool SALOME_DataTypeCatalog_Handler::startDocument()
44 MESSAGE("Begin parse document")
45 // Empty the private elements
46 _datatypelist.resize(0);
47 _a_data_parents_list.resize(0);
51 //----------------------------------------------------------------------
52 // Function : startElement
53 // Purpose : overload handler function
54 //----------------------------------------------------------------------
55 bool SALOME_DataTypeCatalog_Handler::startElement(const QString&,
58 const QXmlAttributes& atts)
63 //----------------------------------------------------------------------
64 // Function : endElement
65 // Purpose : overload handler function
66 //----------------------------------------------------------------------
67 bool SALOME_DataTypeCatalog_Handler::endElement(const QString&,
73 // tag test_data_type_name
74 if((qName.compare(QString(test_data_type_name))==0))
75 _a_data_type.Parserdata_name = content;
76 // tag test_data_type_interf_read
77 if((qName.compare(QString(test_data_type_interf_read))==0))
78 _a_data_type.Parserdata_interface_read = content;
79 // tag test_data_type_interf_write
80 if((qName.compare(QString(test_data_type_interf_write))==0))
81 _a_data_type.Parserdata_interface_write = content;
83 // tag test_data_type_parent_name
84 if((qName.compare(QString(test_data_type_parent_name))==0))
85 _a_data_parents_list.push_back(content);
87 // tag test_data_type_parents
88 if((qName.compare(QString(test_data_type_parents))==0))
90 _a_data_type.Parserdata_parents = _a_data_parents_list;
91 _a_data_parents_list.resize(0);;
95 if((qName.compare(QString(test_data_type))==0))
97 _datatypelist.push_back(_a_data_type);
99 // Empty temporary structures
100 _a_data_type.Parserdata_name = "";
101 _a_data_type.Parserdata_interface_read = "";
102 _a_data_type.Parserdata_interface_write = "";
103 _a_data_type.Parserdata_parents.resize(0);
111 //----------------------------------------------------------------------
112 // Function : characters
113 // Purpose : overload handler function
114 //----------------------------------------------------------------------
115 bool SALOME_DataTypeCatalog_Handler::characters(const QString& chars)
121 //----------------------------------------------------------------------
122 // Function : endDocument
123 // Purpose : overload handler function
124 // Print all informations find in the catalog
125 // (only in DEBUG mode!!)
126 //----------------------------------------------------------------------
127 bool SALOME_DataTypeCatalog_Handler::endDocument()
130 for (unsigned int ind = 0; ind < _datatypelist.size(); ind++)
132 MESSAGE("DataType Name :"<<_datatypelist[ind].Parserdata_name);
133 MESSAGE("DataType interface read :"<<_datatypelist[ind].Parserdata_interface_read);
134 MESSAGE("DataType interface write :"<<_datatypelist[ind].Parserdata_interface_write);
136 for (unsigned int i = 0; i < _datatypelist[ind].Parserdata_parents.size(); i++)
137 MESSAGE("Parent name :" << _datatypelist[ind].Parserdata_parents[i]);
140 MESSAGE("Document parsed");
144 //----------------------------------------------------------------------
145 // Function : errorProtocol
146 // Purpose : overload handler function
147 //----------------------------------------------------------------------
148 QString SALOME_DataTypeCatalog_Handler::errorProtocol()
154 //----------------------------------------------------------------------
155 // Function : fatalError
156 // Purpose : overload handler function
157 //----------------------------------------------------------------------
158 bool SALOME_DataTypeCatalog_Handler::fatalError(const QXmlParseException& exception)
160 errorProt += QString( "fatal parsing error: %1 in line %2, column %3\n" )
161 .arg( exception.message() )
162 .arg( exception.lineNumber() )
163 .arg( exception.columnNumber() );
165 return QXmlDefaultHandler::fatalError( exception );