home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / RefSet.4gl < prev    next >
Text File  |  1996-07-02  |  2KB  |  72 lines

  1. -----------------------------------------------------------------------------
  2. --
  3. -- Copyright (c) 1994 by Westmount Technology B.V., Delft, The Netherlands.
  4. --
  5. -- This software is furnished under a license and may be used only in
  6. -- accordance with the terms of such license and with the inclusion of
  7. -- the above copyright notice. This software or any other copies thereof
  8. -- may not be provided or otherwise made available to any other person.
  9. -- No title to and ownership of the software is hereby transferred.
  10. --
  11. -- The information in this software is subject to change without notice
  12. -- and should not be construed as a commitment by Westmount Technology B.V.
  13. --
  14. -----------------------------------------------------------------------------
  15. --
  16. --    File        : @(#)RefSet.4gl    1.1
  17. --    Author        :
  18. --    Original date    : 19-10-1994
  19. --    Description    : A 'simple' set of object references
  20. --
  21. -----------------------------------------------------------------------------
  22.  
  23. INCLUDE "RefSet.4gh"
  24.  
  25.  
  26. FUNCTION RefSet::RefSet()
  27.     LET s = NEW ORefSet()
  28.     LET curr = 0
  29. END FUNCTION
  30.  
  31. FUNCTION RefSet::add(ref ixObject) RETURNING BOOLEAN
  32.     IF isPresent(ref) THEN
  33.         RETURN FALSE
  34.     END IF
  35.  
  36.     IF s.append(ref) == 0 THEN
  37.         RETURN FALSE
  38.     END IF
  39.  
  40.     RETURN TRUE
  41. END FUNCTION
  42.  
  43. FUNCTION RefSet::remove(ref ixObject) RETURNING VOID
  44.     CALL s.remove(ref)
  45. END FUNCTION
  46.  
  47. FUNCTION RefSet::isPresent(ref ixObject) RETURNING BOOLEAN
  48.     VARIABLE i INTEGER
  49.  
  50.     FOR i = 1 TO s.getCount()
  51.         IF ref == s.get(i) THEN
  52.             RETURN TRUE
  53.         END IF
  54.     END FOR
  55.  
  56.     RETURN FALSE
  57. END FUNCTION
  58.  
  59. FUNCTION RefSet::size() RETURNING INTEGER
  60.     RETURN s.getCount()
  61. END FUNCTION
  62.  
  63. FUNCTION RefSet::first() RETURNING ixObject
  64.     LET curr = 1
  65.     RETURN s.get(curr)
  66. END FUNCTION
  67.  
  68. FUNCTION RefSet::next() RETURNING ixObject
  69.     LET curr = curr + 1
  70.     RETURN s.get(curr)
  71. END FUNCTION
  72.