Salome HOME
Issue #1624: Show/Hide Mirror/Translation/Rotation constraints on "show geometrical...
[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   /**
30    * \brief Returns true if attribute has a valid parameter name.
31    * \param theAttribute the checked attribute
32    * \param theArguments arguments of the attribute
33    * \param theError the error string message if validation fails
34    */
35   PARAMETERSPLUGIN_EXPORT virtual bool isValid(const AttributePtr& theAttribute,
36                                                const std::list<std::string>& theArguments,
37                                                Events_InfoMessage& theError) const;
38
39  protected:
40   /// Returns true if theString is unique parameter name in the document of theAttribute.
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   /**
57    * \brief Returns true if attribute has a valid parameter expression.
58    * \param theAttribute the checked attribute
59    * \param theArguments arguments of the attribute
60    * \param theError the error string message if validation fails
61    */
62   PARAMETERSPLUGIN_EXPORT virtual bool isValid(const AttributePtr& theAttribute,
63                                                const std::list<std::string>& theArguments,
64                                                Events_InfoMessage& theError) const;
65 };
66
67
68 #endif /* PARAMETERSPLUGIN_VARIABLEVALIDATOR_H_ */