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

117 lines
3.7 KiB
C++
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @file ModuleCheckResult.h
* @brief 文件包含模块参数校验的错误信息结果定义
* @author Haidong Wang
* @date 2011-10-21
*/
#ifndef PAI_FRAME_MODULEAPI_MODULECHECKRESULT_H
#define PAI_FRAME_MODULEAPI_MODULECHECKRESULT_H
#include <string>
#include <vector>
#include "Turtle.h"
namespace pai {
namespace module {
/**
* @class CModuleParameterErrorInfo
* @brief 模块参数的错误信息, 模块开发人员请不要直接调用此类的接口此类需配合CModuleCheckResult使用.
* @see CModuleCheckResult
*/
class CModuleParameterErrorInfo
{
public:
/**
* @brief 构造函数
* @param[in] strParameterItemID 参数项ID
* @param[in] strMessage 错误信息
*/
CModuleParameterErrorInfo(const std::string& strParameterItemID,const std::string& strMessage);
/**
* @brief 析构函数
*/
virtual ~CModuleParameterErrorInfo(){};
/**
* @brief 获取模块参数项在对应模块的参数容器中的ID
* @return 参数项的id
*/
std::string GetParameterItemID() const;
/**
* @brief 获取该模块参数Validate后产生的错误信息
* @return 错误信息
*/
std::string GetMessage() const;
/**
* @brief 设置该模块参数项的错误信息
* @param[in] strMessage 模块参数项的错误信息
*/
void SetMessage(const std::string& strMessage);
private:
std::string m_strParamItemID; ///< 模块参数项在对应模块的参数容器中的ID
std::string m_strMessage; ///< 模块参数Validate后产生的错误信息
};
/**
* @class CModuleCheckResult
* @brief 模块错误信息,包含了多个参数的错误提示, 用于模块校验开发
*/
class PAI_MODULE_EXPORT CModuleCheckResult
{
public:
/**
* @brief 构造函数
* @param[in] iModuleStepID 模块id
*/
CModuleCheckResult(int iModuleStepID);
/**
* @brief 虚析构函数
*/
virtual ~CModuleCheckResult(){};
/**
* @brief 模块错误信息是否为空,为空表示没有错误信息
* @return 没有错误信息则返回true否则返回false
*/
bool IsEmpty() const;
/**
* @brief 增加模块参数错误信息
* @param[in] strParameterItemID 模块参数在对应模块的参数容器中的ID
* @param[in] strMessage 该模块参数的错误信息
*/
void AddParameterErroInfo(const std::string& strParameterItemID,const std::string& strMessage);
/**
* @brief 增加模块参数错误信息, 推荐模块开发人员调用<code>AddParameterErroInfo(std::string, std::string)</code>代替
* @see CModuleCheckResult#AddParameterErroInfo(std::string, std::string)
* @param[in] parameterErroInfo 模块参数错误信息
*/
void AddParameterErroInfo(const CModuleParameterErrorInfo& parameterErroInfo);
/**
* @brief 移除模块参数错误信息
* @param[in] strParameterItemID 模块参数在对应模块的参数容器中的ID
* @return 移除错误信息成功则返回true否则返回false
*/
bool RemoveParameterErroInfo(const std::string& strParameterItemID);
/**
* @brief 得出所有出错的参数的索引
* @brief[out] vecParameterItemIDs 所有出错的参数的ID
*/
void GetErroInfoParameterIDs(std::vector<std::string>& vecParameterItemIDs) const;
/**
* @brief 根据指定的参数索引得出对应的参数错误信息
* @param[in] strParameterItemID 模块参数在对应模块的参数容器中的ID
* @return 参数错误信息
*/
std::string GetErrorMessage(const std::string& strParameterItemID) const;
/**
* @brief 清空所有错误信息
*/
void Clear();
private:
int m_iModuleStepID; ///< 模块在对应工作流中的ID
std::vector<CModuleParameterErrorInfo> m_vecParameterErroInfos; ///< 多个参数的错误提示集合
};
}
}
#endif