Fawkes API Fawkes Development Version
InterfaceFieldType.h
1
2/****************************************************************************
3 * Blackboard -- Schema InterfaceFieldType
4 * (auto-generated, do not modify directly)
5 *
6 * Fawkes Blackboard REST API.
7 * Access blackboard data through a REST API.
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 <rapidjson/fwd.h>
18
19#include <cstdint>
20#include <memory>
21#include <optional>
22#include <string>
23#include <vector>
24
25/** InterfaceFieldType representation for JSON transfer. */
27
28{
29public:
30 /** Constructor. */
32 /** Constructor from JSON.
33 * @param json JSON string to initialize from
34 */
35 InterfaceFieldType(const std::string &json);
36 /** Constructor from JSON.
37 * @param v RapidJSON value object to initialize from.
38 */
39 InterfaceFieldType(const rapidjson::Value &v);
40
41 /** Destructor. */
42 virtual ~InterfaceFieldType();
43
44 /** Get version of implemented API.
45 * @return string representation of version
46 */
47 static std::string
49 {
50 return "v1beta1";
51 }
52
53 /** Render object to JSON.
54 * @param pretty true to enable pretty printing (readable spacing)
55 * @return JSON string
56 */
57 virtual std::string to_json(bool pretty = false) const;
58 /** Render object to JSON.
59 * @param d RapidJSON document to retrieve allocator from
60 * @param v RapidJSON value to add data to
61 */
62 virtual void to_json_value(rapidjson::Document &d, rapidjson::Value &v) const;
63 /** Retrieve data from JSON string.
64 * @param json JSON representation suitable for this object.
65 * Will allow partial assignment and not validate automaticaly.
66 * @see validate()
67 */
68 virtual void from_json(const std::string &json);
69 /** Retrieve data from JSON string.
70 * @param v RapidJSON value suitable for this object.
71 * Will allow partial assignment and not validate automaticaly.
72 * @see validate()
73 */
74 virtual void from_json_value(const rapidjson::Value &v);
75
76 /** Validate if all required fields have been set.
77 * @param subcall true if this is called from another class, e.g.,
78 * a sub-class or array holder. Will modify the kind of exception thrown.
79 * @exception std::vector<std::string> thrown if required information is
80 * missing and @p subcall is set to true. Contains a list of missing fields.
81 * @exception std::runtime_error informative message describing the missing
82 * fields
83 */
84 virtual void validate(bool subcall = false) const;
85
86 // Schema: InterfaceFieldType
87public:
88 /** Get name value.
89 * @return name value
90 */
91 std::optional<std::string>
92 name() const
93 {
94 return name_;
95 }
96
97 /** Set name value.
98 * @param name new value
99 */
100 void
101 set_name(const std::string &name)
102 {
103 name_ = name;
104 }
105 /** Get type value.
106 * @return type value
107 */
108 std::optional<std::string>
109 type() const
110 {
111 return type_;
112 }
113
114 /** Set type value.
115 * @param type new value
116 */
117 void
118 set_type(const std::string &type)
119 {
120 type_ = type;
121 }
122 /** Get is_array value.
123 * @return is_array value
124 */
125 std::optional<bool>
126 is_array() const
127 {
128 return is_array_;
129 }
130
131 /** Set is_array value.
132 * @param is_array new value
133 */
134 void
136 {
137 is_array_ = is_array;
138 }
139 /** possible enum values for this field
140 * @return enums value
141 */
142 std::vector<std::string>
143 enums() const
144 {
145 return enums_;
146 }
147
148 /** Set enums value.
149 * @param enums new value
150 */
151 void
152 set_enums(const std::vector<std::string> &enums)
153 {
154 enums_ = enums;
155 }
156 /** Add element to enums array.
157 * @param enums new value
158 */
159 void
160 addto_enums(const std::string &&enums)
161 {
162 enums_.push_back(std::move(enums));
163 }
164
165 /** Add element to enums array.
166 * The move-semantics version (std::move) should be preferred.
167 * @param enums new value
168 */
169 void
170 addto_enums(const std::string &enums)
171 {
172 enums_.push_back(enums);
173 }
174
175private:
176 std::optional<std::string> name_;
177 std::optional<std::string> type_;
178 std::optional<bool> is_array_;
179 std::vector<std::string> enums_;
180};
InterfaceFieldType representation for JSON transfer.
virtual void from_json_value(const rapidjson::Value &v)
Retrieve data from JSON string.
InterfaceFieldType()
Constructor.
std::vector< std::string > enums() const
possible enum values for this field
std::optional< std::string > name() const
Get name value.
virtual void validate(bool subcall=false) const
Validate if all required fields have been set.
virtual std::string to_json(bool pretty=false) const
Render object to JSON.
virtual ~InterfaceFieldType()
Destructor.
virtual void to_json_value(rapidjson::Document &d, rapidjson::Value &v) const
Render object to JSON.
static std::string api_version()
Get version of implemented API.
void addto_enums(const std::string &enums)
Add element to enums array.
void set_is_array(const bool &is_array)
Set is_array value.
void set_enums(const std::vector< std::string > &enums)
Set enums value.
void addto_enums(const std::string &&enums)
Add element to enums array.
void set_name(const std::string &name)
Set name value.
virtual void from_json(const std::string &json)
Retrieve data from JSON string.
void set_type(const std::string &type)
Set type value.
std::optional< bool > is_array() const
Get is_array value.
std::optional< std::string > type() const
Get type value.