Salome HOME
a0551de61f8301321dbc62f086ee349eceaea5b4
[modules/shaper.git] / src / ParametersPlugin / ParametersPlugin_Validators.h
1 /*
2  * Parameters_VariableValidator.h
3  *
4  *  Created on: Apr 9, 2015
5  *      Author: sbh
6  */
7
8 #ifndef PARAMETERSPLUGIN_VARIABLEVALIDATOR_H_
9 #define PARAMETERSPLUGIN_VARIABLEVALIDATOR_H_
10
11 #include <ParametersPlugin.h>
12 #include <ParametersPlugin_Validators.h>
13
14 #include <ModelAPI_AttributeValidator.h>
15
16 #include <memory>
17
18 /**
19  * \class ParametersPlugin_VariableValidator
20  * \ingroup Validators
21  * \brief Validator for the variable name of parameter.
22  */
23 class ParametersPlugin_VariableValidator : public ModelAPI_AttributeValidator
24 {
25  public:
26   PARAMETERSPLUGIN_EXPORT ParametersPlugin_VariableValidator();
27   PARAMETERSPLUGIN_EXPORT virtual ~ParametersPlugin_VariableValidator();
28
29   //! returns true if attribute is valid
30   //! \param theAttribute the checked attribute
31   //! \param theArguments arguments of the attribute
32   //! \param theError the error string message if validation fails
33   PARAMETERSPLUGIN_EXPORT virtual bool isValid(const AttributePtr& theAttribute,
34                                                const std::list<std::string>& theArguments,
35                                                std::string& theError) const;
36
37  protected:
38   /// Returns true if theString is a variable name.
39   PARAMETERSPLUGIN_EXPORT bool isVariable(const std::string& theString) const;
40   /// Returns true if theString is unique parameter name for theAttribute context.
41   PARAMETERSPLUGIN_EXPORT bool isUnique(const AttributePtr& theAttribute,
42                                         const std::string& theString) const;
43 };
44
45 /**
46  * \class ParametersPlugin_ExpressionValidator
47  * \ingroup Validators
48  * \brief Validator for the expression of parameter.
49  */
50 class ParametersPlugin_ExpressionValidator: public ModelAPI_AttributeValidator
51 {
52  public:
53   PARAMETERSPLUGIN_EXPORT ParametersPlugin_ExpressionValidator();
54   PARAMETERSPLUGIN_EXPORT virtual ~ParametersPlugin_ExpressionValidator();
55
56   //! returns true if attribute is valid
57   //! \param theAttribute the checked attribute
58   //! \param theArguments arguments of the attribute
59   //! \param theError the error string message if validation fails
60   PARAMETERSPLUGIN_EXPORT virtual bool isValid(const AttributePtr& theAttribute,
61                                                const std::list<std::string>& theArguments,
62                                                std::string& theError) const;
63 };
64
65
66 #endif /* PARAMETERSPLUGIN_VARIABLEVALIDATOR_H_ */