Salome HOME
PR: mergefrom_PAL_OCC_21Oct04
[modules/kernel.git] / src / ModuleCatalog / SALOME_ModuleCatalog_Handler.hxx
1 //  SALOME ModuleCatalog : implementation of ModuleCatalog server which parsers xml description of modules
2 //
3 //  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4 //  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
5 // 
6 //  This library is free software; you can redistribute it and/or 
7 //  modify it under the terms of the GNU Lesser General Public 
8 //  License as published by the Free Software Foundation; either 
9 //  version 2.1 of the License. 
10 // 
11 //  This library is distributed in the hope that it will be useful, 
12 //  but WITHOUT ANY WARRANTY; without even the implied warranty of 
13 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
14 //  Lesser General Public License for more details. 
15 // 
16 //  You should have received a copy of the GNU Lesser General Public 
17 //  License along with this library; if not, write to the Free Software 
18 //  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
19 // 
20 //  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
21 //
22 //
23 //
24 //  File   : SALOME_ModuleCatalog_Handler.hxx
25 //  Author : Estelle Deville
26 //  Module : SALOME
27 //  $Header$
28
29 #ifndef SALOME_CATALOG_HANDLER_H
30 #define SALOME_CATALOG_HANDLER_H
31
32 #include "SALOME_ModuleCatalog_Parser.hxx"
33 #include <qxml.h>
34 #include <string>
35 #include <stack>
36 #include <map>
37
38 class SALOME_ModuleCatalog_Handler : public QXmlDefaultHandler 
39 {
40 public:
41   //! standard constructor
42   SALOME_ModuleCatalog_Handler();
43
44   //! standard destructor
45   virtual ~SALOME_ModuleCatalog_Handler();
46
47
48   //! method to overload handler function startDocument
49   /*! Is called before a xml file is parsed
50    \return true if no error was detected
51   */ 
52   virtual bool startDocument();
53
54
55   //! method to overload handler function startElement
56   /*! 
57    \param QString argument by value
58    \param QString argument by value
59    \param QString argument by value
60    \param QXmlAttributes argument by value
61    \return true if no error was detected
62   */
63   virtual bool startElement(const QString&, const QString &,
64                             const QString& qName, const QXmlAttributes& atts); 
65
66   //! method to overload handler function endElement
67   /*!
68    \param QString argument by value
69    \param QString argument by value
70    \param QString argument by value
71    \return true if no error was detected
72    \sa _Find
73   */   
74   virtual bool endElement(const QString&, const QString &,
75                           const QString& qName);
76   
77
78   //! method to overload handler function characters
79   /*!
80    \param QString argument by value
81    \return true if no error was detected
82   */
83   virtual bool characters(const QString& chars);
84   
85   //! method to overload handler function endDocument
86   /*! Is called at the end of the parsing
87    \return true if no error was detected
88   */
89   virtual bool endDocument();
90
91   //! method to overload handler function errorProtocol
92  /*!
93    \return the error message
94   */
95   virtual QString errorProtocol();
96
97   //! method to overload handler function fatalError
98   /*!
99     \param QXmlParseExecption argument by value
100     \return true if no error was detected
101   */
102   virtual bool fatalError(const QXmlParseException& exception);
103  
104 private:
105   QString errorProt ;
106
107   std::string content;
108
109   QString test_path_prefix_name ;
110   QString test_computer_name ;
111   QString test_path_prefix ;
112
113   QString test_component_name;
114   QString test_component_username;
115   QString test_component_type ;
116   QString test_component_multistudy ;
117   QString test_component_icon ;
118   QString test_component_impltype;
119
120   QString test_interface_name;
121
122   QString test_service_name;
123   QString test_defaultservice;
124   QString test_typeofnode;
125
126   QString test_inParameter_type;
127   QString test_inParameter_name;
128   QString test_inParameter;
129   QString test_inParameter_list;
130
131   QString test_outParameter_type;
132   QString test_outParameter_name;
133   QString test_outParameter;
134   QString test_outParameter_list;
135
136   QString test_inDataStreamParameter_type;
137   QString test_inDataStreamParameter_name;
138   QString test_inDataStreamParameter_dependency;
139   QString test_inDataStreamParameter;
140   QString test_inDataStreamParameter_list;
141
142   QString test_outDataStreamParameter_type;
143   QString test_outDataStreamParameter_name;
144   QString test_outDataStreamParameter_dependency;
145   QString test_outDataStreamParameter;
146   QString test_outDataStreamParameter_list;
147
148   QString test_service;
149   QString test_service_list;
150   QString test_interface_list;
151   QString test_constraint;
152   
153   QString test_component;
154
155   ParserPathPrefix _pathPrefix;
156
157   ParserComponent _aModule;
158
159
160   ParserInterfaces _interfaceList;
161   ParserInterface  _aInterface;
162
163   ParserServices   _serviceList;
164   ParserService    _aService;
165
166   ParserParameters _inParamList;
167   ParserParameter  _inParam;
168
169   ParserParameters _outParamList;
170   ParserParameter  _outParam;
171
172   ParserDataStreamParameters _inDataStreamParamList;
173   ParserDataStreamParameter  _inDataStreamParam;
174
175   ParserDataStreamParameters _outDataStreamParamList;
176   ParserDataStreamParameter  _outDataStreamParam;
177
178   std::stack<QString> _xml_pile;
179 };
180
181 #endif // SALOME_CATALOG_HANDLER_H