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 }
0042 #endif