XII Release 0.1.0
Loading...
Searching...
No Matches
xiiVariantSubAccessor Class Reference

#include <VariantSubAccessor.h>

Inheritance diagram for xiiVariantSubAccessor:
[legend]

Public Member Functions

 xiiVariantSubAccessor (xiiObjectAccessorBase *pSource, const xiiAbstractProperty *pProp)
void SetSubItems (const xiiMap< const xiiDocumentObject *, xiiVariant > &subItemMap)
const xiiAbstractProperty * GetRootProperty () const
 Returns the property this accessor wraps.
xiiInt32 GetDepth () const
 How many level deep the view is inside the property.
xiiResult GetPath (const xiiDocumentObject *pObject, xiiDynamicArray< xiiVariant > &out_path) const
virtual xiiStatus GetValue (const xiiDocumentObject *pObject, const xiiAbstractProperty *pProp, xiiVariant &out_value, xiiVariant index=xiiVariant()) override
virtual xiiStatus SetValue (const xiiDocumentObject *pObject, const xiiAbstractProperty *pProp, const xiiVariant &newValue, xiiVariant index=xiiVariant()) override
virtual xiiStatus InsertValue (const xiiDocumentObject *pObject, const xiiAbstractProperty *pProp, const xiiVariant &newValue, xiiVariant index=xiiVariant()) override
virtual xiiStatus RemoveValue (const xiiDocumentObject *pObject, const xiiAbstractProperty *pProp, xiiVariant index=xiiVariant()) override
virtual xiiStatus MoveValue (const xiiDocumentObject *pObject, const xiiAbstractProperty *pProp, const xiiVariant &oldIndex, const xiiVariant &newIndex) override
virtual xiiStatus GetCount (const xiiDocumentObject *pObject, const xiiAbstractProperty *pProp, xiiInt32 &out_iCount) override
virtual xiiStatus GetKeys (const xiiDocumentObject *pObject, const xiiAbstractProperty *pProp, xiiDynamicArray< xiiVariant > &out_keys) override
virtual xiiStatus GetValues (const xiiDocumentObject *pObject, const xiiAbstractProperty *pProp, xiiDynamicArray< xiiVariant > &out_values) override
Public Member Functions inherited from xiiObjectProxyAccessor
 xiiObjectProxyAccessor (xiiObjectAccessorBase *pSource)
xiiObjectAccessorBase * GetSourceAccessor () const
virtual void StartTransaction (xiiStringView sDisplayString) override
virtual void CancelTransaction () override
virtual void FinishTransaction () override
virtual void BeginTemporaryCommands (xiiStringView sDisplayString, bool bFireEventsWhenUndoingTempCommands=false) override
virtual void CancelTemporaryCommands () override
virtual void FinishTemporaryCommands () override
virtual const xiiDocumentObject * GetObject (const xiiUuid &object) override
virtual xiiStatus AddObject (const xiiDocumentObject *pParent, const xiiAbstractProperty *pParentProp, const xiiVariant &index, const xiiRTTI *pType, xiiUuid &inout_objectGuid) override
virtual xiiStatus RemoveObject (const xiiDocumentObject *pObject) override
virtual xiiStatus MoveObject (const xiiDocumentObject *pObject, const xiiDocumentObject *pNewParent, const xiiAbstractProperty *pParentProp, const xiiVariant &index) override
Public Member Functions inherited from xiiObjectAccessorBase
const xiiDocumentObjectManager * GetObjectManager () const
xiiStatus GetValueByName (const xiiDocumentObject *pObject, xiiStringView sProp, xiiVariant &out_value, xiiVariant index=xiiVariant())
xiiStatus SetValueByName (const xiiDocumentObject *pObject, xiiStringView sProp, const xiiVariant &newValue, xiiVariant index=xiiVariant())
xiiStatus InsertValueByName (const xiiDocumentObject *pObject, xiiStringView sProp, const xiiVariant &newValue, xiiVariant index=xiiVariant())
xiiStatus RemoveValueByName (const xiiDocumentObject *pObject, xiiStringView sProp, xiiVariant index=xiiVariant())
xiiStatus MoveValueByName (const xiiDocumentObject *pObject, xiiStringView sProp, const xiiVariant &oldIndex, const xiiVariant &newIndex)
xiiStatus GetCountByName (const xiiDocumentObject *pObject, xiiStringView sProp, xiiInt32 &out_iCount)
xiiStatus AddObjectByName (const xiiDocumentObject *pParent, xiiStringView sParentProp, const xiiVariant &index, const xiiRTTI *pType, xiiUuid &inout_objectGuid)
xiiStatus MoveObjectByName (const xiiDocumentObject *pObject, const xiiDocumentObject *pNewParent, xiiStringView sParentProp, const xiiVariant &index)
xiiStatus GetKeysByName (const xiiDocumentObject *pObject, xiiStringView sProp, xiiDynamicArray< xiiVariant > &out_keys)
xiiStatus GetValuesByName (const xiiDocumentObject *pObject, xiiStringView sProp, xiiDynamicArray< xiiVariant > &out_values)
const xiiDocumentObject * GetChildObjectByName (const xiiDocumentObject *pObject, xiiStringView sProp, xiiVariant index)
xiiStatus ClearByName (const xiiDocumentObject *pObject, xiiStringView sProp)
const xiiAbstractProperty * FindPropertyByName (const xiiDocumentObject *pObject, xiiStringView sProp)
template<typename T>
T Get (const xiiDocumentObject *pObject, const xiiAbstractProperty *pProp, xiiVariant index=xiiVariant())
 Copyright (c) Theophilus Eriata. All Rights Reserved.
template<typename T>
T GetByName (const xiiDocumentObject *pObject, xiiStringView sProp, xiiVariant index=xiiVariant())
xiiInt32 GetCount (const xiiDocumentObject *pObject, const xiiAbstractProperty *pProp)
xiiInt32 GetCountByName (const xiiDocumentObject *pObject, xiiStringView sProp)
Public Member Functions inherited from xiiReflectedClass
virtual const xiiRTTI * GetDynamicRTTI () const
bool IsInstanceOf (const xiiRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
template<typename T>
XII_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.

Additional Inherited Members

Static Public Member Functions inherited from xiiNoBase
static const xiiRTTI * GetStaticRTTI ()
Protected Member Functions inherited from xiiObjectAccessorBase
 xiiObjectAccessorBase (const xiiDocumentObjectManager *pManager)
void FireDocumentObjectStructureEvent (const xiiDocumentObjectStructureEvent &e)
void FireDocumentObjectPropertyEvent (const xiiDocumentObjectPropertyEvent &e)
Protected Attributes inherited from xiiObjectProxyAccessor
xiiObjectAccessorBase * m_pSource = nullptr
Protected Attributes inherited from xiiObjectAccessorBase
const xiiDocumentObjectManager * m_pConstManager

Detailed Description

Accessor for a sub-tree on an xiiVariant property. The tools foundation code uses an xiiDocumentObject, one of its xiiAbstractProperty and an optional xiiVariant index to reference to properties. Any deeper hierarchies must be built from additional objects. This principle prevents the GUI to reference anything inside an xiiVariant that stores an VariantArray or VariantDictionary as xiiVariant is a pure value type and cannot store additional objects on the tool side. To work around this, this class creates a view one level deeper into an xiiVariant. This is done by calling SetSubItems which for each object in the map moves the view into the sub-tree referenced by the given value of the map.

Constructor & Destructor Documentation

◆ xiiVariantSubAccessor()

xiiVariantSubAccessor::xiiVariantSubAccessor ( xiiObjectAccessorBase * pSource,
const xiiAbstractProperty * pProp )

Constructor

Parameters
pSourceThe original accessor that is going to be proxied. By chaining this class an xiiVariant can be explored deeper and deeper.
pPropThe xiiVariant property that is going to be proxied. Only this property is allowed to be accessed by the accessor functions.

Member Function Documentation

◆ GetCount()

xiiStatus xiiVariantSubAccessor::GetCount ( const xiiDocumentObject * pObject,
const xiiAbstractProperty * pProp,
xiiInt32 & out_iCount )
overridevirtual

Reimplemented from xiiObjectProxyAccessor.

◆ GetKeys()

xiiStatus xiiVariantSubAccessor::GetKeys ( const xiiDocumentObject * pObject,
const xiiAbstractProperty * pProp,
xiiDynamicArray< xiiVariant > & out_keys )
overridevirtual

Reimplemented from xiiObjectProxyAccessor.

◆ GetPath()

xiiResult xiiVariantSubAccessor::GetPath ( const xiiDocumentObject * pObject,
xiiDynamicArray< xiiVariant > & out_path ) const

Builds a path up the hierarchy of wrapped xiiVariantSubAccessor objects to determine the path to the current sub-tree of the xiiVariant.

Parameters
pObjectThe object for which the path should be computed
out_pathAn array of indices that has to be followed from the root of the xiiVariant to each the current sub-tree view.
Returns
Returns XII_FAILURE if pObject is not known.

◆ GetValue()

xiiStatus xiiVariantSubAccessor::GetValue ( const xiiDocumentObject * pObject,
const xiiAbstractProperty * pProp,
xiiVariant & out_value,
xiiVariant index = xiiVariant() )
overridevirtual

Reimplemented from xiiObjectProxyAccessor.

◆ GetValues()

xiiStatus xiiVariantSubAccessor::GetValues ( const xiiDocumentObject * pObject,
const xiiAbstractProperty * pProp,
xiiDynamicArray< xiiVariant > & out_values )
overridevirtual

Reimplemented from xiiObjectProxyAccessor.

◆ InsertValue()

xiiStatus xiiVariantSubAccessor::InsertValue ( const xiiDocumentObject * pObject,
const xiiAbstractProperty * pProp,
const xiiVariant & newValue,
xiiVariant index = xiiVariant() )
overridevirtual

Reimplemented from xiiObjectProxyAccessor.

◆ MoveValue()

xiiStatus xiiVariantSubAccessor::MoveValue ( const xiiDocumentObject * pObject,
const xiiAbstractProperty * pProp,
const xiiVariant & oldIndex,
const xiiVariant & newIndex )
overridevirtual

Reimplemented from xiiObjectProxyAccessor.

◆ RemoveValue()

xiiStatus xiiVariantSubAccessor::RemoveValue ( const xiiDocumentObject * pObject,
const xiiAbstractProperty * pProp,
xiiVariant index = xiiVariant() )
overridevirtual

Reimplemented from xiiObjectProxyAccessor.

◆ SetSubItems()

void xiiVariantSubAccessor::SetSubItems ( const xiiMap< const xiiDocumentObject *, xiiVariant > & subItemMap)

Sets the sub-tree indices for the selected objects.

Parameters
subItemMapObject to index map. Note that as this is in the ToolsFoundation it cannot use the xiiPropertySelection class.

◆ SetValue()

xiiStatus xiiVariantSubAccessor::SetValue ( const xiiDocumentObject * pObject,
const xiiAbstractProperty * pProp,
const xiiVariant & newValue,
xiiVariant index = xiiVariant() )
overridevirtual

Reimplemented from xiiObjectProxyAccessor.


The documentation for this class was generated from the following files:
  • /home/runner/work/XII/XII/Source/Tools/Libs/ToolsFoundation/Object/VariantSubAccessor.h
  • /home/runner/work/XII/XII/Source/Tools/Libs/ToolsFoundation/Object/Implementation/VariantSubAccessor.cpp