home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / ClassSet.cls < prev    next >
Text File  |  1997-11-06  |  3KB  |  136 lines

  1. VERSION 1.0 CLASS
  2. BEGIN
  3.   MultiUse = -1  'True
  4. END
  5. Attribute VB_Name = "ClassSet"
  6. '
  7. ' File          : ClassSet.cls
  8. '
  9. ' Project       : 
  10. ' Configuration : 
  11. ' Phase         : 
  12. ' System        : 
  13. '
  14. Option Explicit
  15.  
  16.  
  17. ' Inheritance attributes
  18.  
  19.  
  20. ' Association attributes
  21.  
  22.  
  23. ' User defined attributes
  24.  
  25. Private quals_ As Collection
  26.  
  27. Private contents_ As Collection
  28.  
  29.  
  30. ' User defined methods
  31.  
  32. Public Sub ClassSet_Constructor()
  33.     ' Start user section
  34.     Set contents = New Collection
  35.     Set quals    = New Collection
  36.     ' End user section
  37. End Sub
  38.  
  39. Private Sub Class_Terminate()
  40.     ' Start user section
  41.     ' End user section
  42. End Sub
  43.  
  44. Public Sub Class_Initialize()
  45.     ClassSet_Constructor 
  46. End Sub
  47.  
  48. Public Function Count() As Integer
  49.         Count = contents.Count
  50. End Function
  51.  
  52. Public Sub Add(obj As Object, Optional key As Variant)
  53.         If IsMissing(key) Then
  54.                 contents.Add obj
  55.                 quals.Add "Nokey"
  56.         Else
  57.                 contents.Add obj, key
  58.                 quals.Add key
  59.         End If
  60. End Sub
  61.  
  62. Public Function item(Index As Variant) As Object
  63.         Set item = contents.item(Index)
  64. End Function
  65.  
  66. Public Function key(Index As Variant) As Variant
  67.         Set key = quals.item(Index)
  68. End Function
  69.  
  70. Public Sub Remove(item As Object)
  71.         Dim ii As Integer
  72.         For ii = 1 To contents.Count
  73.                If item Is contents.item(ii) Then
  74.                       contents.Remove (ii)
  75.                       quals.Remove (ii)
  76.                       Exit Sub
  77.                End If
  78.         Next ii
  79. End Sub
  80.  
  81. Public Sub RemoveUsingKey(key As Variant)
  82.         Dim ii As Integer
  83.         For ii = 1 To quals.Count
  84.                If key = quals.item(ii) Then
  85.                       contents.Remove (ii)
  86.                       quals.Remove (ii)
  87.                       Exit Sub
  88.                End If
  89.         Next ii
  90. End Sub
  91.  
  92. Public Function Contains(item As Object) As Boolean
  93.         Dim ii As Integer
  94.         For ii = 1 To contents.Count
  95.               If item Is contents.item(ii) Then
  96.                       Contains = True
  97.                       Exit Function
  98.               End If
  99.         Next ii
  100.         Contains = False
  101. End Function
  102.  
  103. Public Function ContainsKey(key As Variant) As Boolean
  104.         Dim ii As Integer
  105.         For ii = 1 To quals.Count
  106.               If key = quals.item(ii) Then
  107.                       ContainsKey = True
  108.                       Exit Function
  109.               End If
  110.         Next ii
  111.         ContainsKey = False
  112. End Function
  113.  
  114.  
  115. ' Access methods
  116.  
  117. Private Property Get quals() As Collection
  118.     Set quals = quals_
  119. End Property
  120.  
  121. Private Property Set quals(x As Collection)
  122.     Set quals_ = x
  123. End Property
  124.  
  125. Private Property Get contents() As Collection
  126.     Set contents = contents_
  127. End Property
  128.  
  129. Private Property Set contents(x As Collection)
  130.     Set contents_ = x
  131. End Property
  132.  
  133.  
  134. ' Association methods
  135.  
  136.