ACF $AcfVersion:0$
Public Types | Public Member Functions | List of all members
iprm::INameParam Class Referenceabstract

Interface for an object containing a name. More...

#include <INameParam.h>

Inheritance diagram for iprm::INameParam:
iser::ISerializable istd::IChangeable istd::IPolymorphic ibase::ICommand iprm::CNameParam iprm::CParamsManagerCompBase::ParamSet iprm::CParamsManagerCompBase::UuidParam ibase::CUuidComp iprm::CNameParamComp iqtgui::CHierarchicalCommand

Public Types

enum  ChangeFlags { CF_RENAME = 0x15345e0 }
 Data model change notification flags. More...
 
- Public Types inherited from istd::IChangeable
enum  ChangeFlags {
  CF_ACF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING ,
  CF_DELEGATED , CF_NO_UNDO
}
 Data model change notification flags. More...
 
enum  SupportedOperations {
  SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 ,
  SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4
}
 Flags for supported operations. More...
 
enum  CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT }
 Control how relationship betweeen objects are interpreted. More...
 
typedef QMultiMap< QByteArray, QVariant > ChangeInfoMap
 

Public Member Functions

virtual const QString & GetName () const =0
 Get the object name.
 
virtual void SetName (const QString &name)=0
 Set the object name.
 
virtual bool IsNameFixed () const =0
 Return true if the name is fixed (non-editable).
 
- Public Member Functions inherited from iser::ISerializable
virtual bool Serialize (IArchive &archive)=0
 Load or store state of this object as a archive stream.
 
virtual quint32 GetMinimalVersion (int versionId) const
 Get minimal needed version to correct storing of this data.
 
- Public Member Functions inherited from istd::IChangeable
virtual int GetSupportedOperations () const
 Get set of flags for supported operations.
 
virtual bool CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS)
 Copy this object from another one.
 
virtual bool IsEqual (const IChangeable &object) const
 Compare this object with another object.
 
virtual istd::TUniqueInterfacePtr< istd::IChangeableCloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const
 Make a copy of this object.
 
virtual bool ResetData (CompatibilityMode mode=CM_WITHOUT_REFS)
 Reset data to its default state.
 
virtual void BeginChanges (const ChangeSet &changeSet)
 Starts the change transaction.
 
virtual void EndChanges (const ChangeSet &changeSet)
 Ends the change transaction.
 
virtual void BeginChangeGroup (const ChangeSet &changeSet)
 Starts group of changes.
 
virtual void EndChangeGroup (const ChangeSet &changeSet)
 Ends group of changes.
 
- Public Member Functions inherited from istd::IPolymorphic
virtual ~IPolymorphic ()
 

Additional Inherited Members

- Static Public Member Functions inherited from istd::IChangeable
static const ChangeSetGetNoChanges ()
 Get empty set of changes.
 
static const ChangeSetGetAnyChange ()
 Get anonymous change set.
 
static const ChangeSetGetAllChanges ()
 Get anonymous change set.
 
static const ChangeSetGetDelegatedChanges ()
 Get delegated change set.
 
- Protected Member Functions inherited from istd::IChangeable
virtual void OnBeginChanges ()
 Callback function for begin change event.
 
virtual void OnEndChanges (const ChangeSet &changeSet)
 Callback function for end change event.
 

Detailed Description

Interface for an object containing a name.

INameParam stores a human-readable name as a QString. It supports fixed (read-only) and editable names, making it suitable for both system-defined and user-defined naming scenarios.

Usage Example

// Create a name parameter
iprm::CNameParam nameParam;
// Set name
nameParam.SetName("My Configuration");
// Get name
QString name = nameParam.GetName();
qDebug() << "Name:" << name;
// Check if name is fixed (read-only)
bool isFixed = nameParam.IsNameFixed();
if (!isFixed)
{
nameParam.SetName("Updated Configuration");
}
Implementation of a named object over iprm::INameParam interface.
Definition CNameParam.h:17
virtual void SetName(const QString &name) override
Set the object name.
virtual const QString & GetName() const override
Get the object name.
virtual bool IsNameFixed() const override
Return true if the name is fixed (non-editable).

Change Notification Example

// Monitoring name changes through change notification
// (Requires observer implementation)
// When name changes, CF_RENAME flag will be set in the change set
if (changeSet.Contains(iprm::INameParam::CF_RENAME))
{
QString newName = nameParam.GetName();
qDebug() << "Name changed to:" << newName;
}
@ CF_RENAME
Name has been changed.
Definition INameParam.h:78
Note
The documentation mentions this interface should be renamed to ITextParam, but currently serves as a named object interface.
Inherits from iser::ISerializable for persistence support.
See also
CNameParam, ITextParam, IIdParam

Definition at line 66 of file INameParam.h.

Member Enumeration Documentation

◆ ChangeFlags

Data model change notification flags.

Used with the observer pattern to detect when the name changes.

See also
istd::IChangeable::ChangeSet
Enumerator
CF_RENAME 

Name has been changed.

Definition at line 76 of file INameParam.h.

Member Function Documentation

◆ GetName()

virtual const QString & iprm::INameParam::GetName ( ) const
pure virtual

Get the object name.

Returns
Reference to the current name as QString.
const QString& name = nameParam.GetName();
qDebug() << "Name:" << name;
See also
SetName

Implemented in iprm::CNameParam, iprm::CParamsManagerCompBase::UuidParam, and iprm::CParamsManagerCompBase::ParamSet.

◆ IsNameFixed()

virtual bool iprm::INameParam::IsNameFixed ( ) const
pure virtual

Return true if the name is fixed (non-editable).

Indicates whether the name can be changed by users. Fixed names are typically used for system-defined or read-only objects.

Returns
true if name cannot be modified, false if name is editable.
bool canRename = !nameParam.IsNameFixed();
if (canRename)
{
// Allow user to edit name
nameParam.SetName(userInput);
}
See also
SetName

Implemented in iprm::CNameParam, iprm::CNameParamComp, iprm::CParamsManagerCompBase::UuidParam, and iprm::CParamsManagerCompBase::ParamSet.

◆ SetName()

virtual void iprm::INameParam::SetName ( const QString &  name)
pure virtual

Set the object name.

Changes the name of this parameter.

Parameters
nameNew name value.
Note
If IsNameFixed() returns true, setting the name may be restricted.
Triggers CF_RENAME notification on change.
if (!nameParam.IsNameFixed())
{
nameParam.SetName("New Name");
}
See also
GetName, IsNameFixed, CF_RENAME

Implemented in iprm::CNameParam, iprm::CNameParamComp, iprm::CParamsManagerCompBase::UuidParam, iprm::CParamsManagerCompBase::ParamSet, and iqtgui::CHierarchicalCommand.


The documentation for this class was generated from the following file: