CMS 3D CMS Logo

XORGroupDescription.h
Go to the documentation of this file.
1 #ifndef FWCore_ParameterSet_XORGroupDescription_h
2 #define FWCore_ParameterSet_XORGroupDescription_h
3 
5 
7 
8 #include <memory>
9 #include <iosfwd>
10 #include <set>
11 #include <string>
12 
13 namespace edm {
14 
15  class ParameterSet;
16  class DocFormatHelper;
17 
19  public:
20  XORGroupDescription(ParameterDescriptionNode const& node_left, ParameterDescriptionNode const& node_right);
21 
22  XORGroupDescription(std::unique_ptr<ParameterDescriptionNode> node_left,
23  ParameterDescriptionNode const& node_right);
24 
26  std::unique_ptr<ParameterDescriptionNode> node_right);
27 
28  XORGroupDescription(std::unique_ptr<ParameterDescriptionNode> node_left,
29  std::unique_ptr<ParameterDescriptionNode> node_right);
30 
31  ParameterDescriptionNode* clone() const override { return new XORGroupDescription(*this); }
32 
33  private:
34  void checkAndGetLabelsAndTypes_(std::set<std::string>& usedLabels,
35  std::set<ParameterTypes>& parameterTypes,
36  std::set<ParameterTypes>& wildcardTypes) const override;
37 
38  void validate_(ParameterSet& pset, std::set<std::string>& validatedLabels, bool optional) const override;
39 
40  void writeCfi_(
41  std::ostream& os, bool optional, bool& startWithComma, int indentation, bool& wroteSomething) const override;
42 
43  void print_(std::ostream& os, bool optional, bool writeToCfi, DocFormatHelper& dfh) const override;
44 
45  bool hasNestedContent_() const override { return true; }
46 
47  void printNestedContent_(std::ostream& os, bool optional, DocFormatHelper& dfh) const override;
48 
49  bool exists_(ParameterSet const& pset) const override;
50 
51  bool partiallyExists_(ParameterSet const& pset) const override;
52 
53  int howManyXORSubNodesExist_(ParameterSet const& pset) const override;
54 
55  void throwMoreThanOneParameter() const;
56  void throwAfterValidation() const;
57 
60  };
61 } // namespace edm
62 #endif
edm::XORGroupDescription::exists_
bool exists_(ParameterSet const &pset) const override
Definition: XORGroupDescription.cc:181
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::XORGroupDescription::node_right_
edm::value_ptr< ParameterDescriptionNode > node_right_
Definition: XORGroupDescription.h:59
edm::XORGroupDescription::throwAfterValidation
void throwAfterValidation() const
Definition: XORGroupDescription.cc:204
edm::XORGroupDescription::printNestedContent_
void printNestedContent_(std::ostream &os, bool optional, DocFormatHelper &dfh) const override
Definition: XORGroupDescription.cc:131
Types.optional
optional
Definition: Types.py:167
edm::DocFormatHelper
Definition: DocFormatHelper.h:15
edm::XORGroupDescription::XORGroupDescription
XORGroupDescription(ParameterDescriptionNode const &node_left, ParameterDescriptionNode const &node_right)
Definition: XORGroupDescription.cc:11
edm::XORGroupDescription::howManyXORSubNodesExist_
int howManyXORSubNodesExist_(ParameterSet const &pset) const override
Definition: XORGroupDescription.cc:188
ParameterDescriptionNode.h
edm::XORGroupDescription::node_left_
edm::value_ptr< ParameterDescriptionNode > node_left_
Definition: XORGroupDescription.h:58
edm::XORGroupDescription::validate_
void validate_(ParameterSet &pset, std::set< std::string > &validatedLabels, bool optional) const override
Definition: XORGroupDescription.cc:50
value_ptr.h
edm::ParameterSet
Definition: ParameterSet.h:36
ParameterSet
Definition: Functions.h:16
edm::value_ptr
Definition: value_ptr.h:63
edm::XORGroupDescription
Definition: XORGroupDescription.h:18
edm::XORGroupDescription::checkAndGetLabelsAndTypes_
void checkAndGetLabelsAndTypes_(std::set< std::string > &usedLabels, std::set< ParameterTypes > &parameterTypes, std::set< ParameterTypes > &wildcardTypes) const override
Definition: XORGroupDescription.cc:27
edm::XORGroupDescription::print_
void print_(std::ostream &os, bool optional, bool writeToCfi, DocFormatHelper &dfh) const override
Definition: XORGroupDescription.cc:86
edm::XORGroupDescription::writeCfi_
void writeCfi_(std::ostream &os, bool optional, bool &startWithComma, int indentation, bool &wroteSomething) const override
Definition: XORGroupDescription.cc:81
edm::XORGroupDescription::clone
ParameterDescriptionNode * clone() const override
Definition: XORGroupDescription.h:31
edm::XORGroupDescription::hasNestedContent_
bool hasNestedContent_() const override
Definition: XORGroupDescription.h:45
printContent_cfi.indentation
indentation
Definition: printContent_cfi.py:10
edm::XORGroupDescription::partiallyExists_
bool partiallyExists_(ParameterSet const &pset) const override
Definition: XORGroupDescription.cc:186
edm::ParameterDescriptionNode
Definition: ParameterDescriptionNode.h:82
edm::XORGroupDescription::throwMoreThanOneParameter
void throwMoreThanOneParameter() const
Definition: XORGroupDescription.cc:192
muonDTDigis_cfi.pset
pset
Definition: muonDTDigis_cfi.py:27