00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef MS_CROSSLINKING_LINKER_HPP
00018 #define MS_CROSSLINKING_LINKER_HPP
00019
00020
00021 #include <string>
00022
00023
00024 namespace msparser_internal {
00025 class ms_crosslinking_xmlloader;
00026 }
00027
00028 namespace matrix_science {
00029 class ms_crosslinking_monolink;
00030 class ms_crosslinking_does_not_pair_with;
00031 class ms_xml_schema;
00032
00038
00039
00056 class MS_MASCOTRESFILE_API ms_crosslinking_linker: public ms_xml_IValidatable
00057 {
00058 friend class msparser_internal::ms_crosslinking_xmlloader;
00059
00060 public:
00062 ms_crosslinking_linker();
00063
00065 ms_crosslinking_linker(const ms_crosslinking_linker& src);
00066
00068 virtual ~ms_crosslinking_linker();
00069
00071 void defaultValues();
00072
00074 void copyFrom(const ms_crosslinking_linker* right);
00075
00076 #ifndef SWIG
00077
00078 ms_crosslinking_linker& operator=(const ms_crosslinking_linker& right);
00079 #endif
00080
00082 virtual std::string getSchemaType() const;
00083
00085 virtual std::string validateShallow(const ms_xml_schema *pSchemaFileObj) const;
00086
00088 virtual std::string validateDeep(const ms_xml_schema *pSchemaFileObj) const;
00089
00091 bool haveModFileName() const;
00092
00094 std::string getModFileName() const;
00095
00097 void setModFileName(const char* value);
00098
00100 void dropModFileName();
00101
00103 std::string getModFileNameSchemaType() const;
00104
00105
00107 int getNumberOfMonoLinks() const;
00108
00110 void clearMonoLinks();
00111
00113 void appendMonoLink(const ms_crosslinking_monolink *item);
00114
00116 const ms_crosslinking_monolink * getMonoLinkByNumber(const int idx) const;
00117
00119 bool updateMonoLinkByNumber(const int idx, const ms_crosslinking_monolink* monolink);
00120
00122 bool deleteMonoLinkByNumber(const int idx);
00123
00125 std::string getMonoLinkSchemaType() const;
00126
00127
00129 int getNumberOfDoesNotPairWiths() const;
00130
00132 void clearDoesNotPairWiths();
00133
00135 void appendDoesNotPairWith(const ms_crosslinking_does_not_pair_with *item);
00136
00138 const ms_crosslinking_does_not_pair_with * getDoesNotPairWithByNumber(const int idx) const;
00139
00141 bool updateDoesNotPairWithByNumber(const int idx, const ms_crosslinking_does_not_pair_with* does_not_pair_with);
00142
00144 bool deleteDoesNotPairWithByNumber(const int idx);
00145
00147 std::string getDoesNotPairWithSchemaType() const;
00148
00149 private:
00150 typedef std::vector< ms_crosslinking_monolink * > monolink_vector;
00151 monolink_vector _monolinks;
00152
00153 typedef std::vector< ms_crosslinking_does_not_pair_with * > does_not_pair_with_vector;
00154 does_not_pair_with_vector _does_not_pair_withs;
00155
00156 std::string _modFileName;
00157 bool _modFileName_set;
00158
00159 };
00160
00162
00163 }
00164
00165 #endif // MS_CROSSLINKING_LINKER_HPP
00166
00167
00168