BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Calibration/rdbModel/include/rdbModel/Management/XercesBuilder.h
Go to the documentation of this file.
1// $Header: /bes/bes/BossCvs/Calibration/rdbModel/rdbModel/Management/XercesBuilder.h,v 1.1.1.1
2// 2005/10/17 06:10:53 maqm Exp $
3#ifndef RDBMODEL_XERCESBUILDER_H
4#define RDBMODEL_XERCESBUILDER_H
5
6#include "rdbModel/Management/Builder.h"
7#include "rdbModel/Tables/Assertion.h"
8#include "rdbModel/Tables/Column.h"
9#include <xercesc/dom/DOMDocument.hpp>
10#include <xercesc/dom/DOMElement.hpp>
11namespace rdbModel {
12
13 class Table; // single rdbms table
14 class Index; // index/key (may be primary or not)
15 class Datatype;
16 class Supersede;
17 class InterRow;
18 class InsertNew;
19 class Query;
20 class Set;
21 /**
22 * This class is a concrete Builder that use the Xerces parser and the
23 * DOM functionalities to parse the xml file and build the generic model
24 * hierarchy
25 * @author D.Favretto & R.Giannitrapani
26 */
27 class XercesBuilder : public Builder {
28 public:
29 /**
30 * The constructor
31 */
33
34 virtual ~XercesBuilder(){};
35
36 /**
37 Invoke xml parser to produce DOM (in-memory) representation
38 Concrete implementation of Builder::parseInput
39 */
40 virtual unsigned int parseInput( const std::string& inputPath );
41
42 /** Concrete implementation of pure virtual Builder::buildRdb */
43 virtual int buildRdb();
44
45 private:
46 // A bunch of private methods to handle the details of creating an
47 // object from the corresponding xml description
48
49 /** Build an individual Table object from its xml description */
50 Table* buildTable( XERCES_CPP_NAMESPACE_QUALIFIER DOMElement* e );
51
52 /** build a Column from its xml description */
53 Column* buildColumn( XERCES_CPP_NAMESPACE_QUALIFIER DOMElement* e, Table* t );
54
55 /**
56 * build an Index object (corresponding to MySQL index or key) from its
57 * xml description
58 */
59 Index* buildIndex( XERCES_CPP_NAMESPACE_QUALIFIER DOMElement* e, bool primary, Table* t );
60
61 Assertion* buildAssertion( XERCES_CPP_NAMESPACE_QUALIFIER DOMElement* e, Table* t );
62
63 Assertion::Operator* buildOperator( XERCES_CPP_NAMESPACE_QUALIFIER DOMElement* e,
64 Table* t );
65
66 Datatype* buildDatatype( XERCES_CPP_NAMESPACE_QUALIFIER DOMElement* e );
67 Set* buildSet( XERCES_CPP_NAMESPACE_QUALIFIER DOMElement* e, Table* t );
68
69 InsertNew* buildInsertNew( XERCES_CPP_NAMESPACE_QUALIFIER DOMElement* e, Table* t );
70
71 InterRow* buildInterRow( XERCES_CPP_NAMESPACE_QUALIFIER DOMElement* e, Table* t );
72
73 Query* buildQuery( XERCES_CPP_NAMESPACE_QUALIFIER DOMElement* e, Table* t );
74
75 // Set* buildSet(XERCES_CPP_NAMESPACE_QUALIFIER DOMElement* e, Table* t);
76
77 Supersede* buildSupersede( XERCES_CPP_NAMESPACE_QUALIFIER DOMElement* e, Table* t );
78
79 XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument* m_doc;
80 Rdb* m_rdb;
81 };
82} // namespace rdbModel
83#endif // XERCESBUILDER_H
virtual unsigned int parseInput(const std::string &inputPath)
int t()
Definition t.c:1