ImagingTools Core SDK
CSqlJsonDatabaseDelegateComp.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// ImtCore includes
6#include <imtdb/CSqlDatabaseDocumentDelegateComp.h>
7#include <imtbase/CTreeItemModel.h>
8
9
10namespace imtdb
11{
12
13
14class CSqlJsonDatabaseDelegateComp: public imtdb::CSqlDatabaseDocumentDelegateComp
15{
16public:
17 typedef imtdb::CSqlDatabaseDocumentDelegateComp BaseClass;
18
19 I_BEGIN_COMPONENT(CSqlJsonDatabaseDelegateComp)
20 I_ASSIGN(m_isMultiTypeAttrPtr, "IsMultiType", "Is document multitype supported", true, false);
21 I_END_COMPONENT
22
23 // reimplemented (imtdb::ISqlDatabaseObjectDelegate)
24 virtual istd::IChangeableUniquePtr CreateObjectFromRecord(
25 const QSqlRecord& record,
26 const iprm::IParamsSet* paramsPtr = nullptr) const override;
27 virtual NewObjectQuery CreateNewObjectQuery(
28 const QByteArray& typeId,
29 const QByteArray& proposedObjectId,
30 const QString& objectName,
31 const QString& objectDescription,
32 const istd::IChangeable* valuePtr,
33 const imtbase::IOperationContext* operationContextPtr) const override;
34 virtual QByteArray CreateDeleteObjectsQuery(
35 const imtbase::IObjectCollection& collection,
36 const imtbase::ICollectionInfo::Ids& objectIds,
37 const imtbase::IOperationContext* operationContextPtr) const override;
38 virtual QByteArray CreateUpdateObjectQuery(
39 const imtbase::IObjectCollection& collection,
40 const QByteArray& objectId,
41 const istd::IChangeable& object,
42 const imtbase::IOperationContext* operationContextPtr,
43 bool useExternDelegate = true) const override;
44 virtual QByteArray CreateDescriptionObjectQuery(
45 const imtbase::IObjectCollection& collection,
46 const QByteArray& objectId,
47 const QString& description,
48 const imtbase::IOperationContext* operationContextPtr) const override;
49 virtual QByteArray GetCountQuery(const iprm::IParamsSet* paramsPtr = nullptr) const override;
50
51 // reimplemented (imtdb::CSqlDatabaseDocumentDelegateComp)
52 virtual QString GetBaseSelectionQuery() const override;
53 virtual bool SetCollectionItemMetaInfoFromRecord(const QSqlRecord& record, idoc::IDocumentMetaInfo& metaInfo) const override;
54 virtual bool SetObjectMetaInfoFromRecord(const QSqlRecord& record, idoc::IDocumentMetaInfo& metaInfo) const override;
55 virtual bool CreateSortQuery(const imtbase::ICollectionFilter& collectionFilter, QString& sortQuery) const override;
56 virtual bool CreateFilterQuery(const iprm::IParamsSet& filterParams, QString& filterQuery) const override;
57 virtual bool CreateObjectFilterQuery(const iprm::IParamsSet& filterParams, QString& filterQuery) const override;
58 virtual bool CreateTextFilterQuery(const imtbase::ICollectionFilter& collectionFilter, QString& textFilterQuery) const override;
59 virtual idoc::MetaInfoPtr CreateObjectMetaInfo(const QByteArray& typeId) const override;
60 virtual bool CreateTimeFilterQuery(const imtbase::ITimeFilterParam& timeFilter, QString& timeFilterQuery, const QString& timeFieldId = QStringLiteral("root1.\"TimeStamp\"")) const override;
61 virtual QByteArray GetObjectSelectionQuery(const QByteArray& objectId, const iprm::IParamsSet* paramsPtr = nullptr) const override;
62
63protected:
64 virtual bool WriteDataToMemory(const QByteArray& typeId, const istd::IChangeable& object, QByteArray& data) const override;
65 virtual bool ReadDataFromMemory(const QByteArray& typeId, const QByteArray& data, istd::IChangeable& object) const override;
66 virtual bool TableExists(const QString& tableName) const;
67 virtual QByteArray CreateOperationDescriptionQuery(const QByteArray& objectId, const imtbase::IOperationContext* operationContextPtr) const;
68
69protected:
70 I_ATTR(bool, m_isMultiTypeAttrPtr);
71};
72
73
74} // namespace imtdb
75
76
Database Abstraction Layer (ORM Framework) for ImtCore applications.