ImagingTools Core SDK
CAddressControllerComp.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QJsonObject>
7
8// ImtCore includes
9#include <imtservergql/CObjectCollectionControllerCompBase.h>
10#include <imtgeo/IAddressElementInfo.h>
11
12#undef GetObject
13
14namespace imtgeo
15{
16
17
18
19class CAddressControllerComp: public imtservergql::CObjectCollectionControllerCompBase
20{
21public:
22 typedef imtservergql::CObjectCollectionControllerCompBase BaseClass;
23
24 I_BEGIN_COMPONENT(CAddressControllerComp);
25 I_ASSIGN(m_addressInfoFactCompPtr, "AddressFactory", "Factory used for creation of the new address element", true, "AddressFactory");
26 I_ASSIGN(m_addressTypeCollectionPtr, "AddressTypeComponent", "The string address type collection", false, "AddressTypeCollection");
27 I_END_COMPONENT;
28
29protected:
30 virtual QJsonObject GetObject(const imtgql::CGqlRequest& gqlRequest, QString& errorMessage) const override;
31 virtual QJsonObject InsertObject(const imtgql::CGqlRequest& gqlRequest, QString& errorMessage) const override;
32 virtual istd::IChangeableUniquePtr CreateObjectFromRequest(
33 const imtgql::CGqlRequest& gqlRequest,
34 QByteArray& objectId,
35 QString& errorMessage) const override;
36 virtual QJsonObject UpdateObject(const imtgql::CGqlRequest& gqlRequest, QString& errorMessage) const override;
37
38private:
39 I_FACT(imtgeo::IAddressElementInfo, m_addressInfoFactCompPtr);
40 I_REF(imtbase::IObjectCollection, m_addressTypeCollectionPtr);
41};
42
43
44} // namespace npgql
45
46