DictObjContInfo.h

Go to the documentation of this file.
00001 //$$FILE$$
00002 //$$VERSION$$
00003 //$$DATE$$
00004 //$$LICENSE$$
00005 
00006 
00015 #ifndef DICTOBJCONTINFO_H
00016 #define DICTOBJCONTINFO_H
00017 
00018 
00019 #include <string>
00020 #include <map>
00021 
00022 #include "Serializer.h"
00023 #include "rcsb_types.h"
00024 
00025 using std::string;
00026 using std::pair;
00027 using std::map;
00028 
00041 class ObjContInfo
00042 {
00043   public:
00044     static const string CIF_DDL_CATEGORY_BLOCK;
00045     static const string CIF_DDL_CATEGORY_DATABLOCK;
00046     static const string CIF_DDL_CATEGORY_DATABLOCK_METHODS;
00047     static const string CIF_DDL_CATEGORY_ITEM;
00048     static const string CIF_DDL_CATEGORY_ITEM_LINKED;
00049     static const string CIF_DDL_CATEGORY_CATEGORY;
00050     static const string CIF_DDL_CATEGORY_CATEGORY_EXAMPLES;
00051     static const string CIF_DDL_CATEGORY_NDB_CATEGORY_EXAMPLES;
00052     static const string CIF_DDL_CATEGORY_CATEGORY_KEY;
00053     static const string CIF_DDL_CATEGORY_CATEGORY_GROUP;
00054     static const string CIF_DDL_CATEGORY_CATEGORY_GROUP_LIST;
00055     static const string CIF_DDL_CATEGORY_CATEGORY_METHODS;
00056     static const string CIF_DDL_CATEGORY_SUB_CATEGORY;
00057     static const string CIF_DDL_CATEGORY_SUB_CATEGORY_EXAMPLES;
00058     static const string CIF_DDL_CATEGORY_SUB_CATEGORY_METHODS;
00059     static const string CIF_DDL_CATEGORY_ITEM_SUB_CATEGORY;
00060     static const string CIF_DDL_CATEGORY_ITEM_TYPE;
00061     static const string CIF_DDL_CATEGORY_ITEM_TYPE_CONDITIONS;
00062     static const string CIF_DDL_CATEGORY_ITEM_METHODS;
00063     static const string CIF_DDL_CATEGORY_ITEM_TYPE_LIST;
00064     static const string CIF_DDL_CATEGORY_ITEM_STRUCTURE;
00065     static const string CIF_DDL_CATEGORY_ITEM_STRUCTURE_LIST;
00066     static const string CIF_DDL_CATEGORY_ITEM_DESCRIPTION;
00067     static const string CIF_DDL_CATEGORY_NDB_ITEM_DESCRIPTION;
00068     static const string CIF_DDL_CATEGORY_NDB_CATEGORY_DESCRIPTION;
00069     static const string CIF_DDL_CATEGORY_ITEM_EXAMPLES;
00070     static const string CIF_DDL_CATEGORY_NDB_ITEM_EXAMPLES;
00071     static const string CIF_DDL_CATEGORY_ITEM_DEPENDENT;
00072     static const string CIF_DDL_CATEGORY_ITEM_RELATED;
00073     static const string CIF_DDL_CATEGORY_ITEM_RANGE;
00074     static const string CIF_DDL_CATEGORY_ITEM_ENUMERATION;
00075     static const string CIF_DDL_CATEGORY_NDB_ITEM_ENUMERATION;
00076     static const string CIF_DDL_CATEGORY_ITEM_DEFAULT;
00077     static const string CIF_DDL_CATEGORY_ITEM_ALIASES;
00078     static const string CIF_DDL_CATEGORY_DICTIONARY;
00079     static const string CIF_DDL_CATEGORY_DICTIONARY_HISTORY;
00080     static const string CIF_DDL_CATEGORY_ITEM_UNITS;
00081     static const string CIF_DDL_CATEGORY_ITEM_UNITS_LIST;
00082     static const string CIF_DDL_CATEGORY_ITEM_UNITS_CONVERSION;
00083     static const string CIF_DDL_CATEGORY_METHOD_LIST;
00084 
00085     static const string CIF_DDL_ITEM_ID;
00086     static const string CIF_DDL_ITEM_CATEGORY_ID;
00087     static const string CIF_DDL_ITEM_SUB_CATEGORY_ID;
00088     static const string CIF_DDL_ITEM_METHOD_ID;
00089     static const string CIF_DDL_ITEM_PARENT_NAME;
00090     static const string CIF_DDL_ITEM_CHILD_NAME;
00091     static const string CIF_DDL_ITEM_ALIAS_NAME;
00092     static const string CIF_DDL_ITEM_DICTIONARY;
00093     static const string CIF_DDL_ITEM_TITLE;
00094     static const string CIF_DDL_ITEM_VERSION;
00095     static const string CIF_DDL_ITEM_NAME;
00096     static const string CIF_DDL_ITEM_CODE;
00097     static const string CIF_DDL_ITEM_PRIMITIVE_CODE;
00098     static const string CIF_DDL_ITEM_CONSTRUCT;
00099     static const string CIF_DDL_ITEM_ORGANIZATION;
00100     static const string CIF_DDL_ITEM_INDEX;
00101     static const string CIF_DDL_ITEM_DIMENSION;
00102     static const string CIF_DDL_ITEM_DATABLOCK_ID;
00103     static const string CIF_DDL_ITEM_DESCRIPTION;
00104     static const string CIF_DDL_ITEM_NDB_DESCRIPTION;
00105     static const string CIF_DDL_ITEM_CASE;
00106     static const string CIF_DDL_ITEM_MANDATORY_CODE;
00107     static const string CIF_DDL_ITEM_DETAIL;
00108     static const string CIF_DDL_ITEM_MAXIMUM;
00109     static const string CIF_DDL_ITEM_MINIMUM;
00110     static const string CIF_DDL_ITEM_VALUE;
00111     static const string CIF_DDL_ITEM_DEPENDENT_NAME;
00112     static const string CIF_DDL_ITEM_RELATED_NAME;
00113     static const string CIF_DDL_ITEM_FUNCTION_CODE;
00114     static const string CIF_DDL_ITEM_OFFSET;
00115     static const string CIF_DDL_ITEM_OPERATOR;
00116     static const string CIF_DDL_ITEM_FACTOR;
00117     static const string CIF_DDL_ITEM_FROM_CODE;
00118     static const string CIF_DDL_ITEM_TO_CODE;
00119     static const string CIF_DDL_ITEM_UPDATE;
00120     static const string CIF_DDL_ITEM_REVISION;
00121     static const string CIF_DDL_ITEM_INLINE;
00122     static const string CIF_DDL_ITEM_LANGUAGE;
00123     static const string CIF_DDL_ITEM_PARENT_ID;
00124 
00130     class Item
00131     {
00132       public:
00133         string descr;
00134         string itemName;
00135     };
00136 
00142     class Cat
00143     {
00144       public:
00145         string catName;
00146         string col1;
00147         bool nonDefaultValue;
00148         bool inheritance;
00149         vector<Item> items;
00150     };
00151 
00152     string _objContInfoDescr;
00153 
00154     vector<Cat> _cats;
00155 
00156     map<pair<string, string>, pair<unsigned int, unsigned int> > _catMap;
00157 
00162     ObjContInfo();
00163 
00168     void AddCat(const string& catName, const string& col1,
00169       const bool nonDefaultValue = false, const bool inheritance = false);
00170 
00175     void AddItem(const string& descr, const string& itemName);
00176 
00181     unsigned int GetItemIndex(const string& catName,
00182       const string& itemName) const;
00183 
00188     pair<unsigned int, unsigned int> GetItemIndices(
00189       const string& catName, const string& itemName) const;
00190 
00195     ~ObjContInfo();
00196 
00197   private:
00198     vector<Cat>::iterator currCat;
00199 };
00200 
00201 
00208 class DictObjContInfo : public ObjContInfo
00209 {
00210   public:
00211     DictObjContInfo();
00212 };
00213 
00214 
00221 class CatObjContInfo : public ObjContInfo
00222 {
00223   public:
00224     CatObjContInfo();
00225 };
00226 
00227 
00234 class SubcatObjContInfo : public ObjContInfo
00235 {
00236   public:
00237     SubcatObjContInfo();
00238 };
00239 
00240 
00247 class ItemObjContInfo : public ObjContInfo
00248 {
00249   public:
00250     ItemObjContInfo();
00251 };
00252 
00253 
00254 extern class DictObjContInfo RcsbDict;
00255 extern class CatObjContInfo RcsbCat;
00256 extern class SubcatObjContInfo RcsbSubcat;
00257 extern class ItemObjContInfo RcsbItem;
00258 
00259 
00260 #endif // DICTOBJCONTINFO_H

Generated on Wed Feb 6 09:44:16 2008 for dict-obj-file-v8.0 by  doxygen 1.5.1