6#include <istd/TIFactory.h>
7#include <istd/TInterfacePtr.h>
10#include <imtbase/IObjectCollectionInfo.h>
11#include <imtbase/IOperationContext.h>
18class IHierarchicalStructure;
19class IRevisionController;
20class ICollectionDataController;
21class IObjectCollectionIterator;
22class IHierarchicalStructure;
32 typedef istd::IChangeableSharedPtr DataPtr;
34 static const QByteArray CN_OBJECT_DATA_CHANGED;
35 typedef NotifierInfo ObjectDataChanged;
39 CF_OBJECT_DATA_CHANGED = CF_LAST
88 virtual istd::IChangeableUniquePtr CreateInstance(
const QByteArray& keyId = QByteArray())
const = 0;
89 virtual istd::IFactoryInfo::KeyList GetFactoryKeys()
const = 0;
92 virtual IHierarchicalStructure* GetCollectionStructure()
const;
122 const QByteArray& typeId,
124 const QString& description,
125 const istd::IChangeable* defaultValuePtr =
nullptr,
126 const Id& proposedElementId = Id(),
127 const idoc::IDocumentMetaInfo* dataMetaInfoPtr =
nullptr,
128 const idoc::IDocumentMetaInfo* elementMetaInfoPtr =
nullptr,
135 const Ids& elementIds,
143 const iprm::IParamsSet* selectionParamsPtr =
nullptr,
150 const Ids& objectIds,
158 const iprm::IParamsSet* selectionParamsPtr =
nullptr,
165 virtual const istd::IChangeable*
GetObjectPtr(
const Id& objectId)
const = 0;
172 template<
typename Interface>
175 return dynamic_cast<const Interface*
>(
GetObjectPtr(objectId));
181 virtual bool GetObjectData(
const Id& objectId, DataPtr& dataPtr,
const iprm::IParamsSet* dataConfigurationPtr =
nullptr)
const = 0;
188 const istd::IChangeable&
object,
189 CompatibilityMode mode = CM_WITHOUT_REFS,
201 const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const = 0;
210 const QByteArray& objectId = QByteArray(),
213 const iprm::IParamsSet* selectionParamsPtr =
nullptr)
const = 0;
227 Q_ASSERT_X(
false,
"IObjectCollection::ResetObjectIds",
"Method not implemented");
231typedef istd::TUniqueInterfacePtr<IObjectCollection> IObjectCollectionUniquePtr;
232typedef istd::TSharedInterfacePtr<IObjectCollection> IObjectCollectionSharedPtr;
const Interface * GetObjectPtr(const Id &objectId) const
virtual bool RestoreObjectSet(const iprm::IParamsSet *selectionParamsPtr=nullptr, const IOperationContext *operationContextPtr=nullptr)=0
virtual imtbase::IObjectCollectionIterator * CreateObjectCollectionIterator(const QByteArray &objectId=QByteArray(), int offset=0, int count=-1, const iprm::IParamsSet *selectionParamsPtr=nullptr) const =0
virtual const ICollectionDataController * GetDataController() const =0
virtual bool RemoveElementSet(const iprm::IParamsSet *selectionParamsPtr=nullptr, const IOperationContext *operationContextPtr=nullptr)=0
virtual const istd::IChangeable * GetObjectPtr(const Id &objectId) const =0
virtual void ResetObjectIds()
virtual const IRevisionController * GetRevisionController() const =0
virtual bool RemoveElements(const Ids &elementIds, const IOperationContext *operationContextPtr=nullptr)=0
virtual bool GetObjectData(const Id &objectId, DataPtr &dataPtr, const iprm::IParamsSet *dataConfigurationPtr=nullptr) const =0
virtual int GetOperationFlags(const Id &elementId=Id()) const =0
virtual bool RestoreObjects(const Ids &objectIds, const IOperationContext *operationContextPtr=nullptr)=0
virtual Id InsertNewObject(const QByteArray &typeId, const QString &name, const QString &description, const istd::IChangeable *defaultValuePtr=nullptr, const Id &proposedElementId=Id(), const idoc::IDocumentMetaInfo *dataMetaInfoPtr=nullptr, const idoc::IDocumentMetaInfo *elementMetaInfoPtr=nullptr, const IOperationContext *operationContextPtr=nullptr)=0
virtual bool SetObjectData(const Id &objectId, const istd::IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS, const IOperationContext *operationContextPtr=nullptr)=0
virtual istd::TUniqueInterfacePtr< IObjectCollection > CreateSubCollection(int offset=0, int count=-1, const iprm::IParamsSet *selectionParamsPtr=nullptr) const =0