World Builder  1.1.0-pre
A geodynamic initial conditions generator
string.h
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 */
19 
20 #ifndef WORLD_BUILDER_TYPES_STRING_H
21 #define WORLD_BUILDER_TYPES_STRING_H
22 
23 #include <vector>
24 
26 
27 
28 namespace WorldBuilder
29 {
30  class Parameters;
31 
32  namespace Types
33  {
34 
41  class String final: public Interface
42  {
43  public:
47  String(std::string default_value);
48 
52  String(std::string default_value, const std::string &restricted_value);
53 
57  String(std::string default_value, std::vector<std::string> restricted_values);
58 
62  //String(std::string default_value, std::string description);
63 
64 
68  String(std::string value, std::string default_value, std::string description);
69 
73  String(String const &other);
74 
78  ~String() final;
79 
83  void write_schema(Parameters &prm,
84  const std::string &name,
85  const std::string &documentation) const override final;
86 
87 
88  std::string value;
89  std::string default_value;
90  std::string description;
91  std::vector<std::string> restricted_values;
92 
93 
94  protected:
95  String *clone_impl() const override final
96  {
97  return new String(*this);
98  };
99  };
100  } // namespace Types
101 } // namespace WorldBuilder
102 
103 #endif
String * clone_impl() const override final
Definition: string.h:95
std::string description
Definition: string.h:90
String(std::string default_value)
Definition: string.cc:29
std::string default_value
Definition: string.h:89
void write_schema(Parameters &prm, const std::string &name, const std::string &documentation) const override final
Definition: string.cc:89
std::vector< std::string > restricted_values
Definition: string.h:91