World Builder  1.1.0-pre
A geodynamic initial conditions generator
bool.cc
Go to the documentation of this file.
1 /*
2  Copyright (C) 2018-2024 by the authors of the World Builder code.
3 
4  This file is part of the World Builder.
5 
6  This program is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Lesser General Public License as published
8  by the Free Software Foundation, either version 2 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public License
17  along with this program. If not, see <https://www.gnu.org/licenses/>.
18 */
20 
22 
23 namespace WorldBuilder
24 {
25  namespace Types
26  {
27  Bool::Bool(const bool default_value_)
28  :
29  default_value(default_value_)
30  {
32  }
33 
34 
35  Bool::Bool(Bool const &other)
36  :
38  {
40  }
41 
42 
43  Bool::~Bool ()
44  = default;
45 
46 
47  void
49  const std::string &name,
50  const std::string &documentation) const
51  {
52  using namespace rapidjson;
53  Document &declarations = prm.declarations;
54  const std::string base = prm.get_full_json_path() + "/" + name;
55 
56  Pointer((base + "/default value").c_str()).Set(declarations,default_value);
57  Pointer((base + "/type").c_str()).Set(declarations,"boolean");
58  Pointer((base + "/description").c_str()).Set(declarations,documentation.c_str());
59  }
60  } // namespace Types
61 } // namespace WorldBuilder
62 
~Bool() override final
Bool(const bool default_value)
Definition: bool.cc:27
std::string get_full_json_path(size_t max_size=std::numeric_limits< size_t >::max()) const
Definition: parameters.cc:1933
void write_schema(Parameters &prm, const std::string &name, const std::string &documentation) const override final
Definition: bool.cc:48
rapidjson::Document declarations
Definition: parameters.h:248