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

  1. -----------------------------------------------------------------------------
  2. --
  3. -- Copyright (c) 1995 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        : @(#)RSetDict.4gl    1.1
  17. --    Author        :
  18. --    Original date    : 3-2-1995
  19. --    Description    : A simple RSetDict (map of key-value pairs)
  20. --              Key and value are ixObject references
  21. --
  22. -----------------------------------------------------------------------------
  23.  
  24. INCLUDE "RSetDict.4gh"
  25.  
  26.  
  27. FUNCTION RSetDict::RSetDict()
  28.     LET dict = NEW RefDict()
  29. END FUNCTION
  30.  
  31. FUNCTION RSetDict::add(key ixObject, value ixObject) RETURNING BOOLEAN
  32.     VARIABLE theRefSet RefSet = dict.get(key) CAST RefSet
  33.     IF theRefSet IS NULL THEN
  34.         LET theRefSet = NEW RefSet()
  35.         CALL dict.set(key, theRefSet)
  36.     END IF
  37.     RETURN theRefSet.add(value)
  38. END FUNCTION
  39.  
  40. FUNCTION RSetDict::get(key ixObject) RETURNING RefSet
  41.     RETURN dict.get(key) CAST RefSet
  42. END FUNCTION
  43.  
  44. FUNCTION RSetDict::remove(key ixObject, value ixObject) RETURNING VOID
  45.     VARIABLE theRefSet RefSet = dict.get(key) CAST RefSet
  46.     IF theRefSet IS NULL THEN
  47.         RETURN
  48.     END IF
  49.     CALL theRefSet.remove(value)
  50. END FUNCTION
  51.  
  52. FUNCTION RSetDict::isPresent(key ixObject) RETURNING BOOLEAN
  53.     RETURN dict.isPresent(key)
  54. END FUNCTION
  55.  
  56. FUNCTION RSetDict::size() RETURNING INTEGER
  57.     RETURN dict.size()
  58. END FUNCTION
  59.  
  60. FUNCTION RSetDict::firstKey() RETURNING ixObject
  61.     RETURN dict.firstKey()
  62. END FUNCTION
  63.  
  64. FUNCTION RSetDict::nextKey() RETURNING ixObject
  65.     RETURN dict.nextKey()
  66. END FUNCTION
  67.  
  68. FUNCTION RSetDict::firstValue() RETURNING RefSet
  69.     RETURN dict.firstValue() CAST RefSet
  70. END FUNCTION
  71.  
  72. FUNCTION RSetDict::nextValue() RETURNING RefSet
  73.     RETURN dict.nextValue() CAST RefSet
  74. END FUNCTION
  75.