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