/* * @file ModuleErroInfo.cpp * @author Haidong Wang * @date 2011-10-21 * @brief 模块参数检查的错误信息结果定义 */ #include "ModuleCheckResult.h" namespace pai { namespace module { CModuleParameterErrorInfo::CModuleParameterErrorInfo(const std::string& strParameterItemID,const std::string& strMessage) :m_strParamItemID(strParameterItemID) ,m_strMessage(strMessage) { } std::string CModuleParameterErrorInfo::GetParameterItemID() const { return m_strParamItemID; } /** * @brief 获取该模块参数Validate后产生的错误信息 */ std::string CModuleParameterErrorInfo::GetMessage() const { return m_strMessage; } void CModuleParameterErrorInfo::SetMessage(const std::string& strMessage) { m_strMessage=strMessage; } //////////////////////////////////////////////////////////////////////////////////////////// CModuleCheckResult::CModuleCheckResult(int iModuleStepID) :m_iModuleStepID(iModuleStepID), m_vecParameterErroInfos() { } bool CModuleCheckResult::IsEmpty() const { return m_vecParameterErroInfos.empty(); } /** * @brief 增加模块参数错误信息 * @param iParameterItemIndex 模块参数在对应模块的参数容器中的索引 * @param strMessage 该模块参数的错误信息 */ void CModuleCheckResult::AddParameterErroInfo(const std::string& strParameterItemID,const std::string& strMessage) { AddParameterErroInfo(CModuleParameterErrorInfo(strParameterItemID,strMessage)); } /** * @brief 增加模块参数错误信息 * @param parameterErroInfo 模块参数错误信息 */ void CModuleCheckResult::AddParameterErroInfo(const CModuleParameterErrorInfo& parameterErroInfo) { std::string strParameterIndexD=parameterErroInfo.GetParameterItemID(); for(std::vector::iterator it=m_vecParameterErroInfos.begin(); it!=m_vecParameterErroInfos.end(); ++it) { if((*it).GetParameterItemID()==strParameterIndexD) { it->SetMessage(parameterErroInfo.GetMessage()); return; } } m_vecParameterErroInfos.push_back(parameterErroInfo); } /** * @brief 移除模块参数错误信息 * @param iParameterItemIndex 模块参数在对应模块的参数容器中的索引 */ bool CModuleCheckResult::RemoveParameterErroInfo(const std::string& strParameterItemID) { for(std::vector::iterator it=m_vecParameterErroInfos.begin(); it!=m_vecParameterErroInfos.end(); ++it) { if((*it).GetParameterItemID()==strParameterItemID) { m_vecParameterErroInfos.erase(it); return true; } } return false; } /** * @brief 得出所有出错的参数的索引 * @brief[out] vecParameterItemIndices 所有出错的参数的索引 */ void CModuleCheckResult::GetErroInfoParameterIDs(std::vector& vecParameterItemIDs) const { for(std::vector::const_iterator it=m_vecParameterErroInfos.begin(); it!=m_vecParameterErroInfos.end(); ++it) { vecParameterItemIDs.push_back((*it).GetParameterItemID()); } } /** * @brief 根据指定的参数索引得出对应的参数错误信息 * @param iParameterItemIndex 模块参数在对应模块的参数容器中的索引 * @return 参数错误信息 */ std::string CModuleCheckResult::GetErrorMessage(const std::string& strParameterItemID) const { for(std::vector::const_iterator it=m_vecParameterErroInfos.begin(); it!=m_vecParameterErroInfos.end(); ++it) { if((*it).GetParameterItemID()==strParameterItemID) { return (*it).GetMessage(); } } return ""; } /** * @brief 清空所有错误信息 */ void CModuleCheckResult::Clear() { m_vecParameterErroInfos.clear(); } } }