librcsb-core-wrapper 1.005
DictObjContInfo.h
Go to the documentation of this file.
1//$$FILE$$
2//$$VERSION$$
3//$$DATE$$
4//$$LICENSE$$
5
6
13
14
15#ifndef DICTOBJCONTINFO_H
16#define DICTOBJCONTINFO_H
17
18
19#include <string>
20#include <map>
21
22#include <rcsb/Serializer.h>
23#include <rcsb/rcsb_types.h>
24#include <rcsb/CifString.h>
25
26
40{
41 public:
47 class Item
48 {
49 public:
50 std::string descr;
51 std::string itemName;
52 };
53
59 class Cat
60 {
61 public:
62 std::string catName;
63 std::string col1;
66 std::vector<Item> items;
67 };
68
69 std::string _objContInfoDescr;
70
71 std::vector<Cat> _cats;
72
73 std::map<std::pair<std::string, std::string>, std::pair<unsigned int,
74 unsigned int> > _catMap;
75
80 void AddCat(const std::string& catName);
81
86 void AddCat(const std::string& catName, const std::string& col1,
87 const bool nonDefaultValue = false, const bool inheritance = false);
88
93 void AddItem(const std::string& descr, const std::string& itemName);
94
99 unsigned int GetItemIndex(const std::string& catName,
100 const std::string& itemName) const;
101
106 std::pair<unsigned int, unsigned int> GetItemIndices(
107 const std::string& catName, const std::string& itemName) const;
108
109#ifndef VLAD_PYTHON_GLUE
114 virtual ~ObjContInfo();
115#endif
116
117 protected:
123
124 private:
125 std::vector<Cat>::iterator currCat;
126};
127
128
135class DictObjContInfo : public ObjContInfo
136{
137 public:
138 static DictObjContInfo& GetInstance();
139
140 private:
141 DictObjContInfo();
142 DictObjContInfo(const DictObjContInfo& in);
143
144 ~DictObjContInfo();
145
146 DictObjContInfo& operator=(const DictObjContInfo& in);
147};
148
149
156class CatObjContInfo : public ObjContInfo
157{
158 public:
159 static CatObjContInfo& GetInstance();
160
161 private:
162 CatObjContInfo();
163 CatObjContInfo(const CatObjContInfo& in);
164
165 ~CatObjContInfo();
166
167 CatObjContInfo& operator=(const CatObjContInfo& in);
168};
169
170
177class SubcatObjContInfo : public ObjContInfo
178{
179 public:
180 static SubcatObjContInfo& GetInstance();
181
182 private:
183 SubcatObjContInfo();
184 SubcatObjContInfo(const SubcatObjContInfo& in);
185
186 ~SubcatObjContInfo();
187
188 SubcatObjContInfo& operator=(const SubcatObjContInfo& in);
189};
190
191
198class ItemObjContInfo : public ObjContInfo
199{
200 public:
201 static ItemObjContInfo& GetInstance();
202
203 private:
204 ItemObjContInfo();
205 ItemObjContInfo(const ItemObjContInfo& in);
206
207 ~ItemObjContInfo();
208
209 ItemObjContInfo& operator=(const ItemObjContInfo& in);
210};
211
212
213#endif // DICTOBJCONTINFO_H
static CatObjContInfo & GetInstance()
static DictObjContInfo & GetInstance()
static ItemObjContInfo & GetInstance()
Private class that represents a category.
Definition DictObjContInfo.h:60
bool inheritance
Definition DictObjContInfo.h:65
std::string col1
Definition DictObjContInfo.h:63
std::vector< Item > items
Definition DictObjContInfo.h:66
std::string catName
Definition DictObjContInfo.h:62
bool nonDefaultValue
Definition DictObjContInfo.h:64
Private class that represents an item.
Definition DictObjContInfo.h:48
std::string itemName
Definition DictObjContInfo.h:51
std::string descr
Definition DictObjContInfo.h:50
unsigned int GetItemIndex(const std::string &catName, const std::string &itemName) const
std::vector< Cat > _cats
Definition DictObjContInfo.h:71
void AddCat(const std::string &catName)
std::pair< unsigned int, unsigned int > GetItemIndices(const std::string &catName, const std::string &itemName) const
std::string _objContInfoDescr
Definition DictObjContInfo.h:69
void AddItem(const std::string &descr, const std::string &itemName)
void AddCat(const std::string &catName, const std::string &col1, const bool nonDefaultValue=false, const bool inheritance=false)
std::map< std::pair< std::string, std::string >, std::pair< unsigned int, unsigned int > > _catMap
Definition DictObjContInfo.h:74
virtual ~ObjContInfo()
static SubcatObjContInfo & GetInstance()