6#include <ifile/IFilePersistence.h>
7#include <ilog/TLoggerCompWrap.h>
10#include <imtbase/IObjectCollection.h>
11#include <imtbase/IStructuredObjectCollectionController.h>
18class CObjectCollectionBasedPersistenceComp:
19 public ilog::CLoggerComponentBase,
20 virtual public ifile::IFilePersistence
23 typedef ilog::CLoggerComponentBase BaseClass;
25 I_BEGIN_COMPONENT(CObjectCollectionBasedPersistenceComp);
26 I_REGISTER_INTERFACE(ifile::IFilePersistence);
27 I_REGISTER_INTERFACE(ifile::IFileTypeInfo);
28 I_ASSIGN(m_objectTypeIdAttrPtr,
"ObjectTypeId",
"Object type ID",
true,
"ObjectTypeId");
29 I_ASSIGN(m_commonDescriptionAttrPtr,
"CommonDescription",
"Common description",
true,
"CommonDescription");
30 I_ASSIGN_MULTI_0(m_extensionAttrPtr,
"FileExtension",
"File extensions supported by this persistence",
false);
31 I_ASSIGN_MULTI_0(m_extensionDescAttrPtr,
"FileExtensionDescription",
"Descriptions for supported extensions",
false);
32 I_ASSIGN(m_collectionCompPtr,
"ObjectCollection",
"Object collection",
false,
"ObjectCollection");
34 I_ASSIGN(m_collectionInserterCompPtr,
"StructuredObjectCollectionInserter",
"Structured object collection inserter",
false,
"StructuredObjectCollectionInserter");
35 I_ASSIGN(m_fileTypeInfoCompPtr,
"SourceFileTypeInfo",
"FileTypeInfo used as source",
false,
"FileTypeInfo");
39 virtual bool IsOperationSupported(
40 const istd::IChangeable* dataObjectPtr,
41 const QString* filePathPtr =
nullptr,
43 bool beQuiet =
true)
const override;
44 virtual OperationState LoadFromFile(
45 istd::IChangeable& data,
46 const QString& filePath = QString(),
47 ibase::IProgressManager* progressManagerPtr =
nullptr)
const override;
48 virtual OperationState SaveToFile(
49 const istd::IChangeable& data,
50 const QString& filePath = QString(),
51 ibase::IProgressManager* progressManagerPtr =
nullptr)
const override;
54 virtual bool GetFileExtensions(QStringList& result,
const istd::IChangeable* dataObjectPtr =
nullptr,
int flags = -1,
bool doAppend =
false)
const override;
55 virtual QString GetTypeDescription(
const QString* extensionPtr =
nullptr)
const override;
58 int GetExtensionCount()
const;
61 I_ATTR(QByteArray, m_objectTypeIdAttrPtr);
62 I_TEXTATTR(m_commonDescriptionAttrPtr);
63 I_MULTIATTR(QString, m_extensionAttrPtr);
64 I_MULTITEXTATTR(m_extensionDescAttrPtr);
67 I_REF(imtbase::IStructuredObjectCollectionController, m_collectionInserterCompPtr);
68 I_REF(ifile::IFileTypeInfo, m_fileTypeInfoCompPtr);