ImagingTools Core SDK
CFeatureCollectionControllerComp.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/CFeatureInfo.h>
7#include <GeneratedFiles/imtlicsdl/SDL/1.0/CPP/Features.h>
8
9
10namespace imtlicgql
11{
12
13
14class CFeatureCollectionControllerComp: public sdl::imtlic::Features::CFeatureCollectionControllerCompBase
15{
16public:
17 typedef sdl::imtlic::Features::CFeatureCollectionControllerCompBase BaseClass;
18
19 I_BEGIN_COMPONENT(CFeatureCollectionControllerComp);
20 I_ASSIGN(m_featureInfoFactCompPtr, "FeatureFactory", "Factory used for creation of the new feature instance", true, "FeatureFactory");
21 I_ASSIGN(m_productCollectionCompPtr, "ProductCollection", "Product collection", false, "ProductCollection");
22 I_ASSIGN(m_licenseCollectionCompPtr, "LicenseCollection", "License collection", false, "LicenseCollection");
23 I_END_COMPONENT;
24
25protected:
26 bool CreateFeatureFromRepresentationModel(
27 const sdl::imtlic::Features::CFeatureData::V1_0& featureRepresentationData,
28 const QByteArray& rootFeatureId,
29 imtlic::CFeatureInfo& featureInfo,
30 QString& errorMessage) const;
31 bool CreateRepresentationModelFromFeatureInfo(
32 const imtlic::CFeatureInfo& featureInfo,
33 sdl::imtlic::Features::CFeatureData::V1_0& featureRepresentationData,
34 QString& errorMessage) const;
35
36 // reimplemented (sdl::imtlic::Features::CFeatureCollectionControllerCompBase)
37 virtual void OnAfterRemoveElements(const QByteArrayList& elementIds, const imtgql::CGqlRequest& gqlRequest) const override;
38
39 virtual bool CreateRepresentationFromObject(
40 const imtbase::IObjectCollectionIterator& objectCollectionIterator,
41 const sdl::imtlic::Features::CFeaturesListGqlRequest& featuresListRequest,
42 sdl::imtlic::Features::CFeatureItem::V1_0& representationObject,
43 QString& errorMessage) const override;
44 virtual istd::IChangeableUniquePtr CreateObjectFromRepresentation(
45 const sdl::imtlic::Features::CFeatureData::V1_0& featureDataRepresentation,
46 QByteArray& newObjectId,
47 QString& errorMessage) const override;
48 virtual bool CreateRepresentationFromObject(
49 const istd::IChangeable& data,
50 const sdl::imtlic::Features::CGetFeatureItemGqlRequest& featureItemRequest,
51 sdl::imtlic::Features::CFeatureData::V1_0& representationPayload,
52 QString& errorMessage) const override;
53 virtual bool UpdateObjectFromRepresentationRequest(
54 const ::imtgql::CGqlRequest& rawGqlRequest,
55 const sdl::imtlic::Features::CUpdateFeatureGqlRequest& updateFeatureRequest,
56 istd::IChangeable& object,
57 QString& errorMessage) const override;
58
59private:
60 void SynchronizeProducts(const QByteArray& featureId, const imtlic::IFeatureInfo* featureInfoPtr = nullptr) const;
61 void SynchronizeLicenses(const QByteArray& featureId, const imtlic::IFeatureInfo* featureInfoPtr = nullptr) const;
62
63private:
64 I_FACT(imtlic::IFeatureInfo, m_featureInfoFactCompPtr);
65 I_REF(imtbase::IObjectCollection, m_productCollectionCompPtr);
66 I_REF(imtbase::IObjectCollection, m_licenseCollectionCompPtr);
67};
68
69
70} // namespace imtlicgql
71
72
Interface for accessing information about a feature within a product.
GraphQL API interface layer for the licensing domain model.