LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
ParameterMetadata.h
Go to the documentation of this file.
1 #ifndef fhiclcpp_types_detail_ParameterMetadata_h
2 #define fhiclcpp_types_detail_ParameterMetadata_h
3 
5 #include "fhiclcpp/types/Name.h"
9 
10 #include <string>
11 
12 namespace fhicl::detail {
13 
14  class ParameterBase;
15 
17  public:
18  ParameterMetadata() = default;
19 
21  Comment const& comment = Comment(""),
22  par_style const parStyle = par_style::NTYPES,
23  par_type const parType = par_type::NTYPES)
25  , name_{name.value}
26  , comment_{comment.value}
27  , parStyle_{parStyle}
28  , parType_{parType}
29  {}
30 
31  std::string const&
32  key() const
33  {
34  return key_;
35  }
36  std::string const&
37  name() const
38  {
39  return name_;
40  }
41  std::string const&
42  comment() const
43  {
44  return comment_;
45  }
46 
47  bool
48  has_default() const
49  {
50  return parStyle_ == par_style::DEFAULT ||
52  }
53 
54  bool
55  is_optional() const
56  {
57  return parStyle_ == par_style::OPTIONAL ||
59  }
60 
61  bool
63  {
67  }
68 
69  par_type
70  type() const
71  {
72  return parType_;
73  }
74 
75  void
77  {
78  parStyle_ = vt;
79  }
80 
81  private:
82  std::string key_{};
83  std::string name_{};
84  std::string comment_{};
87  };
88 }
89 
90 #endif /* fhiclcpp_types_detail_ParameterMetadata_h */
91 
92 // Local variables:
93 // mode: c++
94 // End:
ParameterMetadata(Name const &name=Name(), Comment const &comment=Comment(""), par_style const parStyle=par_style::NTYPES, par_type const parType=par_type::NTYPES)
std::string const & name() const
std::string const & comment() const
static std::string full_key(std::string const &key)
std::string const & key() const
void set_par_style(par_style const vt)