|
ImagingTools Core SDK
|
Interface for accessing information about a feature within a product. More...
#include <IFeatureInfo.h>
Inherits iser::IObject.
Inherited by imtlic::CFeatureInfo [virtual].
Public Member Functions | |
| virtual QByteArray | GetFeatureId () const =0 |
| virtual QString | GetFeatureName () const =0 |
| virtual QString | GetFeatureDescription () const =0 |
| virtual bool | IsOptional () const =0 |
| virtual bool | IsPermission () const =0 |
| virtual const IFeatureInfo * | GetParentFeature () const =0 |
| virtual QByteArrayList | GetSubFeatureIds (int maxDepth=-1) const =0 |
| virtual FeatureInfoPtr | GetSubFeature (const QByteArray &subfeatureId, int maxDepth=-1) const =0 |
| virtual const FeatureInfoList & | GetSubFeatures () const =0 |
| virtual bool | InsertSubFeature (FeatureInfoPtr subFeatureInfo)=0 |
| virtual void | DeleteSubFeature (const QByteArray &subFeatureId)=0 |
| virtual QByteArrayList | GetDependencies () const =0 |
Interface for accessing information about a feature within a product.
A Feature represents an individual capability or functionality within a product. Features form the atomic units that define what a product can do. They can be organized hierarchically and can have dependencies on other features.
Features are "unlocked" through License Definitions - each license specifies which features it enables when activated.
Features as Capabilities:**
Organized in hierarchies for complex products
Feature Hierarchy Example:**
Optional vs. Mandatory:**
Example: Core editing (mandatory), advanced analytics (optional)
Permission vs. Capability:**
Features can depend on other features:
When checking if a feature is available:
Features support parent-child relationships:
Benefits of hierarchies:
Features support meta-information for persistence:
Creating a Feature:**
Building Feature Hierarchy:**
Setting Dependencies:**
Features are unlocked through licenses:
Application checks feature availability before use
Example License Configuration:**
Definition at line 174 of file IFeatureInfo.h.
|
pure virtual |
Remove a sub-feature from this feature's children.
| subFeatureId | ID of the sub-feature to remove |
|
pure virtual |
Get the list of features that this feature depends on. These dependencies must be satisfied for this feature to function properly.
|
pure virtual |
Get the detailed feature description.
|
pure virtual |
Get the unique feature identifier.
|
pure virtual |
Get the human-readable feature name.
|
pure virtual |
Get the parent feature in the feature hierarchy. Features can form tree structures with parent-child relationships.
|
pure virtual |
Get a specific sub-feature by ID.
| subfeatureId | ID of the sub-feature to find |
| maxDepth | Maximum traversal depth for the search (-1 for unlimited) |
|
pure virtual |
Get IDs of all sub-features (children) in the hierarchy.
| maxDepth | Maximum traversal depth (-1 for unlimited depth) |
|
pure virtual |
Get the direct child features of this feature.
|
pure virtual |
Add a sub-feature as a child of this feature.
| subFeatureInfo | Feature to be added as a child |
|
pure virtual |
Check if this feature is optional.
Important:** Optional features represent functionality that can be sold optionally. They are NOT mandatory for the core functionality of the product and can be purchased separately by customers based on their needs. This allows flexible product configurations where customers only pay for the features they require.
|
pure virtual |
Check if this feature represents a permission.
Important:** Permission features are NOT sellable features. They represent access control rights or operational permissions within the application, not product capabilities. Permissions control what users can do with the application itself.
Example:** A "Close" permission would control whether the application can be exited, which is an operational right, not a product feature that can be sold.