ImagingTools Core SDK
IDatabaseObjectDelegate.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 <iprm/IParamsSet.h>
7
8// ImtCore includes
9#include <imtbase/IObjectCollection.h>
10
11
12namespace imtdb
13{
14
15
77class IDatabaseObjectDelegate: virtual public istd::IPolymorphic
78{
79public:
85 {
92 QByteArray query;
93
99 QString objectName;
100
107 QVariantMap bindValues;
108 };
109
121 virtual const iprm::IOptionsList* GetObjectTypeInfos() const = 0;
122
134 virtual QByteArray GetObjectTypeId(const QByteArray& objectId) const = 0;
135
157 virtual QByteArray GetCountQuery(const iprm::IParamsSet* paramsPtr = nullptr) const = 0;
158
187 virtual QByteArray GetSelectionQuery(
188 const QByteArray& objectId = QByteArray(),
189 int offset = 0,
190 int count = -1,
191 const iprm::IParamsSet* paramsPtr = nullptr) const = 0;
192
227 const QByteArray& typeId,
228 const QByteArray& proposedObjectId,
229 const QString& objectName,
230 const QString& objectDescription,
231 const istd::IChangeable* valuePtr,
232 const imtbase::IOperationContext* operationContextPtr) const = 0;
233
257 virtual QByteArray CreateDeleteObjectsQuery(
258 const imtbase::IObjectCollection& collection,
259 const imtbase::ICollectionInfo::Ids& objectIds,
260 const imtbase::IOperationContext* operationContextPtr) const = 0;
261
286 virtual QByteArray CreateDeleteObjectSetQuery(
287 const imtbase::IObjectCollection& collection,
288 const iprm::IParamsSet* paramsPtr = nullptr,
289 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
290
305 virtual QByteArray CreateRestoreObjectsQuery(
306 const imtbase::IObjectCollection& collection,
307 const imtbase::ICollectionInfo::Ids& objectIds,
308 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
309
323 virtual QByteArray CreateRestoreObjectSetQuery(
324 const imtbase::IObjectCollection& collection,
325 const iprm::IParamsSet* paramsPtr = nullptr,
326 const imtbase::IOperationContext* operationContextPtr = nullptr) const = 0;
327
352 virtual QByteArray CreateUpdateObjectQuery(
353 const imtbase::IObjectCollection& collection,
354 const QByteArray& objectId,
355 const istd::IChangeable& object,
356 const imtbase::IOperationContext* operationContextPtr,
357 bool useExternDelegate = true) const = 0;
358
373 virtual QByteArray CreateRenameObjectQuery(
374 const imtbase::IObjectCollection& collection,
375 const QByteArray& objectId,
376 const QString& newObjectName,
377 const imtbase::IOperationContext* operationContextPtr) const = 0;
378
391 const imtbase::IObjectCollection& collection,
392 const QByteArray& objectId,
393 const QString& description,
394 const imtbase::IOperationContext* operationContextPtr) const = 0;
395
407 virtual QByteArray CreateResetQuery(const imtbase::IObjectCollection& collection) const = 0;
408
423 virtual QByteArray CreateDataMetaInfoQuery(
424 const imtbase::IObjectCollection& collection,
425 const QByteArray& objectId,
426 const idoc::IDocumentMetaInfo* dataMetaInfoPtr) const = 0;
427
442 const imtbase::IObjectCollection& collection,
443 const QByteArray& objectId,
444 const idoc::IDocumentMetaInfo* collectionItemMetaInfoPtr) const = 0;
445
464 virtual QByteArray GetSelectionByMetaInfoQuery(const QByteArray& metaInfoId, const QVariant& metaInfoValue) const = 0;
465};
466
467
468} // namespace imtdb
469
470
Core ORM interface for object-to-database mapping and SQL query generation.
virtual const iprm::IOptionsList * GetObjectTypeInfos() const =0
Gets information about object types supported by this delegate.
virtual QByteArray GetSelectionByMetaInfoQuery(const QByteArray &metaInfoId, const QVariant &metaInfoValue) const =0
Creates SQL query for finding objects by metadata field value.
virtual NewObjectQuery CreateNewObjectQuery(const QByteArray &typeId, const QByteArray &proposedObjectId, const QString &objectName, const QString &objectDescription, const istd::IChangeable *valuePtr, const imtbase::IOperationContext *operationContextPtr) const =0
Creates SQL query for inserting a new object.
virtual QByteArray GetCountQuery(const iprm::IParamsSet *paramsPtr=nullptr) const =0
Generates SQL query to count objects in collection.
virtual QByteArray CreateDescriptionObjectQuery(const imtbase::IObjectCollection &collection, const QByteArray &objectId, const QString &description, const imtbase::IOperationContext *operationContextPtr) const =0
Creates SQL query for updating object description.
virtual QByteArray CreateDeleteObjectsQuery(const imtbase::IObjectCollection &collection, const imtbase::ICollectionInfo::Ids &objectIds, const imtbase::IOperationContext *operationContextPtr) const =0
Creates SQL query for deleting objects.
virtual QByteArray CreateCollectionItemMetaInfoQuery(const imtbase::IObjectCollection &collection, const QByteArray &objectId, const idoc::IDocumentMetaInfo *collectionItemMetaInfoPtr) const =0
Creates SQL query for updating collection-related metadata.
virtual QByteArray CreateDataMetaInfoQuery(const imtbase::IObjectCollection &collection, const QByteArray &objectId, const idoc::IDocumentMetaInfo *dataMetaInfoPtr) const =0
Creates SQL query for updating object data metadata.
virtual QByteArray CreateUpdateObjectQuery(const imtbase::IObjectCollection &collection, const QByteArray &objectId, const istd::IChangeable &object, const imtbase::IOperationContext *operationContextPtr, bool useExternDelegate=true) const =0
Creates SQL query for updating an existing object.
virtual QByteArray CreateDeleteObjectSetQuery(const imtbase::IObjectCollection &collection, const iprm::IParamsSet *paramsPtr=nullptr, const imtbase::IOperationContext *operationContextPtr=nullptr) const =0
Creates SQL query for deleting objects matching filter criteria.
virtual QByteArray GetObjectTypeId(const QByteArray &objectId) const =0
Gets the type ID for a specific object.
virtual QByteArray GetSelectionQuery(const QByteArray &objectId=QByteArray(), int offset=0, int count=-1, const iprm::IParamsSet *paramsPtr=nullptr) const =0
Generates SQL SELECT query for retrieving objects.
virtual QByteArray CreateRestoreObjectSetQuery(const imtbase::IObjectCollection &collection, const iprm::IParamsSet *paramsPtr=nullptr, const imtbase::IOperationContext *operationContextPtr=nullptr) const =0
Creates SQL query for restoring objects matching filter criteria.
virtual QByteArray CreateResetQuery(const imtbase::IObjectCollection &collection) const =0
Creates SQL query for clearing all objects from collection.
virtual QByteArray CreateRenameObjectQuery(const imtbase::IObjectCollection &collection, const QByteArray &objectId, const QString &newObjectName, const imtbase::IOperationContext *operationContextPtr) const =0
Creates SQL query for renaming an object.
virtual QByteArray CreateRestoreObjectsQuery(const imtbase::IObjectCollection &collection, const imtbase::ICollectionInfo::Ids &objectIds, const imtbase::IOperationContext *operationContextPtr=nullptr) const =0
Creates SQL query for restoring soft-deleted objects.
Database Abstraction Layer (ORM Framework) for ImtCore applications.
Result of CreateNewObjectQuery containing SQL and metadata for object insertion.
QVariantMap bindValues
Parameter bindings for the query.
QString objectName
Name of the object being inserted.