librcsb-core-wrapper  1.000
CifString.h
Go to the documentation of this file.
1 //$$FILE$$
2 //$$VERSION$$
3 //$$DATE$$
4 //$$LICENSE$$
5 
6 
7 #ifndef CIFSTRING_H
8 #define CIFSTRING_H
9 
10 
11 #include <string>
12 #include <vector>
13 
14 
30 class CifString
31 {
32 public:
33  static const char PREFIX_CHAR = '_';
34  static const char JOIN_CHAR = '.';
35 
36  static const char NULL_CHAR = '?';
37  static const char NOT_APPROPRIATE_CHAR = '.';
38 
39  static const std::string CIF_DDL_CATEGORY_BLOCK;
40  static const std::string CIF_DDL_CATEGORY_DATABLOCK;
41  static const std::string CIF_DDL_CATEGORY_DATABLOCK_METHODS;
42  static const std::string CIF_DDL_CATEGORY_ITEM;
43  static const std::string CIF_DDL_CATEGORY_ITEM_LINKED;
44  static const std::string CIF_DDL_CATEGORY_PDBX_ITEM_LINKED_GROUP;
46  static const std::string CIF_DDL_CATEGORY_CATEGORY;
47  static const std::string CIF_DDL_CATEGORY_CATEGORY_EXAMPLES;
48  static const std::string CIF_DDL_CATEGORY_NDB_CATEGORY_EXAMPLES;
49  static const std::string CIF_DDL_CATEGORY_CATEGORY_KEY;
50  static const std::string CIF_DDL_CATEGORY_CATEGORY_GROUP;
51  static const std::string CIF_DDL_CATEGORY_CATEGORY_GROUP_LIST;
52  static const std::string CIF_DDL_CATEGORY_CATEGORY_METHODS;
53  static const std::string CIF_DDL_CATEGORY_SUB_CATEGORY;
54  static const std::string CIF_DDL_CATEGORY_SUB_CATEGORY_EXAMPLES;
55  static const std::string CIF_DDL_CATEGORY_SUB_CATEGORY_METHODS;
56  static const std::string CIF_DDL_CATEGORY_ITEM_SUB_CATEGORY;
57  static const std::string CIF_DDL_CATEGORY_ITEM_TYPE;
58  static const std::string CIF_DDL_CATEGORY_ITEM_TYPE_CONDITIONS;
59  static const std::string CIF_DDL_CATEGORY_ITEM_METHODS;
60  static const std::string CIF_DDL_CATEGORY_ITEM_TYPE_LIST;
61  static const std::string CIF_DDL_CATEGORY_ITEM_STRUCTURE;
62  static const std::string CIF_DDL_CATEGORY_ITEM_STRUCTURE_LIST;
63  static const std::string CIF_DDL_CATEGORY_ITEM_DESCRIPTION;
64  static const std::string CIF_DDL_CATEGORY_NDB_ITEM_DESCRIPTION;
66  static const std::string CIF_DDL_CATEGORY_ITEM_EXAMPLES;
67  static const std::string CIF_DDL_CATEGORY_NDB_ITEM_EXAMPLES;
68  static const std::string CIF_DDL_CATEGORY_ITEM_DEPENDENT;
69  static const std::string CIF_DDL_CATEGORY_ITEM_RELATED;
70  static const std::string CIF_DDL_CATEGORY_ITEM_RANGE;
71  static const std::string CIF_DDL_CATEGORY_ITEM_ENUMERATION;
72  static const std::string CIF_DDL_CATEGORY_NDB_ITEM_ENUMERATION;
73  static const std::string CIF_DDL_CATEGORY_ITEM_DEFAULT;
74  static const std::string CIF_DDL_CATEGORY_ITEM_ALIASES;
75  static const std::string CIF_DDL_CATEGORY_DICTIONARY;
76  static const std::string CIF_DDL_CATEGORY_DICTIONARY_HISTORY;
77  static const std::string CIF_DDL_CATEGORY_ITEM_UNITS;
78  static const std::string CIF_DDL_CATEGORY_ITEM_UNITS_LIST;
79  static const std::string CIF_DDL_CATEGORY_ITEM_UNITS_CONVERSION;
80  static const std::string CIF_DDL_CATEGORY_METHOD_LIST;
81 
82  static const std::string CIF_DDL_ITEM_ID;
83  static const std::string CIF_DDL_ITEM_CATEGORY_ID;
84  static const std::string CIF_DDL_ITEM_SUB_CATEGORY_ID;
85  static const std::string CIF_DDL_ITEM_METHOD_ID;
86  static const std::string CIF_DDL_ITEM_PARENT_NAME;
87  static const std::string CIF_DDL_ITEM_CHILD_NAME;
88  static const std::string CIF_DDL_ITEM_CHILD_CATEGORY_ID;
89  static const std::string CIF_DDL_ITEM_PARENT_CATEGORY_ID;
90  static const std::string CIF_DDL_ITEM_LINK_GROUP_ID;
91  static const std::string CIF_DDL_ITEM_LABEL;
92  static const std::string CIF_DDL_ITEM_CONTEXT;
93  static const std::string CIF_DDL_ITEM_CONDITION_ID;
94  static const std::string CIF_DDL_ITEM_ALIAS_NAME;
95  static const std::string CIF_DDL_ITEM_DICTIONARY;
96  static const std::string CIF_DDL_ITEM_TITLE;
97  static const std::string CIF_DDL_ITEM_VERSION;
98  static const std::string CIF_DDL_ITEM_NAME;
99  static const std::string CIF_DDL_ITEM_CODE;
100  static const std::string CIF_DDL_ITEM_PRIMITIVE_CODE;
101  static const std::string CIF_DDL_ITEM_CONSTRUCT;
102  static const std::string CIF_DDL_ITEM_ORGANIZATION;
103  static const std::string CIF_DDL_ITEM_INDEX;
104  static const std::string CIF_DDL_ITEM_DIMENSION;
105  static const std::string CIF_DDL_ITEM_DATABLOCK_ID;
106  static const std::string CIF_DDL_ITEM_DESCRIPTION;
107  static const std::string CIF_DDL_ITEM_NDB_DESCRIPTION;
108  static const std::string CIF_DDL_ITEM_CASE;
109  static const std::string CIF_DDL_ITEM_MANDATORY_CODE;
110  static const std::string CIF_DDL_ITEM_DETAIL;
111  static const std::string CIF_DDL_ITEM_MAXIMUM;
112  static const std::string CIF_DDL_ITEM_MINIMUM;
113  static const std::string CIF_DDL_ITEM_VALUE;
114  static const std::string CIF_DDL_ITEM_DEPENDENT_NAME;
115  static const std::string CIF_DDL_ITEM_RELATED_NAME;
116  static const std::string CIF_DDL_ITEM_FUNCTION_CODE;
117  static const std::string CIF_DDL_ITEM_OFFSET;
118  static const std::string CIF_DDL_ITEM_OPERATOR;
119  static const std::string CIF_DDL_ITEM_FACTOR;
120  static const std::string CIF_DDL_ITEM_FROM_CODE;
121  static const std::string CIF_DDL_ITEM_TO_CODE;
122  static const std::string CIF_DDL_ITEM_UPDATE;
123  static const std::string CIF_DDL_ITEM_REVISION;
124  static const std::string CIF_DDL_ITEM_INLINE;
125  static const std::string CIF_DDL_ITEM_LANGUAGE;
126  static const std::string CIF_DDL_ITEM_PARENT_ID;
127 
128  static const std::string UnknownValue;
129  static const std::string InapplicableValue;
130 
131  static void MakeCifItem(std::string& cifItem,
132  const std::string& categoryName, const std::string& itemName);
133  static void MakeCifItems(std::vector<std::string>& cifItems,
134  const std::string& categoryName,
135  const std::vector<std::string>& attribsNames);
136 
137  static void GetItemFromCifItem(std::string& keyword,
138  const std::string& itemName);
139  static void GetCategoryFromCifItem(std::string& categoryName,
140  const std::string& itemName);
141 
142  static bool IsEmptyValue(const std::string& value);
143  static bool IsUnknownValue(const std::string& value);
144 
145  static bool IsSpecialChar(const char charValue);
146  static bool IsSpecialFirstChar(const char charValue);
147 };
148 
149 #endif