File: CifDataInfo.h

package info (click to toggle)
librcsb-core-wrapper 1.005-13
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 16,576 kB
  • sloc: xml: 122,915; cpp: 25,250; ansic: 3,736; makefile: 1,033; sh: 772; lex: 294; yacc: 235; perl: 213; python: 121; csh: 30
file content (75 lines) | stat: -rw-r--r-- 1,746 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//$$FILE$$
//$$VERSION$$
//$$DATE$$
//$$LICENSE$$


/**
** \file CifDataInfo.h
**
** CIF data information class
*/


#ifndef CIFDATAINFO_H
#define CIFDATAINFO_H


#include <string>
#include <vector>

#include "DataInfo.h"
#include "DicFile.h"


class CifDataInfo : public DataInfo
{
  public:
    CifDataInfo(DicFile& dictFile);
    ~CifDataInfo();

    void GetVersion(std::string& version);

    const std::vector<std::string>& GetCatNames();

    const std::vector<std::string>& GetItemsNames();

    bool IsCatDefined(const std::string& catName) const;

    bool IsItemDefined(const std::string& itemName);

    const std::vector<std::string>& GetCatKeys(const std::string& catName);

    const std::vector<std::string>& GetCatAttribute(const std::string& catName,
      const std::string& refCatName, const std::string& refAttrName);

    const std::vector<std::string>&
      GetItemAttribute(const std::string& itemName,
      const std::string& refCatName, const std::string& refAttrName);

    virtual void GetCatItemsNames(std::vector<std::string>& itemsNames,
      const std::string& catName);

  protected:
    DicFile& _dictFile;

  private:
    std::string _version;
    std::vector<std::string> _catsNames;
    std::vector<std::string> _itemsNames;
    std::vector<std::string> _catKeyItems;
    std::vector<std::string> _catAttrib;
    std::vector<std::string> _itemAttrib;
    std::vector<std::string> _itemTypeListAttrib;

    void _GetDictVersion(std::string& dictVer);
    bool _isDictCategory(const std::string& category) const;

    const std::vector<std::string>&
      GetItemAttributeForItemTypeListCat(const std::string& itemName,
      const std::string& refCatName,
      const std::string& refAttrName);
};


#endif