6#include <QtCore/QJsonObject>
7#include <QtCore/QJsonArray>
10#include <iprm/CParamsSet.h>
13#include <imtbase/IObjectCollection.h>
14#include <imtbase/IObjectCollectionIterator.h>
15#include <imtbase/IOperationContext.h>
16#include <imtbase/IDocumentChangeGenerator.h>
17#include <imtbase/IOperationContextController.h>
18#include <imtservergql/CPermissibleGqlRequestHandlerComp.h>
19#include <imtserverapp/CTimeFilterParamRepresentationController.h>
20#include <imtgql/IGqlRequestExtractor.h>
21#include <imtbase/IComplexCollectionFilter.h>
31class CLegacyObjectCollectionControllerCompBase:
32 public imtgql::IGqlRequestExtractor,
33 public imtservergql::CPermissibleGqlRequestHandlerComp
36 typedef imtservergql::CPermissibleGqlRequestHandlerComp BaseClass;
38 I_BEGIN_BASE_COMPONENT(CLegacyObjectCollectionControllerCompBase);
39 I_REGISTER_INTERFACE(imtgql::IGqlRequestExtractor)
40 I_ASSIGN_MULTI_0(m_replaceableFieldsAttrPtr,
"ReplaceableFilterFields",
"List of filter fields to be replaced",
false);
41 I_ASSIGN_MULTI_0(m_replacementFieldsAttrPtr,
"ReplacementFilterFields",
"List of filter fields to replace with",
false);
42 I_ASSIGN(m_objectCollectionCompPtr,
"ObjectCollection",
"Object collection",
true,
"ObjectCollection");
43 I_ASSIGN(m_documentChangeGeneratorCompPtr,
"DocumentChangeGenerator",
"Change generator for the collection object",
false,
"DocumentChangeGenerator");
44 I_ASSIGN(m_headersProviderCompPtr,
"HeadersProvider",
"Headers provider",
false,
"HeadersProvider");
45 I_ASSIGN(m_translationManagerCompPtr,
"TranslationManager",
"Translation manager",
false,
"TranslationManager");
46 I_ASSIGN(m_operationContextControllerCompPtr,
"OperationContextController",
"Operation context controller",
false,
"OperationContextController");
47 I_ASSIGN_MULTI_0(m_objectTypeIdAttrPtr,
"ObjectTypeIds",
"Object type IDs",
false);
48 I_ASSIGN_MULTI_0(m_objectFactCompPtr,
"CollectionObjectFactory",
"Collection object factories",
false);
49 I_ASSIGN_MULTI_0(m_mimeTypeAttrPtr,
"MimeType",
"Mime type for the import/export object",
false);
50 I_ASSIGN_MULTI_0(m_importExportObjectFactCompPtr,
"ImportExportObjectFactory",
"Object factory for the import/export object",
false);
51 I_ASSIGN_MULTI_0(m_filePersistenceCompPtr,
"FilePersistence",
"File persistence for the import/export object",
false);
74 OT_USER_OPERATION = 1000
78 virtual QJsonObject CreateInternalResponse(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const override;
81 virtual istd::IChangeableUniquePtr ExtractObject(
const imtgql::CGqlRequest& gqlRequest, QByteArray& newObjectId, QString& errorMessage)
const override;
86 virtual bool GetOperationFromRequest(
const imtgql::CGqlRequest& gqlRequest, imtgql::CGqlParamObject& gqlObject, QString& errorMessage,
int& operationType)
const;
87 virtual QByteArray GetObjectIdFromInputParams(
const imtgql::CGqlParamObject &inputParams)
const;
88 virtual QByteArray GetObjectIdFromRequest(
const imtgql::CGqlRequest& gqlRequest)
const;
89 virtual QJsonObject GetObject(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
90 virtual QJsonObject InsertObject(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
91 virtual QJsonObject UpdateObject(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
92 virtual QJsonObject UpdateCollection(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
93 virtual QJsonObject RenameObject(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
94 virtual QJsonObject SetObjectDescription(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
95 virtual QJsonObject ListObjects(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
96 virtual QJsonObject GetElementsCount(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
97 virtual QJsonObject GetElementIds(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
98 virtual QJsonObject DeleteObject(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
99 virtual QJsonObject GetHeaders(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
100 virtual QJsonObject GetTreeItemModel(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
101 virtual QJsonObject GetDependencies(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
103 virtual QJsonObject GetMetaInfo(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
104 virtual QJsonObject GetInfo(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
105 virtual QJsonObject GetDataMetaInfo(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
106 virtual QJsonObject GetObjectHistory(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
107 virtual QJsonObject ImportObject(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
108 virtual QJsonObject ExportObject(
const imtgql::CGqlRequest& gqlRequest, QString& errorMessage)
const;
110 virtual bool ConvertObject(
const istd::IChangeable& source, istd::IChangeable& target)
const;
111 virtual int GetObjectTypeIdIndex(
const QByteArray& typeId)
const;
112 virtual int GetMimeTypeIndex(
const QString& mimeType)
const;
117 virtual bool SetupGqlItem(
118 const imtgql::CGqlRequest& gqlRequest,
119 QJsonObject& itemObj,
120 const QByteArray& collectionId,
121 QString& errorMessage)
const;
123 virtual bool SetupGqlItem(
124 const imtgql::CGqlRequest& gqlRequest,
125 QJsonObject& itemObj,
127 QString& errorMessage)
const;
132 virtual QByteArrayList GetInformationIds(
const imtgql::CGqlRequest& gqlRequest,
const QByteArray& objectId)
const;
137 virtual QVariant GetObjectInformation(
const QByteArray& informationId,
const QByteArray& objectId)
const;
142 QByteArray GetObjectTypeIdFromRequest(
const imtgql::CGqlRequest& gqlRequest)
const;
147 virtual bool CreateRepresentationFromObject(
148 const istd::IChangeable& data,
149 const QByteArray& objectTypeId,
150 const imtgql::CGqlRequest& gqlRequest,
151 QJsonObject& dataObj,
152 QString& errorMessage)
const;
157 [[deprecated]]
virtual istd::IChangeableUniquePtr CreateObjectFromInputParams(
const QList<imtgql::CGqlParamObject>& inputParams, QByteArray &objectId, QString &name, QString &description, QString& errorMessage)
const;
162 virtual istd::IChangeableUniquePtr CreateObjectFromRequest(
const imtgql::CGqlRequest& gqlRequest, QByteArray& newObjectId, QString& name, QString& description, QString& errorMessage)
const;
167 virtual void PrepareFilters(
const imtgql::CGqlRequest& gqlRequest,
const imtgql::CGqlParamObject& viewParamsGql, iprm::CParamsSet& filterParams)
const;
172 virtual void SetAdditionalFilters(
const imtgql::CGqlRequest& gqlRequest,
const imtgql::CGqlParamObject& viewParamsGql, iprm::CParamsSet* filterParams)
const;
177 virtual void SetObjectFilter(
const imtgql::CGqlRequest& gqlRequest,
const imtbase::CTreeItemModel& objectFilterModel, iprm::CParamsSet& filterParams)
const;
180 virtual void OnComponentCreated()
override;
182 virtual istd::IChangeableUniquePtr CreateObject(
const QByteArray& typeId);
185 QMap<QByteArray, QByteArray> m_fieldReplacementMap;
188 I_MULTIATTR(QByteArray, m_replaceableFieldsAttrPtr);
189 I_MULTIATTR(QByteArray, m_replacementFieldsAttrPtr);
190 I_REF(imtbase::IDocumentChangeGenerator, m_documentChangeGeneratorCompPtr);
192 I_REF(imtgql::IGqlRequestHandler, m_headersProviderCompPtr);
193 I_REF(imtbase::IOperationContextController, m_operationContextControllerCompPtr);
195 I_MULTIATTR(QByteArray, m_objectTypeIdAttrPtr);
196 I_MULTIFACT(istd::IChangeable, m_objectFactCompPtr);
198 I_MULTIATTR(QString, m_mimeTypeAttrPtr);
199 I_MULTIFACT(istd::IChangeable, m_importExportObjectFactCompPtr);
200 I_MULTIREF(ifile::IFilePersistence, m_filePersistenceCompPtr);
202 imtserverapp::CTimeFilterParamRepresentationController m_timeFilterParamRepresentationController;