Fesapi 2.3.0.0
This project provides C++ classes which allow an easy access in import and export to the Energistics standards.
MacroDefinitions_witsm14.h
1/*-----------------------------------------------------------------------
2Licensed to the Apache Software Foundation (ASF) under one
3or more contributor license agreements. See the NOTICE file
4distributed with this work for additional information
5regarding copyright ownership. The ASF licenses this file
6to you under the Apache License, Version 2.0 (the
7"License"; you may not use this file except in compliance
8with the License. You may obtain a copy of the License at
9
10http://www.apache.org/licenses/LICENSE-2.0
11
12Unless required by applicable law or agreed to in writing,
13software distributed under the License is distributed on an
14"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15KIND, either express or implied. See the License for the
16specific language governing permissions and limitations
17under the License.
18-----------------------------------------------------------------------*/
19#pragma once
20
27#define CHECK_RANGE_1_4(vector, index)\
28 if (static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence == nullptr) { throw invalid_argument("There is no information about the trajectory in this instance"); }\
29 if (index >= static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->vector.size()) { throw std::range_error("The index is out of range"); }
30
37#define CHECK_ATTRIBUTE_EXISTENCE_1_4(className, attributeName)\
38 if (static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence == nullptr || static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->attributeName == nullptr) { throw std::invalid_argument("The attribute does not exist"); }
39
47#define CHECK_ATTRIBUTE_IN_VECTOR_EXISTENCE_1_4(className, vectorName, attributeName) \
48 CHECK_RANGE_1_4(vectorName, index)\
49 if (static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->vectorName[index]->attributeName == nullptr) { throw std::invalid_argument("The attribute in vector does not exist"); }
50
57#define GETTER_PRESENCE_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName) \
58 bool GLUE(,className)::has##fesapiAttributeName() const\
59 { return static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence != nullptr && static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName != nullptr; }
60
61#define GETTER_PRESENCE_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName) bool GLUE(,className)::has##fesapiVectorName##fesapiAttributeName(unsigned int index) const {\
62 CHECK_RANGE_1_4(witsmlVectorName, index)\
63 return static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName != nullptr;\
64}
65
73#define CREATE_ATTRIBUTE_IF_NOT_PRESENT_1_4(attributeName, constructor)\
74 if (static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence == nullptr) { static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence = soap_new___witsml14__obj_USCOREtrajectory_sequence(gsoapProxyTraj1_4->soap); }\
75 if (static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->attributeName == nullptr) { static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->attributeName = constructor(gsoapProxyTraj1_4->soap); }
76
85#define CREATE_ATTRIBUTE_IN_VECTOR_IF_NOT_PRESENT_1_4(vectorName, attributeName, constructor)\
86 CHECK_RANGE_1_4(vectorName, index)\
87 if (static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->vectorName[index]->attributeName == nullptr) { static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->vectorName[index]->attributeName = constructor(gsoapProxyTraj1_4->soap); }
88
97#define GETTER_AND_SETTER_ENUM_ATTRIBUTE_IN_VECTOR_IMPL_1_4(attributeDatatype, attributeDatatype14, className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName, eml2_1ToStr, strToEml2_1, witsml1_4ToStr, strToWitsml1_4)\
98 void GLUE(,className)::set##fesapiVectorName##fesapiAttributeName(unsigned int index, const attributeDatatype & value) {\
99 CHECK_RANGE_1_4(witsmlVectorName, index)\
100 std::string attStr = eml2_1ToStr(gsoapProxyTraj1_4->soap, value);\
101 attributeDatatype14 att1_4;\
102 if (strToWitsml1_4(gsoapProxyTraj1_4->soap, attStr.c_str(), &att1_4) == SOAP_OK) { static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName = att1_4; }\
103 else { throw invalid_argument("The enum " + attStr + " is not recognized."); }\
104 }\
105 attributeDatatype GLUE(,className)::get##fesapiVectorName##fesapiAttributeName(unsigned int index) const {\
106 CHECK_RANGE_1_4(witsmlVectorName, index)\
107 std::string attStr = witsml1_4ToStr(gsoapProxyTraj1_4->soap, static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName);\
108 attributeDatatype att2_1;\
109 if (strToEml2_1(gsoapProxyTraj1_4->soap, attStr.c_str(), &att2_1) == SOAP_OK) { return att2_1; }\
110 else { throw invalid_argument("The enum " + attStr + " is not recognized."); }\
111 }
112
121#define GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE_IMPL_1_4(attributeDatatype, className, fesapiAttributeName, witsmlAttributeName, constructor)\
122 void GLUE(,className)::set##fesapiAttributeName(const attributeDatatype & attributeName) {\
123 CREATE_ATTRIBUTE_IF_NOT_PRESENT_1_4(witsmlAttributeName, constructor)\
124 *static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName = attributeName;\
125 }\
126 GETTER_PRESENCE_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName)\
127 attributeDatatype GLUE(,className)::get##fesapiAttributeName() const {\
128 CHECK_ATTRIBUTE_EXISTENCE_1_4(className, witsmlAttributeName)\
129 return *static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName;\
130 }
131
141#define GETTER_AND_SETTER_GENERIC_OPTIONAL_ATTRIBUTE_IN_VECTOR_IMPL_1_4(attributeDatatype, className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName, constructor)\
142 void GLUE(,className)::set##fesapiVectorName##fesapiAttributeName(unsigned int index, const attributeDatatype & value) {\
143 CREATE_ATTRIBUTE_IN_VECTOR_IF_NOT_PRESENT_1_4(witsmlVectorName, witsmlAttributeName, constructor)\
144 *static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName = value;\
145 }\
146 GETTER_PRESENCE_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName)\
147 attributeDatatype GLUE(,className)::get##fesapiVectorName##fesapiAttributeName(unsigned int index) const {\
148 CHECK_ATTRIBUTE_IN_VECTOR_EXISTENCE_1_4(className, witsmlVectorName, witsmlAttributeName)\
149 return *static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName;\
150 }
151
152#define GETTER_AND_SETTER_ENUM_OPTIONAL_ATTRIBUTE_IMPL_1_4(attributeDatatype, attributeDatatype14, className, fesapiAttributeName, witsmlAttributeName, constructor, eml2_1ToStr, strToEml2_1, witsml1_4ToStr, strToWitsml1_4)\
153 void GLUE(,className)::set##fesapiAttributeName(const attributeDatatype & attributeName) {\
154 CREATE_ATTRIBUTE_IF_NOT_PRESENT_1_4(witsmlAttributeName, constructor)\
155 std::string attStr = eml2_1ToStr(gsoapProxyTraj1_4->soap, attributeName);\
156 attributeDatatype14 att1_4;\
157 if (strToWitsml1_4(gsoapProxyTraj1_4->soap, attStr.c_str(), &att1_4) == SOAP_OK) { *static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName = att1_4; }\
158 else { throw invalid_argument("The enum " + attStr + " is not recognized."); }\
159 }\
160 GETTER_PRESENCE_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName)\
161 attributeDatatype GLUE(,className)::get##fesapiAttributeName() const {\
162 CHECK_ATTRIBUTE_EXISTENCE_1_4(className, witsmlAttributeName)\
163 std::string attStr = witsml1_4ToStr(gsoapProxyTraj1_4->soap, *static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName);\
164 attributeDatatype att2_1;\
165 if (strToEml2_1(gsoapProxyTraj1_4->soap, attStr.c_str(), &att2_1) == SOAP_OK) { return att2_1; }\
166 else { throw invalid_argument("The enum " + attStr + " is not recognized."); }\
167 }
168
169#define GETTER_AND_SETTER_ENUM_OPTIONAL_ATTRIBUTE_IN_VECTOR_IMPL_1_4(attributeDatatype, attributeDatatype14, className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName, constructor, eml2_1ToStr, strToEml2_1, witsml1_4ToStr, strToWitsml1_4)\
170 void GLUE(,className)::set##fesapiVectorName##fesapiAttributeName(unsigned int index, const attributeDatatype & attributeName) {\
171 CREATE_ATTRIBUTE_IN_VECTOR_IF_NOT_PRESENT_1_4(witsmlVectorName, witsmlAttributeName, constructor)\
172 std::string attStr = eml2_1ToStr(gsoapProxyTraj1_4->soap, attributeName);\
173 attributeDatatype14 att1_4;\
174 if (strToWitsml1_4(gsoapProxyTraj1_4->soap, attStr.c_str(), &att1_4) == SOAP_OK) { *static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName = att1_4; }\
175 else { throw invalid_argument("The enum " + attStr + " is not recognized."); }\
176 }\
177 GETTER_PRESENCE_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName)\
178 attributeDatatype GLUE(,className)::get##fesapiVectorName##fesapiAttributeName(unsigned int index) const {\
179 CHECK_ATTRIBUTE_IN_VECTOR_EXISTENCE_1_4(className, witsmlVectorName, witsmlAttributeName)\
180 std::string attStr = witsml1_4ToStr(gsoapProxyTraj1_4->soap, *static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName);\
181 attributeDatatype att2_1;\
182 if (strToEml2_1(gsoapProxyTraj1_4->soap, attStr.c_str(), &att2_1) == SOAP_OK) { return att2_1; }\
183 else { throw invalid_argument("The enum " + attStr + " is not recognized."); }\
184 }
185
192#define GETTER_AND_SETTER_TIME_T_OPTIONAL_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName)\
193 void GLUE(,className)::set##fesapiAttributeName(const time_t & fesapiAttributeName) {\
194 if (static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence == nullptr) { static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence = soap_new___witsml14__obj_USCOREtrajectory_sequence(gsoapProxyTraj1_4->soap); }\
195 if (static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName == nullptr) { static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName = (tm*)soap_malloc(gsoapProxyTraj1_4->soap, sizeof(tm)); }\
196 *static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName = timeTools::to_calendar_time(std::chrono::system_clock::from_time_t(fesapiAttributeName));\
197 }\
198 GETTER_PRESENCE_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName)\
199 time_t GLUE(,className)::get##fesapiAttributeName() const {\
200 CHECK_ATTRIBUTE_EXISTENCE_1_4(className, witsmlAttributeName)\
201 return timeTools::timegm(*static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName);\
202 }
203
210#define GETTER_VALUE_OF_MEASURE_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName)\
211 double GLUE(,className)::get##fesapiAttributeName##Value() const {\
212 if (!has##fesapiAttributeName()) { throw invalid_argument("The measure attribute to get does not exist."); }\
213 return static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName->__item;\
214 }
215
223#define GETTER_VALUE_OF_MEASURE_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName)\
224 double GLUE(,className)::get##fesapiVectorName##fesapiAttributeName##Value(unsigned int index) const {\
225 CHECK_RANGE_1_4(witsmlVectorName, index)\
226 return static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName->__item;\
227 }
228
236#define GETTER_UOM_OF_MEASURE_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName, uomDatatype, uom1_4ToStr, strToUom2_1)\
237 uomDatatype GLUE(, className)::get##fesapiAttributeName##Uom() const {\
238 if (!has##fesapiAttributeName()) { throw invalid_argument("The measure attribute to get does not exist."); }\
239 std::string uomStr = uom1_4ToStr(gsoapProxyTraj1_4->soap, static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName->uom);\
240 uomDatatype result;\
241 if (strToUom2_1(gsoapProxyTraj1_4->soap, uomStr.c_str(), &result) == SOAP_OK) { return result; }\
242 else { throw invalid_argument("The uom " + uomStr + " is not recognized."); }\
243 }
244
253#define GETTER_UOM_OF_MEASURE_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName, uomDatatype, uom1_4ToStr, strToUom2_1)\
254 uomDatatype GLUE(,className)::get##fesapiVectorName##fesapiAttributeName##Uom(unsigned int index) const {\
255 CHECK_RANGE_1_4(witsmlVectorName, index)\
256 std::string uomStr = uom1_4ToStr(gsoapProxyTraj1_4->soap, static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName->uom);\
257 uomDatatype result;\
258 if (strToUom2_1(gsoapProxyTraj1_4->soap, uomStr.c_str(), &result) == SOAP_OK) { return result; }\
259 else { throw invalid_argument("The uom " + uomStr + " is not recognized."); }\
260 }
261
269#define GETTER_UOM_OF_MEASURE_AS_STRING_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName, uomDatatypeStringConversion)\
270 std::string GLUE(, className)::get##fesapiAttributeName##UomAsString() const {\
271 return uomDatatypeStringConversion(gsoapProxyTraj1_4->soap, get##fesapiAttributeName##Uom());\
272 }
273
282#define GETTER_AND_SETTER_MEASURE_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName, uomDatatype, uomDatatype14, constructor, eml2_1ToStr, strToEml2_1, witsml1_4ToStr, strToWitsml1_4)\
283 void GLUE(,className)::set##fesapiAttributeName(double value, uomDatatype uom) {\
284 if (value != value) { throw invalid_argument("You cannot set an undefined measure"); }\
285 CREATE_ATTRIBUTE_IF_NOT_PRESENT_1_4(witsmlAttributeName, constructor)\
286 static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName->__item = value;\
287 std::string uomStr = eml2_1ToStr(gsoapProxyTraj1_4->soap, uom);\
288 uomDatatype14 uom1_4;\
289 if (strToWitsml1_4(gsoapProxyTraj1_4->soap, uomStr.c_str(), &uom1_4) == SOAP_OK) { static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName->uom = uom1_4; }\
290 else { throw invalid_argument("The depth uom " + uomStr + " is not recognized."); }\
291 }\
292 GETTER_VALUE_OF_MEASURE_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName)\
293 GETTER_UOM_OF_MEASURE_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName, uomDatatype, witsml1_4ToStr, strToEml2_1)\
294 GETTER_UOM_OF_MEASURE_AS_STRING_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName, eml2_1ToStr)
295
305#define GETTER_AND_SETTER_MEASURE_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName, uomDatatype, uomDatatype14, constructor, eml2_1ToStr, strToEml2_1, witsml1_4ToStr, strToWitsml1_4)\
306 void GLUE(,className)::set##fesapiVectorName##fesapiAttributeName(unsigned int index, double value, uomDatatype uom) {\
307 if (value != value) { throw invalid_argument("You cannot set an undefined measured depth coord"); }\
308 CREATE_ATTRIBUTE_IN_VECTOR_IF_NOT_PRESENT_1_4(witsmlVectorName, witsmlAttributeName, constructor)\
309 static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName->__item = value;\
310 std::string uomStr = eml2_1ToStr(gsoapProxyTraj1_4->soap, uom);\
311 uomDatatype14 uom1_4;\
312 if (strToWitsml1_4(gsoapProxyTraj1_4->soap, uomStr.c_str(), &uom1_4) == SOAP_OK) { static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName->uom = uom1_4; }\
313 else { throw invalid_argument("The depth uom " + uomStr + " is not recognized."); }\
314 }\
315 GETTER_VALUE_OF_MEASURE_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName)\
316 GETTER_UOM_OF_MEASURE_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName, uomDatatype, witsml1_4ToStr, strToEml2_1)
317
326#define GETTER_AND_SETTER_DEPTH_MEASURE_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName, uomDatatype, constructor)\
327 void GLUE(,className)::set##fesapiAttributeName(double value, uomDatatype uom, const std::string & datum) {\
328 if (value != value) { throw invalid_argument("You cannot set an undefined depth measure"); }\
329 CREATE_ATTRIBUTE_IF_NOT_PRESENT_1_4(witsmlAttributeName, constructor)\
330 static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName->__item = value;\
331 std::string uomStr = gsoap_eml2_1::soap_eml21__LengthUom2s(gsoapProxyTraj1_4->soap, uom);\
332 witsml14__MeasuredDepthUom uom1_4;\
333 if (soap_s2witsml14__MeasuredDepthUom(gsoapProxyTraj1_4->soap, uomStr.c_str(), &uom1_4) == SOAP_OK) { static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName->uom = uom1_4; }\
334 else { throw invalid_argument("The depth uom " + uomStr + " is not recognized."); }\
335 if (!datum.empty()) {\
336 static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName->datum = soap_new_std__string(gsoapProxyTraj1_4->soap);\
337 static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName->datum->assign(datum);\
338 }\
339 }\
340 GETTER_VALUE_OF_MEASURE_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName)\
341 GETTER_UOM_OF_MEASURE_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName, uomDatatype, soap_witsml14__MeasuredDepthUom2s, gsoap_eml2_1::soap_s2eml21__LengthUom)\
342 std::string GLUE(, className)::get##fesapiAttributeName##Datum() const {\
343 if (!has##fesapiAttributeName()) { throw invalid_argument("The measure attribute to get does not exist."); }\
344 if (static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName->datum == nullptr) return "";\
345 return *static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlAttributeName->datum;\
346 }
347
357#define GETTER_AND_SETTER_DEPTH_MEASURE_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName, uomDatatype, constructor)\
358 void GLUE(,className)::set##fesapiVectorName##fesapiAttributeName(unsigned int index, double value, uomDatatype uom, const std::string & datum) {\
359 if (value != value) { throw invalid_argument("You cannot set an undefined measured depth coord"); }\
360 CREATE_ATTRIBUTE_IN_VECTOR_IF_NOT_PRESENT_1_4(witsmlVectorName, witsmlAttributeName, constructor)\
361 static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName->__item = value;\
362 std::string uomStr = gsoap_eml2_1::soap_eml21__LengthUom2s(gsoapProxyTraj1_4->soap, uom);\
363 witsml14__MeasuredDepthUom uom1_4;\
364 if (soap_s2witsml14__MeasuredDepthUom(gsoapProxyTraj1_4->soap, uomStr.c_str(), &uom1_4) == SOAP_OK) { static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName->uom = uom1_4; }\
365 else { throw invalid_argument("The depth uom " + uomStr + " is not recognized."); }\
366 if (!datum.empty()) {\
367 static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName->datum = soap_new_std__string(gsoapProxyTraj1_4->soap);\
368 static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName->datum->assign(datum);\
369 }\
370 }\
371 GETTER_VALUE_OF_MEASURE_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName)\
372 GETTER_UOM_OF_MEASURE_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName, uomDatatype, soap_witsml14__MeasuredDepthUom2s, gsoap_eml2_1::soap_s2eml21__LengthUom)\
373 std::string GLUE(, className)::get##fesapiVectorName##fesapiAttributeName##Datum(unsigned int index) const {\
374 CHECK_RANGE_1_4(witsmlVectorName, index)\
375 if (static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName->datum == nullptr) return "";\
376 return *static_cast<witsml14__obj_USCOREtrajectory*>(gsoapProxyTraj1_4)->__obj_USCOREtrajectory_sequence->witsmlVectorName[index]->witsmlAttributeName->datum;\
377 }
378
387#define GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName, uomDatatype, uomDatatype14, constructor, eml2_1ToStr, strToEml2_1, witsml1_4ToStr, strToWitsml1_4)\
388 GETTER_AND_SETTER_MEASURE_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName, uomDatatype, uomDatatype14, constructor, eml2_1ToStr, strToEml2_1, witsml1_4ToStr, strToWitsml1_4)\
389 GETTER_PRESENCE_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName)
390
400#define GETTER_AND_SETTER_MEASURE_OPTIONAL_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName, uomDatatype, uomDatatype14, constructor, eml2_1ToStr, strToEml2_1, witsml1_4ToStr, strToWitsml1_4)\
401 GETTER_AND_SETTER_MEASURE_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName, uomDatatype, uomDatatype14, constructor, eml2_1ToStr, strToEml2_1, witsml1_4ToStr, strToWitsml1_4)\
402 GETTER_PRESENCE_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName)
403
412#define GETTER_AND_SETTER_DEPTH_MEASURE_OPTIONAL_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName, uomDatatype, constructor)\
413 GETTER_AND_SETTER_DEPTH_MEASURE_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName, uomDatatype, constructor)\
414 GETTER_PRESENCE_ATTRIBUTE_IMPL_1_4(className, fesapiAttributeName, witsmlAttributeName)
415
426#define GETTER_AND_SETTER_DEPTH_MEASURE_OPTIONAL_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName, uomDatatype, constructor)\
427 GETTER_AND_SETTER_DEPTH_MEASURE_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName, uomDatatype, constructor)\
428 GETTER_PRESENCE_ATTRIBUTE_IN_VECTOR_IMPL_1_4(className, fesapiVectorName, witsmlVectorName, fesapiAttributeName, witsmlAttributeName)