6#include <ilog/TLoggerCompWrap.h>
9#include <imtbase/IOperationContext.h>
10#include <imtbase/IHierarchicalStructure.h>
11#include <imtbase/IStructuredCollectionFinder.h>
12#include <ifile/IFilePersistence.h>
13#include <imtdb/IDatabaseEngine.h>
20class CSqlStructureDelegateCompBase:
21 public ilog::CLoggerComponentBase,
22 virtual public imtbase::IHierarchicalStructure,
23 virtual public imtbase::IStructuredCollectionFinder
26 typedef ilog::CLoggerComponentBase BaseClass;
28 I_BEGIN_BASE_COMPONENT(CSqlStructureDelegateCompBase);
29 I_REGISTER_INTERFACE(imtbase::IHierarchicalStructure);
30 I_REGISTER_INTERFACE(imtbase::IStructuredCollectionFinder);
31 I_ASSIGN(m_dbEngineCompPtr,
"DatabaseEngine",
"Database engine used for low level SQL quering",
true,
"DatabaseEngine");
34 virtual Id InsertNewNode(
36 const QString& description = QString(),
37 const Id& proposedNodeId = Id(),
38 const Id& parentNodeId = Id(),
39 const idoc::IDocumentMetaInfo* metaInfoPtr =
nullptr,
41 virtual bool SetNodeName(
45 virtual bool SetNodeDescription(
47 const QString& description,
49 virtual bool SetNodeMetaInfo(
51 const idoc::IDocumentMetaInfo& metaInfo,
53 virtual bool MoveNode(
55 const Id& parentNodeId,
57 virtual bool RemoveNode(
61 virtual bool InsertLeaf(
64 const QString& leafName,
67 virtual bool MoveLeaf(
69 const Id& sourceNodeId,
70 const Id& targetNodeId,
73 virtual bool RemoveLeaf(
78 virtual int GetItemCount(
const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const override;
79 virtual Ids GetItemIds(
82 const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const override;
86 const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const override;
89 virtual ItemInfoList GetItemInfos(
const Ids& itemIds)
override;
90 virtual Ids GetItemPath(
const Id& itemId)
const override;
93 virtual Ids FindObjectParentNodes(
const Id& objectId)
const override;
96 virtual QByteArray CreateInsertNewNodeQuery(
98 const QString& description = QString(),
99 const Id& proposedNodeId = Id(),
100 const Id& parentNodeId = Id(),
101 const idoc::IDocumentMetaInfo* metaInfoPtr =
nullptr,
103 virtual QByteArray CreateSetNodeNameQuery(
107 virtual QByteArray CreateSetNodeDescriptionQuery(
109 const QString& description,
111 virtual QByteArray CreateSetNodeMetaInfoQuery(
113 const idoc::IDocumentMetaInfo* metaInfo,
115 virtual QByteArray CreateMoveNodeQuery(
117 const Id& parentNodeId,
119 virtual QByteArray CreateRemoveNodeQuery(
123 virtual QByteArray CreateInsertNewObjectQuery(
127 virtual QByteArray CreateMoveObjectQuery(
129 const Id& sourceNodeId,
130 const Id& targetNodeId,
132 virtual QByteArray CreateRemoveObjectQuery(
136 virtual QByteArray CreateGetNodeCountQuery(
const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const = 0;
137 virtual QByteArray CreateGetNodeIdsQuery(
140 const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const = 0;
141 virtual QByteArray CreateGetObjectIdsQuery(
144 const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const = 0;
145 virtual QByteArray CreateGetNodeInfoQuery(
const Id& nodeId)
const = 0;
146 virtual QByteArray CreateGetNodePathQuery(
const Id& nodeId)
const = 0;
147 virtual QByteArray CreateGetObjectParentNodeIdsQuery(
const Id& objectId)
const = 0;
148 virtual bool ExecuteTransaction(
const QByteArray& sqlQuery)
const;
Core database engine interface for low-level SQL execution and transaction management.
Database Abstraction Layer (ORM Framework) for ImtCore applications.