XII Release 0.1.0
Loading...
Searching...
No Matches
xiiAbstractProperty Class Referenceabstract

#include <AbstractProperty.h>

Inheritance diagram for xiiAbstractProperty:
[legend]

Public Member Functions

 xiiAbstractProperty (xiiStringView sPropertyName)
 The constructor must get the name of the property. The string must be a compile-time constant.
virtual ~xiiAbstractProperty ()
 Copyright (c) Theophilus Eriata. All Rights Reserved.
xiiStringView GetPropertyName () const
 Returns the name of the property.
virtual const xiiRTTI * GetSpecificType () const =0
virtual xiiPropertyCategory::Enum GetCategory () const =0
 Returns the category of this property. Cast this property to the next higher type for more information.
const xiiBitflags< xiiPropertyFlags > & GetFlags () const
 Returns the flags of the property.
xiiAbstractProperty * AddFlags (xiiBitflags< xiiPropertyFlags > flags)
 Adds flags to the property. Returns itself to allow to be called during initialization.
xiiAbstractProperty * AddAttributes (xiiPropertyAttribute *pAttrib1, xiiPropertyAttribute *pAttrib2=nullptr, xiiPropertyAttribute *pAttrib3=nullptr, xiiPropertyAttribute *pAttrib4=nullptr, xiiPropertyAttribute *pAttrib5=nullptr, xiiPropertyAttribute *pAttrib6=nullptr)
xiiArrayPtr< const xiiPropertyAttribute *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.

Protected Attributes

xiiBitflags< xiiPropertyFlags > m_Flags
xiiStringView m_sPropertyName
xiiHybridArray< const xiiPropertyAttribute *, 2U, xiiStaticAllocatorWrapper > m_Attributes

Detailed Description

This is the base interface for all properties in the reflection system. It provides enough information to cast to the next better base class.

Member Function Documentation

◆ AddAttributes()

xiiAbstractProperty * xiiAbstractProperty::AddAttributes ( xiiPropertyAttribute * pAttrib1,
xiiPropertyAttribute * pAttrib2 = nullptr,
xiiPropertyAttribute * pAttrib3 = nullptr,
xiiPropertyAttribute * pAttrib4 = nullptr,
xiiPropertyAttribute * pAttrib5 = nullptr,
xiiPropertyAttribute * pAttrib6 = nullptr )
inline

Adds attributes to the property. Returns itself to allow to be called during initialization. Allocate an attribute using standard 'new'.

◆ GetCategory()

virtual xiiPropertyCategory::Enum xiiAbstractProperty::GetCategory ( ) const
pure virtual

Returns the category of this property. Cast this property to the next higher type for more information.

Implemented in xiiAbstractArrayProperty, xiiAbstractConstantProperty, xiiAbstractFunctionProperty, xiiAbstractMapProperty, xiiAbstractMemberProperty, and xiiAbstractSetProperty.

◆ GetSpecificType()


The documentation for this class was generated from the following files:
  • /home/runner/work/XII/XII/Source/Engine/Foundation/Reflection/Implementation/AbstractProperty.h
  • /home/runner/work/XII/XII/Source/Engine/Foundation/Reflection/Implementation/AbstractProperty.cpp
  • /home/runner/work/XII/XII/Source/Engine/Foundation/Reflection/Implementation/PropertyAttributes.h