00001 // $Header: /bes/bes/BossCvs/Calibration/rdbModel/rdbModel/Tables/Index.h,v 1.1.1.1 2005/10/17 06:10:53 maqm Exp $ 00002 #ifndef RDBMODEL_INDEX_H 00003 #define RDBMODEL_INDEX_H 00004 #include <vector> 00005 #include <string> 00006 #include "rdbModel/Management/Visitor.h" 00007 00008 namespace rdbModel { 00009 00010 class Column; 00011 class Table; 00012 00013 class XercesBuilder; 00014 00015 00019 class Index { 00020 public: 00021 Index(Table* myTable=0) : m_myTable(myTable) {}; 00022 ~Index() {}; 00023 00024 const std::string& getName() const {return m_name; }; 00025 bool isPrimary() const {return m_primary;} 00026 const std::vector<std::string>& getColumnNames(); 00027 00028 Visitor::VisitorState accept(Visitor* v); 00029 // Visitor::VisitorState acceptNotRec(Visitor* v); 00030 00031 private: 00032 friend class rdbModel::XercesBuilder; 00033 00035 bool m_primary; 00036 00038 std::vector<std::string> m_indexCols; 00039 00041 Table* m_myTable; 00042 std::string m_name; 00043 }; 00044 } 00045 00046 #endif