6#include <QtCore/QTextStream>
7#include <QtCore/QIODevice>
9#include <QtCore/QVariant>
12#include <istd/ILogger.h>
15#include <imtsdl/ISdlTypeListProvider.h>
16#include <imtsdl/ISdlRequestListProvider.h>
17#include <imtsdl/ISdlEnumListProvider.h>
18#include <imtsdl/ISdlUnionListProvider.h>
19#include <imtsdl/CSdlRequest.h>
20#include <imtsdl/CSdlEnumConverter.h>
21#include <imtsdl/CSdlEnum.h>
22#include <imtsdl/CSdlUnion.h>
40 virtual public istd::IPolymorphic,
41 virtual public ISdlTypeListProvider,
42 virtual public ISdlRequestListProvider,
43 virtual public ISdlEnumListProvider,
44 virtual public ISdlUnionListProvider,
45 virtual protected istd::ILogger,
46 protected CSdlEnumConverter
57 virtual bool ParseGqlSchema();
58 bool SetSchemaName(
const QString& schemaName)
const;
61 virtual QStringList GetTypeNames()
const override;
62 virtual SdlTypeList GetSdlTypes(
bool onlyLocal)
const override;
63 virtual SdlFieldList GetFields(
const QString typeName)
const override;
66 virtual SdlRequestList GetRequests(
bool onlyLocal)
const override;
69 virtual SdlEnumList GetEnums(
bool onlyLocal)
const override;
72 virtual SdlUnionList GetUnions(
bool onlyLocal)
const override;
75 virtual bool ProcessSchema();
76 virtual bool ProcessSchemaImports();
77 virtual bool ProcessType();
78 virtual bool ProcessInterface();
79 virtual bool ProcessUnion();
80 virtual bool ProcessScalar();
81 virtual bool ProcessEnum();
82 virtual bool ProcessInput();
83 virtual bool ProcessExtend();
84 virtual bool ProcessDirective();
85 virtual bool ProcessQuery();
86 virtual bool ProcessMutation();
87 virtual bool ProcessSubscription();
88 virtual bool ProcessValue(SdlFieldList& output,
bool* endOfReadPtr);
89 virtual bool ProcessRequests(CSdlRequest::Type type);
105 virtual bool ValidateSchema();
107 void SetDevice(QIODevice& device);
108 bool ReadToDelimeter(
109 const QByteArray& delimeters,
111 char* foundDelimeterPtr =
nullptr,
112 bool allowEmptyResult =
true,
113 bool skipDelimeter =
true);
114 bool ReadToDelimeterOrSpace(
115 const QByteArray& delimeters,
117 char* foundDelimeterPtr =
nullptr,
118 bool allowEmptyResult =
true,
119 bool skipDelimeter =
true);
121 bool MoveToCharType(QChar::Category category,
char* foundDelimeterPtr =
nullptr,
bool skipDelimeter =
false);
122 bool MoveToCharType(
const QList<QChar::Category>& categoryList,
char* foundDelimeterPtr =
nullptr,
bool skipDelimeter =
false);
123 bool MoveToNextReadableSymbol(
char* foundDelimeterPtr =
nullptr,
bool skipDelimeter =
false);
125 bool MoveAfterWord(
const QString& word);
128 QTextStream m_stream;
130 qulonglong m_lastReadLine;
131 bool m_useLastReadChar;
132 QMap<KeyId, QByteArray> m_keywordMap;
133 QString m_originalSchemaFile;
135 SdlTypeList m_sdlTypes;
136 SdlRequestList m_requests;
138 SdlUnionList m_unions;
std::shared_ptr< iprm::CParamsSet > m_schemaParamsPtr
saved schema parameters, declarated in .sdl file
virtual bool ProcessCustomSection(const QString §ionName)
virtual bool ProcessCustomSchemaValue(const QString &key, const QString &value)