librcsb-core-wrapper 1.005
CifCorrector.h
Go to the documentation of this file.
1//$$FILE$$
2//$$VERSION$$
3//$$DATE$$
4//$$LICENSE$$
5
6
14#ifndef CIFCORRECTOR_H
15#define CIFCORRECTOR_H
16
17
18#include <string>
19#include <vector>
20
21#include <rcsb/DataInfo.h>
22#include <rcsb/CifFile.h>
23
24
26{
27 public:
28 static void MakeOutputCifFileName(std::string& outCifFileName,
29 const std::string& inCifFileName);
31
32 CifCorrector(CifFile& cifFile, DataInfo& dataInfo, DataInfo& pdbxDataInfo,
33 CifFile& configFile, const bool verbose = false);
35
36 void Correct();
38
39 void Write(const std::string& outFileName);
40
41 static void CorrectEnumsSimple(CifFile& cifFile, DataInfo& dataInfo,
42 const bool verbose = false);
43
44 private:
45 CifFile& _cifFile;
46
47 DataInfo& _dataInfo;
48 DataInfo& _pdbxDataInfo;
49
50 CifFile& _configFile;
51
52 bool _verbose;
53
54 ISTable* _configTableP;
55
56 void ValidateConfigTable();
57
58 void RemoveItem(const std::string& item);
59 void CorrectUpperCase(const std::string& item);
60 void RenameItem(const std::string& item, const std::string& refItem);
61 void CorrectValues(const std::string& item, const std::string& itemValue,
62 const std::string& refItemValue);
63 void CorrectEnums();
64 void CorrectNumericList(const std::string& item);
65 void CorrectNotApplicableValues();
66 void CorrectMissingValues(const std::string& item,
67 const std::string& refItem);
68 void CorrectLabeling(const std::string& item,
69 const std::string& refItem);
70 void CorrectBadSequence(const std::string& item,
71 const std::string& refCondItem, const std::string& refCondItemValue);
72
73 static unsigned int FindEnumIndex(const std::string& value,
74 const std::vector<std::string>& enums);
75 void FixNumericList(std::string& outValue, const std::string& inValue);
76 void FixNotApplicable(std::string& outValue, const std::string& inValue);
77 void FixBadSequence(std::vector<std::string>& outValues,
78 std::vector<std::pair<std::vector<std::string>,
79 std::vector<std::string> > >& refMap,
80 std::vector<std::vector<std::string> >& confRefValues, Block& block,
81 const unsigned int numRows);
82
83 void GetSrcValues(vector<string>& srcValues,
84 const vector<string>& srcItems, const vector<string>& prevRefItems,
85 const vector<string>& confValues, Block& block,
86 const unsigned int rowIndex);
87
88 void GetRefValues(std::vector<std::string>& refValues,
89 const std::vector<std::string>& srcItems,
90 const std::vector<std::string>& srcValues,
91 const std::vector<std::string>& refItems, Block& block);
92 void GetTableValues(vector<string>& values, const vector<string>& items,
93 Block& block, const unsigned int rowIndex);
94
95
96 void CreateRefMap(std::vector<std::pair<std::vector<std::string>,
97 std::vector<std::string> > >& refMap, const std::string& refCondItem);
98 void ExtractRefValues(std::vector<std::vector<std::string> >& refValues,
99 const std::string& refCondItemValue);
100
101 void GetValuesFromSeparatedString(vector<string>& values,
102 const std::string& valueString, const std::string& sep);
103 void NumberToLetter(char& letter, const unsigned int number);
104};
105
106
107#endif
Header file for CifFile class.
Public class that represents a data block, that contains tables.
Definition TableFile.h:41
Definition CifCorrector.h:26
static void CorrectEnumsSimple(CifFile &cifFile, DataInfo &dataInfo, const bool verbose=false)
void Correct()
void Write(const std::string &outFileName)
static CifFile * CreateConfigFile()
static void MakeOutputCifFileName(std::string &outCifFileName, const std::string &inCifFileName)
void CheckAliases()
CifCorrector(CifFile &cifFile, DataInfo &dataInfo, DataInfo &pdbxDataInfo, CifFile &configFile, const bool verbose=false)
Public class that represents a CIF file, composed of blocks with tables.
Definition CifFile.h:48
Definition DataInfo.h:27
Public class that respresents a two-dimensional table of strings.
Definition ISTable.h:54