00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef MS_CROSSLINKING_LINKERS_HPP
00018 #define MS_CROSSLINKING_LINKERS_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_linker;
00030 class ms_xml_schema;
00031
00037
00038
00053 class MS_MASCOTRESFILE_API ms_crosslinking_linkers: public ms_xml_IValidatable
00054 {
00055 friend class msparser_internal::ms_crosslinking_xmlloader;
00056
00057 public:
00059 ms_crosslinking_linkers();
00060
00062 ms_crosslinking_linkers(const ms_crosslinking_linkers& src);
00063
00065 virtual ~ms_crosslinking_linkers();
00066
00068 void defaultValues();
00069
00071 void copyFrom(const ms_crosslinking_linkers* right);
00072
00073 #ifndef SWIG
00074
00075 ms_crosslinking_linkers& operator=(const ms_crosslinking_linkers& right);
00076 #endif
00077
00079 virtual std::string getSchemaType() const;
00080
00082 virtual std::string validateShallow(const ms_xml_schema *pSchemaFileObj) const;
00083
00085 virtual std::string validateDeep(const ms_xml_schema *pSchemaFileObj) const;
00086
00087
00089 int getNumberOfLinkers() const;
00090
00092 void clearLinkers();
00093
00095 void appendLinker(const ms_crosslinking_linker *item);
00096
00098 const ms_crosslinking_linker * getLinkerByNumber(const int idx) const;
00099
00101 bool updateLinkerByNumber(const int idx, const ms_crosslinking_linker* linker);
00102
00104 bool deleteLinkerByNumber(const int idx);
00105
00107 std::string getLinkerSchemaType() const;
00108
00109 private:
00110 typedef std::vector< ms_crosslinking_linker * > linker_vector;
00111 linker_vector _linkers;
00112
00113 };
00114
00116
00117 }
00118
00119 #endif // MS_CROSSLINKING_LINKERS_HPP
00120
00121
00122