1 #ifndef FWCore_ParameterSet_ParameterDescriptionNode_h
2 #define FWCore_ParameterSet_ParameterDescriptionNode_h
21 template <
typename T>
class ParameterDescriptionCases;
22 class DocFormatHelper;
88 std::set<std::string>& validatedLabels,
89 bool optional)
const {
90 validate_(pset, validatedLabels, optional);
104 bool& startWithComma,
106 bool& wroteSomething)
const {
107 writeCfi_(os, startWithComma, indentation, wroteSomething);
111 void print(std::ostream& os,
211 std::set<ParameterTypes>& parameterTypes,
212 std::set<ParameterTypes>& wildcardTypes)
const {
221 std::set<ParameterTypes>& parameterTypes,
222 std::set<ParameterTypes>& wildcardTypes)
const = 0;
225 std::set<std::string>& validatedLabels,
226 bool optional)
const = 0;
229 bool& startWithComma,
231 bool& wroteSomething)
const = 0;
262 std::unique_ptr<ParameterDescriptionCases<bool> >
264 ParameterDescriptionNode
const& node);
266 std::unique_ptr<ParameterDescriptionCases<int> >
268 ParameterDescriptionNode
const& node);
270 std::unique_ptr<ParameterDescriptionCases<std::string> >
272 ParameterDescriptionNode
const& node);
274 std::unique_ptr<ParameterDescriptionCases<std::string> >
276 ParameterDescriptionNode
const& node);
278 std::unique_ptr<ParameterDescriptionCases<bool> >
280 std::unique_ptr<ParameterDescriptionNode> node);
282 std::unique_ptr<ParameterDescriptionCases<int> >
284 std::unique_ptr<ParameterDescriptionNode> node);
286 std::unique_ptr<ParameterDescriptionCases<std::string> >
288 std::unique_ptr<ParameterDescriptionNode> node);
290 std::unique_ptr<ParameterDescriptionCases<std::string> >
292 std::unique_ptr<ParameterDescriptionNode> node);
296 std::unique_ptr<ParameterDescriptionNode>
297 operator&&(ParameterDescriptionNode
const& node_left,
298 ParameterDescriptionNode
const& node_right);
300 std::unique_ptr<ParameterDescriptionNode>
301 operator&&(std::unique_ptr<ParameterDescriptionNode> node_left,
302 ParameterDescriptionNode
const& node_right);
304 std::unique_ptr<ParameterDescriptionNode>
305 operator&&(ParameterDescriptionNode
const& node_left,
306 std::unique_ptr<ParameterDescriptionNode> node_right);
308 std::unique_ptr<ParameterDescriptionNode>
309 operator&&(std::unique_ptr<ParameterDescriptionNode> node_left,
310 std::unique_ptr<ParameterDescriptionNode> node_right);
314 std::unique_ptr<ParameterDescriptionNode>
315 operator||(ParameterDescriptionNode
const& node_left,
316 ParameterDescriptionNode
const& node_right);
318 std::unique_ptr<ParameterDescriptionNode>
319 operator||(std::unique_ptr<ParameterDescriptionNode> node_left,
320 ParameterDescriptionNode
const& node_right);
322 std::unique_ptr<ParameterDescriptionNode>
323 operator||(ParameterDescriptionNode
const& node_left,
324 std::unique_ptr<ParameterDescriptionNode> node_right);
326 std::unique_ptr<ParameterDescriptionNode>
327 operator||(std::unique_ptr<ParameterDescriptionNode> node_left,
328 std::unique_ptr<ParameterDescriptionNode> node_right);
332 std::unique_ptr<ParameterDescriptionNode>
333 operator^(ParameterDescriptionNode
const& node_left,
334 ParameterDescriptionNode
const& node_right);
336 std::unique_ptr<ParameterDescriptionNode>
337 operator^(std::unique_ptr<ParameterDescriptionNode> node_left,
338 ParameterDescriptionNode
const& node_right);
340 std::unique_ptr<ParameterDescriptionNode>
341 operator^(ParameterDescriptionNode
const& node_left,
342 std::unique_ptr<ParameterDescriptionNode> node_right);
344 std::unique_ptr<ParameterDescriptionNode>
345 operator^(std::unique_ptr<ParameterDescriptionNode> node_left,
346 std::unique_ptr<ParameterDescriptionNode> node_right);
virtual ~ParameterDescriptionNode()
void setComment(std::string const &value)
virtual ParameterDescriptionNode * clone() const =0
virtual bool partiallyExists_(ParameterSet const &pset) const =0
virtual void checkAndGetLabelsAndTypes_(std::set< std::string > &usedLabels, std::set< ParameterTypes > ¶meterTypes, std::set< ParameterTypes > &wildcardTypes) const =0
void validate(ParameterSet &pset, std::set< std::string > &validatedLabels, bool optional) const
std::istream & operator>>(std::istream &is, FileInPath &fip)
int howManyXORSubNodesExist(ParameterSet const &pset) const
void printNestedContent(std::ostream &os, bool optional, DocFormatHelper &dfh) const
virtual bool hasNestedContent_() const
virtual void printNestedContent_(std::ostream &, bool, DocFormatHelper &) const
virtual int howManyXORSubNodesExist_(ParameterSet const &pset) const =0
std::string parameterTypeEnumToString(ParameterTypes iType)
static ParameterDescriptionNode * clone(ParameterDescriptionNode const *p)
std::unique_ptr< ParameterDescriptionNode > operator&&(ParameterDescriptionNode const &node_left, ParameterDescriptionNode const &node_right)
virtual void writeCfi_(std::ostream &os, bool &startWithComma, int indentation, bool &wroteSomething) const =0
std::string const & comment() const
void print(std::ostream &os, bool optional, bool writeToCfi, DocFormatHelper &dfh) const
static void printSpaces(std::ostream &os, int n)
bool exists(ParameterSet const &pset) const
bool partiallyExists(ParameterSet const &pset) const
std::unique_ptr< ParameterDescriptionCases< bool > > operator||(std::unique_ptr< ParameterDescriptionCases< bool > >, std::unique_ptr< ParameterDescriptionCases< bool > >)
bool hasNestedContent() const
virtual void validate_(ParameterSet &pset, std::set< std::string > &validatedLabels, bool optional) const =0
static ParameterTypes toEnum()
std::unique_ptr< ParameterDescriptionNode > operator^(ParameterDescriptionNode const &node_left, ParameterDescriptionNode const &node_right)
void checkAndGetLabelsAndTypes(std::set< std::string > &usedLabels, std::set< ParameterTypes > ¶meterTypes, std::set< ParameterTypes > &wildcardTypes) const
virtual bool exists_(ParameterSet const &pset) const =0
void writeCfi(std::ostream &os, bool &startWithComma, int indentation, bool &wroteSomething) const
virtual void print_(std::ostream &, bool, bool, DocFormatHelper &) const