librcsb-core-wrapper  1.000
DataInfo.h
Go to the documentation of this file.
1 //$$FILE$$
2 //$$VERSION$$
3 //$$DATE$$
4 //$$LICENSE$$
5 
6 
14 #ifndef DATAINFO_H
15 #define DATAINFO_H
16 
17 
18 #include <string>
19 #include <vector>
20 #include <iostream>
21 
22 #include <rcsb/rcsb_types.h>
23 #include <rcsb/GenString.h>
24 
25 
26 class DataInfo
27 {
28  public:
29  DataInfo();
30  virtual ~DataInfo();
31 
32  virtual void GetVersion(std::string& version) = 0;
33 
34  virtual const std::vector<std::string>& GetCatNames() = 0;
35 
36  virtual const std::vector<std::string>& GetItemsNames() = 0;
37 
38  virtual bool IsCatDefined(const std::string& catName) const = 0;
39 
40  virtual bool IsItemDefined(const std::string& itemName) = 0;
41 
42  virtual const std::vector<std::string>&
43  GetCatKeys(const std::string& catName) = 0;
44 
45  virtual const std::vector<std::string>&
46  GetCatAttribute(const std::string& catName,
47  const std::string& refCatName, const std::string& refAttribName) = 0;
48 
49  virtual const std::vector<std::string>&
50  GetItemAttribute(const std::string& itemName,
51  const std::string& refCatName, const std::string& refAttribName) = 0;
52 
53  virtual bool AreAllKeyItems(const std::string& catName,
54  const std::vector<std::string>& attribsNames);
55 
56  virtual bool IsUnknownValueAllowed(const std::string& catName,
57  const std::string& attribName);
58 
59  bool AreItemsValuesValid(const std::string& catName,
60  const std::vector<std::string>& attribsNames,
61  const std::vector<unsigned int>& attribsIndices,
62  const std::vector<bool>& allowedNullAttribs,
63  const std::vector<std::string>& values,
64  const Char::eCompareType compareType = Char::eCASE_SENSITIVE);
65 
66  virtual bool IsKeyItem(const std::string& catName,
67  const std::string& attribName,
68  const Char::eCompareType compareType = Char::eCASE_SENSITIVE);
69 
70  virtual bool MustConvertItem(const std::string& catName,
71  const std::string& attribName);
72 
73  virtual void GetItemsTypes(std::vector<eTypeCode>& attribsTypes,
74  const std::string& catName, const std::vector<std::string>& attribsNames);
75 
76  virtual void StandardizeEnumItem(std::string& value,
77  const std::string& catName,
78  const std::string& attribName);
79 
80  void GetMandatoryItems(std::vector<std::string>& mandItemsNames,
81  const std::string& catName);
82 
83  bool IsItemMandatory(const std::string& catName,
84  const std::string& attribName);
85  virtual bool IsItemMandatory(const std::string& itemName);
86 
87  // VLAD - RESOLVE THIS
88  virtual bool IsSimpleDataType(const std::string& itemName);
89  virtual eTypeCode _GetDataType(const std::string& itemName);
90 
91  const std::vector<std::vector<std::string> >&
92  GetComboKeys(const std::string& catName);
93  std::vector<std::vector<std::vector<std::string> > >&
94  GetChildrenKeys(const std::vector<std::string>& parComboKey);
95 };
96 
97 #ifndef VLAD_ATOM_SITES_ALT_ID_IGNORE
98 extern std::string CIF_ITEM;
99 #endif
100 
101 #endif