41 #ifndef __OPENFLUID_WARESDEV_WARECPPWRITERHELPERS_HPP__
42 #define __OPENFLUID_WARESDEV_WARECPPWRITERHELPERS_HPP__
50 #include <openfluid/ware/TypeDefs.hpp>
55 namespace openfluid {
namespace waresdev {
60 static std::string
getHead(
const std::string CommentChar)
63 CommentChar +
" ======\n" +
64 CommentChar +
" AUTOMATICALLY GENERATED FILE. DO NOT EDIT MANUALLY\n" +
65 CommentChar +
" ======\n\n";
75 static std::string
getCPPHead(
const std::string& WareIncludeStr,
const std::string& WareTypeStr)
77 std::string Head =
getHead(
"//");
80 "#include <"+WareIncludeStr+
">\n\n"
84 +WareTypeStr+
"* Signature = new "+WareTypeStr+
"();\n\n";
106 std::string Str =
"openfluid::core::DateTime(";
108 Str += std::to_string(DT.
getYear())+
",";
109 Str += std::to_string(DT.
getMonth())+
",";
110 Str += std::to_string(DT.
getDay())+
",";
111 Str += std::to_string(DT.
getHour())+
",";
112 Str += std::to_string(DT.
getMinute())+
",";
113 Str += std::to_string(DT.
getSecond())+
")";
123 static std::string
getCPPVectorString(
const std::vector<std::string>& StrVect,
bool AutoQuote =
false)
129 for (
const auto& S : StrVect)
157 return "Signature->"+Member;
165 static std::string
getCPPAssignment(
const std::string& Member,
const std::string& Value,
bool AutoQuote =
false)
167 std::string QuotedVal(Value);
182 static std::string
getCPPMethod(
const std::string& Member,
const std::string& Method,
183 const std::vector<std::string>& Args,
const std::string& Access =
".")
186 bool FirstArg =
true;
188 for (
const auto& A : Args)
202 return getCPPEntry(Member)+Access+Method+
"("+ArgsStr+
");\n";
216 "return new std::string(\""+LinkUID+
"\");\n"
228 const std::string Member,
const std::vector<openfluid::ware::SignatureSpatialDataItem>& Data)
232 for (
const auto& D : Data)
251 return "\nreturn Signature;\n}\n}\n";
264 return "openfluid::core::Value::NONE";
266 return "openfluid::core::Value::DOUBLE";
268 return "openfluid::core::Value::INTEGER";
270 return "openfluid::core::Value::BOOLEAN";
272 return "openfluid::core::Value::VECTOR";
274 return "openfluid::core::Value::MATRIX";
276 return "openfluid::core::Value::MAP";
278 return "openfluid::core::Value::TREE";
280 return "openfluid::core::Value::STRING";
282 return "openfluid::core::Value::NULLL";
294 const std::vector<openfluid::ware::SignatureDataItem>& Data)
298 for (
const auto& D : Data)
339 Data.
Name = Item.value(
"name",
"");
347 Data.
SIUnit = Item.value(
"siunit",
"");
368 Json[
"name"] = Item.
Name;
370 Json[
"siunit"] = Item.
SIUnit;
381 std::vector<openfluid::ware::SignatureDataItem>
384 std::vector<openfluid::ware::SignatureDataItem> List;
388 for (
const auto& I : Json)
406 auto JsonReq = openfluid::thirdparty::json::array();
411 Json[
"required"] = JsonReq;
413 auto JsonUs = openfluid::thirdparty::json::array();
418 Json[
"used"] = JsonUs;
433 Json[
"name"] = Item.
Name;
436 Json[
"siunit"] = Item.
SIUnit;
452 auto JsonReq = openfluid::thirdparty::json::array();
457 Json[
"required"] = JsonReq;
459 auto JsonUs = openfluid::thirdparty::json::array();
464 Json[
"used"] = JsonUs;
479 auto JsonReq = openfluid::thirdparty::json::array();
484 Json[
"required"] = JsonReq;
486 auto JsonUs = openfluid::thirdparty::json::array();
487 for (
const auto& V : HandledData.
UsedVars)
491 Json[
"used"] = JsonUs;
538 if (Json.contains(
"used"))
543 if (Json.contains(
"required"))
558 Data.
Name = Item.value(
"name",
"");
564 Data.
UnitsClass = Item.value(
"unitsclass",
"");
571 Data.
SIUnit = Item.value(
"siunit",
"");
588 static std::vector<openfluid::ware::SignatureSpatialDataItem>
591 std::vector<openfluid::ware::SignatureSpatialDataItem> List;
595 for (
const auto& I : Json)
613 if (Json.contains(
"used"))
618 if (Json.contains(
"required"))
632 if (Json.contains(
"used"))
637 if (Json.contains(
"required"))
651 if (Json.contains(
"used"))
656 if (Json.contains(
"required"))
#define WARELINKUID_PROC_NAME
Definition: PluggableWare.hpp:75
#define WARESIGNATURE_PROC_NAME
Definition: PluggableWare.hpp:62
Definition: FrameworkException.hpp:51
Class for management of date and time information.
Definition: DateTime.hpp:88
int getYear() const
Definition: DateTime.hpp:211
int getSecond() const
Definition: DateTime.hpp:256
int getHour() const
Definition: DateTime.hpp:238
int getDay() const
Definition: DateTime.hpp:229
int getMonth() const
Definition: DateTime.hpp:220
int getMinute() const
Definition: DateTime.hpp:247
static bool getValueTypeFromString(const std::string &ValueTypeString, Value::Type &ValueType)
Type
Definition: Value.hpp:66
@ VECTOR
Definition: Value.hpp:66
@ NONE
Definition: Value.hpp:66
@ TREE
Definition: Value.hpp:66
@ STRING
Definition: Value.hpp:66
@ MAP
Definition: Value.hpp:66
@ MATRIX
Definition: Value.hpp:66
@ DOUBLE
Definition: Value.hpp:66
@ NULLL
Definition: Value.hpp:66
@ BOOLEAN
Definition: Value.hpp:66
@ INTEGER
Definition: Value.hpp:66
static std::string getStringFromValueType(const Value::Type ValueType)
Definition: WareSignature.hpp:331
SignatureHandledData HandledData
Definition: WareSignature.hpp:336
Definition: WareSignature.hpp:233
openfluid::core::Value::Type DataType
Definition: WareSignature.hpp:239
std::string SIUnit
Definition: WareSignature.hpp:238
std::string Name
Definition: WareSignature.hpp:236
std::string Description
Definition: WareSignature.hpp:237
Definition: WareSignature.hpp:287
std::vector< SignatureDataItem > UsedParams
Definition: WareSignature.hpp:290
std::vector< SignatureSpatialDataItem > UsedVars
Definition: WareSignature.hpp:296
std::vector< std::string > RequiredExtraFiles
Definition: WareSignature.hpp:302
std::vector< std::string > UsedExtraFiles
Definition: WareSignature.hpp:304
std::vector< SignatureSpatialDataItem > RequiredAttributes
Definition: WareSignature.hpp:298
std::vector< SignatureSpatialDataItem > RequiredVars
Definition: WareSignature.hpp:294
std::vector< SignatureSpatialDataItem > UsedAttributes
Definition: WareSignature.hpp:300
std::vector< SignatureDataItem > RequiredParams
Definition: WareSignature.hpp:292
Definition: WareSignature.hpp:259
openfluid::core::UnitsClass_t UnitsClass
Definition: WareSignature.hpp:262
nlohmann::ordered_json json
Definition: JSON.hpp:52
Definition: ApplicationException.hpp:47
Definition: WareCppWriterHelpers.hpp:58
static std::string getCPPTail()
Definition: WareCppWriterHelpers.hpp:249
static std::string getHead(const std::string CommentChar)
Definition: WareCppWriterHelpers.hpp:60
static std::string getCPPEntry(const std::string &Member)
Definition: WareCppWriterHelpers.hpp:155
static std::string getCPPVectorString(const std::vector< std::string > &StrVect, bool AutoQuote=false)
Definition: WareCppWriterHelpers.hpp:123
static std::string getCPPDateTimeString(const openfluid::core::DateTime &DT)
Definition: WareCppWriterHelpers.hpp:104
static std::string getQuotedString(const std::string &Str)
Definition: WareCppWriterHelpers.hpp:94
static std::string getCPPHead(const std::string &WareIncludeStr, const std::string &WareTypeStr)
Definition: WareCppWriterHelpers.hpp:75
static std::string getCPPLinkUIDProc(const std::string LinkUID)
Definition: WareCppWriterHelpers.hpp:210
static std::string getCPPAssignment(const std::string &Member, const std::string &Value, bool AutoQuote=false)
Definition: WareCppWriterHelpers.hpp:165
static std::string getCPPSpatialDataString(const std::string Member, const std::vector< openfluid::ware::SignatureSpatialDataItem > &Data)
Definition: WareCppWriterHelpers.hpp:227
static std::string getCPPDataString(const std::string Member, const std::vector< openfluid::ware::SignatureDataItem > &Data)
Definition: WareCppWriterHelpers.hpp:293
static std::string toWareCPPParams(const openfluid::ware::SignatureHandledData &HandledData)
Definition: WareCppWriterHelpers.hpp:315
static std::string getCPPValueType(const openfluid::core::Value::Type ValueType)
Definition: WareCppWriterHelpers.hpp:259
static std::string getCPPMethod(const std::string &Member, const std::string &Method, const std::vector< std::string > &Args, const std::string &Access=".")
Definition: WareCppWriterHelpers.hpp:182
Definition: WareCppWriterHelpers.hpp:333
static openfluid::thirdparty::json serializeAttributesToJSON(const openfluid::ware::SignatureHandledData &HandledData)
Definition: WareCppWriterHelpers.hpp:448
static void unserializeReadVariablesFromJSON(const openfluid::thirdparty::json &Json, openfluid::ware::DataWareSignature &Sign)
Definition: WareCppWriterHelpers.hpp:629
static openfluid::thirdparty::json serializeDataItemToJSON(const openfluid::ware::SignatureDataItem &Item)
Definition: WareCppWriterHelpers.hpp:364
static openfluid::thirdparty::json serializeSpatialDataItemToJSON(const openfluid::ware::SignatureSpatialDataItem &Item)
Definition: WareCppWriterHelpers.hpp:428
static openfluid::thirdparty::json serializeDataToJSON(const openfluid::ware::SignatureHandledData &HandledData)
Definition: WareCppWriterHelpers.hpp:517
static openfluid::thirdparty::json serializeExtrafilesToJSON(const openfluid::ware::SignatureHandledData &HandledData)
Definition: WareCppWriterHelpers.hpp:502
static openfluid::thirdparty::json serializeVariablesToJSON(const openfluid::ware::SignatureHandledData &HandledData)
Definition: WareCppWriterHelpers.hpp:475
static void unserializeParametersFromJSON(const openfluid::thirdparty::json &Json, openfluid::ware::SignatureHandledData &HandledData)
Definition: WareCppWriterHelpers.hpp:535
static void unserializeExtrafilesFromJSON(const openfluid::thirdparty::json &Json, openfluid::ware::DataWareSignature &Sign)
Definition: WareCppWriterHelpers.hpp:648
static openfluid::ware::SignatureDataItem readDataItemFromJSON(const openfluid::thirdparty::json &Item)
Definition: WareCppWriterHelpers.hpp:335
static void unserializeReadAttributesFromJSON(const openfluid::thirdparty::json &Json, openfluid::ware::DataWareSignature &Sign)
Definition: WareCppWriterHelpers.hpp:609
static openfluid::thirdparty::json serializeParametersToJSON(const openfluid::ware::SignatureHandledData &HandledData)
Definition: WareCppWriterHelpers.hpp:402
static std::vector< openfluid::ware::SignatureDataItem > readDataListFromJSON(const openfluid::thirdparty::json &Json)
Definition: WareCppWriterHelpers.hpp:382
static std::vector< openfluid::ware::SignatureSpatialDataItem > readSpatialDataListFromJSON(const openfluid::thirdparty::json &Json)
Definition: WareCppWriterHelpers.hpp:589
static openfluid::ware::SignatureSpatialDataItem readSpatialDataItemFromJSON(const openfluid::thirdparty::json &Item)
Definition: WareCppWriterHelpers.hpp:554