librcsb-core-wrapper
1.000
|
Public class that represents a CIF file, composed of blocks with tables. More...
#include <CifFile.h>
Public Types | |
enum | eQuoting { eSINGLE = 0, eDOUBLE } |
![]() | |
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 extraChecks=false) |
int | DataChecking (Block &block, Block &refBlock, std::ostringstream &buf, const bool extraChecks=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) |
![]() | |
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) |
![]() | |
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 |
![]() | |
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. |
None |
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. |
None |
CifFile::~CifFile | ( | ) |
Destructs a CIF file, by releasing all consumed resources.
Not applicable |
None |
|
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 | ( | CifFile & | dicRef, |
const std::string & | diagFileName, | ||
const bool | extraChecks = 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] | extraChecks | - optional parameter that indicates whether to perform additional, non-standard, checks. If not specified, those checks are not performed. |
None |
int CifFile::DataChecking | ( | Block & | block, |
Block & | refBlock, | ||
std::ostringstream & | buf, | ||
const bool | extraChecks = 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] | extraChecks | - optional parameter that indicates whether to perform additional, non-standard, checks. If not specified, those checks are not performed. |
None |
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 |
None |
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 |
None |
bool CifFile::GetLooping | ( | const std::string & | catName | ) |
Retrieves looping option of a category.
catName | - category name |
None |
const std::string& CifFile::GetParsingDiags | ( | ) |
Gets parsing diagnostics.
None |
None |
unsigned int CifFile::GetQuoting | ( | ) |
Retrieves quoting option.
None |
None |
const std::string& CifFile::GetSrcFileName | ( | ) |
Retrieves source file name.
None |
None |
|
inline |
Retrieves logging option.
None |
None |
References _verbose.
bool CifFile::IsAttributeValueDefined | ( | const std::string & | blockId, |
const std::string & | category, | ||
const std::string & | attribute | ||
) |
|
inline |
Retrieves smart printing option.
None |
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. |
None |
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. |
None |
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. |
None |
|
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. |
None |
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. |
None |
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. |
None |
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. |
None |
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. |
None |
|
protected |
|
protected |
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. |
None |
|
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 |