15 std::function<
bool()> maybeUse)
23 std::string
const& tab)
const 30 std::vector<cet::exempt_ptr<ParameterBase>>
const&
47 bool const implicitly_default =
49 return p->has_default() || p->is_optional();
51 if (implicitly_default)
57 std::set<std::string>
const& ignorable_keys)
59 pset_ = std::make_optional(pset);
61 cet::for_all(
members_, [&vs](
auto m) { vs.walk_over(*m); });
75 return pset_.has_value();
88 return pset_.has_value() ? *
pset_ : empty_pset;
91 std::optional<ParameterSet>
101 std::string
const& rkey =
key();
104 return std::make_optional(pset);
109 std::optional<ParameterSet>
120 std::string
const& rkey =
key();
123 return std::make_optional(pset);
141 std::ostringstream config;
143 return os << config.str();
ParameterSet const & get_pset() const
std::vector< cet::exempt_ptr< ParameterBase > > const & members() const
void validate(ParameterSet const &pset, std::set< std::string > const &ignorable_keys={})
std::string optional_parameter_message(bool const with_comment=true)
std::string strip_first_containing_name(std::string const &key)
void walk_over(tt::maybe_const_t< ParameterBase, C > &)
std::optional< ParameterSet > select_pset(ParameterSet const &pset) const
std::vector< cet::exempt_ptr< ParameterBase > > members_
static std::vector< base_ptr > release_members()
T get(std::string const &key) const
std::string const & name() const
std::optional< ParameterSet > maybe_select_pset(ParameterSet const &pset) const
std::string const & key() const
ParameterSet const & guarantee_pset() const
void print_allowed_configuration(std::ostream &os, std::string const &tab=std::string(3, ' ')) const
std::optional< T > get_if_present(std::string const &key) const
void do_set_value(ParameterSet const &pset) final
std::string const & comment() const
void maybe_implicitly_default()
void set_par_style(par_style const vt)
std::optional< ParameterSet > pset_
std::ostream & operator<<(std::ostream &os, TableBase const &t)
TableBase(Name const &name, Comment const &comment, par_style vt, std::function< bool()> maybeUse)