|
librcsb-core-wrapper
1.005
|
Public class that represents a CIF file, composed of blocks with tables. More...
#include <CifFile.h>


Public Types | |
| enum | eQuoting { eSINGLE = 0, eDOUBLE } |
Public Types inherited from TableFile | |
| enum | eStatusInd { eCLEAR_STATUS = 0x0000, eDUPLICATE_BLOCKS = 0x0001, eUNNAMED_BLOCKS = 0x0002 } |
Public Member Functions | |
| 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) | |
| CifFile (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) | |
| ~CifFile () | |
| void | SetSrcFileName (const std::string &srcFileName) |
| const std::string & | GetSrcFileName () |
| bool | GetVerbose () |
| void | SetSmartPrint (bool smartPrint=true) |
| bool | IsSmartPrint () |
| void | SetQuoting (eQuoting quoting) |
| unsigned int | GetQuoting () |
| void | SetLooping (const std::string &catName, bool looping=false) |
| bool | GetLooping (const std::string &catName) |
| void | Write (const std::string &cifFileName, const bool sortTables=false, const bool writeEmptyTables=false) |
| void | Write (const std::string &cifFileName, const std::vector< std::string > &tableOrder, const bool writeEmptyTables=false) |
| void | Write (std::ostream &outStream, const bool sortTables=false, const bool writeEmptyTables=false) |
| void | WriteNmrStar (const std::string &nmrStarFileName, const std::string &globalBlockName, const bool sortTables=false, const bool writeEmptyTables=false) |
| int | DataChecking (CifFile &dicRef, const std::string &diagFileName, const bool extraDictChecks=false, const bool extraCifChecks=false) |
| int | DataChecking (Block &block, Block &refBlock, std::ostringstream &buf, const bool extraDictChecks=false, const bool extraCifChecks=false) |
| void | SetEnumCheck (bool caseSense=false) |
| bool | GetEnumCheck () |
| const std::string & | GetParsingDiags () |
| void | FindCifNullRows (std::vector< unsigned int > &nullRowsIndices, const ISTable &isTable) |
| void | GetAttributeValue (std::string &attribVal, const std::string &blockId, const std::string &category, const std::string &attribute) |
| 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) |
| bool | IsAttributeValueDefined (const std::string &blockId, const std::string &category, const std::string &attribute) |
| void | SetAttributeValue (const std::string &blockId, const std::string &category, const std::string &attribute, const std::string &value, const bool create=false) |
| 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) |
| void | SetAttributeValueIfNull (const std::string &blockId, const std::string &category, const std::string &attribute, const std::string &value) |
| void | GetAttributeValues (std::vector< std::string > &strings, const std::string &blockId, const std::string &category, const std::string &attribute) |
| 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) |
| void | SetAttributeValues (const std::string &blockId, const std::string &category, const std::string &attribute, const std::vector< std::string > &values) |
| int | CheckCategories (Block &block, Block &refBlock, std::ostringstream &log) |
| void | CheckCategoryKey (Block &block, std::ostringstream &log) |
| void | CheckItemsTable (Block &block, std::ostringstream &log) |
| int | CheckItems (Block &block, Block &refBlock, std::ostringstream &log) |
Public Member Functions inherited from TableFile | |
| TableFile (const Char::eCompareType caseSense=Char::eCASE_SENSITIVE) | |
| TableFile (const eFileMode fileMode, const string &fileName, const Char::eCompareType caseSense=Char::eCASE_SENSITIVE) | |
| virtual | ~TableFile () |
| string | GetFileName (void) |
| eFileMode | GetFileMode (void) |
| Char::eCompareType | GetCaseSensitivity (void) |
| unsigned int | GetStatusInd (void) |
| unsigned int | GetNumBlocks () |
| void | GetBlockNames (vector< string > &blockNames) |
| string | GetFirstBlockName () |
| bool | IsBlockPresent (const string &blockName) |
| string | AddBlock (const string &blockName) |
| Block & | GetBlock (const string &blockName) |
| string | RenameBlock (const string &oldBlockName, const string &newBlockName) |
| string | RenameFirstBlock (const string &newBlockName) |
| void | Flush () |
| void | Serialize (const string &fileName) |
| void | Close () |
Public Attributes | |
| std::string | _parsingDiags |
| std::string | _checkingDiags |
Static Public Attributes | |
| static const unsigned int | STD_CIF_LINE_LENGTH = 80 |
Protected Types | |
| enum | eIdentType { eNONE = 0, eLEFT, eRIGHT } |
Protected Member Functions | |
| int | _IsQuotableText (const std::string &itemValue) |
| eIdentType | _FindPrintType (const std::vector< std::string > &values) |
| void | _PrintItemIdent (std::ostream &cifo, unsigned int &linePos) |
| void | _PrintItemName (std::ostream &cifo, const std::string &category, const std::string &itemName, unsigned int &linePos) |
| void | _PrintPostItemSeparator (std::ostream &cifo, unsigned int &linePos, const bool ident=false, const unsigned int numSpaces=1) |
| int | _PrintItemValue (std::ostream &cifo, const std::string &itemValue, unsigned int &linePos, const eIdentType identType=eNONE, const unsigned int width=0) |
| int | _PrintItemNameInHeader (std::ostream &cifo, const std::string &itemValue, unsigned int &linePos, const eIdentType identType=eNONE, const unsigned int width=0) |
| void | _PrintHeaderedItems (std::ostream &cifo, const std::vector< std::string > &colNames, const std::vector< unsigned int > &colWidths, const std::vector< eIdentType > colPrintType) |
| void | Write (std::ostream &cifo, const std::vector< std::string > &catOrder, const bool writeEmptyTables=false) |
| void | Write (std::ostream &cifo, std::vector< unsigned int > &tables, const bool writeEmptyTables=false) |
Protected Member Functions inherited from TableFile | |
| void | _SetStatusInd (const string &blockName) |
| void | _AddBlock (const string &blockName, Serializer *serP) |
| void | _GetNumTablesInBlocks (vector< UInt32 > &numTablesInBlocks) |
| ISTable * | _GetTablePtr (const unsigned int blockIndex, const unsigned int tableIndex) |
| void | _GetAllTables () |
| unsigned int | GetTotalNumTables () |
| void | GetTableNames (vector< string > &tableNames) |
| void | GetTablesIndices (vector< unsigned int > &tablesIndices) |
| void | GetSortedTablesIndices (vector< unsigned int > &tablesIndices) |
| void | _ReadFileIndex () |
| void | _ReadFileIndexVersion0 () |
| void | _ReadFileIndexVersion1 () |
| void | _WriteFileIndex (Serializer *serP, const vector< unsigned int > &tableLocs) |
Protected Attributes | |
| std::string | _beginDataKeyword |
| std::string | _endDataKeyword |
| std::string | _beginLoopKeyword |
| std::string | _endLoopKeyword |
| unsigned int | _maxCifLineLength |
| std::string | _nullValue |
| bool | _verbose |
| bool | _smartPrint |
| std::string | _quotes |
| std::map< std::string, bool > | _looping |
| bool | _enumCaseSense |
Protected Attributes inherited from TableFile | |
| string | _fileName |
| eFileMode | _fileMode |
| Char::eCompareType | _caseSense |
| unsigned int | _statusInd |
| mapped_ptr_vector< Block, StringLess > | _blocks |
| Serializer * | _f |
Static Protected Attributes | |
| static const unsigned int | STD_PRINT_SPACING = 3 |
| static const unsigned int | SMART_PRINT_SPACING = 1 |
| static const unsigned int | HEADER_SPACING = 40 |
Public class that represents a CIF file, composed of blocks with tables.
This class represents a CIF file. In addition to inherited methods from TableFile class, this class provides methods for writing the data to a text file, along with methods for controlling how the data is written, and a method for verifying the CIF file against dictionary.
|
protected |
| enum CifFile::eQuoting |
| CifFile::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 |
||
| ) |
Constructs a CIF file.
| [in] | fileMode | - CIF file mode. Possible values are read-only, create, update and virtual. Detailed description of file mode is given in TableFile documentation. |
| [in] | fileName | - relative or absolute name of the file where object persistency is maintained. If fileMode specifies virtual mode, this parameter is ignored. |
| [in] | verbose | - optional parameter that indicates whether logging should be turned on (if true) or off (if false). If verbose is not specified, logging is turned off. |
| [in] | caseSense | - optional parameter that indicates case sensitivity of table names. Possible values are case sensitive and case in-sensitive. If not specified, case sensitive table names are assumed. |
| [in] | maxLineLength | - optional parameter that indicates the maximum number of written characters in one line in the written text file. If not specified, STD_CIF_LINE_LENGTH is used. |
| [in] | nullValue | - optional parameter that indicates the character that is to be used to denote unknown value in the written CIF file. If not specified, CifString::UnknownValue is used. |
| CifFile::CifFile | ( | 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 |
||
| ) |
Constructs a CIF file in virtual mode.
| [in] | verbose | - optional parameter that indicates whether logging should be turned on (if true) or off (if false). If verbose is not specified, logging is turned off. |
| [in] | caseSense | - optional parameter that indicates case sensitivity of table names. Possible values are case sensitive and case in-sensitive. If not specified, case sensitive table names are assumed. |
| [in] | maxLineLength | - optional parameter that indicates the maximum number of written characters in one line in the written text file. If not specified, STD_CIF_LINE_LENGTH is used. |
| [in] | nullValue | - optional parameter that indicates the character that is to be used to denote unknown value in the written CIF file. If not specified, CifString::UnknownValue is used. |
| CifFile::~CifFile | ( | ) |
Destructs a CIF file, by releasing all consumed resources.
| Not applicable |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
| void CifFile::CheckCategoryKey | ( | Block & | block, |
| std::ostringstream & | log | ||
| ) |
| void CifFile::CheckItemsTable | ( | Block & | block, |
| std::ostringstream & | log | ||
| ) |
| int CifFile::DataChecking | ( | Block & | block, |
| Block & | refBlock, | ||
| std::ostringstream & | buf, | ||
| const bool | extraDictChecks = false, |
||
| const bool | extraCifChecks = false |
||
| ) |
Checks a block of CIF file against the specified reference block.
| [in] | block | - reference to a block that is to be checked |
| [in] | refBlock | - reference to a reference block against which block is to be checked |
| [out] | diagBuf | - diagnostics buffer that holds checking results |
| [in] | extraDictChecks | - optional parameter that indicates whether to perform additional, non-standard, checks. If not specified, those checks are not performed. |
| [in] | extraCifChecks | - optional parameter that indicates whether to perform additional, non-standard, CIF checks. If not specified, those checks are not performed. |
| int CifFile::DataChecking | ( | CifFile & | dicRef, |
| const std::string & | diagFileName, | ||
| const bool | extraDictChecks = false, |
||
| const bool | extraCifChecks = false |
||
| ) |
Checks a CIF file (all blocks in it) against the dictionary.
| [in] | dicRef | - reference to a dictionary file. The check is done against the first block in the dictionary file. |
| [in] | diagFileName | - relative or absolute name of the file, where diagnostic information is stored. |
| [in] | extraDictChecks | - optional parameter that indicates whether to perform additional, non-standard, dictionary checks. If not specified, those checks are not performed. |
| [in] | extraCifChecks | - optional parameter that indicates whether to perform additional, non-standard, CIF checks. If not specified, those checks are not performed. |
| void CifFile::FindCifNullRows | ( | std::vector< unsigned int > & | nullRowsIndices, |
| const ISTable & | isTable | ||
| ) |
Finds indices of rows that contain all CIF null values. A CIF null value is defined as a "?" or "".
| [out] | nullRowsIndices | - vector of null rows indices. |
| [in] | isTable | - table reference |
| void CifFile::GetAttributeValue | ( | std::string & | attribVal, |
| const std::string & | blockId, | ||
| const std::string & | category, | ||
| const std::string & | attribute | ||
| ) |
| void CifFile::GetAttributeValueIf | ( | std::string & | attribVal, |
| const std::string & | blockId, | ||
| const std::string & | category, | ||
| const std::string & | attributeA, | ||
| const std::string & | attributeB, | ||
| const std::string & | valB | ||
| ) |
| void CifFile::GetAttributeValues | ( | std::vector< std::string > & | strings, |
| const std::string & | blockId, | ||
| const std::string & | category, | ||
| const std::string & | attribute | ||
| ) |
| void CifFile::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 | ||
| ) |
| bool CifFile::GetEnumCheck | ( | ) |
Retrieves enumerations checking option for case-insensitive types.
| None |
| bool CifFile::GetLooping | ( | const std::string & | catName | ) |
Retrieves looping option of a category.
| catName | - category name |
| const std::string& CifFile::GetParsingDiags | ( | ) |
Gets parsing diagnostics.
| None |
| unsigned int CifFile::GetQuoting | ( | ) |
Retrieves quoting option.
| None |
| const std::string& CifFile::GetSrcFileName | ( | ) |
Retrieves source file name.
| None |
|
inline |
Retrieves logging option.
| None |
References _verbose.
| bool CifFile::IsAttributeValueDefined | ( | const std::string & | blockId, |
| const std::string & | category, | ||
| const std::string & | attribute | ||
| ) |
|
inline |
Retrieves smart printing option.
| None |
References _smartPrint.
| void CifFile::SetAttributeValue | ( | const std::string & | blockId, |
| const std::string & | category, | ||
| const std::string & | attribute, | ||
| const std::string & | value, | ||
| const bool | create = false |
||
| ) |
| void CifFile::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 |
||
| ) |
| void CifFile::SetAttributeValueIfNull | ( | const std::string & | blockId, |
| const std::string & | category, | ||
| const std::string & | attribute, | ||
| const std::string & | value | ||
| ) |
| void CifFile::SetAttributeValues | ( | const std::string & | blockId, |
| const std::string & | category, | ||
| const std::string & | attribute, | ||
| const std::vector< std::string > & | values | ||
| ) |
| void CifFile::SetEnumCheck | ( | bool | caseSense = false | ) |
Sets enumerations checking option for case-insensitive types.
| caseSense | - case sensitivity of enumeration values check. If false, enumeration values of case-insensitive types will be checked as case-insensitive. If true, enumeration values of case-insensitive types will be checked as case-sensitive. |
| void CifFile::SetLooping | ( | const std::string & | catName, |
| bool | looping = false |
||
| ) |
This method is used in order to control how single row categories are written: in form of a "loop_" construct or as an item-value pair.
| catName | - category name |
| looping | - category looping option. If false and the category is a single row category, that category will not be written with "loop_" construct. Otherwise, if true, single row category will be written with "loop_" construct. |
| void CifFile::SetQuoting | ( | eQuoting | quoting | ) |
Sets quoting option. This option is used in order to select the type of quoting to be used in the written text file.
| quoting | - type of quoting. If eSINGLE, single quotes are used. If eDOUBLE, double quotes are used. |
|
inline |
Sets smart printing option. Smart printing is used to beautify the output of a written text file.
| smartPrint | - smart printing. If false, smart printing is disabled. If true, smart printing is enabled. If not specified, smart printing is enabled. |
References _smartPrint.
| void CifFile::SetSrcFileName | ( | const std::string & | srcFileName | ) |
Sets file name of a file that was the source of the object data.
| srcFileName | - The name of the source data file. |
| void CifFile::Write | ( | const std::string & | cifFileName, |
| const bool | sortTables = false, |
||
| const bool | writeEmptyTables = false |
||
| ) |
Writes the data out to a text file.
| [in] | cifFileName | - relative or absolute name of the text file to which the data from CifFile object is to be written to. |
| [in] | sortTables | - optional parameter that indicates whether written tables should be sorted (if true) or not sorted (if false). If sortTables is not specified, tables are not sorted prior to writing them. |
| [in] | writeEmptyTables | - optional parameter that indicates whether empty tables (0 rows) are to be written (if true) or not written (if false). If writeEmptyTables is not specified, empty tables are not written. |
| void CifFile::Write | ( | const std::string & | cifFileName, |
| const std::vector< std::string > & | tableOrder, | ||
| const bool | writeEmptyTables = false |
||
| ) |
Writes the data out to a text file.
| [in] | cifFileName | - relative or absolute name of the text file to which the data from CifFile object is to be written to. |
| [in] | tableOrder | - vector of table names that indicates the order of written tables. |
| [in] | writeEmptyTables | - optional parameter that indicates whether empty tables (0 rows) are to be written (if true) or not written (if false). If writeEmptyTables is not specified, empty tables are not written. |
|
protected |
|
protected |
| void CifFile::Write | ( | std::ostream & | outStream, |
| const bool | sortTables = false, |
||
| const bool | writeEmptyTables = false |
||
| ) |
Writes the data out to an output stream.
| [in] | outStream | - a reference to the output stream |
| [in] | sortTables | - optional parameter that indicates whether written tables should be sorted (if true) or not sorted (if false). If sortTables is not specified, tables are not sorted prior to writing them. |
| [in] | writeEmptyTables | - optional parameter that indicates whether empty tables (0 rows) are to be written (if true) or not written (if false). If writeEmptyTables is not specified, empty tables are not written. |
| void CifFile::WriteNmrStar | ( | const std::string & | nmrStarFileName, |
| const std::string & | globalBlockName, | ||
| const bool | sortTables = false, |
||
| const bool | writeEmptyTables = false |
||
| ) |
Writes the data out to a text file in NMR-STAR format.
| [in] | nmrStarFileName | - relative or absolute name of the text file to which the data from CifFile object is to be written to. |
| [in] | globalBlockName | - the name of the global NMR-STAR block. |
| [in] | sortTables | - optional parameter that indicates whether written tables should be sorted (if true) or not sorted (if false). If sortTables is not specified, tables are not sorted prior to writing them. |
| [in] | writeEmptyTables | - optional parameter that indicates whether empty tables (0 rows) are to be written (if true) or not written (if false). If writeEmptyTables is not specified, empty tables are not written. |
|
protected |
|
protected |
| std::string CifFile::_checkingDiags |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
| std::string CifFile::_parsingDiags |
|
protected |
|
protected |
Referenced by IsSmartPrint(), and SetSmartPrint().
|
protected |
Referenced by GetVerbose().
|
staticprotected |
|
staticprotected |
|
static |
|
staticprotected |
1.8.16