CNodeObject




Option Explicit
Private m_Val As Variant
Private m_Tag As Variant
Private m_Nodes As CNodes
Private m_Key As String
Private WithEvents oSink As CNodeSink
Private oParentSink As CNodeSink

Friend Property Let Key(ByVal sKey As String)
m_Key = sKey
End Property

Public Property Get Key() As String
Key = m_Key
End Property

Public Property Get Parent() As CNode
If oParentSink Is Nothing Then
Set Parent = Nothing
Else
Set Parent = oParentSink.RequestParent()
End If
End Property

Public Property Get Nodes() As CNodes
Set Nodes = m_Nodes
End Property

Friend Property Set ParentSink(Sink As CNodeSink)
Set oParentSink = Sink
End Property

Public Property Get Tag() As Variant
If IsObject(m_Tag) Then
Set Value = m_Tag
Else
Value = m_Tag
End If
End Property

Public Property Let Tag(ByVal vTag As Variant)
m_Tag = vTag
End Property

Public Property Set Tag(ByVal vTag As Variant)
Set m_Tag = vTag
End Property

Public Property Get Value() As Variant
If IsObject(m_Val) Then
Set Value = m_Val
Else
Value = m_Val
End If
End Property

Public Property Let Value(ByVal Value As Variant)
m_Val = Value
End Property

Public Property Set Value(ByVal Value As Variant)
Set m_Val = Value
End Property

Private Sub Class_Initialize()
Set m_Nodes = New CNodes
Set oSink = New CNodeSink

Set m_Nodes.ParentSink = oSink
End Sub

Private Sub Class_Terminate()
Set m_Nodes = Nothing
Set oSink = Nothing
Set oParentSink = Nothing
End Sub

Private Sub oSink_IDRequest(oParent As CNode)
Set oParent = Me
End Sub










( cnodeobject.html )- by Paolo Puglisi - Modifica del 17/12/2023