Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:12:52

0001 
0002 #ifndef FWCore_ParameterSet_ParameterWildcardWithSpecifics_h
0003 #define FWCore_ParameterSet_ParameterWildcardWithSpecifics_h
0004 
0005 #include <string>
0006 #include <map>
0007 #include "FWCore/ParameterSet/interface/ParameterWildcardBase.h"
0008 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0009 
0010 namespace edm {
0011 
0012   class ParameterSet;
0013   class DocFormatHelper;
0014 
0015   class ParameterWildcardWithSpecifics : public ParameterWildcardBase {
0016   public:
0017     ParameterWildcardWithSpecifics(std::string_view,
0018                                    WildcardValidationCriteria criteria,
0019                                    bool isTracked,
0020                                    ParameterSetDescription const& desc,
0021                                    std::map<std::string, ParameterSetDescription> exceptions);
0022 
0023     ParameterDescriptionNode* clone() const override;
0024 
0025   private:
0026     void validate_(ParameterSet& pset, std::set<std::string>& validatedLabels, bool optional) const override;
0027 
0028     bool hasNestedContent_() const override;
0029 
0030     void printNestedContent_(std::ostream& os, bool optional, DocFormatHelper& dfh) const override;
0031 
0032     bool exists_(ParameterSet const& pset) const override;
0033 
0034     void validatePSetVector(std::string const& parameterName, ParameterSet& pset) const;
0035 
0036     void validateDescription(std::string const& parameterName, ParameterSet& pset) const;
0037 
0038     ParameterSetDescription wildcardDesc_;
0039     std::map<std::string, ParameterSetDescription> exceptions_;
0040   };
0041 }  // namespace edm
0042 #endif