6#include <ifile/IDeviceBasedPersistence.h>
9#include <imtbase/IRevisionController.h>
10#include <imtdb/IMetaInfoTableDelegate.h>
11#include <imtdb/CSqlDatabaseObjectDelegateCompBase.h>
18class CSqlDatabaseDocumentDelegateLegacyComp:
19 public imtdb::CSqlDatabaseObjectDelegateCompBase,
23 typedef imtdb::CSqlDatabaseObjectDelegateCompBase BaseClass;
25 I_BEGIN_COMPONENT(CSqlDatabaseDocumentDelegateLegacyComp)
27 I_ASSIGN_MULTI_0(m_documentFactoriesCompPtr,
"DocumentFactories",
"Factory list used for creation of the new document instance according to the given type-ID",
true);
28 I_ASSIGN_MULTI_0(m_documentPersistenceListCompPtr,
"DocumentPersistenceList",
"List of device-based persistence components for each type of the document",
true);
29 I_ASSIGN(m_metaInfoTableDelegateCompPtr,
"MetaInfoTableDelegate",
"Delegate for the table containing meta-informations for the document type",
false,
"MetaInfoTableDelegate");
30 I_ASSIGN(m_documentContentColumnIdAttrPtr,
"DocumentContentColumnId",
"ID of the column in the table containing document content",
true,
"Document");
31 I_ASSIGN(m_metaInfoTableNameAttrPtr,
"MetaInfoTableName",
"Name of the meta-info table",
true,
"");
32 I_ASSIGN(m_revisionsTableNameAttrPtr,
"RevisionsTableName",
"Name of the table contained document revisions",
true,
"");
36 virtual QByteArray GetSelectionQuery(
37 const QByteArray& objectId = QByteArray(),
40 const iprm::IParamsSet* paramsPtr =
nullptr)
const override;
41 virtual istd::IChangeableUniquePtr CreateObjectFromRecord(
42 const QSqlRecord& record,
43 const iprm::IParamsSet* paramsPtr =
nullptr)
const override;
44 virtual NewObjectQuery CreateNewObjectQuery(
45 const QByteArray& typeId,
46 const QByteArray& proposedObjectId,
47 const QString& objectName,
48 const QString& objectDescription,
49 const istd::IChangeable* valuePtr,
51 virtual QByteArray CreateDeleteObjectsQuery(
53 const imtbase::ICollectionInfo::Ids& objectIds,
55 virtual QByteArray CreateDeleteObjectSetQuery(
57 const iprm::IParamsSet* paramsPtr =
nullptr,
59 virtual QByteArray CreateUpdateObjectQuery(
61 const QByteArray& objectId,
62 const istd::IChangeable&
object,
64 bool useExternDelegate =
true)
const override;
65 virtual QByteArray CreateRenameObjectQuery(
67 const QByteArray& objectId,
68 const QString& newObjectName,
70 virtual QByteArray CreateDescriptionObjectQuery(
72 const QByteArray& objectId,
73 const QString& description,
77 virtual RevisionInfoList GetRevisionInfoList(
79 const QByteArray& objectId)
const override;
80 virtual int BackupRevision(
82 const imtbase::ICollectionInfo::Id& objectId,
83 const QString& userComment = QString())
const override;
84 virtual bool RestoreRevision(
86 const imtbase::ICollectionInfo::Id& objectId,
87 int revision)
const override;
88 virtual bool ExportRevision(
90 const imtbase::ICollectionInfo::Id& objectId,
92 const QString& filePath)
const override;
93 virtual bool DeleteRevision(
95 const imtbase::ICollectionInfo::Id& objectId,
96 int revision)
const override;
99 virtual istd::IChangeableUniquePtr CreateObject(
const QByteArray& typeId)
const;
100 virtual bool WriteDataToMemory(
const QByteArray& typeId,
const istd::IChangeable&
object, QByteArray& data)
const;
101 virtual bool ReadDataFromMemory(
const QByteArray& typeId,
const QByteArray& data, istd::IChangeable&
object)
const;
104 virtual QString GetBaseSelectionQuery()
const override;
105 virtual bool CreateObjectFilterQuery(
const iprm::IParamsSet& filterParams, QString& filterQuery)
const override;
106 virtual bool CreateObjectInfoFromRecord(
107 const QByteArray& typeId,
108 const QSqlRecord& record,
109 idoc::MetaInfoPtr& objectMetaInfoPtr,
110 idoc::MetaInfoPtr& collectionItemMetaInfoPtr)
const;
111 virtual idoc::MetaInfoPtr CreateObjectMetaInfo(
const QByteArray& typeId)
const override;
112 virtual bool SetObjectMetaInfoFromRecord(
const QSqlRecord& record, idoc::IDocumentMetaInfo& metaInfo)
const override;
115 virtual QByteArray CreateOperationDescriptionQuery(
const QByteArray& objectId,
const imtbase::IOperationContext* operationContextPtr)
const;
116 const ifile::IDeviceBasedPersistence* FindDocumentPersistence(
const QByteArray& typeId)
const;
117 virtual QByteArray CreateObjectHistoryQuery(
120 const iprm::IParamsSet* paramsPtr =
nullptr)
const
130 I_MULTIFACT(istd::IChangeable, m_documentFactoriesCompPtr);
131 I_MULTIREF(ifile::IDeviceBasedPersistence, m_documentPersistenceListCompPtr);
132 I_REF(IMetaInfoTableDelegate, m_metaInfoTableDelegateCompPtr);
133 I_ATTR(QByteArray, m_documentContentColumnIdAttrPtr);
134 I_ATTR(QByteArray, m_metaInfoTableNameAttrPtr);
135 I_ATTR(QByteArray, m_revisionsTableNameAttrPtr);
Database Abstraction Layer (ORM Framework) for ImtCore applications.