6#include <icomp/CComponentBase.h>
7#include <ilog/TLoggerCompWrap.h>
10#include <imtbase/IHierarchicalStructure.h>
11#include <imtclientgql/IGqlHierarchicalStructureDelegate.h>
12#include <imtclientgql/IGqlClient.h>
17 class IRevisionController;
25class CGqlHierarchicalStructureComp:
27 public ilog::TLoggerCompWrap<icomp::CComponentBase>,
28 virtual public imtbase::IHierarchicalStructure
32 typedef ilog::TLoggerCompWrap<icomp::CComponentBase> BaseClass;
34 I_BEGIN_COMPONENT(CGqlHierarchicalStructureComp);
35 I_REGISTER_INTERFACE(IHierarchicalStructure);
36 I_REGISTER_INTERFACE(IHierarchicalStructureInfo);
37 I_REGISTER_INTERFACE(istd::IChangeable);
38 I_ASSIGN(m_clientCompPtr,
"ApiClient",
"GraphQL API client",
true,
"ApiClient");
39 I_ASSIGN(m_delegateCompPtr,
"GqlHierarchicalStructureDelegate",
"GraphQL-based hierarchical structure delegate for database CRUD operations",
true,
"GqlObjectCollectionDelegate");
43 virtual Id InsertNewNode(
45 const QString& description = QString(),
46 const Id& proposedNodeId = Id(),
47 const Id& parentNodeId = Id(),
48 const idoc::IDocumentMetaInfo* metaInfoPtr =
nullptr,
50 virtual bool SetNodeName(
54 virtual bool SetNodeDescription(
56 const QString& description,
58 virtual bool SetNodeMetaInfo(
60 const idoc::IDocumentMetaInfo& metaInfo,
62 virtual bool MoveNode(
64 const Id& parentNodeId,
66 virtual bool RemoveNode(
70 virtual bool InsertLeaf(
73 const QString& leafName,
75 virtual bool MoveLeaf(
77 const Id& sourceNodeId,
78 const Id& targetNodeId,
80 virtual bool RemoveLeaf(
86 virtual int GetItemCount(
const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const override;
87 virtual Ids GetItemIds(
90 const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const override;
91 virtual ItemInfoList GetItemInfos(
const Ids& itemIds)
override;
92 virtual Ids GetItemPath(
const Id& itemId)
const override;
96 const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const override;
99 virtual void OnComponentCreated()
override;
100 virtual void OnComponentDestroyed()
override;
111 I_REF(IGqlClient, m_clientCompPtr);
112 I_REF(imtclientgql::IGqlHierarchicalStructureDelegate, m_delegateCompPtr);