6#include <imtsdl/imtsdl.h>
7#include <imtsdl/ISdlTypeListProvider.h>
8#include <imtsdl/ISdlEnumListProvider.h>
9#include <imtsdl/ISdlUnionListProvider.h>
10#include <imtsdl/CSdlTools.h>
11#include <imtsdl/CSdlField.h>
12#include <imtsdl/CSdlDocumentType.h>
25class ISdlProcessArgumentsParser;
36 class CStructNamespaceConverter
39 CStructNamespaceConverter();
40 CStructNamespaceConverter(
const imtsdl::CSdlEntryBase& sdlEntry,
const QString& relatedNamespace,
const imtsdl::ISdlTypeListProvider& listProvider,
const imtsdl::ISdlEnumListProvider& enumListProvider,
const imtsdl::ISdlUnionListProvider& unionListProvider,
bool listWrap);
41 CStructNamespaceConverter(
const imtsdl::CSdlField& sdlField,
const QString& relatedNamespace,
const imtsdl::ISdlTypeListProvider& listProvider,
const imtsdl::ISdlEnumListProvider& enumListProvider,
const imtsdl::ISdlUnionListProvider& unionListProvider,
bool listWrap);
43 const imtsdl::ISdlTypeListProvider* typeListProviderPtr =
nullptr;
44 const imtsdl::ISdlEnumListProvider* enumListProviderPtr =
nullptr;
45 const imtsdl::ISdlUnionListProvider* unionListProviderPtr =
nullptr;
46 QString relatedNamespace;
47 bool listWrap =
false;
48 bool addVersion =
false;
49 bool cleanNamespace =
true;
50 const imtsdl::CSdlField* sdlFieldPtr =
nullptr;
51 const imtsdl::CSdlEntryBase* sdlEntryPtr =
nullptr;
52 [[nodiscard]] QString GetString()
const;
59 [[nodiscard]]
static QString GetNamespaceFromSchemaParams(
const iprm::IParamsSet& schemaParams,
const QString& prefix =
"sdl");
64 [[nodiscard]]
static QString GetNamespaceFromTypeSchemaParams(
const imtsdl::CSdlType& type,
const QString& prefix =
"sdl");
66 [[nodiscard]]
static QString GetSchemaVerstionString(
const iprm::IParamsSet& schemaParams,
bool addVPrefix =
true);
67 [[nodiscard]]
static QString OptListConvertTypeWithNamespaceStruct(
68 const imtsdl::CSdlField& sdlField,
69 const QString& relatedNamespace,
70 const imtsdl::ISdlTypeListProvider& listProvider,
71 const imtsdl::ISdlEnumListProvider& enumlistProvider,
72 const imtsdl::ISdlUnionListProvider& unionlistProvider,
73 bool listWrap =
false,
74 bool* isCustomPtr =
nullptr,
75 bool* isComplexPtr =
nullptr,
76 bool* isArrayPtr =
nullptr,
77 bool* isEnumPtr =
nullptr,
78 bool* isUnionPtr =
nullptr,
79 const bool& addVersion =
true);
87 [[nodiscard]]
static QString GetNullCheckString(
const imtsdl::CSdlField& sdlField,
bool checkNull =
true,
const QString& objectName = QString());
89 [[nodiscard]]
static QString GetSettingValueString(
90 const imtsdl::CSdlField& sdlField,
91 const QString& relatedNamespace,
92 const imtsdl::ISdlTypeListProvider& listProvider,
93 const QString& variableName,
94 const QString& objectName = QString());
96 static void AddArrayInternalChecksFail(QTextStream& stream,
const imtsdl::CSdlField& field,
bool checkEmpty,
const QString& objectName = QString(), uint hIndents = 1);
103 static void AddErrorReport(QTextStream& stream,
const QString& errorMessage, uint hIndents = 0,
const QStringList& argset = QStringList(),
bool onlyDebug =
true);
105 template <
class SdlEntryClass>
106 [[nodiscard]]
static QString GetSdlEntryVersion(
const SdlEntryClass& entry,
bool addVPrefix =
true);
108 [[nodiscard]]
static QString GetTempVariableWrappedValue(
const imtsdl::CSdlField& sdlField);
110 static void GenerateIsRequestSupportedMethodImpl(
112 const imtsdl::SdlRequestList& requestList,
113 const QString& className);
115 [[nodiscard]]
static QString GetQObjectTypeName(
116 const imtsdl::CSdlField& sdlField,
117 const imtsdl::SdlTypeList& typeList,
118 const imtsdl::SdlEnumList& enumList,
119 const imtsdl::SdlUnionList& unionList,
120 bool withPointer =
true,
121 bool treatArrayAsElement =
false);
123 [[nodiscard]]
static QString GetTempVariableWrappedValue(
const QString& variableName);
125 [[nodiscard]]
static std::shared_ptr<imtsdl::CSdlEntryBase> GetCollectionReferenceForDocument(
126 const imtsdl::CSdlDocumentType& documentType,
127 const imtsdl::SdlTypeList& typeList,
128 const imtsdl::SdlUnionList& unionList,
129 imtsdl::CSdlDocumentType::OperationType operationType);
131 [[nodiscard]]
static QString GetCollectionReferenceName(
132 const imtsdl::CSdlDocumentType& documentType,
133 const imtsdl::SdlTypeList& typeList,
134 const imtsdl::SdlUnionList& unionList,
135 imtsdl::CSdlDocumentType::OperationType operationType);
141template<
class SdlEntryClass>
142inline QString CSdlGenTools::GetSdlEntryVersion(
const SdlEntryClass& entry,
bool addVPrefix)
144 return GetSchemaVerstionString(entry.GetSchemaParams(), addVPrefix);
147inline QString CSdlGenTools::GetTempVariableWrappedValue(
const imtsdl::CSdlField& sdlField)
149 return GetTempVariableWrappedValue(sdlField.GetId());
152inline QString CSdlGenTools::GetCollectionReferenceName(
153 const imtsdl::CSdlDocumentType& documentType,
154 const imtsdl::SdlTypeList& typeList,
155 const imtsdl::SdlUnionList& unionList,
156 imtsdl::CSdlDocumentType::OperationType operationType)
158 auto refEntry = GetCollectionReferenceForDocument(documentType, typeList, unionList, operationType);
161 return refEntry->GetName();