Fawkes API  Fawkes Development Version
DomainPreconditionAtom.h
1 
2 /****************************************************************************
3  * ClipsExecutive -- Schema DomainPreconditionAtom
4  * (auto-generated, do not modify directly)
5  *
6  * CLIPS Executive REST API.
7  * Enables access to goals, plans, and all items in the domain model.
8  *
9  * API Contact: Tim Niemueller <niemueller@kbsg.rwth-aachen.de>
10  * API Version: v1beta1
11  * API License: Apache 2.0
12  ****************************************************************************/
13 
14 #pragma once
15 
16 #define RAPIDJSON_HAS_STDSTRING 1
17 #include "DomainPrecondition.h"
18 
19 #include <rapidjson/fwd.h>
20 
21 #include <cstdint>
22 #include <memory>
23 #include <optional>
24 #include <string>
25 #include <vector>
26 
27 /** DomainPreconditionAtom representation for JSON transfer. */
29 
30 {
31 public:
32  /** Constructor. */
34  /** Constructor from JSON.
35  * @param json JSON string to initialize from
36  */
37  DomainPreconditionAtom(const std::string &json);
38  /** Constructor from JSON.
39  * @param v RapidJSON value object to initialize from.
40  */
41  DomainPreconditionAtom(const rapidjson::Value &v);
42 
43  /** Destructor. */
44  virtual ~DomainPreconditionAtom();
45 
46  /** Get version of implemented API.
47  * @return string representation of version
48  */
49  static std::string
51  {
52  return "v1beta1";
53  }
54 
55  /** Render object to JSON.
56  * @param pretty true to enable pretty printing (readable spacing)
57  * @return JSON string
58  */
59  virtual std::string to_json(bool pretty = false) const;
60  /** Render object to JSON.
61  * @param d RapidJSON document to retrieve allocator from
62  * @param v RapidJSON value to add data to
63  */
64  virtual void to_json_value(rapidjson::Document &d, rapidjson::Value &v) const;
65  /** Retrieve data from JSON string.
66  * @param json JSON representation suitable for this object.
67  * Will allow partial assignment and not validate automaticaly.
68  * @see validate()
69  */
70  virtual void from_json(const std::string &json);
71  /** Retrieve data from JSON string.
72  * @param v RapidJSON value suitable for this object.
73  * Will allow partial assignment and not validate automaticaly.
74  * @see validate()
75  */
76  virtual void from_json_value(const rapidjson::Value &v);
77 
78  /** Validate if all required fields have been set.
79  * @param subcall true if this is called from another class, e.g.,
80  * a sub-class or array holder. Will modify the kind of exception thrown.
81  * @exception std::vector<std::string> thrown if required information is
82  * missing and @p subcall is set to true. Contains a list of missing fields.
83  * @exception std::runtime_error informative message describing the missing
84  * fields
85  */
86  virtual void validate(bool subcall = false) const;
87 
88  // allOf
89  // Schema: DomainPreconditionAtom[2]
90 public:
91  /** Get predicate value.
92  * @return predicate value
93  */
94  std::optional<std::string>
95  predicate() const
96  {
97  return predicate_;
98  }
99 
100  /** Set predicate value.
101  * @param predicate new value
102  */
103  void
104  set_predicate(const std::string &predicate)
105  {
106  predicate_ = predicate;
107  }
108  /** Get param-names value.
109  * @return param-names value
110  */
111  std::vector<std::string>
112  param_names() const
113  {
114  return param_names_;
115  }
116 
117  /** Set param-names value.
118  * @param param_names new value
119  */
120  void
121  set_param_names(const std::vector<std::string> &param_names)
122  {
123  param_names_ = param_names;
124  }
125  /** Add element to param-names array.
126  * @param param_names new value
127  */
128  void
129  addto_param_names(const std::string &&param_names)
130  {
131  param_names_.push_back(std::move(param_names));
132  }
133 
134  /** Add element to param-names array.
135  * The move-semantics version (std::move) should be preferred.
136  * @param param_names new value
137  */
138  void
139  addto_param_names(const std::string &param_names)
140  {
141  param_names_.push_back(param_names);
142  }
143  /** Get param-values value.
144  * @return param-values value
145  */
146  std::vector<std::string>
147  param_values() const
148  {
149  return param_values_;
150  }
151 
152  /** Set param-values value.
153  * @param param_values new value
154  */
155  void
156  set_param_values(const std::vector<std::string> &param_values)
157  {
158  param_values_ = param_values;
159  }
160  /** Add element to param-values array.
161  * @param param_values new value
162  */
163  void
164  addto_param_values(const std::string &&param_values)
165  {
166  param_values_.push_back(std::move(param_values));
167  }
168 
169  /** Add element to param-values array.
170  * The move-semantics version (std::move) should be preferred.
171  * @param param_values new value
172  */
173  void
174  addto_param_values(const std::string &param_values)
175  {
176  param_values_.push_back(param_values);
177  }
178  /** Get param-constants value.
179  * @return param-constants value
180  */
181  std::vector<std::string>
183  {
184  return param_constants_;
185  }
186 
187  /** Set param-constants value.
188  * @param param_constants new value
189  */
190  void
191  set_param_constants(const std::vector<std::string> &param_constants)
192  {
193  param_constants_ = param_constants;
194  }
195  /** Add element to param-constants array.
196  * @param param_constants new value
197  */
198  void
200  {
201  param_constants_.push_back(std::move(param_constants));
202  }
203 
204  /** Add element to param-constants array.
205  * The move-semantics version (std::move) should be preferred.
206  * @param param_constants new value
207  */
208  void
210  {
211  param_constants_.push_back(param_constants);
212  }
213 
214 private:
215  std::optional<std::string> predicate_;
216  std::vector<std::string> param_names_;
217  std::vector<std::string> param_values_;
218  std::vector<std::string> param_constants_;
219 };
DomainPreconditionAtom::from_json_value
virtual void from_json_value(const rapidjson::Value &v)
Retrieve data from JSON string.
Definition: DomainPreconditionAtom.cpp:110
DomainPreconditionAtom::to_json
virtual std::string to_json(bool pretty=false) const
Render object to JSON.
Definition: DomainPreconditionAtom.cpp:42
DomainPreconditionAtom
DomainPreconditionAtom representation for JSON transfer.
Definition: DomainPreconditionAtom.h:28
DomainPreconditionAtom::validate
virtual void validate(bool subcall=false) const
Validate if all required fields have been set.
Definition: DomainPreconditionAtom.cpp:146
DomainPreconditionAtom::from_json
virtual void from_json(const std::string &json)
Retrieve data from JSON string.
Definition: DomainPreconditionAtom.cpp:101
DomainPreconditionAtom::DomainPreconditionAtom
DomainPreconditionAtom()
Constructor.
Definition: DomainPreconditionAtom.cpp:23
DomainPreconditionAtom::addto_param_values
void addto_param_values(const std::string &param_values)
Add element to param-values array.
Definition: DomainPreconditionAtom.h:174
DomainPrecondition
DomainPrecondition representation for JSON transfer.
Definition: DomainPrecondition.h:26
DomainPreconditionAtom::to_json_value
virtual void to_json_value(rapidjson::Document &d, rapidjson::Value &v) const
Render object to JSON.
Definition: DomainPreconditionAtom.cpp:61
DomainPreconditionAtom::addto_param_values
void addto_param_values(const std::string &&param_values)
Add element to param-values array.
Definition: DomainPreconditionAtom.h:164
DomainPreconditionAtom::predicate
std::optional< std::string > predicate() const
Get predicate value.
Definition: DomainPreconditionAtom.h:95
DomainPreconditionAtom::set_param_constants
void set_param_constants(const std::vector< std::string > &param_constants)
Set param-constants value.
Definition: DomainPreconditionAtom.h:191
DomainPreconditionAtom::addto_param_names
void addto_param_names(const std::string &param_names)
Add element to param-names array.
Definition: DomainPreconditionAtom.h:139
DomainPreconditionAtom::param_values
std::vector< std::string > param_values() const
Get param-values value.
Definition: DomainPreconditionAtom.h:147
DomainPreconditionAtom::~DomainPreconditionAtom
virtual ~DomainPreconditionAtom()
Destructor.
Definition: DomainPreconditionAtom.cpp:37
DomainPreconditionAtom::set_param_values
void set_param_values(const std::vector< std::string > &param_values)
Set param-values value.
Definition: DomainPreconditionAtom.h:156
DomainPreconditionAtom::addto_param_constants
void addto_param_constants(const std::string &&param_constants)
Add element to param-constants array.
Definition: DomainPreconditionAtom.h:199
DomainPreconditionAtom::set_predicate
void set_predicate(const std::string &predicate)
Set predicate value.
Definition: DomainPreconditionAtom.h:104
DomainPreconditionAtom::api_version
static std::string api_version()
Get version of implemented API.
Definition: DomainPreconditionAtom.h:50
DomainPreconditionAtom::addto_param_names
void addto_param_names(const std::string &&param_names)
Add element to param-names array.
Definition: DomainPreconditionAtom.h:129
DomainPreconditionAtom::param_constants
std::vector< std::string > param_constants() const
Get param-constants value.
Definition: DomainPreconditionAtom.h:182
DomainPreconditionAtom::addto_param_constants
void addto_param_constants(const std::string &param_constants)
Add element to param-constants array.
Definition: DomainPreconditionAtom.h:209
DomainPreconditionAtom::set_param_names
void set_param_names(const std::vector< std::string > &param_names)
Set param-names value.
Definition: DomainPreconditionAtom.h:121
DomainPreconditionAtom::param_names
std::vector< std::string > param_names() const
Get param-names value.
Definition: DomainPreconditionAtom.h:112