In This Topic
    ItemTypeCol.cls
    In This Topic
    VERSION 1.0 CLASS
    BEGIN   
      MultiUse = -1  'True
      Persistable = 0  'NotPersistable
      DataBindingBehavior = 0  'vbNone
      DataSourceBehavior  = 0  'vbNone
      MTSTransactionMode  = 0  'NotAnMTSObject
    END
    Attribute VB_Name = "ItemTypeCol"
    Attribute VB_GlobalNameSpace = False
    Attribute VB_Creatable = True
    Attribute VB_PredeclaredId = False
    Attribute VB_Exposed = True
    Option Explicit
    '**********************************************************************************************
    '* Copyright (c) 2001-2023 Liquid Technologies Limited. All rights reserved.
    '* See www.liquid-technologies.com for product details.
    '*
    '* Please see products End User License Agreement for distribution permissions.
    '*
    '* WARNING: THIS FILE IS GENERATED
    '* Changes made outside of ##HAND_CODED_BLOCK_START blocks will be overwritten
    '*
    '* Generation  :  by Liquid XML Data Binder 19.0.14.11049
    '* Using Schema: SimpleHierarchy.xsd
    '**********************************************************************************************
    Private m_elementName         as String
    Private m_elementNamespaceUri As String 
    Private m_minOccurs           as Long
    Private m_maxOccurs           as Long
    Private m_coll                as Collection
    
    ' ##HAND_CODED_BLOCK_START ID="Additional Variable Declarations"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS
    
    ' Add Additional Variable Declarations...
    
    ' ##HAND_CODED_BLOCK_END ID="Additional Variable Declarations"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS
    
    Public Event OnCollectionChange()
    
    Implements LtXmlComLib20.XmlCollectionBase
    Implements LtXmlComLib20.XmlObjectBase
    
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''''' Collection Methods ''''''''''''''''''''''''''''''''''''''''
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    
    ' Summary:
    '       Adds a ItemType enumeration to the collection
    ' Param name="newEnum":
    '       The object to be copied into the collection
    ' Returns:
    '       The copied object (that was added to the collection)
    ' Remarks:
    '       The object newProperty, is copied, and the copy is added to the
    '       collection.
    public Function Add(ByVal newCls as SimpleHiarchyLib.ItemType, optional Before, optional After) as SimpleHiarchyLib.ItemType 
        CastToXmlObjectBase(newCls).PrivateSetElementName m_elementName
    '   LtXmlComLib20.XmlObjectBaseHelper.Throw_IfElementNameDiffers newCls, m_elementName
        m_coll.Add newCls, , Before, After
        RaiseEvent OnCollectionChange
        Set Add = newCls
    End Function 
            
    ' Summary:
    '       Adds a ItemType object to the collection
    ' Returns:
    '       The newly created ItemType object
    ' Remarks:
    '       A new ItemType object is created and added to the collection
    '       the new object is then returned.
    public Function AddNew() as SimpleHiarchyLib.ItemType 
        Set AddNew = CF.CreateClass(ClsName_ItemType)
        CastToXmlObjectBase(AddNew).PrivateSetElementName m_elementName
        m_coll.Add AddNew
        RaiseEvent OnCollectionChange
    End Function
    
    ' Summary:
    '       Gets a ItemType object from the collection
    ' Param name="index":
    '       The 0 based index of the item to retreve
    ' Returns:
    '       The object at the given location in the collection
    public property Get Item(byval index as long) as SimpleHiarchyLib.ItemType 
    Attribute Item.VB_UserMemId = 0
        Set Item = m_Coll(index)
    End Property
    
    Public Property Get Count() As Long
         Count = m_coll.Count
    End Property
    
    
    Public Sub Remove(ByVal index As Long)
        m_coll.Remove index
        RaiseEvent OnCollectionChange
    End Sub
    
    Public Sub Clear()
        while m_coll.Count > 0
            Remove 1
        wend
    End Sub
    
    Public Property Get NewEnum() As IUnknown
    Attribute NewEnum.VB_UserMemId = -4
    Attribute NewEnum.VB_MemberFlags = "40"
         Set NewEnum = m_Coll.[_NewEnum]
    End Property
    
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''''''' Implementation of Class'''' '''''''''''''''''''''''''''''''''
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
        
    Private Sub Class_Initialize()
        set m_coll = new Collection
    End Sub
    
    Private Sub Class_Terminate()
        Set m_coll = nothing
    End Sub
    
    
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''''' Implementation of XmlObjectBase '''''''''''''''''''''''''''''''''
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    
    Private Property Get XmlObjectBase_ElementName() As String
        XmlObjectBase_ElementName = m_elementName
    End Property
    
    Private Function XmlObjectBase_IsSuitableSubstitution(ByVal InterfaceName As String) As Boolean
        XmlObjectBase_IsSuitableSubstitution = false
        if InterfaceName = "ItemType" _
            then XmlObjectBase_IsSuitableSubstitution = true
    End Function
    
    Private Sub XmlObjectBase_PrivateSetElementName(ByVal vNewValue As String)
        m_ElementName = vNewValue
    End Sub
    
    Private Sub XmlObjectBase_AttributesToXmlInt(ByVal xmlOut As LtXmlComLib20.XmlTextWriter, ByVal oContext As LtXmlComLib20.XmlSerializationContext)
        dim oCls as LtXmlComLib20.XmlObjectBase
        
        for each oCls in m_coll
            CastToXmlObjectBase(oCls).AttributesToXmlInt xmlOut, oContext
        next 
    End Sub
    
    Private Sub XmlObjectBase_ToXmlInt(ByVal xmlOut As LtXmlComLib20.XmlTextWriter, ByVal bRegisterNamespaces As Boolean, ByVal NamespaceURI As String, ByVal oContext As LtXmlComLib20.XmlSerializationContext, ByVal isOptionalChoice As Boolean)
        dim oCls as LtXmlComLib20.XmlObjectBase
        
        XmlCollectionBase_ValidateCount oContext
        
        for each oCls in m_coll
            CastToXmlObjectBase(oCls).ToXmlInt xmlOut, false, NamespaceUri, oContext, isOptionalChoice
        next 
    End Sub
    
    Private Function XmlObjectBase_FromXmlInt(ByVal xmlParent As MSXML2.IXMLDOMElement, ByVal xmlChild As MSXML2.IXMLDOMElement, ByVal oContext As LtXmlComLib20.XmlSerializationContext, ByVal isOptionalChoice As Boolean) As MSXML2.IXMLDOMElement
        Dim newObj as SimpleHiarchyLib.ItemType 
        ' go through the nodes until we run out of ones that match
        do while not xmlChild is nothing
            if xmlChild.NodeType = MSXML2.NODE_ELEMENT then
                ' Stop reading when we hit an element we can't deal with
                if LtXmlComLib20.XmlGeneratedClassHelper.DoesElementNameMatch(oContext, xmlChild, m_elementName, m_elementNamespaceUri) = False then exit do
                Set newObj = CF.CreateNamedClass(ClsName_ItemType, m_elementName)
                CastToXmlObjectBase(newObj).FromXmlInt xmlChild, LtXmlComLib20.XmlObjectBaseHelper.FindFirstSliblingElement(xmlChild.FirstChild), oContext, isOptionalChoice
    
                ' Add new item to the collection
                m_coll.Add newObj
                RaiseEvent OnCollectionChange
            end if
            
            ' Move to next node
            Set xmlChild = LtXmlComLib20.XmlObjectBaseHelper.MoveNextSiblingElement(xmlChild)
        loop 
        
        Set XmlObjectBase_FromXmlInt = xmlChild
    End Function
    
    
    Private Property Get XmlObjectBase_TargetNamespace() As String
        XmlObjectBase_TargetNamespace = ""
    End Property
    
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    '''''''''''''''''''''''''' Implementation of XmlCollectionBase '''''''''''''''''''''''''''''''
    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
    
    ' we don't want the users just creating these. They need to 
    ' be initialize with the name of the element that they are
    ' going to represent in the XML document. This information
    ' requires knowledge of the schema, we are trying to 
    ' prevent the user from having to know anything about that. 
    Private Sub XmlCollectionBase_Init(ByVal strElementName As String, ByVal strElementNamespaceUri As String, ByVal iMinOccurs As Long, ByVal iMaxOccurs As Long)
        m_elementName          = strElementName
        m_elementNamespaceUri  = strElementNamespaceUri
        m_minOccurs            = iMinOccurs
        m_maxOccurs            = iMaxOccurs
    End Sub
    
    Private Sub XmlCollectionBase_ValidateCount(ByVal oContext As XmlSerializationContext)
        XmlObjectBaseHelper.ValidateCountHelper oContext, m_coll, m_minOccurs, m_maxOccurs, m_ElementName
    End Sub
    
    Private Property Get XmlCollectionBase_MinOccurs() As Long
        XmlCollectionBase_MinOccurs = m_minOccurs
    End Property
    
    ' ##HAND_CODED_BLOCK_START ID="Additional Methods/Properties"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS
    
    ' Add Additional Methods/Properties Here...
    
    ' ##HAND_CODED_BLOCK_END ID="Additional Methods/Properties"## DO NOT MODIFY ANYTHING OUTSIDE OF THESE TAGS