ImagingTools Core SDK
CGqlExtSchemaParser.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QTextStream>
7#include <QtCore/QIODevice>
8#include <QtCore/QMap>
9#include <QtCore/QVariant>
10
11// ACF includes
12#include <istd/ILogger.h>
13#include <iprm/CParamsSet.h>
14#include <imod/TModelWrap.h>
15
16// ImtCore includes
17#include <imtsdl/CGqlSchemaParser.h>
18#include <imtsdl/ISdlDocumentTypeListProvider.h>
19
20
21namespace imtsdl
22{
23
24
29class CGqlExtSchemaParser:
30 public CGqlSchemaParser,
31 virtual public ISdlDocumentTypeListProvider
32{
33 Q_DISABLE_COPY(CGqlExtSchemaParser)
34
35protected:
36 CGqlExtSchemaParser();
37
38public:
39 typedef CGqlSchemaParser BaseClass;
40
41 CGqlExtSchemaParser(QIODevice& device);
42
43 // reimplemented (ISdlDocumentTypeListProvider)
44 virtual SdlDocumentTypeList GetDocumentTypes(bool onlyLocal) const override;
45
46protected:
47 virtual bool ProcessCollectionSchema();
48 bool ExtractDocumentTypeFromCurrentEntry(CSdlDocumentType& documentType);
49
50 // reimplemented (CGqlSchemaParser)
51 virtual bool ProcessCustomSection(const QString& sectionName) override;
52 virtual bool ValidateSchema() override;
53 virtual bool ProcessCustomSchemaValue(const QString& key, const QString& value) override;
54
55
56protected:
57 SdlDocumentTypeList m_documentTypes;
58};
59
60
61} // namespace imtsdl
62
63
64
65
66
67
68
69
70