About This Code
Brief Description:
CollectionEnumeration class
Contributor:
Johan Känngård
Notes Version:
R4.x, R5.x, R6.x
Last Modified:
17 Dec 2002
OpenNTF Disclaimer
All of the program code and information presented in the OpenNTF.org Code Bin are provided "as-is", and should be used at your own risk. OpenNTF.org make no express or implied warranty about anything in the Code Bin, and OpenNTF.org will not be responsible or liable for any damage caused by the use or misuse of anything from this site. OpenNTF.org makes no guarantees about anything. Please thoroughly test all of the knowledge and code you find here before you attempt to use them in your production environment.
Code / Description
An Enumeration for collection classes, like NotesDocumentCollection. Must be subclassed to be used.
Public Class CollectionEnumeration As Enumeration
' Abstract class, must be subclassed
col As Variant
index As Integer
isFirst As Variant
element As Variant
Public Sub new(col As Variant)
' Creates a new CollectionEnumeration with the specifed collection as
' source
Set Me.col = col
index = 0
isFirst = True
If hasMoreElements() Then Set element = getFirst(col)
End Sub
Public Function size() As Integer
' Returns the number of entries in this Enumeration.
size = col.count
End Function
Public Function hasMoreElements() As Variant
hasMoreElements = False
If col Is Nothing Then Exit Function
If col.count < 1 Then Exit Function
If index >= col.count Then Exit Function
hasMoreElements = True
End Function
Public Function nextElement() As Variant
If isFirst Then isFirst = False Else Set element = getNext(col, element)
Set nextElement = element
index = index + 1
End Function
Private Function getFirst(col As Variant) As Variant
' Gets the first element in the collection
' Must be implemented in subclasses
Error 2000, Typename(Me) & "." & Lsi_info(2) & " not implemented"
End Function
Private Function getNext(col As Variant, previous As Variant) As Variant
' Gets the next element in the collection
' Must be implemented in subclasses
Error 2000, Typename(Me) & "." & Lsi_info(2) & " not implemented"
End Function
End Class
Usage / Example