6#include <imtbase/IObjectCollection.h>
7#include <imtbase/TIdentifiableWrap.h>
8#include <imtlic/IFeatureInfo.h>
15class CFeatureInfo:
virtual public IFeatureInfo
20 void SetFeatureId(
const QByteArray& featureId);
21 void SetFeatureName(
const QString& featureName);
22 void SetFeatureDescription(
const QString& description);
23 void SetOptional(
bool optional);
24 void SetParentFeature(
const IFeatureInfo* parentFeaturePtr);
25 void SetDependencies(
const QByteArrayList& dependencies);
26 void SetIsPermission(
bool isPermission);
29 virtual QByteArray GetFeatureId()
const override;
30 virtual QString GetFeatureName()
const override;
31 virtual QString GetFeatureDescription()
const override;
32 virtual bool IsOptional()
const override;
33 virtual bool IsPermission()
const override;
34 virtual const IFeatureInfo* GetParentFeature()
const override;
35 virtual QByteArrayList GetSubFeatureIds(
int maxDepth = -1)
const override;
36 virtual FeatureInfoPtr GetSubFeature(
const QByteArray& subfeatureId,
int maxDepth = -1)
const override;
37 virtual const FeatureInfoList& GetSubFeatures()
const override;
38 virtual bool InsertSubFeature(FeatureInfoPtr subFeatureInfo)
override;
39 virtual void DeleteSubFeature(
const QByteArray& subFeatureId)
override;
40 virtual QByteArrayList GetDependencies()
const override;
43 virtual QByteArray GetFactoryId()
const override;
46 virtual bool Serialize(iser::IArchive& archive)
override;
49 virtual int GetSupportedOperations()
const override;
50 virtual bool CopyFrom(
const IChangeable&
object, CompatibilityMode mode = CM_WITHOUT_REFS)
override;
51 virtual bool IsEqual(
const IChangeable&
object)
const override;
52 virtual istd::IChangeableUniquePtr CloneMe(CompatibilityMode mode = CM_WITHOUT_REFS)
const override;
53 virtual bool ResetData(CompatibilityMode mode = CM_WITHOUT_REFS)
override;
56 void GetSubFeaturesRecursive(
const FeatureInfoList& subFeatures,
int maxDepth,
int currentDepth, QByteArrayList& featureList)
const;
57 IFeatureInfo::FeatureInfoPtr GetSubFeatureRecursive(
const FeatureInfoList& subFeatures,
const QByteArray& subfeatureId,
int maxDepth,
int currentDepth = 1)
const;
62 QString m_description;
65 QByteArrayList m_dependencies;
66 FeatureInfoList m_subFeatures;
67 const IFeatureInfo* m_parentFeaturePtr;
71typedef imtbase::TIdentifiableWrap<CFeatureInfo> CIdentifiableFeatureInfo;
Core licensing domain model providing feature-based product licensing and instance management.