#include <Model.h>
#include <ModelAPI_Validator.h>
-#include <ModelAPI_Feature.h>
#include <map>
#include <set>
std::map<std::string, std::set<std::string> > myConcealed;
/// Stores the registered attributes must be checked only if the particular case is activated
/// Map from feature kind to map of attribute IDs to pair
- // (switchId (ID of the attribute) and case Id (possible values of the switch attribute))
- std::map<std::string, std::map<std::string, std::pair<std::string, std::string> > > myCases;
+ // (switchId (ID of the attribute) and case Ids (possible values of the switch attribute))
+ std::map<std::string, std::map<std::string,
+ std::pair<std::string, std::set<std::string> > > > myCases;
public:
/// Registers the instance of the validator by the ID
/// Provides a validator for the feature, returns NULL if no validator
MODEL_EXPORT virtual void validators(const std::string& theFeatureID,
- std::list<ModelAPI_Validator*>& theResult,
- std::list<std::list<std::string> >& theArguments) const;
+ Validators& theResult) const;
/// Provides a validator for the attribute, returns NULL if no validator
- MODEL_EXPORT virtual void validators(const std::string& theFeatureID,
- const std::string& theAttrID,
- std::list<ModelAPI_Validator*>& theValidators,
- std::list<std::list<std::string> >& theArguments) const;
+ MODEL_EXPORT virtual void validators(const std::string& theFeatureID, const std::string& theAttrID,
+ Validators& theResult) const;
/// Returns registered validator by its Id
MODEL_EXPORT virtual const ModelAPI_Validator* validator(const std::string& theID) const;
/// Returns true if feature and all its attributes are valid.
MODEL_EXPORT virtual bool validate(const std::shared_ptr<ModelAPI_Feature>& theFeature) const;
+ /// Returns true if the attribute is valid.
+ MODEL_EXPORT virtual bool validate(const std::shared_ptr<ModelAPI_Attribute>& theAttribute,
+ std::string& theValidator, std::string& theError) const;
+
/// register that this attribute in feature is not obligatory for the feature execution
/// so, it is not needed for the standard validation mechanism
virtual void registerNotObligatory(std::string theFeature, std::string theAttribute);
protected:
/// Adds the defualt validators that are usefull for all features.
- void addDefaultValidators(std::list<ModelAPI_Validator*>& theValidators,
- std::list<std::list<std::string> >& theArguments) const;
+ void addDefaultValidators(Validators& theValidators) const;
+ /// Adds the defualt validators that are usefull for all attributes.
+ void addDefaultAttributeValidators(Validators& theValidators) const;
/// Get instance from Session
Model_ValidatorsFactory();