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

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