ImagingTools Core SDK
IGqlObjectCollectionDelegate.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// ACF includes
6#include <idoc/IDocumentMetaInfo.h>
7
8// ImtCore includes
9#include <imtbase/IMetaInfoCreator.h>
10#include <imtbase/IOperationContext.h>
11#include <imtbase/IObjectCollection.h>
12#include <imtgql/IGqlResponse.h>
13
14
15namespace imtclientgql
16{
17
18
19class IGqlObjectCollectionDelegate: virtual public istd::IPolymorphic
20{
21public:
22 typedef QByteArray Id;
23 typedef QByteArrayList Ids;
24
25 struct ObjectInfo
26 {
27 ObjectInfo()
28 :version(-1)
29 {
30 }
31
32 QByteArray id;
33 QString name;
34 QString description;
35 QByteArray typeId;
36
37 QSharedPointer<idoc::IDocumentMetaInfo> dataMetaInfoPtr;
38
45 int version;
46 };
47 typedef QList<ObjectInfo> ObjectInfoList;
48
49 virtual imtgql::IGqlRequest* CreateGetObjectTypeIdRequest(const QByteArray& objectId) const = 0;
50 virtual imtgql::IGqlRequest* CreateGetObjectInfoRequest(const QByteArray& objectId) const = 0;
51 virtual imtgql::IGqlRequest* CreateGetObjectMetaInfoRequest(const QByteArray& objectId) const = 0;
52 virtual imtgql::IGqlRequest* CreateGetObjectDataMetaInfoRequest(const QByteArray& objectId) const = 0;
53 virtual imtgql::IGqlRequest* CreateInsertObjectRequest(
54 const QByteArray& typeId,
55 const QString& name,
56 const QString& description,
57 const istd::IChangeable* objectPtr,
58 const QString& uploadUrl = QString(),
59 const QByteArray& proposedObjectId = QByteArray(),
60 const QByteArray& nodeId = QByteArray(),
61 const idoc::IDocumentMetaInfo* dataMetaInfoPtr = nullptr,
62 const idoc::IDocumentMetaInfo* collectionItemMetaInfoPtr = nullptr,
63 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
64 virtual imtgql::IGqlRequest* CreateSetObjectNameRequest(
65 const QByteArray& objectId,
66 const QString& name,
67 int clientVersion = -1,
68 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
69 virtual imtgql::IGqlRequest* CreateSetObjectDescriptionRequest(
70 const QByteArray& objectId,
71 const QString& description,
72 int clientVersion = -1,
73 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
74 virtual imtgql::IGqlRequest* CreateGetObjectRequest(const QByteArray& objectId, const iprm::IParamsSet* paramsPtr = nullptr) const = 0;
75 virtual imtgql::IGqlRequest* CreateSetObjectRequest(
76 const QByteArray& objectId,
77 const QByteArray& typeId,
78 const istd::IChangeable* objectPtr,
79 const QString& uploadUrl = QString(),
80 const idoc::IDocumentMetaInfo* dataMetaInfoPtr = nullptr,
81 const idoc::IDocumentMetaInfo* collectionItemMetaInfoPtr = nullptr,
82 int clientVersion = -1,
83 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
84 virtual imtgql::IGqlRequest* CreateRemoveObjectsRequest(
85 const imtbase::ICollectionInfo::Ids& objectIds,
86 int clientElementVersion = -1,
87 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
88 virtual imtgql::IGqlRequest* CreateRemoveObjectSetRequest(
89 const iprm::IParamsSet* selectionParamsPtr = nullptr,
90 int clientElementVersion = -1,
91 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
92 virtual imtgql::IGqlRequest* CreateGetElementCountRequest(
93 const iprm::IParamsSet* selectionParamsPtr = nullptr) const = 0;
94 virtual imtgql::IGqlRequest* CreateGetElementListRequest(
95 int offset = 0,
96 int count = -1,
97 const iprm::IParamsSet* selectionParamsPtr = nullptr) const = 0;
98 virtual imtgql::IGqlRequest* CreateGetSubCollectionRequest(
99 int offset = 0,
100 int count = -1,
101 const iprm::IParamsSet* selectionParamsPtr = nullptr) const = 0;
102
103 virtual bool IsValid(const imtgql::IGqlResponse& response) const = 0;
104 virtual bool GetOperationResult(const imtgql::IGqlResponse& response, bool& out) const = 0;
105 virtual bool GetObjectId(const imtgql::IGqlResponse& response, Id& out) const = 0;
106 virtual bool GetObjectTypeId(const imtgql::IGqlResponse& response, Id& out) const = 0;
107 virtual bool GetObjectInfo(const imtgql::IGqlResponse& response, ObjectInfo& out) const = 0;
108 virtual bool GetObjectData(const imtgql::IGqlResponse& response, istd::IChangeable& out) const = 0;
109 virtual bool GetMetaInfo(const imtgql::IGqlResponse& response, idoc::IDocumentMetaInfo& out) const = 0;
110 virtual bool GetItemCount(const imtgql::IGqlResponse& response, int& out) const = 0;
111 virtual bool GetItemIds(const imtgql::IGqlResponse& response, Ids& out) const = 0;
112 virtual imtbase::IObjectCollection* GetSubCollection(
113 imtbase::IObjectCollection& collection,
114 const imtgql::IGqlResponse& response,
115 QList<imtbase::IMetaInfoCreator*> metaInfoCreatorList) const = 0;
116};
117
118
119} // namespace imtclientgql
120
121