home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / persgcobje.tcl < prev    next >
Text File  |  1997-06-12  |  2KB  |  81 lines

  1. # Copyright (c) 1996 by Cayenne Software Inc.
  2. #
  3. # This software is furnished under a license and may be used only in
  4. # accordance with the terms of such license and with the inclusion of
  5. # the above copyright notice. This software or any other copies thereof
  6. # may not be provided or otherwise made available to any other person.
  7. # No title to and ownership of the software is hereby transferred.
  8. #
  9. # The information in this software is subject to change without notice
  10. # and should not be construed as a commitment by Cayenne Software Inc
  11. #
  12. #---------------------------------------------------------------------------
  13. #
  14. #       File            : @(#)persgcobje.tcl    /main/titanic/1
  15. #       Author          : H. Broeze
  16. #       Original date   : 6 Sep 1996
  17. #       Description     :
  18. #
  19. #---------------------------------------------------------------------------
  20. #
  21. # @(#)persgcobje.tcl    /main/titanic/1 12 Jun 1997 Copyright 1996 Cayenne Software
  22.  
  23. # Start user added include file section
  24. # End user added include file section
  25.  
  26.  
  27. Class PersGCObject : {GCObject} {
  28.     constructor
  29.     method destructor
  30.     method save
  31.     method getInstanceName
  32.     method getDefinition
  33.     method getState
  34. }
  35.  
  36. constructor PersGCObject {class this} {
  37.     set this [GCObject::constructor $class $this]
  38.     # Start constructor user section
  39.     # End constructor user section
  40.     return $this
  41. }
  42.  
  43. method PersGCObject::destructor {this} {
  44.     # Start destructor user section
  45.     # End destructor user section
  46. }
  47.  
  48. method PersGCObject::save {this fd} {
  49.     puts $fd [$this getDefinition]
  50.     puts $fd [$this getState]
  51. }
  52.  
  53. method PersGCObject::getInstanceName {this} {
  54.     return [string tolower [$this objType]]
  55. }
  56.  
  57. method PersGCObject::getDefinition {this {currentClass ""}} {
  58.         if {$currentClass == "" } {
  59.             set currentClass [$this objType]
  60.         }
  61.         return "set [$this getInstanceName] \[$currentClass new \] \n"
  62.  
  63. }
  64.  
  65. method PersGCObject::getState {this {currentClass ""}} {
  66.     if {$currentClass == "" } {
  67.         set currentClass [$this objType]
  68.     }
  69.     set state ""
  70.     foreach  attr [$currentClass info attributes] {
  71.         set state "${state}\$[$this getInstanceName] $attr \"[$this $attr]\" \n"
  72.     }
  73.     foreach superClass [$currentClass info supers] {
  74.         set state "${state}[$this getState $superClass]"
  75.     }
  76.     return $state
  77. }
  78.  
  79. # Do not delete this line -- regeneration end marker
  80.  
  81.