ezEngine Release 26.3
Loading...
Searching...
No Matches
ezAbstractMapProperty Class Referenceabstract

Base class for properties that represent maps or key-value collections. More...

#include <AbstractProperty.h>

Inheritance diagram for ezAbstractMapProperty:

Public Member Functions

 ezAbstractMapProperty (const char *szPropertyName)
 Passes the property name through to ezAbstractProperty.
 
virtual ezPropertyCategory::Enum GetCategory () const override
 Returns ezPropertyCategory::Map.
 
virtual bool IsEmpty (const void *pInstance) const =0
 Returns whether the set is empty.
 
virtual void Clear (void *pInstance) const =0
 Clears the set.
 
virtual void Insert (void *pInstance, const char *szKey, const void *pObject) const =0
 Inserts the target of pObject into the set.
 
virtual void Remove (void *pInstance, const char *szKey) const =0
 Removes the target of pObject from the set.
 
virtual bool Contains (const void *pInstance, const char *szKey) const =0
 Returns whether the target of pObject is in the set.
 
virtual bool GetValue (const void *pInstance, const char *szKey, void *pObject) const =0
 Writes element at index uiIndex to the target of pObject.
 
virtual void GetKeys (const void *pInstance, ezHybridArray< ezString, 16 > &out_keys) const =0
 Writes the content of the set to out_keys.
 
- Public Member Functions inherited from ezAbstractProperty
 ezAbstractProperty (const char *szPropertyName)
 The constructor must get the name of the property. The string must be a compile-time constant.
 
const char * GetPropertyName () const
 Returns the name of the property.
 
virtual const ezRTTIGetSpecificType () const =0
 Returns the type information of the constant property. Use this to cast this property to a specific version of ezTypedConstantProperty.
 
const ezBitflags< ezPropertyFlags > & GetFlags () const
 Returns the flags of the property.
 
ezAbstractPropertyAddFlags (ezBitflags< ezPropertyFlags > flags)
 Adds flags to the property. Returns itself to allow to be called during initialization.
 
ezAbstractPropertyAddAttributes (ezPropertyAttribute *pAttrib1, ezPropertyAttribute *pAttrib2=nullptr, ezPropertyAttribute *pAttrib3=nullptr, ezPropertyAttribute *pAttrib4=nullptr, ezPropertyAttribute *pAttrib5=nullptr, ezPropertyAttribute *pAttrib6=nullptr)
 Adds attributes to the property. Returns itself to allow to be called during initialization. Allocate an attribute using standard 'new'.
 
ezArrayPtr< const ezPropertyAttribute *const > GetAttributes () const
 Returns the array of property attributes.
 
template<typename Type >
const Type * GetAttributeByType () const
 Returns the first attribute that derives from the given type, or nullptr if nothing is found.
 

Additional Inherited Members

- Protected Attributes inherited from ezAbstractProperty
ezBitflags< ezPropertyFlagsm_Flags
 
const char * m_szPropertyName
 
ezHybridArray< const ezPropertyAttribute *, 2, ezStaticsAllocatorWrapperm_Attributes
 

Detailed Description

Base class for properties that represent maps or key-value collections.

Map properties provide associative container semantics with string keys and typed values. They support standard map operations: key-based access, insertion, removal, and enumeration.

Supported map types:

  • ezMap (tree-based, ordered by key)
  • ezHashTable (hash-based, unordered)
  • Custom containers implementing the map interface

Key restrictions:

  • Keys are always strings (const char*)
  • Keys must be valid UTF-8 strings
  • Key comparison is case-sensitive

Value type restrictions:

  • Standard types (int, float, string, etc.)
  • Pointer types (for object references)
  • Complex types supported through reflection

Performance characteristics:

  • GetValue/Contains: O(log n) for ezMap, O(1) average for ezHashTable
  • Insert/Remove: O(log n) for ezMap, O(1) average for ezHashTable
  • GetKeys: O(n) - creates a copy of all key strings

Member Function Documentation

◆ Clear()

virtual void ezAbstractMapProperty::Clear ( void *  pInstance) const
pure virtual

◆ Contains()

virtual bool ezAbstractMapProperty::Contains ( const void *  pInstance,
const char *  szKey 
) const
pure virtual

◆ GetCategory()

virtual ezPropertyCategory::Enum ezAbstractMapProperty::GetCategory ( ) const
inlineoverridevirtual

◆ GetKeys()

virtual void ezAbstractMapProperty::GetKeys ( const void *  pInstance,
ezHybridArray< ezString, 16 > &  out_keys 
) const
pure virtual

◆ GetValue()

virtual bool ezAbstractMapProperty::GetValue ( const void *  pInstance,
const char *  szKey,
void *  pObject 
) const
pure virtual

◆ Insert()

virtual void ezAbstractMapProperty::Insert ( void *  pInstance,
const char *  szKey,
const void *  pObject 
) const
pure virtual

◆ IsEmpty()

virtual bool ezAbstractMapProperty::IsEmpty ( const void *  pInstance) const
pure virtual

◆ Remove()

virtual void ezAbstractMapProperty::Remove ( void *  pInstance,
const char *  szKey 
) const
pure virtual

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