Salome HOME
NRI : Check if a component-username is already associated with a component-name.
[modules/kernel.git] / src / DataTypeCatalog / SALOME_DataTypeCatalog_Handler.cxx
1 using namespace std;
2 // File: SALOME_DataTypeCatalog_Handler.cxx
3 // Created: Mon Aug 08 2001
4 // Author: Estelle Deville
5 // Project: SALOME
6 // Copyright : CEA/DEN/DMSS/LGLS
7 // $Header$
8
9 #define WRITE_CATA_DATA_TYPE
10 #include "SALOME_DataTypeCatalog_Handler.hxx"
11
12 //----------------------------------------------------------------------
13 // Function : SALOME_DataTypeCatalog_Handler
14 // Purpose  : Constructor
15 //----------------------------------------------------------------------
16 SALOME_DataTypeCatalog_Handler::SALOME_DataTypeCatalog_Handler()
17 {
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";
27 }
28
29 //----------------------------------------------------------------------
30 // Function : ~SALOME_DataTypeCatalog_Handler
31 // Purpose  : Destructor
32 //----------------------------------------------------------------------
33 SALOME_DataTypeCatalog_Handler::~SALOME_DataTypeCatalog_Handler()
34 {
35   MESSAGE("SALOME_DataTypeCatalog_Handler destruction");
36 }
37
38 //----------------------------------------------------------------------
39 // Function : startDocument
40 // Purpose  : overload handler function
41 //----------------------------------------------------------------------
42 bool SALOME_DataTypeCatalog_Handler::startDocument()
43 {
44   MESSAGE("Begin parse document")
45   // Empty the private elements
46   _datatypelist.resize(0);
47   _a_data_parents_list.resize(0);
48   return true;
49 }
50
51 //----------------------------------------------------------------------
52 // Function : startElement
53 // Purpose  : overload handler function
54 //----------------------------------------------------------------------
55 bool SALOME_DataTypeCatalog_Handler::startElement(const QString&, 
56                                                   const QString &,
57                                                   const QString& qName, 
58                                                   const QXmlAttributes& atts)
59 {
60   return true;
61
62
63 //----------------------------------------------------------------------
64 // Function : endElement
65 // Purpose  : overload handler function
66 //----------------------------------------------------------------------
67 bool SALOME_DataTypeCatalog_Handler::endElement(const QString&, 
68                                                 const QString &,
69                                                 const QString& qName)
70 {
71   // DataType
72
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;
82
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);
86
87   // tag test_data_type_parents
88   if((qName.compare(QString(test_data_type_parents))==0)) 
89     {
90       _a_data_type.Parserdata_parents = _a_data_parents_list;
91       _a_data_parents_list.resize(0);;
92     }
93
94   // tag test_data_type
95   if((qName.compare(QString(test_data_type))==0))
96     {
97       _datatypelist.push_back(_a_data_type);
98
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);
104     }
105
106
107
108   return true;
109 }
110   
111 //----------------------------------------------------------------------
112 // Function : characters
113 // Purpose  : overload handler function
114 //----------------------------------------------------------------------
115 bool SALOME_DataTypeCatalog_Handler::characters(const QString& chars)
116 {
117   content = chars ;
118   return true;
119 }
120
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()
128 {
129   //_datatypelist
130   for (unsigned int ind = 0; ind < _datatypelist.size(); ind++)
131     {
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);
135
136       for (unsigned int i = 0; i < _datatypelist[ind].Parserdata_parents.size(); i++)
137         MESSAGE("Parent name :" << _datatypelist[ind].Parserdata_parents[i]);
138     }
139
140   MESSAGE("Document parsed");
141   return true;
142 }
143  
144 //----------------------------------------------------------------------
145 // Function : errorProtocol
146 // Purpose  : overload handler function
147 //----------------------------------------------------------------------  
148 QString SALOME_DataTypeCatalog_Handler::errorProtocol()
149 {
150   return errorProt ;
151 }
152
153
154 //----------------------------------------------------------------------
155 // Function : fatalError
156 // Purpose  : overload handler function
157 //----------------------------------------------------------------------  
158 bool SALOME_DataTypeCatalog_Handler::fatalError(const QXmlParseException& exception)
159 {
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() );
164
165   return QXmlDefaultHandler::fatalError( exception );
166 }