CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
OraDatabaseSchema.h
Go to the documentation of this file.
1 #ifndef INCLUDE_ORA_ORADATABASESCHEMA_H
2 #define INCLUDE_ORA_ORADATABASESCHEMA_H
3 
4 #include "IDatabaseSchema.h"
5 // externals
6 #include "CoralBase/AttributeList.h"
7 
8 namespace ora {
9 
10  class OraMainTable: public IMainTable {
11  public:
12  static std::string version();
13  static std::string tableName();
14  static std::string parameterNameColumn();
15  static std::string parameterValueColumn();
16  public:
17  explicit OraMainTable( coral::ISchema& dbSchema );
18  virtual ~OraMainTable();
19  bool getParameters( std::map<std::string,std::string>& destination );
20  std::string schemaVersion();
21  public:
22  bool exists();
23  void create();
24  void drop();
25  private:
26  coral::ISchema& m_schema;
27  };
28 
29 
31  public:
32  static std::string tableName();
33  static std::string sequenceNameColumn();
34  static std::string sequenceValueColumn();
35  public:
36  explicit OraSequenceTable( coral::ISchema& dbSchema );
37  virtual ~OraSequenceTable();
38  bool add( const std::string& sequenceName );
39  bool getLastId( const std::string& sequenceName, int& lastId );
40  void sinchronize( const std::string& sequenceName, int lastValue );
41  void erase( const std::string& sequenceName );
42  public:
43  bool exists();
44  void create();
45  void drop();
46  private:
47  coral::ISchema& m_schema;
48  };
49 
51  public:
52  static std::string tableName();
53  static std::string mappingVersionColumn();
54  public:
55  explicit OraMappingVersionTable( coral::ISchema& dbSchema );
56  virtual ~OraMappingVersionTable();
57  public:
58  bool exists();
59  void create();
60  void drop();
61  private:
62  coral::ISchema& m_schema;
63  };
64 
66  public:
67  static std::string tableName();
68  static std::string mappingVersionColumn();
69  static std::string elementIdColumn();
70  static std::string elementTypeColumn();
71  static std::string scopeNameColumn();
72  static std::string variableNameColumn();
73  static std::string variableParIndexColumn();
74  static std::string variableTypeColumn();
75  static std::string tableNameColumn();
76  static std::string columnNameColumn();
77  public:
78  explicit OraMappingElementTable( coral::ISchema& dbSchema );
79  virtual ~OraMappingElementTable();
80  public:
81  bool exists();
82  void create();
83  void drop();
84  private:
85  coral::ISchema& m_schema;
86  };
87 
89  public:
90  static std::string tableName();
91  static std::string containerIdColumn();
92  static std::string containerNameColumn();
93  static std::string classNameColumn();
94  static std::string numberOfObjectsColumn();
95  public:
96  explicit OraContainerHeaderTable( coral::ISchema& dbSchema );
97  virtual ~OraContainerHeaderTable();
98  bool getContainerData( std::map<std::string, ContainerHeaderData>& destination );
99  void addContainer( int id, const std::string& containerName, const std::string& className );
100  void removeContainer( int id );
101  void incrementNumberOfObjects( int id );
102  void decrementNumberOfObjects( int id );
103  void updateNumberOfObjects( const std::map<int,unsigned int>& numberOfObjectsForContainerIds );
104  public:
105  //std::string name();
106  bool exists();
107  void create();
108  void drop();
109  private:
110  void updateContainer( int id, const std::string& setClause );
111  private:
112  coral::ISchema& m_schema;
113  };
114 
116  public:
117  static std::string tableName();
118  static std::string classNameColumn();
119  static std::string classVersionColumn();
120  static std::string classIdColumn();
121  static std::string dependencyIndexColumn();
122  static std::string containerIdColumn();
123  static std::string mappingVersionColumn();
124  public:
125  explicit OraClassVersionTable( coral::ISchema& dbSchema );
126  virtual ~OraClassVersionTable();
127  public:
128  bool exists();
129  void create();
130  void drop();
131  private:
132  coral::ISchema& m_schema;
133  };
134 
136  public:
137  explicit OraMappingSchema( coral::ISchema& dbSchema );
138  virtual ~OraMappingSchema();
139  public:
140  bool getVersionList( std::set<std::string>& destination );
141  bool getMapping( const std::string& version, MappingRawData& destination );
142  void storeMapping( const MappingRawData& mapping );
143  void removeMapping( const std::string& version );
144  bool getContainerTableMap( std::map<std::string, int>& destination );
145  bool getMappingVersionListForContainer( int containerId, std::set<std::string>& destination, bool onlyDependency=false );
146  bool getDependentClassesInContainerMapping( int containerId, std::set<std::string>& destination );
147  bool getClassVersionListForMappingVersion( const std::string& mappingVersion, std::set<std::string>& destination );
148  bool getClassVersionListForContainer( int containerId, std::map<std::string,std::string>& versionMap );
149  bool getMappingVersionListForTable( const std::string& tableName, std::set<std::string>& destination );
150  bool selectMappingVersion( const std::string& classId, int containerId, std::string& destination );
151  bool containerForMappingVersion( const std::string& mappingVersion, int& destination );
152  void insertClassVersion( const std::string& className, const std::string& classVersion, const std::string& classId,
153  int dependencyIndex, int containerId, const std::string& mappingVersion );
154  void setMappingVersion( const std::string& classId, int containerId, const std::string& mappingVersion );
155  private:
156  coral::ISchema& m_schema;
157  };
158 
160  public:
161  static std::string& tableName();
162  static std::string& objectNameColumn();
163  static std::string& containerIdColumn();
164  static std::string& itemIdColumn();
165  public:
166  explicit OraNamingServiceTable( coral::ISchema& dbSchema );
167  virtual ~OraNamingServiceTable();
168  void setObjectName( const std::string& name, int contId, int itemId );
169  bool eraseObjectName( const std::string& name );
170  bool eraseAllNames();
171  bool getObjectByName( const std::string& name, std::pair<int,int>& destination );
172  bool getNamesForObject( int contId, int itemId, std::vector<std::string>& destination );
173  bool getNamesForContainer( int contId, std::vector<std::string>& destination );
174  bool getAllNames( std::vector<std::string>& destination );
175 
176  public:
177  bool exists();
178  void create();
179  void drop();
180  private:
181  coral::ISchema& m_schema;
182  };
183 
185  public:
186  static bool existsMainTable( coral::ISchema& dbSchema );
187 
188  public:
189  explicit OraDatabaseSchema( coral::ISchema& dbSchema );
190  virtual ~OraDatabaseSchema();
191 
192  bool exists();
193  void create();
194  void drop();
195 
204 
205  private:
206  coral::ISchema& m_schema;
215  };
216 
217 }
218 
219 #endif
220 
221 
void updateContainer(int id, const std::string &setClause)
static std::string classIdColumn()
void sinchronize(const std::string &sequenceName, int lastValue)
OraMappingElementTable m_mappingElementTable
OraContainerHeaderTable m_containerHeaderTable
void setMappingVersion(const std::string &classId, int containerId, const std::string &mappingVersion)
OraDatabaseSchema(coral::ISchema &dbSchema)
coral::ISchema & m_schema
bool getMapping(const std::string &version, MappingRawData &destination)
coral::ISchema & m_schema
OraMappingSchema m_mappingSchema
static std::string sequenceNameColumn()
bool getContainerTableMap(std::map< std::string, int > &destination)
void insertClassVersion(const std::string &className, const std::string &classVersion, const std::string &classId, int dependencyIndex, int containerId, const std::string &mappingVersion)
static std::string variableNameColumn()
void removeMapping(const std::string &version)
IDatabaseTable & mappingElementTable()
static std::string mappingVersionColumn()
static std::string mappingVersionColumn()
bool getLastId(const std::string &sequenceName, int &lastId)
OraSequenceTable(coral::ISchema &dbSchema)
IDatabaseTable & classVersionTable()
static std::string containerNameColumn()
static std::string classNameColumn()
bool getNamesForObject(int contId, int itemId, std::vector< std::string > &destination)
static std::string tableName()
bool getClassVersionListForContainer(int containerId, std::map< std::string, std::string > &versionMap)
IMappingSchema & mappingSchema()
static std::string & tableName()
OraMappingElementTable(coral::ISchema &dbSchema)
static std::string tableName()
IContainerHeaderTable & containerHeaderTable()
static std::string classNameColumn()
OraClassVersionTable(coral::ISchema &dbSchema)
static std::string tableNameColumn()
std::string schemaVersion()
bool getContainerData(std::map< std::string, ContainerHeaderData > &destination)
bool getNamesForContainer(int contId, std::vector< std::string > &destination)
bool getParameters(std::map< std::string, std::string > &destination)
static std::string elementTypeColumn()
bool getClassVersionListForMappingVersion(const std::string &mappingVersion, std::set< std::string > &destination)
bool getVersionList(std::set< std::string > &destination)
OraMappingVersionTable m_mappingVersionTable
OraMappingVersionTable(coral::ISchema &dbSchema)
static std::string tableName()
static std::string variableParIndexColumn()
static std::string tableName()
static std::string numberOfObjectsColumn()
INamingServiceTable & namingServiceTable()
static std::string sequenceValueColumn()
static std::string tableName()
ISequenceTable & sequenceTable()
void erase(const std::string &sequenceName)
static std::string tableName()
static std::string variableTypeColumn()
static std::string parameterNameColumn()
static bool existsMainTable(coral::ISchema &dbSchema)
static std::string classVersionColumn()
OraContainerHeaderTable(coral::ISchema &dbSchema)
OraNamingServiceTable(coral::ISchema &dbSchema)
OraSequenceTable m_sequenceTable
bool getAllNames(std::vector< std::string > &destination)
bool eraseObjectName(const std::string &name)
bool getObjectByName(const std::string &name, std::pair< int, int > &destination)
static std::string mappingVersionColumn()
static std::string containerIdColumn()
bool getMappingVersionListForContainer(int containerId, std::set< std::string > &destination, bool onlyDependency=false)
static std::string dependencyIndexColumn()
coral::ISchema & m_schema
void updateNumberOfObjects(const std::map< int, unsigned int > &numberOfObjectsForContainerIds)
coral::ISchema & m_schema
bool getMappingVersionListForTable(const std::string &tableName, std::set< std::string > &destination)
static std::string & objectNameColumn()
OraNamingServiceTable m_namingServiceTable
bool containerForMappingVersion(const std::string &mappingVersion, int &destination)
static std::string scopeNameColumn()
OraMappingSchema(coral::ISchema &dbSchema)
static std::string columnNameColumn()
bool add(const std::string &sequenceName)
OraClassVersionTable m_classVersionTable
IDatabaseTable & mappingVersionTable()
void setObjectName(const std::string &name, int contId, int itemId)
static std::string elementIdColumn()
void addContainer(int id, const std::string &containerName, const std::string &className)
bool selectMappingVersion(const std::string &classId, int containerId, std::string &destination)
void storeMapping(const MappingRawData &mapping)
static std::string & containerIdColumn()
static std::string version()
std::string className(const T &t)
Definition: ClassName.h:30
bool getDependentClassesInContainerMapping(int containerId, std::set< std::string > &destination)
static std::string & itemIdColumn()
static std::string parameterValueColumn()
OraMainTable(coral::ISchema &dbSchema)
static std::string containerIdColumn()