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

  1. $PBExportHeader$classset.sru
  2. $PBExportComments$A set (actually a list) containing setelements
  3. forward
  4. global type classset from nonvisualobject
  5. end type
  6. end forward
  7.  
  8. global type classset from nonvisualobject
  9. end type
  10. global classset classset
  11.  
  12. type variables
  13. PRIVATE integer count = 0
  14. PRIVATE setelement firstElement, currentElement
  15. end variables
  16.  
  17. forward prototypes
  18. public function boolean contains (powerobject obj)
  19. public subroutine add (powerobject obj)
  20. public function powerobject get (integer index)
  21. public subroutine remove (powerobject obj)
  22. public subroutine remove (integer index)
  23. public function integer size ()
  24. public function powerobject firstobject ()
  25. public function powerobject currentobject ()
  26. public function powerobject nextobject ()
  27. end prototypes
  28.  
  29. public function boolean contains (powerobject obj);// is obj present in list
  30. if (firstElement.contains(obj) > 0) then
  31.     return TRUE
  32. end if
  33. return FALSE
  34. end function
  35.  
  36. public subroutine add (powerobject obj);// add obj to end of list
  37. if isNull(obj) then 
  38.     return 
  39. end if
  40. count = count + firstElement.add(obj)
  41. end subroutine
  42.  
  43. public function powerobject get (integer index);// return object on position index
  44. setelement FoundElem
  45. FoundElem = firstElement.get(index)
  46. if isNull(FoundElem) then
  47.     powerobject nullobj
  48.     setNull(nullobj)
  49.     return nullobj
  50. end if
  51. return FoundElem.contents
  52. end function
  53.  
  54. public subroutine remove (powerobject obj);// remove obj from list
  55. count = count - firstElement.remove(obj)
  56. end subroutine
  57.  
  58. public subroutine remove (integer index);// remove object on position index
  59. count = count - firstElement.remove(index)
  60. end subroutine
  61.  
  62. public function integer size ();// return size of list
  63. return count
  64. end function
  65.  
  66. public function powerobject firstobject ();// return first object in dictionary
  67. currentElement = firstElement.nextElement
  68. if isNull(currentElement) then
  69.     powerobject nullobj
  70.     setNull(nullobj)
  71.     return nullobj
  72. end if
  73. return currentElement.contents
  74. end function
  75.  
  76. public function powerobject currentobject ();// return current object in dictionary
  77. if isNull(currentElement) then
  78.     powerobject nullobj
  79.     setNull(nullobj)
  80.     return nullobj
  81. end if
  82. return currentElement.contents
  83. end function
  84.  
  85. public function powerobject nextobject ();// return next object in dictionary
  86. if not isNull(currentElement) then
  87.     currentElement = currentElement.nextElement
  88. end if
  89. if isNull(currentElement) then
  90.     powerobject nullobj
  91.     setNull(nullobj)
  92.     return nullobj
  93. end if
  94. return currentElement.contents
  95. end function
  96.  
  97. on classset.create
  98. TriggerEvent( this, "constructor" )
  99. end on
  100.  
  101. on classset.destroy
  102. TriggerEvent( this, "destructor" )
  103. end on
  104.  
  105. event constructor;// always add an empty/dummy first element
  106. firstelement = create setelement
  107. end event
  108.  
  109. event destructor;// destroy firstElement
  110. destroy firstElement
  111. end event
  112.  
  113.