Salome HOME
Merge branch 'Dev_0.7.1' of newgeom:newgeom into Dev_0.7.1
[modules/shaper.git] / src / ModelAPI / ModelAPI_FeatureValidator.h
1 // Copyright (C) 2014-20xx CEA/DEN, EDF R&D
2
3 // File:        ModelAPI_FeatureValidator.h
4 // Created:     8 Jul 2014
5 // Author:      Vitaly SMETANNIKOV
6
7 #ifndef ModelAPI_FeatureValidator_H
8 #define ModelAPI_FeatureValidator_H
9
10 #include "ModelAPI.h"
11 #include "ModelAPI_Validator.h"
12
13 /**\class ModelAPI_FeatureValidator
14  * \ingroup DataModel
15  * \brief The geneneric validator for the whole feature.
16  *
17  * Can be redefined for some specific feature, but by default for each feature this validator is
18  * used: it checks each argument of the feature and if one of it is not valid (and obligatory),
19  * the hole feature is invalid.
20  */
21 class ModelAPI_FeatureValidator : public ModelAPI_Validator
22 {
23  public:
24   /// Returns true if feature and/or attributes are valid
25   /// \param theFeature the validated feature
26   /// \param theArguments list of string, feature attribute names: dependent attributes
27   virtual bool isValid(const std::shared_ptr<ModelAPI_Feature>& theFeature,
28     const std::list<std::string>& theArguments) const = 0;
29
30   /// Returns true if the attribute in feature is not obligatory for the feature execution
31   virtual bool isNotObligatory(std::string theFeature, std::string theAttribute) = 0;
32 };
33
34 #endif