| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- #include "stdafx.h"
- #include "TriTempItem.h"
- namespace OTSMODEL {
- //constructor
- CTriTempItem::CTriTempItem()
- {
- // initialization
- Init();
- }
- // copy constructor
- CTriTempItem::CTriTempItem(const CTriTempItem& a_oSource)
- {
- // can't copy itself
- if (&a_oSource == this)
- {
- return;
- }
- // copy data over
- Duplicate(a_oSource);
- }
- // copy constructor
- CTriTempItem::CTriTempItem(CTriTempItem* a_poSource)
- {
- // can't copy itself
- if (a_poSource == this)
- {
- return;
- }
- // copy data over
- Duplicate(*a_poSource);
- }
- // =operator
- CTriTempItem& CTriTempItem::operator=(const CTriTempItem& a_oSource)
- {
- // cleanup
- Cleanup();
- // copy the class data over
- Duplicate(a_oSource);
- // return class
- return *this;
- }
- // ==operator
- BOOL CTriTempItem::operator==(const CTriTempItem& a_oSource)
- {
- // return FASLE, if the two list are in different size
- int nSize = (int)m_listTriTempItemElement.size();
- if (nSize != (int)a_oSource.m_listTriTempItemElement.size())
- {
- return FALSE;
- }
- // return FALSE if any of the pare holes are different
- for (int i = 0; i < nSize; ++i)
- {
- if (!(*(m_listTriTempItemElement[i].get()) == *(a_oSource.m_listTriTempItemElement[i].get())))
- {
- return FALSE;
- }
- }
- return m_strTemplateName.Compare(a_oSource.m_strTemplateName) == 0 &&
- m_TemplateID == a_oSource.m_TemplateID;
- }
- //destructor
- CTriTempItem::~CTriTempItem()
- {
- // cleanup
- Cleanup();
- }
- void CTriTempItem::SetTriTempItemElementList(CTriTempItemElementList& a_listTriTemp, BOOL a_bClear/* = TRUE*/)
- {
- // clear list if necessary
- if (a_bClear)
- {
- m_listTriTempItemElement.clear();
- }
- // copy the list
- for (auto pTriTemp : a_listTriTemp)
- {
- CTriTempItemElementPtr pTriTempItemElementNew = CTriTempItemElementPtr(new CTriTempItemElement(*pTriTemp.get()));
- m_listTriTempItemElement.push_back(pTriTempItemElementNew);
- }
- }
- // initialization
- void CTriTempItem::Init()
- {
- m_TemplateID = -1;
- m_strTemplateName = _T("");
- m_strTopName = _T("");
- m_strLeftName = _T("");
- m_strRightName = _T("");
- // initialization
- m_listTriTempItemElement.clear();
- }
- // cleanup
- void CTriTempItem::Cleanup()
- {
- m_listTriTempItemElement.clear();
- }
- // duplication
- void CTriTempItem::Duplicate(const CTriTempItem& a_oSource)
- {
- // initialization
- Init();
- // copy data over
- m_TemplateID = a_oSource.m_TemplateID;
- m_strTemplateName = a_oSource.m_strTemplateName;
- m_strTopName = a_oSource.m_strTopName;
- m_strLeftName = a_oSource.m_strLeftName;
- m_strRightName = a_oSource.m_strRightName;
- for (auto pTriTempItemElement : a_oSource.m_listTriTempItemElement)
- {
- CTriTempItemElementPtr pTriTempNew = CTriTempItemElementPtr(new CTriTempItemElement(pTriTempItemElement.get()));
- m_listTriTempItemElement.push_back(pTriTempNew);
- }
- }
- void CTriTempItem::Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode)
- {
- // Name
- xmls::xInt xnTemplateID;
- xmls::xString xstrTempName;
- xmls::xString xstrTopName;
- xmls::xString xstrLeftName;
- xmls::xString xstrRightName;
- xmls::Collection<CTriTempItemElement> xTriTempItemElement;
- xmls::Slo slo;
- slo.Register("TemplateID", &xnTemplateID);
- slo.Register("TemplateName", &xstrTempName);
- slo.Register("TopName", &xstrTopName);
- slo.Register("LeftName", &xstrLeftName);
- slo.Register("RightName", &xstrRightName);
- slo.Register("TemplateItemElement", &xTriTempItemElement);
- if (isStoring)
- {
- xnTemplateID = m_TemplateID;
- xstrTempName = m_strTemplateName;
- xstrTopName = m_strTopName;
- xstrLeftName = m_strLeftName;
- xstrRightName = m_strRightName;
- for (int i = 0; i < m_listTriTempItemElement.size(); i++)
- {
- xTriTempItemElement.addItem(m_listTriTempItemElement[i].get());
- }
- slo.Serialize(true, classDoc, rootNode);
- }
- else
- {
- slo.Serialize(false, classDoc, rootNode);
- m_TemplateID = xnTemplateID.value();
- m_strTemplateName = xstrTempName.value().c_str();
- m_strTopName = xstrTopName.value().c_str();
- m_strLeftName = xstrLeftName.value().c_str();
- m_strRightName = xstrRightName.value().c_str();
- for (int i = 0; i < xTriTempItemElement.size(); i++)
- {
- m_listTriTempItemElement.push_back(CTriTempItemElementPtr(xTriTempItemElement.getItem(i)));
- }
- }
- }
- }
|