ImagingTools Core SDK
IGqlHierarchicalStructureDelegate.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/IHierarchicalStructureInfo.h>
10#include <imtbase/IOperationContext.h>
11#include <imtgql/IGqlRequest.h>
12#include <imtgql/IGqlResponse.h>
13
14
15namespace imtclientgql
16{
17
18
19class IGqlHierarchicalStructureDelegate: virtual public istd::IPolymorphic
20{
21public:
22 typedef QByteArray Id;
23 typedef QByteArrayList Ids;
24
25 virtual imtgql::IGqlRequest* CreateInsertNewNodeRequest(
26 const QString& name,
27 const QString& description = QString(),
28 const Id& proposedNodeId = Id(),
29 const Id& parentNodeId = Id(),
30 const idoc::IDocumentMetaInfo* metaInfoPtr = nullptr,
31 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
32 virtual imtgql::IGqlRequest* CreateSetNodeNameRequest(
33 const Id& nodeId,
34 const QString& name,
35 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
36 virtual imtgql::IGqlRequest* CreateSetNodeDescriptionRequest(
37 const Id& nodeId,
38 const QString& description,
39 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
40 virtual imtgql::IGqlRequest* CreateSetNodeMetaInfoRequest(
41 const Id& nodeId,
42 const idoc::IDocumentMetaInfo& metaInfo,
43 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
44 virtual imtgql::IGqlRequest* CreateMoveNodeRequest(
45 const Id& nodeId,
46 const Id& parentNodeId,
47 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
48 virtual imtgql::IGqlRequest* CreateRemoveNodeRequest(
49 const Id& nodeId,
50 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
51
52 virtual imtgql::IGqlRequest* CreateInsertLeafRequest(
53 const Id& leafId,
54 const Id& nodeId,
55 const QString& leafName,
56 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
57 virtual imtgql::IGqlRequest* CreateMoveLeafRequest(
58 const Id& leafId,
59 const Id& sourceNodeId,
60 const Id& targetNodeId,
61 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
62 virtual imtgql::IGqlRequest* CreateRemoveLeafRequest(
63 const Id& leafId,
64 const Id& nodeId,
65 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
66
67 virtual imtgql::IGqlRequest* CreateGetItemCountRequest(
68 const iprm::IParamsSet* selectionParamsPtr = nullptr) const = 0;
69 virtual imtgql::IGqlRequest* CreateGetItemIdsRequest(
70 int offset = 0,
71 int count = -1,
72 const iprm::IParamsSet* selectionParamsPtr = nullptr) const = 0;
73
74 virtual imtgql::IGqlRequest* CreateGetItemInfosRequest(const Ids& itemIds) const = 0;
75 virtual imtgql::IGqlRequest* CreateGetItemPathRequest(const Id& itemId) const = 0;
76
77 virtual imtbase::IHierarchicalStructureIterator* CreateHierarchicalStructureIterator(
78 int offset = 0,
79 int count = -1,
80 const iprm::IParamsSet* selectionParamsPtr = nullptr) const = 0;
81
82 virtual bool IsValid(imtgql::IGqlResponse& reqponse) const = 0;
83 virtual bool GetNodeId(imtgql::IGqlResponse& reqponse, Id& out) const = 0;
84 virtual bool GetOperationResult(imtgql::IGqlResponse& reqponse, bool& out) const = 0;
85 virtual bool GetItemCount(imtgql::IGqlResponse& reqponse, bool out) const = 0;
86 virtual bool GetItemIds(imtgql::IGqlResponse& reqponse, Ids& out) const = 0;
87 virtual bool GetItemPath(imtgql::IGqlResponse& reqponse, Ids& out) const = 0;
88 virtual bool GetItemInfos(imtgql::IGqlResponse& reqponse, imtbase::IHierarchicalStructureInfo::ItemInfoList& out) const = 0;
89};
90
91
92} // namespace imtclientgql
93
94