9#include <QtCore/qstring.h>
10#include <istd/TDelPtr.h>
11#include <iproc/TSyncProcessorCompBase.h>
12#include <ifile/IFilePersistence.h>
15#include <imtsdl/ISdlProcessArgumentsParser.h>
16#include <imtsdl/ISdlTypeListProvider.h>
17#include <imtsdl/ISdlDocumentTypeListProvider.h>
18#include <imtsdl/CSdlTools.h>
27 public iproc::CSyncProcessorCompBase,
32 typedef iproc::CSyncProcessorCompBase BaseClass;
35 I_ASSIGN(m_qmlKeysFileSuffixAttrPtr,
"QmlKeysFileSuffix",
"QML Keys file's suffix for file name.",
true,
"TypeMetaInfo")
36 I_ASSIGN(m_collectionInfoFileMaskAttrPtr,
"CollectionInfoFileNameMask",
"Mask, used to name a collectio info QML file. \nSupported placeholders:\n\t$(Type); $(Subtype)",
true,
"$(Type)$(Subtype)CollectionInfo")
37 I_ASSIGN(m_qmlEnumValuesFileSuffixAttrPtr,
"EnumValuesFileSuffix",
"QML flie's suffix for the file name",
true,
"EnumValues")
38 I_ASSIGN(m_argumentParserCompPtr,
"ArgumentParser",
"Command line process argument parser",
true,
"ArgumentParser")
39 I_ASSIGN(m_sdlTypeListCompPtr,
"SdlTypeListProvider",
"SDL types used to create a code",
true,
"SdlTypeListProvider")
40 I_ASSIGN(m_sdlDocumentListCompPtr,
"SdlDocumentListProvider",
"SDL documents used to create a GraphQL wrap code",
true,
"SdlDocumentListProvider")
41 I_ASSIGN(m_qmldirFilePersistanceCompPtr,
"QmldirFilePersistance",
"Qmldir file persistance, used to update qmldir file with new modules",
true,
"QmldirFilePersistance")
42 I_ASSIGN(m_customSchemaParamsCompPtr,
"CustomSchemaParams",
"Custom schema parameters, that contains additional options",
false,
"CustomSchemaParams")
46 virtual iproc::IProcessor::TaskState DoProcessing(
47 const iprm::IParamsSet* paramsPtr,
48 const istd::IPolymorphic* inputPtr,
49 istd::IChangeable* outputPtr,
50 ibase::IProgressManager* progressManagerPtr = NULL)
override;
56 bool IsSingleton =
false;
61 static bool UpdateQmldirParams(iprm::IParamsSet& qmldirDataParams,
const QList<QmldirFileInfo>& infoList);
66 bool BeginQmlFile(
const imtsdl::CSdlType& sdlType);
67 bool EndQmlFile(
const imtsdl::CSdlType& sdlType);
68 void AbortCurrentProcessing();
69 bool GenerateCollectionSchemaInfo();
70 bool GenerateCollectionSchemaInfoForType(
const imtsdl::CSdlDocumentType& documentType,
const QString& typeName,
const QString& subtypeName);
71 [[nodiscard]] QString GetQmlKeysWrappedName(
const QString& originalName)
const;
72 [[nodiscard]] QString GetQmlCollectionInfoWrappedName(
const QString& typeName,
const QString& subtypeName)
const;
75 I_ATTR(QString, m_qmlKeysFileSuffixAttrPtr);
76 I_ATTR(QString, m_collectionInfoFileMaskAttrPtr);
77 I_ATTR(QString, m_qmlEnumValuesFileSuffixAttrPtr);
78 I_REF(imtsdl::ISdlProcessArgumentsParser, m_argumentParserCompPtr);
79 I_REF(imtsdl::ISdlTypeListProvider, m_sdlTypeListCompPtr);
80 I_REF(imtsdl::ISdlDocumentTypeListProvider, m_sdlDocumentListCompPtr);
81 I_REF(ifile::IFilePersistence, m_qmldirFilePersistanceCompPtr);
82 I_REF(iprm::IParamsSet, m_customSchemaParamsCompPtr);
84 istd::TDelPtr<QFile> m_qmlKeysFilePtr;