Fawkes API  Fawkes Development Version
DomainPreconditionCompound.h
1 
2 /****************************************************************************
3  * ClipsExecutive -- Schema DomainPreconditionCompound
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 /** DomainPreconditionCompound representation for JSON transfer. */
29 
30 {
31 public:
32  /** Constructor. */
34  /** Constructor from JSON.
35  * @param json JSON string to initialize from
36  */
37  DomainPreconditionCompound(const std::string &json);
38  /** Constructor from JSON.
39  * @param v RapidJSON value object to initialize from.
40  */
41  DomainPreconditionCompound(const rapidjson::Value &v);
42 
43  /** Destructor. */
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: DomainPreconditionCompound[2]
90 public:
91  /** Get elements value.
92  * @return elements value
93  */
94  std::vector<std::shared_ptr<DomainPrecondition>>
95  elements() const
96  {
97  return elements_;
98  }
99 
100  /** Set elements value.
101  * @param elements new value
102  */
103  void
104  set_elements(const std::vector<std::shared_ptr<DomainPrecondition>> &elements)
105  {
106  elements_ = elements;
107  }
108  /** Add element to elements array.
109  * @param elements new value
110  */
111  void
112  addto_elements(const std::shared_ptr<DomainPrecondition> &&elements)
113  {
114  elements_.push_back(std::move(elements));
115  }
116 
117  /** Add element to elements array.
118  * The move-semantics version (std::move) should be preferred.
119  * @param elements new value
120  */
121  void
122  addto_elements(const std::shared_ptr<DomainPrecondition> &elements)
123  {
124  elements_.push_back(elements);
125  }
126  /** Add element to elements array.
127  * @param elements new value
128  */
129  void
131  {
132  elements_.push_back(std::make_shared<DomainPrecondition>(std::move(elements)));
133  }
134 
135 private:
136  std::vector<std::shared_ptr<DomainPrecondition>> elements_;
137 };
DomainPreconditionCompound
DomainPreconditionCompound representation for JSON transfer.
Definition: DomainPreconditionCompound.h:28
DomainPreconditionCompound::addto_elements
void addto_elements(const std::shared_ptr< DomainPrecondition > &elements)
Add element to elements array.
Definition: DomainPreconditionCompound.h:122
DomainPreconditionCompound::~DomainPreconditionCompound
virtual ~DomainPreconditionCompound()
Destructor.
Definition: DomainPreconditionCompound.cpp:37
DomainPrecondition
DomainPrecondition representation for JSON transfer.
Definition: DomainPrecondition.h:26
DomainPreconditionCompound::addto_elements
void addto_elements(const std::shared_ptr< DomainPrecondition > &&elements)
Add element to elements array.
Definition: DomainPreconditionCompound.h:112
DomainPreconditionCompound::from_json
virtual void from_json(const std::string &json)
Retrieve data from JSON string.
Definition: DomainPreconditionCompound.cpp:80
DomainPreconditionCompound::validate
virtual void validate(bool subcall=false) const
Validate if all required fields have been set.
Definition: DomainPreconditionCompound.cpp:106
DomainPreconditionCompound::api_version
static std::string api_version()
Get version of implemented API.
Definition: DomainPreconditionCompound.h:50
DomainPreconditionCompound::set_elements
void set_elements(const std::vector< std::shared_ptr< DomainPrecondition >> &elements)
Set elements value.
Definition: DomainPreconditionCompound.h:104
DomainPreconditionCompound::from_json_value
virtual void from_json_value(const rapidjson::Value &v)
Retrieve data from JSON string.
Definition: DomainPreconditionCompound.cpp:89
DomainPreconditionCompound::to_json_value
virtual void to_json_value(rapidjson::Document &d, rapidjson::Value &v) const
Render object to JSON.
Definition: DomainPreconditionCompound.cpp:61
DomainPreconditionCompound::elements
std::vector< std::shared_ptr< DomainPrecondition > > elements() const
Get elements value.
Definition: DomainPreconditionCompound.h:95
DomainPreconditionCompound::addto_elements
void addto_elements(const DomainPrecondition &&elements)
Add element to elements array.
Definition: DomainPreconditionCompound.h:130
DomainPreconditionCompound::to_json
virtual std::string to_json(bool pretty=false) const
Render object to JSON.
Definition: DomainPreconditionCompound.cpp:42
DomainPreconditionCompound::DomainPreconditionCompound
DomainPreconditionCompound()
Constructor.
Definition: DomainPreconditionCompound.cpp:23