00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef MS_UMOD_ELEMREF_HPP
00018 #define MS_UMOD_ELEMREF_HPP
00019
00020
00021 #include <string>
00022 #include <vector>
00023
00024
00025 namespace msparser_internal {
00026 class ms_umod_xmlloader;
00027 }
00028
00029 namespace matrix_science {
00030
00031 class ms_quant_element;
00032 class ms_xml_schema;
00033
00039
00040
00044 class MS_MASCOTRESFILE_API ms_umod_elemref: public ms_xml_IValidatable
00045 {
00046 friend class msparser_internal::ms_umod_xmlloader;
00047 friend class ms_umod_configfile;
00048
00049 public:
00051 ms_umod_elemref();
00052
00054 ms_umod_elemref(const ms_umod_elemref& src);
00055
00057 ms_umod_elemref(const ms_quant_element& src);
00058
00059
00061 virtual ~ms_umod_elemref();
00062
00064 void defaultValues();
00065
00067 void copyFrom(const ms_umod_elemref* right);
00068
00070 void copyFrom(const ms_quant_element* right);
00071
00072 #ifndef SWIG
00073
00074 ms_umod_elemref& operator=(const ms_umod_elemref& right);
00075 #endif
00076
00077 virtual std::string getSchemaType() const;
00078
00080 virtual std::string validateShallow(const ms_xml_schema *pSchemaFileObj) const;
00081
00083 virtual std::string validateDeep(const ms_xml_schema *pSchemaFileObj) const;
00084
00085
00087 bool haveSymbol() const;
00088
00090 std::string getSymbol() const;
00091
00093 void setSymbol(const char* value);
00094
00096 void dropSymbol();
00097
00099 std::string getSymbolSchemaType() const;
00100
00101
00103 bool haveNumber() const;
00104
00106 int getNumber() const;
00107
00109 void setNumber(const int value);
00110
00112 void dropNumber();
00113
00115 std::string getNumberSchemaType() const;
00116
00117 private:
00118
00119 std::string _symbol;
00120 bool _symbol_set;
00121
00122 int _number;
00123 bool _number_set;
00124 };
00125
00127
00128 }
00129
00130 #endif // MS_UMOD_ELEMREF_HPP
00131
00132