arrayIterator
Public Class ArrayIterator
' Iterator for a LotusScript array / Variant
a As Variant
ix As Long
Public Sub new(a As Variant)
If Not Isarray(a) Then Error ErrTypeMismatch, "No array"
Me.a = a
ix = 0
End Sub
Private Function size() As Integer
size = Ubound(a) - Lbound(a) + 1
End Function
Public Function hasNext() As Variant
hasNext = ix =< size()
End Function
Public Function next() As Variant
If Not hasNext() _
Then Error ErrIllegalOperation, "No more elements"
If Isobject(a(ix)) Then Set Me.next = a(ix) Else Me.next = a(ix)
ix = ix + 1
End Function
Public Sub remove()
Error ErrIllegalOperation, "Operation not supported"
End Sub
End Class
' Iterator for a LotusScript array / Variant
a As Variant
ix As Long
Public Sub new(a As Variant)
If Not Isarray(a) Then Error ErrTypeMismatch, "No array"
Me.a = a
ix = 0
End Sub
Private Function size() As Integer
size = Ubound(a) - Lbound(a) + 1
End Function
Public Function hasNext() As Variant
hasNext = ix =< size()
End Function
Public Function next() As Variant
If Not hasNext() _
Then Error ErrIllegalOperation, "No more elements"
If Isobject(a(ix)) Then Set Me.next = a(ix) Else Me.next = a(ix)
ix = ix + 1
End Function
Public Sub remove()
Error ErrIllegalOperation, "Operation not supported"
End Sub
End Class