00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00044 #include "../tinyxml/tinyxml.h"
00045
00046 #include "bugfix.h"
00047 #include "feature.h"
00048 #include "improvement.h"
00049
00050 #include "changes.h"
00051
00052 using namespace libsvx;
00053
00056 Changes::Changes(TiXmlElement & a_Element)
00057 :Element(a_Element,"changes")
00058 {
00059 assert(a_Element.Value().compare("changes") == 0);
00060
00061 TiXmlElement * txIterator;
00062
00063 m_List_Bugfix.clear();
00064 txIterator = a_Element.FirstChildElement("bugfix");
00065
00066 while (txIterator != NULL)
00067 {
00068 Bugfix * tmpBugfix = new Bugfix(*txIterator);
00069 m_List_Bugfix.push_back(tmpBugfix);
00070 txIterator = txIterator->NextSiblingElement("bugfix");
00071 }
00072
00073 m_List_Feature.clear();
00074 txIterator = a_Element.FirstChildElement("feature");
00075
00076 while (txIterator != NULL)
00077 {
00078 Feature * tmpFeature = new Feature(*txIterator);
00079 m_List_Feature.push_back(tmpFeature);
00080 txIterator = txIterator->NextSiblingElement("feature");
00081 }
00082
00083 m_List_Improvement.clear();
00084 txIterator = a_Element.FirstChildElement("improvement");
00085
00086 while (txIterator != NULL)
00087 {
00088 Improvement * tmpImprovement = new Improvement(*txIterator);
00089 m_List_Improvement.push_back(tmpImprovement);
00090 txIterator = txIterator->NextSiblingElement("improvement");
00091 }
00092 }
00093
00097 Changes::Changes(const Changes & a_item)
00098 :Element(a_item)
00099 {
00100 for (size_t i = 0; i < a_item.m_List_Bugfix.size(); i++)
00101 {
00102 Bugfix * tmpText = new Bugfix(a_item.m_List_Bugfix[i]);
00103 m_List_Bugfix.push_back(tmpText);
00104 }
00105
00106 for (size_t j = 0; j < a_item.m_List_Feature.size();j++)
00107 {
00108 Feature * tmpText = new Feature(a_item.m_List_Feature[j]);
00109 m_List_Feature.push_back(tmpText);
00110 }
00111
00112 for (size_t k = 0; k < a_item.m_List_Improvement.size();k++)
00113 {
00114 Improvement * tmpText = new Improvement(a_item.m_List_Improvement[k]);
00115 m_List_Improvement.push_back(tmpText);
00116 }
00117 }
00118
00122 Changes::~Changes()
00123 {
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136
00137
00138
00139
00140
00141
00142
00143
00144
00145
00146 }
00147
00151 bool Changes::IsValid() const
00152 {
00153 return true;
00154 }
00155
00156 TiXmlElement & Changes::XmlElement()
00157 {
00158 for (size_t i = 0; i < m_List_Bugfix.size();i++)
00159 {
00160 m_Node->InsertEndChild(m_List_Bugfix[i].XmlElement());
00161 }
00162
00163 for (size_t j = 0; j < m_List_Feature.size();j++)
00164 {
00165 m_Node->InsertEndChild(m_List_Feature[j].XmlElement());
00166 }
00167
00168 for (size_t k = 0; k < m_List_Improvement.size();k++)
00169 {
00170 m_Node->InsertEndChild(m_List_Improvement[k].XmlElement());
00171 }
00172
00173 return *m_Node;
00174 }
00175
00179 bool Changes::operator!=(const Changes & the_object_to_compare) const
00180 {
00181 bool result = !(IsValid() && the_object_to_compare.IsValid());
00182
00183 result = result || (static_cast<const Element &>(*this) != the_object_to_compare);
00184
00185 return result;
00186 }