CifParentChild.h
Go to the documentation of this file.
//$$FILE$$
//$$VERSION$$
//$$DATE$$
//$$LICENSE$$
#ifndef CIFPARENTCHILD_H
#define CIFPARENTCHILD_H
#include <string>
#include <vector>
#include <sstream>
#include <rcsb/ISTable.h>
#include <rcsb/TableFile.h>
#include <rcsb/ParentChild.h>
#define JW_HACK
#ifdef JW_HACK
// JW_DEBUG invokes significant debug printout associated with parent
// child checking. Some hacks have been introduced to improve
// checking in this module.
// #define JW_DEBUG 1
#endif
class CifParentChild : public ParentChild
{
public:
CifParentChild(Block& block);
CifParentChild(Block& block, ISTable* parChildTableP);
virtual ~CifParentChild();
int CheckParentChild(Block& block, ISTable& catTable,
std::ostringstream& log);
void WriteGroupTables(Block& block);
protected:
void GetParentCifItems(std::vector<std::string>& parCifItems,
const std::string& cifItemName);
private:
ISTable* _parChildTableP;
ISTable* _inParChildGroupP;
ISTable* _inParChildGroupListP;
void Init(Block& block);
ISTable* CreateKeysTableOld(const std::vector<std::string>& cifItemNames,
std::map<std::string, unsigned int>& maxKeyGroups);
void FillKeysTableOld(ISTable& keysTable,
const std::vector<std::string>& cifItemNames,
std::map<std::string, unsigned int>& maxKeyGroups);
void BuildOldTables(const std::vector<std::string>& cats,
const std::vector<std::vector<std::string> >& items);
void BuildNewTables(const std::vector<std::string>& cats,
const std::vector<std::vector<std::string> >& items);
void FilterMissingItems(std::vector<std::vector<std::string> >& parParKeys,
std::vector<std::vector<std::string> >& comboComboKeys,
const std::vector<std::string>& cifItemNames);
unsigned int LastGroupNum(const std::string& childCat);
};
#endif
CifParentChild
Definition: CifParentChild.h:37
CifParentChild::CifParentChild
CifParentChild(Block &block)
ParentChild
Definition: ParentChild.h:25
CifParentChild::CheckParentChild
int CheckParentChild(Block &block, ISTable &catTable, std::ostringstream &log)
Block
Public class that represents a data block, that contains tables.
Definition: TableFile.h:40
CifParentChild::WriteGroupTables
void WriteGroupTables(Block &block)
ISTable.h
Header file for ISTable class.
CifParentChild::GetParentCifItems
void GetParentCifItems(std::vector< std::string > &parCifItems, const std::string &cifItemName)
TableFile.h
Header file for Block and TableFile classes.
ParentChild.h
Header file for ParentChild class.
ISTable
Public class that respresents a two-dimensional table of strings.
Definition: ISTable.h:53
CifParentChild::~CifParentChild
virtual ~CifParentChild()