logplus/Workflow/WFEngine/Module/src/ModuleCheckResult.cpp
2026-01-16 17:18:41 +08:00

126 lines
3.5 KiB
C++

/*
* @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<CModuleParameterErrorInfo>::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<CModuleParameterErrorInfo>::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<std::string>& vecParameterItemIDs) const
{
for(std::vector<CModuleParameterErrorInfo>::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<CModuleParameterErrorInfo>::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();
}
}
}