#include "stdafx.h" #include "PartSizeClassClr.h" #include "otsdataconst.h" namespace OTSINTERFACE { CPartSizeClassClr::CPartSizeClassClr() { m_LpPartSizeClass = new CPartSizeClassPtr(new CPartSizeClass()); } CPartSizeClassClr::CPartSizeClassClr(CPartSizeClassPtr a_pPartSize) { ASSERT(a_pPartSize); if (!a_pPartSize) { LogErrorTrace(__FILE__, __LINE__, _T("CPartSizeClassClr: invalid input pointer.")); return; } m_LpPartSizeClass = new CPartSizeClassPtr(a_pPartSize); } CPartSizeClassClr::~CPartSizeClassClr() { if (m_LpPartSizeClass != nullptr) { delete m_LpPartSizeClass; m_LpPartSizeClass = nullptr; } } CPartSizeClassClr::!CPartSizeClassClr() { if (m_LpPartSizeClass != nullptr) { delete m_LpPartSizeClass; m_LpPartSizeClass = nullptr; } } CPartSizeClassPtr CPartSizeClassClr::GetPartSizeClassPtr() { return *m_LpPartSizeClass; } // size class name String^ CPartSizeClassClr::GetName() { if (m_LpPartSizeClass == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("GetName: current CLR point is invalid.")); return nullptr; } CPartSizeClassPtr pPartSizeClass = GetPartSizeClassPtr(); ASSERT(pPartSizeClass); if (!pPartSizeClass) { LogErrorTrace(__FILE__, __LINE__, _T("GetName:invalid pointer.")); return nullptr; } CString sPartSize = pPartSizeClass->GetName(); String^ sPartSizeClr = gcnew String(sPartSize); return sPartSizeClr; } void CPartSizeClassClr::SetName(String^ a_strName) { if (m_LpPartSizeClass == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("SetName: current CLR point is invalid.")); return; } CPartSizeClassPtr pPartSizeClass = GetPartSizeClassPtr(); ASSERT(pPartSizeClass); if (!pPartSizeClass) { LogErrorTrace(__FILE__, __LINE__, _T("SetName:invalid pointer.")); return; } pPartSizeClass->SetName(a_strName); } // class data list List^ CPartSizeClassClr::GetSizeClassList() { if (m_LpPartSizeClass == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("GetSizeClassList: current CLR point is invalid.")); return nullptr; } CPartSizeClassPtr pPartSizeClass = GetPartSizeClassPtr(); ASSERT(pPartSizeClass); if (!pPartSizeClass) { LogErrorTrace(__FILE__, __LINE__, _T("GetSizeClassList:invalid pointer.")); return nullptr; } List^ SizeListClr = gcnew List(); std::vector SizeList = pPartSizeClass->GetSizeClassList(); for (auto dSize : SizeList) { SizeListClr->Add(dSize); } return SizeListClr; } void CPartSizeClassClr::SetSizeClassList(List^ a_listSizeClass) { if (m_LpPartSizeClass == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("SetSizeClassList: current CLR point is invalid.")); return; } CPartSizeClassPtr pPartSizeClass = GetPartSizeClassPtr(); ASSERT(pPartSizeClass); if (!pPartSizeClass) { LogErrorTrace(__FILE__, __LINE__, _T("SetSizeClassList:invalid pointer.")); return; } ASSERT(a_listSizeClass); if (!a_listSizeClass) { LogErrorTrace(__FILE__, __LINE__, _T("SetSizeClassList:invalid pointer.")); return; } int nSize = a_listSizeClass->Count; std::vector SizeList; for (int i = 0; i < nSize ; i++ ) { SizeList.push_back(a_listSizeClass[i]); } pPartSizeClass->SetSizeClassList(SizeList); } bool CPartSizeClassClr::IsValid() { if (m_LpPartSizeClass == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("GetName: current CLR point is invalid.")); return false; } CPartSizeClassPtr pPartSizeClass = GetPartSizeClassPtr(); ASSERT(pPartSizeClass); if (!pPartSizeClass) { LogErrorTrace(__FILE__, __LINE__, _T("GetName:invalid pointer.")); return false; } return pPartSizeClass->IsValid(); } }