6#include <QtCore/QReadWriteLock>
9#include <ilog/TLoggerCompWrap.h>
10#include <iprm/COptionsManager.h>
13#include <imtbase/IObjectCollection.h>
14#include <imtbase/IObjectCollectionIterator.h>
15#include <imtbase/CObjectCollection.h>
16#include <imtbase/ICollectionDataController.h>
17#include <imtbase/IMetaInfoCreator.h>
18#include <imtbase/TModelUpdateBinder.h>
20#include <imtdb/IDatabaseLoginSettings.h>
22#include <imtmongo/IMongoDatabaseEngine.h>
23#include <imtmongo/IMongoDatabaseObjectDelegate.h>
24#include <imtbase/IOperationContext.h>
37 public ilog::CLoggerComponentBase
41 typedef ilog::CLoggerComponentBase BaseClass;
47 I_ASSIGN(m_objectCollectionFactoryCompPtr,
"ObjectCollectionFactory",
"Factory used for object collection creation",
false,
"ObjectCollectionFactory");
48 I_ASSIGN(m_mongoDatabaseEngineCompPtr,
"DatabaseEngine",
"Database engine used for low level SQL quering",
true,
"DatabaseEngine");
49 I_ASSIGN(m_objectDelegateCompPtr,
"ObjectDelegate",
"Database object delegate used for creation of C++ objects from the SQL record",
true,
"ObjectDelegate");
50 I_ASSIGN(m_metaInfoCreatorCompPtr,
"MetaInfoCreator",
"Meta-info creator",
false,
"MetaInfoCreator");
51 I_ASSIGN(m_filterParamsCompPtr,
"FilteringParams",
"Parameter using for the filterering the table",
false,
"FilteringParams");
52 I_ASSIGN(m_databaseAccessSettingsCompPtr,
"DatabaseAccessSettings",
"Database access settings",
false,
"DatabaseAccessSettings");
53 I_ASSIGN(m_collectionDataControllerCompPtr,
"CollectionDataController",
"Data export/import controller for the collection",
false,
"DataController");
54 I_ASSIGN(m_collectionNameAttrPtr,
"CollectionName",
"The collection name",
true,
"CollectionName");
62 virtual int GetOperationFlags(
const QByteArray& objectId = QByteArray())
const override;
63 virtual QByteArray InsertNewObject(
64 const QByteArray& typeId,
66 const QString& description,
67 DataPtr defaultValuePtr = DataPtr(),
68 const QByteArray& proposedObjectId = QByteArray(),
69 const idoc::IDocumentMetaInfo* dataMetaInfoPtr =
nullptr,
70 const idoc::IDocumentMetaInfo* elementMetaInfoPtr =
nullptr,
72 virtual bool RemoveElement(
const Id& elementId,
74 virtual const istd::IChangeable* GetObjectPtr(
const QByteArray& objectId)
const override;
75 virtual bool GetObjectData(
const QByteArray& objectId, DataPtr& dataPtr)
const override;
76 virtual bool SetObjectData(
const Id& objectId,
const istd::IChangeable&
object,
77 CompatibilityMode mode = CM_WITHOUT_REFS,
79 virtual imtbase::IObjectCollectionUniquePtr CreateSubCollection(
int offset = 0,
int count = -1,
const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const override;
82 virtual const iprm::IOptionsList* GetObjectTypesInfo()
const override;
83 virtual Id GetObjectTypeId(
const QByteArray& objectId)
const override;
84 virtual idoc::MetaInfoPtr GetDataMetaInfo(
const Id& objectId)
const override;
87 virtual int GetElementsCount(
88 const iprm::IParamsSet* selectionParamPtr =
nullptr)
const override;
89 virtual Ids GetElementIds(
92 const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const override;
93 virtual bool GetSubsetInfo(
97 const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const override;
101 const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const;
102 virtual QVariant GetElementInfo(
const QByteArray& elementId,
int infoType)
const override;
103 virtual idoc::MetaInfoPtr GetElementMetaInfo(
const Id& elementId)
const override;
104 virtual bool SetElementName(
const Id& objectId,
const QString& name)
override;
105 virtual bool SetElementDescription(
const Id& objectId,
const QString& description)
override;
106 virtual bool SetElementEnabled(
const Id& elementId,
bool isEnabled =
true)
override;
109 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS)
override;
113 QByteArray GetCollectionName()
const;
115 mongocxx::cursor GetObjectRecord(
const QByteArray& objectId)
const;
117 void OnFilterParamsChanged(
const istd::IChangeable::ChangeSet& changeSet,
const iprm::IParamsSet* filterParamsPtr);
121 virtual void OnComponentCreated()
override;
122 virtual void OnComponentDestroyed()
override;
131 I_REF(iprm::IParamsSet, m_filterParamsCompPtr);
134 I_ATTR(QByteArray, m_collectionNameAttrPtr);
139 bool m_isInitialized;
Configuration interface for database connection credentials and parameters.