SHAPER 9.16.0
ModelAPI_Validator.h
1// Copyright (C) 2014-2026 CEA, EDF
2//
3// This library is free software; you can redistribute it and/or
4// modify it under the terms of the GNU Lesser General Public
5// License as published by the Free Software Foundation; either
6// version 2.1 of the License, or (at your option) any later version.
7//
8// This library is distributed in the hope that it will be useful,
9// but WITHOUT ANY WARRANTY; without even the implied warranty of
10// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11// Lesser General Public License for more details.
12//
13// You should have received a copy of the GNU Lesser General Public
14// License along with this library; if not, write to the Free Software
15// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16//
17// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18//
19
20#ifndef ModelAPI_Validator_H_
21#define ModelAPI_Validator_H_
22
23#include <ModelAPI.h>
24#include <ModelAPI_Feature.h>
25#include <memory>
26#include <list>
27
30
42class MODELAPI_EXPORT ModelAPI_Validator
43{
44 public:
45 // Make virtual destructor in order to make the class polymorphic
46 virtual ~ModelAPI_Validator()
47 {
48 }
49};
50
51typedef std::shared_ptr<ModelAPI_Validator> ValidatorPtr;
52
65class MODELAPI_EXPORT ModelAPI_ValidatorsFactory
66{
67 public:
69
71 virtual void registerValidator(const std::string& theID, ModelAPI_Validator* theValidator) = 0;
72
74 virtual void assignValidator(const std::string& theID, const std::string& theFeatureID) = 0;
75
77 virtual void assignValidator(const std::string& theID,
78 const std::string& theFeatureID,
79 const std::list<std::string>& theArguments) = 0;
80
82 virtual void assignValidator(const std::string& theID, const std::string& theFeatureID,
83 const std::string& theAttrID,
84 const std::list<std::string>& theArguments) = 0;
85
87 typedef std::list<std::pair<std::string, std::list<std::string> > > Validators;
89 virtual void validators(const std::string& theFeatureID,
90 Validators& theResult) const = 0;
92 virtual void validators(const std::string& theFeatureID, const std::string& theAttrID,
93 Validators& theResult) const = 0;
94
96 virtual const ModelAPI_Validator* validator(const std::string& theID) const = 0;
97
99 virtual bool validate(const std::shared_ptr<ModelAPI_Feature>& theFeature) const = 0;
100
102 virtual bool validate(const std::shared_ptr<ModelAPI_Attribute>& theAttribute,
103 std::string& theValidator, Events_InfoMessage& theError) const = 0;
104
107 virtual void registerNotObligatory(std::string theFeature, std::string theAttribute) = 0;
108
110 virtual bool isNotObligatory(std::string theFeature, std::string theAttribute) = 0;
111
114 virtual void registerConcealment(std::string theFeature, std::string theAttribute) = 0;
115
117 virtual bool isConcealed(std::string theFeature, std::string theAttribute) = 0;
118
120 virtual void registerMainArgument(std::string theFeature, std::string theAttribute) = 0;
121
123 virtual bool isMainArgument(std::string theFeature, std::string theAttribute) = 0;
124
126 virtual void registerCase(std::string theFeature, std::string theAttribute,
127 const std::list<std::pair<std::string, std::string> >& theCases) = 0;
128
130 virtual bool isCase(FeaturePtr theFeature, std::string theAttribute) = 0;
131
133 virtual void registerGeometricalSelection(std::string theFeature, std::string theAttribute) = 0;
134
136 virtual bool isGeometricalSelection(std::string theFeature, std::string theAttribute) = 0;
137
138 protected:
141 {
142 }
143};
144
145#endif
An event message for sending a string message which has to be translated.
Definition: Events_InfoMessage.h:35
Feature function that represents the particular functionality of this operation.
Definition: ModelAPI_Feature.h:41
Allows to validate the attribute value of a feature or the whole feature.
Definition: ModelAPI_Validator.h:43
Manages the registered validators.
Definition: ModelAPI_Validator.h:66
virtual void registerGeometricalSelection(std::string theFeature, std::string theAttribute)=0
Register the selection attribute as geometrical selection.
virtual void assignValidator(const std::string &theID, const std::string &theFeatureID, const std::list< std::string > &theArguments)=0
Assigns validator to the feature with arguments of the validator.
virtual void registerConcealment(std::string theFeature, std::string theAttribute)=0
register that this attribute conceals in the object browser all referenced features after execution
virtual bool isMainArgument(std::string theFeature, std::string theAttribute)=0
Returns true is the attribute is a main argument of the feature.
virtual const ModelAPI_Validator * validator(const std::string &theID) const =0
Returns registered validator by its Id.
virtual void registerMainArgument(std::string theFeature, std::string theAttribute)=0
Register the attribute as a main argument of the feature.
virtual bool isNotObligatory(std::string theFeature, std::string theAttribute)=0
Returns true if the attribute in feature is not obligatory for the feature execution.
virtual void registerValidator(const std::string &theID, ModelAPI_Validator *theValidator)=0
Registers the instance of the validator by the ID.
ModelAPI_ValidatorsFactory()
Get instance from Session.
Definition: ModelAPI_Validator.h:140
virtual void assignValidator(const std::string &theID, const std::string &theFeatureID, const std::string &theAttrID, const std::list< std::string > &theArguments)=0
Assigns validator to the attribute of the feature.
virtual void assignValidator(const std::string &theID, const std::string &theFeatureID)=0
Assigns validator to the feature.
virtual bool isCase(FeaturePtr theFeature, std::string theAttribute)=0
Returns true if the attribute must be checked (the case is selected)
virtual bool isConcealed(std::string theFeature, std::string theAttribute)=0
Returns true that it was registered that attribute conceals the referenced result.
virtual void registerNotObligatory(std::string theFeature, std::string theAttribute)=0
register that this attribute in feature is not obligatory for the feature execution so,...
virtual bool validate(const std::shared_ptr< ModelAPI_Attribute > &theAttribute, std::string &theValidator, Events_InfoMessage &theError) const =0
Returns true if the attribute is valid.
std::list< std::pair< std::string, std::list< std::string > > > Validators
Validators is a list of pairs <Validator, list of arguments>
Definition: ModelAPI_Validator.h:87
virtual void registerCase(std::string theFeature, std::string theAttribute, const std::list< std::pair< std::string, std::string > > &theCases)=0
Register the case-attribute: this attribute is checked only if its case is selected.
virtual void validators(const std::string &theFeatureID, const std::string &theAttrID, Validators &theResult) const =0
Provides a validator for the attribute, returns NULL if no validator.
virtual bool isGeometricalSelection(std::string theFeature, std::string theAttribute)=0
Returns true if the attribute is a geometrical selection.
virtual bool validate(const std::shared_ptr< ModelAPI_Feature > &theFeature) const =0
Returns true if feature and all its attributes are valid.
virtual void validators(const std::string &theFeatureID, Validators &theResult) const =0
Provides a validator for the feature, returns NULL if no validator.