277 void SetLooping(
const std::string& catName,
bool looping =
false);
316 void Write(
const std::string& cifFileName,
const bool sortTables =
false,
317 const bool writeEmptyTables =
false);
339 void Write(
const std::string& cifFileName,
340 const std::vector<std::string>& tableOrder,
341 const bool writeEmptyTables =
false);
364 void Write(std::ostream& outStream,
const bool sortTables =
false,
365 const bool writeEmptyTables =
false);
391 const std::string& globalBlockName,
const bool sortTables =
false,
392 const bool writeEmptyTables =
false);
418 const bool extraDictChecks =
false,
const bool extraCifChecks =
false);
444 const bool extraDictChecks =
false,
const bool extraCifChecks =
false);
515 const std::string& category,
const std::string& attribute);
517 const std::string& category,
const std::string& attributeA,
518 const std::string& attributeB,
const std::string& valB);
520 const std::string& category,
const std::string& attribute);
523 const std::string& category,
524 const std::string& attribute,
const std::string& value,
525 const bool create =
false);
527 const std::string& category,
const std::string& attributeA,
528 const std::string& valA,
529 const std::string& attributeB,
const std::string& valB,
530 const bool create =
false);
532 const std::string& category,
const std::string& attribute,
533 const std::string& value);
536 const std::string& blockId,
537 const std::string& category,
const std::string& attribute);
539 const std::string& blockId,
const std::string& category,
540 const std::string& attributeA,
541 const std::string& attributeB,
const std::string& valB);
544 const std::string& category,
const std::string& attribute,
545 const std::vector<std::string>& values);
547 #ifdef VLAD_TO_CIF_FILE_NOT_USED
548 void del_attribute_value_where(
CifFile *fobj,
const char *blockId,
549 const char *category,
const char *attributeB,
const char *valB);
550 #endif // VLAD_TO_CIF_FILE_NOT_USED not defined
588 void _PrintItemName(std::ostream& cifo,
const std::string& category,
589 const std::string& itemName,
unsigned int& linePos);
591 const bool ident =
false,
const unsigned int numSpaces = 1);
595 const unsigned int width = 0);
599 const unsigned int width = 0);
602 const std::vector<std::string>& colNames,
603 const std::vector<unsigned int>& colWidths,
604 const std::vector<eIdentType> colPrintType);
606 void Write(std::ostream& cifo,
const std::vector<std::string>& catOrder,
607 const bool writeEmptyTables =
false);
609 void Write(std::ostream& cifo, std::vector<unsigned int>& tables,
610 const bool writeEmptyTables =
false);
614 std::string _srcFileName;
616 bool _extraDictChecks;
617 bool _extraCifChecks;
621 bool IsCatDefinedInRef(
const std::string& catName,
ISTable& catTable);
622 bool IsItemDefinedInRef(
const std::string& catName,
623 const std::string& itemName,
ISTable& refItemTable);
624 void CheckKeyItems(
const std::string& blockName,
ISTable& catTable,
625 ISTable& keyTable, std::ostringstream& log);
626 void CheckKeyValues(
const std::vector<std::string>& keyItems,
627 ISTable& catTable, std::ostringstream& log);
629 void GetKeyAttributes(std::vector<std::string>& keyAttributes,
630 const std::string& catTableName,
ISTable& catKeyTable);
631 void CheckKeyItems(
const std::string& blockName,
ISTable& catTable,
632 const std::vector<std::string>& keyAttributes, std::ostringstream& log);
634 void CheckMandatoryItems(
const std::string& blockName,
ISTable& catTable,
635 ISTable& refItemTable,
const std::vector<std::string>& keyItems,
636 std::ostringstream& log);
638 void CheckAndRectifyItemTypeCode(
Block& block, std::ostringstream& log);
639 void RectifyItemTypeCode(std::string& retItemTypeCode,
641 const std::string& cifItemName);
643 int CheckRegExpRangeEnum(
Block& block,
ISTable& catTable,
644 const std::string& attribName,
ISTable& itemTypeTable,
647 std::ostringstream& log);
649 int CheckCellRange(
const std::string& cell,
const std::string& typeCode,
650 const std::vector<std::string>& minlist,
651 const std::vector<std::string>& maxlist);
653 int CheckCellEnum(
const std::string& cell,
const std::string& typeCode,
654 const std::string& primCode,
const std::vector<std::string>& enumlist);
656 int CheckCellFloatRange(
const std::string& cell,
657 const std::vector<std::string>& minlist,
658 const std::vector<std::string>& maxlist);
660 int CheckCellIntRange(
const std::string& cell,
661 const std::vector<std::string>& minlist,
662 const std::vector<std::string>& maxlist);
664 int CheckCellFloatEnum(
const std::string& cell,
665 const std::vector<std::string>& enumlist);
667 int CheckCellIntEnum(
const std::string& cell,
668 const std::vector<std::string>& enumlist);
670 int CheckCellOtherEnum(
const std::string& cell,
const std::string& primCode,
671 const std::vector<std::string>& enumlist);
673 void GetItemTypeCode(std::string& typeCode,
const std::string& cifItemName,
676 void ConvertEscapedString(
const std::string& inString,
677 std::string& outString);
std::string _beginLoopKeyword
Definition: CifFile.h:573
void SetSmartPrint(bool smartPrint=true)
Definition: CifFile.h:687
void SetLooping(const std::string &catName, bool looping=false)
void GetAttributeValues(std::vector< std::string > &strings, const std::string &blockId, const std::string &category, const std::string &attribute)
void SetAttributeValueIfNull(const std::string &blockId, const std::string &category, const std::string &attribute, const std::string &value)
static const std::string UnknownValue
Definition: CifString.h:128
void _PrintItemName(std::ostream &cifo, const std::string &category, const std::string &itemName, unsigned int &linePos)
std::string _beginDataKeyword
Definition: CifFile.h:570
int DataChecking(CifFile &dicRef, const std::string &diagFileName, const bool extraDictChecks=false, const bool extraCifChecks=false)
void GetAttributeValue(std::string &attribVal, const std::string &blockId, const std::string &category, const std::string &attribute)
void Write(const std::string &cifFileName, const bool sortTables=false, const bool writeEmptyTables=false)
int _PrintItemNameInHeader(std::ostream &cifo, const std::string &itemValue, unsigned int &linePos, const eIdentType identType=eNONE, const unsigned int width=0)
int CheckItems(Block &block, Block &refBlock, std::ostringstream &log)
bool GetLooping(const std::string &catName)
std::string _endDataKeyword
Definition: CifFile.h:571
std::string _endLoopKeyword
Definition: CifFile.h:574
void _PrintItemIdent(std::ostream &cifo, unsigned int &linePos)
void SetAttributeValue(const std::string &blockId, const std::string &category, const std::string &attribute, const std::string &value, const bool create=false)
unsigned int _maxCifLineLength
Definition: CifFile.h:576
Definition: CifParentChild.h:37
bool GetVerbose()
Definition: CifFile.h:681
int CheckCategories(Block &block, Block &refBlock, std::ostringstream &log)
static const unsigned int STD_PRINT_SPACING
Definition: CifFile.h:559
bool _enumCaseSense
Definition: CifFile.h:582
std::map< std::string, bool > _looping
Definition: CifFile.h:581
bool IsAttributeValueDefined(const std::string &blockId, const std::string &category, const std::string &attribute)
Definition: GenString.h:28
eIdentType
Definition: CifFile.h:563
void GetAttributeValueIf(std::string &attribVal, const std::string &blockId, const std::string &category, const std::string &attributeA, const std::string &attributeB, const std::string &valB)
unsigned int GetQuoting()
bool _verbose
Definition: CifFile.h:578
int _IsQuotableText(const std::string &itemValue)
void GetAttributeValuesIf(std::vector< std::string > &strings, const std::string &blockId, const std::string &category, const std::string &attributeA, const std::string &attributeB, const std::string &valB)
std::string _quotes
Definition: CifFile.h:580
void WriteNmrStar(const std::string &nmrStarFileName, const std::string &globalBlockName, const bool sortTables=false, const bool writeEmptyTables=false)
int _PrintItemValue(std::ostream &cifo, const std::string &itemValue, unsigned int &linePos, const eIdentType identType=eNONE, const unsigned int width=0)
Header file for CifParentChild class.
Definition: CifFile.h:566
void CheckItemsTable(Block &block, std::ostringstream &log)
const std::string & GetSrcFileName()
bool _smartPrint
Definition: CifFile.h:579
const std::string & GetParsingDiags()
void SetQuoting(eQuoting quoting)
Public class that represents a data block, that contains tables.
Definition: TableFile.h:40
std::string _parsingDiags
Definition: CifFile.h:50
static const unsigned int STD_CIF_LINE_LENGTH
Definition: CifFile.h:53
Definition: CifFile.h:565
static const unsigned int SMART_PRINT_SPACING
Definition: CifFile.h:560
void _PrintHeaderedItems(std::ostream &cifo, const std::vector< std::string > &colNames, const std::vector< unsigned int > &colWidths, const std::vector< eIdentType > colPrintType)
std::string _nullValue
Definition: CifFile.h:577
CifFile(const eFileMode fileMode, const std::string &fileName, const bool verbose=false, const Char::eCompareType caseSense=Char::eCASE_SENSITIVE, const unsigned int maxLineLength=STD_CIF_LINE_LENGTH, const std::string &nullValue=CifString::UnknownValue)
void SetEnumCheck(bool caseSense=false)
void SetAttributeValues(const std::string &blockId, const std::string &category, const std::string &attribute, const std::vector< std::string > &values)
void SetSrcFileName(const std::string &srcFileName)
void _PrintPostItemSeparator(std::ostream &cifo, unsigned int &linePos, const bool ident=false, const unsigned int numSpaces=1)
void CheckCategoryKey(Block &block, std::ostringstream &log)
std::string _checkingDiags
Definition: CifFile.h:51
eQuoting
Definition: CifFile.h:55
static const unsigned int HEADER_SPACING
Definition: CifFile.h:561
Public class that represents a CIF file, composed of blocks with tables.
Definition: CifFile.h:47
Definition: CifFile.h:567
void FindCifNullRows(std::vector< unsigned int > &nullRowsIndices, const ISTable &isTable)
Public class that represents a file composed of blocks with tables.
Definition: TableFile.h:361
void SetAttributeValueIf(const std::string &blockId, const std::string &category, const std::string &attributeA, const std::string &valA, const std::string &attributeB, const std::string &valB, const bool create=false)
Header file for Block and TableFile classes.
eIdentType _FindPrintType(const std::vector< std::string > &values)
Public class that respresents a two-dimensional table of strings.
Definition: ISTable.h:53
eCompareType
Definition: GenString.h:26
eFileMode
Definition: Serializer.h:33
bool IsSmartPrint()
Definition: CifFile.h:693