librcsb-core-wrapper  1.000
CifDataInfo.h
Go to the documentation of this file.
1 //$$FILE$$
2 //$$VERSION$$
3 //$$DATE$$
4 //$$LICENSE$$
5 
6 
14 #ifndef CIFDATAINFO_H
15 #define CIFDATAINFO_H
16 
17 
18 #include <string>
19 #include <vector>
20 
21 #include <rcsb/DataInfo.h>
22 #include <rcsb/DicFile.h>
23 
24 
25 class CifDataInfo : public DataInfo
26 {
27  public:
28  CifDataInfo(DicFile& dictFile);
29  ~CifDataInfo();
30 
31  void GetVersion(std::string& version);
32 
33  const std::vector<std::string>& GetCatNames();
34 
35  const std::vector<std::string>& GetItemsNames();
36 
37  bool IsCatDefined(const std::string& catName) const;
38 
39  bool IsItemDefined(const std::string& itemName);
40 
41  const std::vector<std::string>& GetCatKeys(const std::string& catName);
42 
43  const std::vector<std::string>& GetCatAttribute(const std::string& catName,
44  const std::string& refCatName, const std::string& refAttrName);
45 
46  const std::vector<std::string>&
47  GetItemAttribute(const std::string& itemName,
48  const std::string& refCatName, const std::string& refAttrName);
49 
50  virtual void GetCatItemsNames(std::vector<std::string>& itemsNames,
51  const std::string& catName);
52 
53  protected:
55 
56  private:
57  std::string _version;
58  std::vector<std::string> _catsNames;
59  std::vector<std::string> _itemsNames;
60  std::vector<std::string> _catKeyItems;
61  std::vector<std::string> _catAttrib;
62  std::vector<std::string> _itemAttrib;
63  std::vector<std::string> _itemTypeListAttrib;
64 
65  void _GetDictVersion(std::string& dictVer);
66  bool _isDictCategory(const std::string& category) const;
67 
68  const std::vector<std::string>&
69  GetItemAttributeForItemTypeListCat(const std::string& itemName,
70  const std::string& refCatName,
71  const std::string& refAttrName);
72 };
73 
74 
75 #endif