ImagingTools Core SDK
CProductCollectionControllerComp.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// ImtCore includes
6#include <imtlic/IProductInfo.h>
7#include <imtservergql/CObjectCollectionControllerCompBase.h>
8#include <GeneratedFiles/imtlicsdl/SDL/1.0/CPP/Products.h>
9
10
11namespace imtlicgql
12{
13
14
15class CProductCollectionControllerComp: public sdl::imtlic::Products::CProductCollectionControllerCompBase
16{
17public:
18 typedef sdl::imtlic::Products::CProductCollectionControllerCompBase BaseClass;
19
20 I_BEGIN_COMPONENT(CProductCollectionControllerComp);
21 I_ASSIGN(m_licenseCollectionCompPtr, "LicenseCollection", "License collection", true, "LicenseCollection");
22 I_ASSIGN(m_featureCollectionCompPtr, "FeatureCollection", "Feature collection", true, "FeatureCollection");
23 I_ASSIGN(m_productInfoFactCompPtr, "ProductFactory", "Factory used for creation of the new product instance", true, "ProductFactory");
24 I_END_COMPONENT;
25
26protected:
27 // reimplemented (sdl::imtbase::ImtCollection::CGraphQlHandlerCompBase)
28 virtual sdl::imtbase::ImtCollection::CImportObjectPayload OnImportObject(
29 const sdl::imtbase::ImtCollection::CImportObjectGqlRequest& importObjectRequest,
30 const ::imtgql::CGqlRequest& gqlRequest,
31 QString& errorMessage) const override;
32
33 virtual void OnAfterSetObjectName(
34 const QByteArray& objectId,
35 const QString& oldName,
36 const QString& newName,
37 const imtgql::CGqlRequest& gqlRequest) const override;
38
39 // reimplemented (sdl::imtlic::Products::CProductCollectionControllerCompBase)
40 virtual bool CreateRepresentationFromObject(
41 const imtbase::IObjectCollectionIterator& objectCollectionIterator,
42 const sdl::imtlic::Products::CProductsListGqlRequest& productsListRequest,
43 sdl::imtlic::Products::CProductItem::V1_0& representationObject,
44 QString& errorMessage) const override;
45 virtual istd::IChangeableUniquePtr CreateObjectFromRepresentation(
46 const sdl::imtlic::Products::CProductData::V1_0& productDataRepresentation,
47 QByteArray& newObjectId,
48 QString& errorMessage) const override;
49 virtual bool CreateRepresentationFromObject(
50 const istd::IChangeable& data,
51 const sdl::imtlic::Products::CProductItemGqlRequest& productItemRequest,
52 sdl::imtlic::Products::CProductData::V1_0& representationPayload,
53 QString& errorMessage) const override;
54 virtual bool UpdateObjectFromRepresentationRequest(
55 const ::imtgql::CGqlRequest& rawGqlRequest,
56 const sdl::imtlic::Products::CProductUpdateGqlRequest& productUpdateRequest,
57 istd::IChangeable& object,
58 QString& errorMessage) const override;
59
60 virtual QString GetExtensionFromMimeType(const imtbase::CMimeType& mimeType) const override;
61 virtual QString GetExportFileName(const QByteArray& objectId) const override;
62
63private:
64 bool FillObjectFromRepresentation(
65 const sdl::imtlic::Products::CProductData::V1_0& representation,
66 istd::IChangeable& object,
67 QByteArray& objectId,
68 QString& errorMessage) const;
69protected:
70 I_REF(imtbase::IObjectCollection, m_licenseCollectionCompPtr);
71 I_REF(imtbase::IObjectCollection, m_featureCollectionCompPtr);
72 I_FACT(imtlic::IProductInfo, m_productInfoFactCompPtr);
73};
74
75
76} // namespace imtlicgql
77
78
Interface for accessing information about a product (software or hardware).
GraphQL API interface layer for the licensing domain model.