CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_14/src/CondCore/ORA/src/MappingGenerator.h

Go to the documentation of this file.
00001 #ifndef INCLUDE_ORA_MAPPINGGENERATOR_H
00002 #define INCLUDE_ORA_MAPPINGGENERATOR_H
00003 
00004 #include "TableRegister.h"
00005 //
00006 #include <string>
00007 #include <vector>
00008 #include <map>
00009 #include <set>
00010 
00011 namespace Reflex{
00012   class Type;
00013 }
00014 
00015 namespace coral {
00016   class ISchema;
00017 }
00018 
00019 namespace ora {
00020   
00021   class MappingTree;
00022 
00023   class MappingGenerator {
00024 
00025     public:
00027     explicit MappingGenerator( coral::ISchema& schema );
00028     
00030     ~MappingGenerator();
00031 
00032     void createNewMapping( const std::string& containerName, const Reflex::Type& classDictionary, MappingTree& destination );
00033 
00034     void createNewMapping( const std::string& containerName, const Reflex::Type& classDictionary,
00035                            const MappingTree& baseMapping, MappingTree& destination );
00036 
00037     void createNewDependentMapping( const Reflex::Type& dependentClassDictionary, const MappingTree& parentClassMapping,
00038                                     MappingTree& destination );
00039 
00040     void createNewDependentMapping( const Reflex::Type& dependentClassDictionary, const MappingTree& parentClassMapping,
00041                                     const MappingTree& dependentClassBaseMapping, MappingTree& destination );
00042 
00043     private:
00044     coral::ISchema& m_schema;
00045     TableRegister m_tableRegister;
00046 
00047   };
00048 
00049 }
00050 
00051 #endif