6#include <imtbase/IHierarchicalStructureInfo.h>
13class IOperationContext;
16class IHierarchicalStructure:
virtual public IHierarchicalStructureInfo
19 virtual Id InsertNewNode(
21 const QString& description = QString(),
22 const Id& proposedNodeId = Id(),
23 const Id& parentNodeId = Id(),
24 const idoc::IDocumentMetaInfo* metaInfoPtr =
nullptr,
25 const IOperationContext* operationContextPtr =
nullptr) = 0;
26 virtual bool SetNodeName(
29 const IOperationContext* operationContextPtr =
nullptr) = 0;
30 virtual bool SetNodeDescription(
32 const QString& description,
33 const IOperationContext* operationContextPtr =
nullptr) = 0;
34 virtual bool SetNodeMetaInfo(
36 const idoc::IDocumentMetaInfo& metaInfo,
37 const IOperationContext* operationContextPtr =
nullptr) = 0;
38 virtual bool MoveNode(
40 const Id& parentNodeId,
41 const IOperationContext* operationContextPtr =
nullptr) = 0;
42 virtual bool RemoveNode(
44 const IOperationContext* operationContextPtr =
nullptr) = 0;
50 virtual bool InsertLeaf(
53 const QString& leafName,
54 const IOperationContext* operationContextPtr =
nullptr) = 0;
55 virtual bool MoveLeaf(
57 const Id& sourceNodeId,
58 const Id& targetNodeId,
59 const IOperationContext* operationContextPtr =
nullptr) = 0;
60 virtual bool RemoveLeaf(
63 const IOperationContext* operationContextPtr =
nullptr) = 0;