00001 // -*- Mode: C++; tab-width: 2; -*- 00002 // vi: set ts=2: 00003 // 00004 // $Id: PDBInfo.h,v 1.3 2005/12/23 17:01:45 amoll Exp $ 00005 // 00006 00007 #ifndef BALL_FORMAT_PDBINFO_H 00008 #define BALL_FORMAT_PDBINFO_H 00009 00010 #include <vector> 00011 #include <stdexcept> 00012 00013 #ifndef BALL_FORMAT_PDBRECORDS_H 00014 # include <BALL/FORMAT/PDBRecords.h> 00015 #endif 00016 00017 #ifndef BALL_FORMAT_PDBDEFS_H 00018 # include <BALL/FORMAT/PDBdefs.h> 00019 #endif 00020 00021 namespace BALL 00022 { 00023 00029 class BALL_EXPORT PDBInfo 00030 { 00031 public: 00032 00035 00036 PDBInfo() ; 00038 PDBInfo(const PDBInfo& pdbi) ; 00040 virtual ~PDBInfo() ; 00042 virtual void clear(); 00044 00048 00049 PDBInfo& operator = (const PDBInfo& rhs); 00051 00055 00056 bool operator == (const PDBInfo& rhs) const; 00058 bool operator != (const PDBInfo& rhs) const; 00060 00064 00065 PDBRecords& getSkippedRecords() { return skipped_records_; } 00067 const PDBRecords& getSkippedRecords() const { return skipped_records_; } 00069 PDBRecords& getInvalidRecords() { return invalid_records_; } 00071 const PDBRecords& getInvalidRecords() const { return invalid_records_; } 00073 const String& getFilename() const { return filename_; } 00075 void setFilename(const String& filename) { filename_ = filename; } 00077 const String& getID() const { return id_; } 00079 void setID(const String& id) { id_ = id; } 00081 Size getNumberOfRecords() const { return number_of_records_; } 00083 void setNumberOfRecords(Size n) { number_of_records_ = n; } 00085 Size getNumberOfModels() const { return number_of_models_; } 00087 Size& getNumberOfModels() { return number_of_models_; } 00089 void setNumberOfModels(Size n) { number_of_models_ = n; } 00091 Position getCurrentModel() const { return model_read_; } 00093 Position& getCurentModel() { return model_read_; } 00095 void setCurrentModel(Position n) { model_read_ = n; } 00097 Size getNumberOfATOMRecords() const { return number_of_atom_records_; } 00099 Size& getNumberOfATOMRecords() { return number_of_atom_records_; } 00101 void setNumberOfATOMRecords(Size n) { number_of_atom_records_ = n; } 00103 Size getNumberOfHETATMRecords() const { return number_of_hetatm_records_; } 00105 Size& getNumberOfHETATMRecords() { return number_of_hetatm_records_; } 00107 void setNumberOfHETATMRecords(Size n) { number_of_hetatm_records_ = n; } 00109 const String& getName() const { return name_; } 00111 void setName(const String& name) { name_ = name; } 00116 std::list<Position> getRecordIndices(PDB::RecordType record) const; 00118 00119 protected: 00121 PDBRecords skipped_records_; 00123 PDBRecords invalid_records_; 00125 String filename_; 00127 String id_; 00129 String name_; 00131 Size number_of_records_; 00133 Size number_of_models_; 00135 Position model_read_; 00137 Size number_of_atom_records_; 00139 Size number_of_hetatm_records_; 00140 }; 00141 00142 } // namespace BALL 00143 00144 #endif // BALL_FORMAT_PDBINFO_H