TriTempItemElement.cpp 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. #include "stdafx.h"
  2. #include "TriTempItemElement.h"
  3. namespace OTSMODEL {
  4. // constructor
  5. CTriTempItemElement::CTriTempItemElement()
  6. {
  7. // initialization
  8. Init();
  9. }
  10. // copy constructor
  11. CTriTempItemElement::CTriTempItemElement(const CTriTempItemElement& a_oSource)
  12. {
  13. // can't copy itself
  14. if (&a_oSource == this)
  15. {
  16. return;
  17. }
  18. // copy data over
  19. Duplicate(a_oSource);
  20. }
  21. // copy constructor
  22. CTriTempItemElement::CTriTempItemElement(CTriTempItemElement* a_poSource)
  23. {
  24. // can't copy itself
  25. if (a_poSource == this)
  26. {
  27. return;
  28. }
  29. // copy data over
  30. Duplicate(*a_poSource);
  31. }
  32. // =operator
  33. CTriTempItemElement& CTriTempItemElement::operator=(const CTriTempItemElement& a_oSource)
  34. {
  35. // cleanup
  36. Cleanup();
  37. // copy the class data over
  38. Duplicate(a_oSource);
  39. // return class
  40. return *this;
  41. }
  42. // ==operator
  43. BOOL CTriTempItemElement::operator==(const CTriTempItemElement& a_oSource)
  44. {
  45. // members
  46. return (m_strElementName.Compare(a_oSource.m_strElementName) == 0 &&
  47. m_ElementID == a_oSource.m_ElementID);
  48. }
  49. // destructor
  50. CTriTempItemElement::~CTriTempItemElement()
  51. {
  52. // cleanup
  53. Cleanup();
  54. }
  55. // CPartSizeItem member functions
  56. // public
  57. // serialization
  58. void CTriTempItemElement::Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode)
  59. {
  60. // Name
  61. xmls::xInt xnElementID;
  62. xmls::xString xstrItemTypeName;
  63. xmls::xString xstrElementName;
  64. xmls::xInt xnElementNumber;
  65. xmls::Slo slo;
  66. slo.Register("ElementID", &xnElementID);
  67. slo.Register("ItemTypeName", &xstrItemTypeName);
  68. slo.Register("ElementName", &xstrElementName);
  69. slo.Register("ElementNumber", &xnElementNumber);
  70. if (isStoring)
  71. {
  72. xnElementID = m_ElementID;
  73. xstrItemTypeName = m_strItemTypeName;
  74. xstrElementName = m_strElementName;
  75. xnElementNumber = m_ElementNumber;
  76. slo.Serialize(true, classDoc, rootNode);
  77. }
  78. else
  79. {
  80. slo.Serialize(false, classDoc, rootNode);
  81. m_ElementID = xnElementID.value();
  82. m_strItemTypeName = xstrItemTypeName.value().c_str();
  83. m_strElementName = xstrElementName.value().c_str();
  84. m_ElementNumber = xnElementNumber.value();
  85. }
  86. }
  87. // protected
  88. // cleanup
  89. void CTriTempItemElement::Cleanup()
  90. {
  91. // need to do nothing at the moment
  92. }
  93. // initialization
  94. void CTriTempItemElement::Init()
  95. {
  96. // initialization
  97. m_ElementID = -1;
  98. m_strItemTypeName = _T("");
  99. m_strElementName = _T("");
  100. m_ElementNumber = -1;
  101. }
  102. // duplication
  103. void CTriTempItemElement::Duplicate(const CTriTempItemElement& a_oSource)
  104. {
  105. // initialization
  106. Init();
  107. // copy data over
  108. m_ElementID = a_oSource.m_ElementID;
  109. m_strItemTypeName = a_oSource.m_strItemTypeName;
  110. m_strElementName = a_oSource.m_strElementName;
  111. m_ElementNumber = a_oSource.m_ElementNumber;
  112. }
  113. }