#include "stdafx.h" #include "ElementRangeClr.h" namespace OTSINTERFACE { CElementRangeClr::CElementRangeClr() { m_LpElementRange= new CElementRangePtr(new CElementRange()); } CElementRangeClr::CElementRangeClr(CElementRangePtr pElementRange) // copy constructor { ASSERT(pElementRange); if (!pElementRange) { LogErrorTrace(__FILE__, __LINE__, _T("CElementClr: Generate CElementRangeClr pointer failed.")); return; } m_LpElementRange = new CElementRangePtr(pElementRange); } CElementRangePtr CElementRangeClr::GetElementRangePtr() { return *m_LpElementRange; } CElementRangeClr::CElementRangeClr(CElementRange* a_pSource) // copy constructor { ASSERT(a_pSource); if (!a_pSource) { LogErrorTrace(__FILE__, __LINE__, _T("CElementRangeClr: Generate CElementRangeClr pointer failed.")); return; } m_LpElementRange = new CElementRangePtr(new CElementRange(a_pSource)); } CElementRangeClr::~CElementRangeClr() { if (m_LpElementRange != nullptr) { delete m_LpElementRange; m_LpElementRange = nullptr; } } CElementRangeClr::!CElementRangeClr() { if (m_LpElementRange != nullptr) { delete m_LpElementRange; m_LpElementRange = nullptr; } } CElementClr^ CElementRangeClr::GetElement() { CElementClr^ ElementClr; if (m_LpElementRange != nullptr) { CElementPtr pElement = m_LpElementRange->get()->GetElement(); ASSERT(pElement); if (!pElement) { LogErrorTrace(__FILE__, __LINE__, _T("CElementRangeClr: invalid Element pointer.")); return ElementClr; } ElementClr = gcnew CElementClr(pElement); } return ElementClr; } void CElementRangeClr::SetElement(CElementClr^ a_poElement) { ASSERT(a_poElement); if (!a_poElement) { LogErrorTrace(__FILE__, __LINE__, _T("SetElement: invalid part std data.")); return; } if (m_LpElementRange != nullptr) { CElementPtr pSetElement = a_poElement->GetElementPtr(); ASSERT(pSetElement); if (!pSetElement) { LogErrorTrace(__FILE__, __LINE__, _T("SetElement: invalid part Element pointer.")); return; } m_LpElementRange->get()->SetElement(pSetElement); } } CIntRangeClr^ CElementRangeClr::GetRange() { CIntRangeClr^ IntRangeClr; if (m_LpElementRange != nullptr) { CIntRangePtr pElement = m_LpElementRange->get()->GetRange(); ASSERT(pElement); if (!pElement) { LogErrorTrace(__FILE__, __LINE__, _T("CIntRangeClr: invalid IntRange pointer.")); return IntRangeClr; } IntRangeClr = gcnew CIntRangeClr(pElement); } return IntRangeClr; } void CElementRangeClr::SetRange(CIntRangeClr^ a_poRange) { ASSERT(a_poRange); if (!a_poRange) { LogErrorTrace(__FILE__, __LINE__, _T("SetPartSTDData: invalid part std data.")); return; } if (m_LpElementRange != nullptr) { CIntRangePtr pSetElement = a_poRange->GetCIntRangePtr(); ASSERT(pSetElement); if (!pSetElement) { LogErrorTrace(__FILE__, __LINE__, _T("SetElement: invalid part Element pointer.")); return; } m_LpElementRange->get()->SetRange(pSetElement); } } }