6#include <istd/TComposedFactory.h>
9#include <imtbase/IObjectCollection.h>
10#include <imtbase/IMetaInfoCreator.h>
11#include <imtclientgql/IGqlObjectCollectionDelegate.h>
12#include <imtclientgql/IGqlClient.h>
17 class IRevisionController;
25class CRemoteGqlCollectionController:
27 public istd::TComposedFactory<istd::IChangeable>
30 typedef istd::TComposedFactory<istd::IChangeable> BaseClass;
32 CRemoteGqlCollectionController();
37 virtual int GetOperationFlags(
const Id& elementId = Id())
const override;
38 virtual QByteArray InsertNewObject(
39 const QByteArray& typeId,
41 const QString& description,
42 const istd::IChangeable* defaultValuePtr =
nullptr,
43 const QByteArray& proposedObjectId = QByteArray(),
44 const idoc::IDocumentMetaInfo* dataMetaInfoPtr =
nullptr,
45 const idoc::IDocumentMetaInfo* collectionItemMetaInfoPtr =
nullptr,
48 virtual bool RemoveElementSet(
49 const iprm::IParamsSet* selectionParamsPtr =
nullptr,
51 virtual bool RestoreObjects(
54 virtual bool RestoreObjectSet(
55 const iprm::IParamsSet* selectionParamsPtr =
nullptr,
57 virtual const istd::IChangeable* GetObjectPtr(
const Id& objectId)
const override;
58 virtual bool GetObjectData(
const Id& objectId, DataPtr& dataPtr,
const iprm::IParamsSet* dataConfigurationPtr =
nullptr)
const override;
59 virtual bool SetObjectData(
const Id& objectId,
const istd::IChangeable&
object, CompatibilityMode mode = CM_WITHOUT_REFS,
const imtbase::IOperationContext* operationContextPtr =
nullptr)
override;
60 virtual imtbase::IObjectCollectionUniquePtr CreateSubCollection(
63 const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const override;
65 const QByteArray& objectId = QByteArray(),
68 const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const override;
71 virtual const iprm::IOptionsList* GetObjectTypesInfo()
const override;
72 virtual QByteArray GetObjectTypeId(
const Id& objectId)
const override;
73 virtual idoc::MetaInfoPtr GetDataMetaInfo(
const Id& objectId)
const override;
76 virtual int GetElementsCount(
77 const iprm::IParamsSet* selectionParamsPtr =
nullptr,
78 ilog::IMessageConsumer* logPtr =
nullptr)
const override;
79 virtual Ids GetElementIds(
82 const iprm::IParamsSet* selectionParamsPtr =
nullptr,
83 ilog::IMessageConsumer* logPtr =
nullptr)
const override;
84 virtual bool GetSubsetInfo(
88 const iprm::IParamsSet* selectionParamsPtr =
nullptr,
89 ilog::IMessageConsumer* logPtr =
nullptr)
const override;
90 virtual QVariant GetElementInfo(
const QByteArray& elementId,
int infoType, ilog::IMessageConsumer* logPtr =
nullptr)
const override;
91 virtual idoc::MetaInfoPtr GetElementMetaInfo(
const Id& elementId, ilog::IMessageConsumer* logPtr =
nullptr)
const override;
92 virtual bool SetElementName(
const Id& elementId,
const QString& name, ilog::IMessageConsumer* logPtr =
nullptr)
override;
93 virtual bool SetElementDescription(
const Id& elementId,
const QString& description, ilog::IMessageConsumer* logPtr =
nullptr)
override;
94 virtual bool SetElementEnabled(
const Id& elementId,
bool isEnabled =
true, ilog::IMessageConsumer* logPtr =
nullptr)
override;
97 virtual DataPtr CreateObjectInstance(
const QByteArray& typeId)
const;
100 bool GetObjectInfo(
const QByteArray& objectId, imtclientgql::IGqlObjectCollectionDelegate::ObjectInfo& valueOut)
const;
101 bool GetObjectMetaInfo(
const QByteArray& objectId, idoc::MetaInfoPtr& valueOut)
const;
104 const IGqlClient* m_gqlClientPtr;
105 const IGqlObjectCollectionDelegate* m_gqlObjectCollectionDelegatePtr;
107 typedef QMap<QByteArray, imtbase::IMetaInfoCreator*> MetaInfoCreatorMap;
108 MetaInfoCreatorMap m_metaInfoCreatorMap;