File: DataInfo.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 (101 lines) | stat: -rw-r--r-- 2,901 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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
//$$FILE$$
//$$VERSION$$
//$$DATE$$
//$$LICENSE$$


/**
** \file DataInfo.h
**
** Data info class.
*/


#ifndef DATAINFO_H
#define DATAINFO_H


#include <string>
#include <vector>
#include <iostream>

#include "rcsb_types.h"
#include "GenString.h"


class DataInfo
{
  public:
    DataInfo();
    virtual ~DataInfo();

    virtual void GetVersion(std::string& version) = 0;

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

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

    virtual bool IsCatDefined(const std::string& catName) const = 0;

    virtual bool IsItemDefined(const std::string& itemName) = 0;

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

    virtual const std::vector<std::string>&
      GetCatAttribute(const std::string& catName,
      const std::string& refCatName, const std::string& refAttribName) = 0;

    virtual const std::vector<std::string>&
      GetItemAttribute(const std::string& itemName,
      const std::string& refCatName, const std::string& refAttribName) = 0;

    virtual bool AreAllKeyItems(const std::string& catName,
      const std::vector<std::string>& attribsNames);

    virtual bool IsUnknownValueAllowed(const std::string& catName,
      const std::string& attribName);

    bool AreItemsValuesValid(const std::string& catName,
      const std::vector<std::string>& attribsNames,
      const std::vector<unsigned int>& attribsIndices,
      const std::vector<bool>& allowedNullAttribs,
      const std::vector<std::string>& values,
      const Char::eCompareType compareType = Char::eCASE_SENSITIVE);

    virtual bool IsKeyItem(const std::string& catName,
      const std::string& attribName,
      const Char::eCompareType compareType = Char::eCASE_SENSITIVE);

    virtual bool MustConvertItem(const std::string& catName,
      const std::string& attribName);

    virtual void GetItemsTypes(std::vector<eTypeCode>& attribsTypes,
      const std::string& catName, const std::vector<std::string>& attribsNames);

    virtual void StandardizeEnumItem(std::string& value,
      const std::string& catName,
      const std::string& attribName);

    void GetMandatoryItems(std::vector<std::string>& mandItemsNames,
      const std::string& catName);

    bool IsItemMandatory(const std::string& catName,
      const std::string& attribName);
    virtual bool IsItemMandatory(const std::string& itemName);

    // VLAD - RESOLVE THIS
    virtual bool IsSimpleDataType(const std::string& itemName);
    virtual eTypeCode _GetDataType(const std::string& itemName);

    const std::vector<std::vector<std::string> >&
      GetComboKeys(const std::string& catName);
    std::vector<std::vector<std::vector<std::string> > >&
      GetChildrenKeys(const std::vector<std::string>& parComboKey);
};

#ifndef VLAD_ATOM_SITES_ALT_ID_IGNORE
extern std::string CIF_ITEM;
#endif

#endif