00001
00002
00003
00004
00005
00006
00015 #ifndef DICTOBJCONTINFO_H
00016 #define DICTOBJCONTINFO_H
00017
00018
00019 #include <map>
00020
00021 #include "FileNavigator.h"
00022 #include "FileNavigatorError.h"
00023
00024
00037 class ObjContInfo
00038 {
00039 public:
00040 static const string CIF_DDL_CATEGORY_BLOCK;
00041 static const string CIF_DDL_CATEGORY_DATABLOCK;
00042 static const string CIF_DDL_CATEGORY_DATABLOCK_METHODS;
00043 static const string CIF_DDL_CATEGORY_ITEM;
00044 static const string CIF_DDL_CATEGORY_ITEM_LINKED;
00045 static const string CIF_DDL_CATEGORY_CATEGORY;
00046 static const string CIF_DDL_CATEGORY_CATEGORY_EXAMPLES;
00047 static const string CIF_DDL_CATEGORY_NDB_CATEGORY_EXAMPLES;
00048 static const string CIF_DDL_CATEGORY_CATEGORY_KEY;
00049 static const string CIF_DDL_CATEGORY_CATEGORY_GROUP;
00050 static const string CIF_DDL_CATEGORY_CATEGORY_GROUP_LIST;
00051 static const string CIF_DDL_CATEGORY_CATEGORY_METHODS;
00052 static const string CIF_DDL_CATEGORY_SUB_CATEGORY;
00053 static const string CIF_DDL_CATEGORY_SUB_CATEGORY_EXAMPLES;
00054 static const string CIF_DDL_CATEGORY_SUB_CATEGORY_METHODS;
00055 static const string CIF_DDL_CATEGORY_ITEM_SUB_CATEGORY;
00056 static const string CIF_DDL_CATEGORY_ITEM_TYPE;
00057 static const string CIF_DDL_CATEGORY_ITEM_TYPE_CONDITIONS;
00058 static const string CIF_DDL_CATEGORY_ITEM_METHODS;
00059 static const string CIF_DDL_CATEGORY_ITEM_TYPE_LIST;
00060 static const string CIF_DDL_CATEGORY_ITEM_STRUCTURE;
00061 static const string CIF_DDL_CATEGORY_ITEM_STRUCTURE_LIST;
00062 static const string CIF_DDL_CATEGORY_ITEM_DESCRIPTION;
00063 static const string CIF_DDL_CATEGORY_NDB_ITEM_DESCRIPTION;
00064 static const string CIF_DDL_CATEGORY_NDB_CATEGORY_DESCRIPTION;
00065 static const string CIF_DDL_CATEGORY_ITEM_EXAMPLES;
00066 static const string CIF_DDL_CATEGORY_NDB_ITEM_EXAMPLES;
00067 static const string CIF_DDL_CATEGORY_ITEM_DEPENDENT;
00068 static const string CIF_DDL_CATEGORY_ITEM_RELATED;
00069 static const string CIF_DDL_CATEGORY_ITEM_RANGE;
00070 static const string CIF_DDL_CATEGORY_ITEM_ENUMERATION;
00071 static const string CIF_DDL_CATEGORY_NDB_ITEM_ENUMERATION;
00072 static const string CIF_DDL_CATEGORY_ITEM_DEFAULT;
00073 static const string CIF_DDL_CATEGORY_ITEM_ALIASES;
00074 static const string CIF_DDL_CATEGORY_DICTIONARY;
00075 static const string CIF_DDL_CATEGORY_DICTIONARY_HISTORY;
00076 static const string CIF_DDL_CATEGORY_ITEM_UNITS;
00077 static const string CIF_DDL_CATEGORY_ITEM_UNITS_LIST;
00078 static const string CIF_DDL_CATEGORY_ITEM_UNITS_CONVERSION;
00079 static const string CIF_DDL_CATEGORY_METHOD_LIST;
00080
00081 static const string CIF_DDL_ITEM_ID;
00082 static const string CIF_DDL_ITEM_CATEGORY_ID;
00083 static const string CIF_DDL_ITEM_SUB_CATEGORY_ID;
00084 static const string CIF_DDL_ITEM_METHOD_ID;
00085 static const string CIF_DDL_ITEM_PARENT_NAME;
00086 static const string CIF_DDL_ITEM_CHILD_NAME;
00087 static const string CIF_DDL_ITEM_ALIAS_NAME;
00088 static const string CIF_DDL_ITEM_DICTIONARY;
00089 static const string CIF_DDL_ITEM_TITLE;
00090 static const string CIF_DDL_ITEM_VERSION;
00091 static const string CIF_DDL_ITEM_NAME;
00092 static const string CIF_DDL_ITEM_CODE;
00093 static const string CIF_DDL_ITEM_PRIMITIVE_CODE;
00094 static const string CIF_DDL_ITEM_CONSTRUCT;
00095 static const string CIF_DDL_ITEM_ORGANIZATION;
00096 static const string CIF_DDL_ITEM_INDEX;
00097 static const string CIF_DDL_ITEM_DIMENSION;
00098 static const string CIF_DDL_ITEM_DATABLOCK_ID;
00099 static const string CIF_DDL_ITEM_DESCRIPTION;
00100 static const string CIF_DDL_ITEM_NDB_DESCRIPTION;
00101 static const string CIF_DDL_ITEM_CASE;
00102 static const string CIF_DDL_ITEM_MANDATORY_CODE;
00103 static const string CIF_DDL_ITEM_DETAIL;
00104 static const string CIF_DDL_ITEM_MAXIMUM;
00105 static const string CIF_DDL_ITEM_MINIMUM;
00106 static const string CIF_DDL_ITEM_VALUE;
00107 static const string CIF_DDL_ITEM_DEPENDENT_NAME;
00108 static const string CIF_DDL_ITEM_RELATED_NAME;
00109 static const string CIF_DDL_ITEM_FUNCTION_CODE;
00110 static const string CIF_DDL_ITEM_OFFSET;
00111 static const string CIF_DDL_ITEM_OPERATOR;
00112 static const string CIF_DDL_ITEM_FACTOR;
00113 static const string CIF_DDL_ITEM_FROM_CODE;
00114 static const string CIF_DDL_ITEM_TO_CODE;
00115 static const string CIF_DDL_ITEM_UPDATE;
00116 static const string CIF_DDL_ITEM_REVISION;
00117 static const string CIF_DDL_ITEM_INLINE;
00118 static const string CIF_DDL_ITEM_LANGUAGE;
00119 static const string CIF_DDL_ITEM_PARENT_ID;
00120
00126 class Item
00127 {
00128 public:
00129 string descr;
00130 string itemName;
00131 };
00132
00138 class Cat
00139 {
00140 public:
00141 string catName;
00142 string col1;
00143 bool nonDefaultValue;
00144 bool inheritance;
00145 vector<Item> items;
00146 };
00147
00148 string _objContInfoDescr;
00149
00150 vector<Cat> _cats;
00151
00152 map<pair<string, string>, pair<unsigned int, unsigned int> > _catMap;
00153
00158 ObjContInfo();
00159
00164 void AddCat(const string& catName, const string& col1,
00165 const bool nonDefaultValue = false, const bool inheritance = false);
00166
00171 void AddItem(const string& descr, const string& itemName);
00172
00177 unsigned int GetItemIndex(const string& catName,
00178 const string& itemName) const;
00179
00184 pair<unsigned int, unsigned int> GetItemIndices(
00185 const string& catName, const string& itemName) const;
00186
00187 private:
00188 vector<Cat>::iterator currCat;
00189 };
00190
00191
00198 class DictObjContInfo : public ObjContInfo
00199 {
00200 public:
00201 DictObjContInfo::DictObjContInfo();
00202 };
00203
00204
00211 class CatObjContInfo : public ObjContInfo
00212 {
00213 public:
00214 CatObjContInfo::CatObjContInfo();
00215 };
00216
00217
00224 class SubcatObjContInfo : public ObjContInfo
00225 {
00226 public:
00227 SubcatObjContInfo::SubcatObjContInfo();
00228 };
00229
00230
00237 class ItemObjContInfo : public ObjContInfo
00238 {
00239 public:
00240 ItemObjContInfo::ItemObjContInfo();
00241 };
00242
00243
00244 extern class DictObjContInfo RcsbDict;
00245 extern class CatObjContInfo RcsbCat;
00246 extern class SubcatObjContInfo RcsbSubcat;
00247 extern class ItemObjContInfo RcsbItem;
00248
00249
00250 #endif // DICTOBJCONTINFO_H