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
const std::vector< std::vector< std::string > > & GetComboKeys(const std::string &catName)
virtual const std::vector< std::string > & GetItemsNames()=0
virtual bool IsUnknownValueAllowed(const std::string &catName, const std::string &attribName)
virtual bool AreAllKeyItems(const std::string &catName, const std::vector< std::string > &attribsNames)
bool IsItemMandatory(const std::string &catName, const std::string &attribName)
Definition: DataInfo.h:26
virtual const std::vector< std::string > & GetCatNames()=0
std::string CIF_ITEM
Definition: GenString.h:28
virtual void StandardizeEnumItem(std::string &value, const std::string &catName, const std::string &attribName)
virtual ~DataInfo()
std::vector< std::vector< std::vector< std::string > > > & GetChildrenKeys(const std::vector< std::string > &parComboKey)
virtual eTypeCode _GetDataType(const std::string &itemName)
virtual bool MustConvertItem(const std::string &catName, const std::string &attribName)
virtual void GetVersion(std::string &version)=0
void GetMandatoryItems(std::vector< std::string > &mandItemsNames, const std::string &catName)
eTypeCode
Definition: rcsb_types.h:20
virtual bool IsKeyItem(const std::string &catName, const std::string &attribName, const Char::eCompareType compareType=Char::eCASE_SENSITIVE)
virtual bool IsSimpleDataType(const std::string &itemName)
virtual const std::vector< std::string > & GetCatKeys(const std::string &catName)=0
bool AreItemsValuesValid(const std::string &catName, const std::vector< std::string > &attribsNames, const std::vector< unsigned int > &attribsIndices, const std::vector< bool > &allowedNullAttribs, const std::vector< std::string > &values, const Char::eCompareType compareType=Char::eCASE_SENSITIVE)
virtual const std::vector< std::string > & GetItemAttribute(const std::string &itemName, const std::string &refCatName, const std::string &refAttribName)=0
virtual bool IsItemDefined(const std::string &itemName)=0
virtual void GetItemsTypes(std::vector< eTypeCode > &attribsTypes, const std::string &catName, const std::vector< std::string > &attribsNames)
virtual bool IsCatDefined(const std::string &catName) const =0
virtual const std::vector< std::string > & GetCatAttribute(const std::string &catName, const std::string &refCatName, const std::string &refAttribName)=0
eCompareType
Definition: GenString.h:26