CMS 3D CMS Logo

ANDGroupDescription.h
Go to the documentation of this file.
1 #ifndef FWCore_ParameterSet_ANDGroupDescription_h
2 #define FWCore_ParameterSet_ANDGroupDescription_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:
21  ParameterDescriptionNode const& node_right);
22 
23  ANDGroupDescription(std::unique_ptr<ParameterDescriptionNode> node_left,
24  ParameterDescriptionNode const& node_right);
25 
27  std::unique_ptr<ParameterDescriptionNode> node_right);
28 
29  ANDGroupDescription(std::unique_ptr<ParameterDescriptionNode> node_left,
30  std::unique_ptr<ParameterDescriptionNode> node_right);
31 
32  virtual ParameterDescriptionNode* clone() const {
33  return new ANDGroupDescription(*this);
34  }
35 
36  private:
37 
38  virtual void checkAndGetLabelsAndTypes_(std::set<std::string> & usedLabels,
39  std::set<ParameterTypes> & parameterTypes,
40  std::set<ParameterTypes> & wildcardTypes) const;
41 
42  virtual void validate_(ParameterSet & pset,
43  std::set<std::string> & validatedLabels,
44  bool optional) const;
45 
46  virtual void writeCfi_(std::ostream & os,
47  bool & startWithComma,
48  int indentation,
49  bool & wroteSomething) const;
50 
51  virtual void print_(std::ostream & os,
52  bool optional,
53  bool writeToCfi,
54  DocFormatHelper & dfh) const;
55 
56  virtual bool hasNestedContent_() const {
57  return true;
58  }
59 
60  virtual void printNestedContent_(std::ostream & os,
61  bool optional,
62  DocFormatHelper & dfh) const;
63 
64  virtual bool exists_(ParameterSet const& pset) const;
65 
66  virtual bool partiallyExists_(ParameterSet const& pset) const;
67 
68  virtual int howManyXORSubNodesExist_(ParameterSet const& pset) const;
69 
70 
71  void throwIfDuplicateLabels(std::set<std::string> const& labelsLeft,
72  std::set<std::string> const& labelsRight) const;
73 
74  void throwIfDuplicateTypes(std::set<ParameterTypes> const& types1,
75  std::set<ParameterTypes> const& types2) const;
76 
79  };
80 }
81 #endif
virtual void printNestedContent_(std::ostream &os, bool optional, DocFormatHelper &dfh) const
void throwIfDuplicateTypes(std::set< ParameterTypes > const &types1, std::set< ParameterTypes > const &types2) const
ANDGroupDescription(ParameterDescriptionNode const &node_left, ParameterDescriptionNode const &node_right)
virtual void writeCfi_(std::ostream &os, bool &startWithComma, int indentation, bool &wroteSomething) const
virtual ParameterDescriptionNode * clone() const
virtual bool partiallyExists_(ParameterSet const &pset) const
edm::value_ptr< ParameterDescriptionNode > node_right_
virtual void print_(std::ostream &os, bool optional, bool writeToCfi, DocFormatHelper &dfh) const
virtual void validate_(ParameterSet &pset, std::set< std::string > &validatedLabels, bool optional) const
edm::value_ptr< ParameterDescriptionNode > node_left_
virtual int howManyXORSubNodesExist_(ParameterSet const &pset) const
virtual bool exists_(ParameterSet const &pset) const
HLT enums.
virtual void checkAndGetLabelsAndTypes_(std::set< std::string > &usedLabels, std::set< ParameterTypes > &parameterTypes, std::set< ParameterTypes > &wildcardTypes) const
virtual bool hasNestedContent_() const
void throwIfDuplicateLabels(std::set< std::string > const &labelsLeft, std::set< std::string > const &labelsRight) const