Salome HOME
8b4626eadb823064aea0eacdf5ced93595ecc753
[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 class ParametersPlugin_VariableValidator : public ModelAPI_AttributeValidator
19 {
20  public:
21   PARAMETERSPLUGIN_EXPORT ParametersPlugin_VariableValidator();
22   PARAMETERSPLUGIN_EXPORT virtual ~ParametersPlugin_VariableValidator();
23
24   //! returns true if attribute is valid
25   //! \param theAttribute the checked attribute
26   //! \param theArguments arguments of the attribute
27   PARAMETERSPLUGIN_EXPORT virtual bool isValid(const AttributePtr& theAttribute,
28                                                const std::list<std::string>& theArguments) const;
29
30  protected:
31   PARAMETERSPLUGIN_EXPORT bool isVariable(const std::string& theString) const;
32   PARAMETERSPLUGIN_EXPORT bool isUnique(const AttributePtr& theAttribute, 
33                                         const std::string& theString) const;
34 };
35
36 class ParametersPlugin_ExpressionValidator: public ModelAPI_AttributeValidator
37 {
38  public:
39   PARAMETERSPLUGIN_EXPORT ParametersPlugin_ExpressionValidator();
40   PARAMETERSPLUGIN_EXPORT virtual ~ParametersPlugin_ExpressionValidator();
41
42   //! returns true if attribute is valid
43   //! \param theAttribute the checked attribute
44   //! \param theArguments arguments of the attribute
45   PARAMETERSPLUGIN_EXPORT virtual bool isValid(const AttributePtr& theAttribute,
46                                                const std::list<std::string>& theArguments) const;
47 };
48
49
50 #endif /* PARAMETERSPLUGIN_VARIABLEVALIDATOR_H_ */