14 #ifndef CIFCORRECTOR_H
15 #define CIFCORRECTOR_H
29 const std::string& inCifFileName);
33 CifFile& configFile,
const bool verbose =
false);
39 void Write(
const std::string& outFileName);
42 const bool verbose =
false);
56 void ValidateConfigTable();
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);
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);
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);
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);
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);
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);
101 void GetValuesFromSeparatedString(vector<string>& values,
102 const std::string& valueString,
const std::string& sep);
103 void NumberToLetter(
char& letter,
const unsigned int number);