home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / persobject.tcl < prev    next >
Text File  |  1997-06-12  |  2KB  |  80 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            : @(#)persobject.tcl    /main/titanic/1
  15. #       Author          : H. Broeze
  16. #       Original date   : 6 Sep 1996
  17. #       Description     :
  18. #
  19. #---------------------------------------------------------------------------
  20. #
  21. # @(#)persobject.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 PersObject : {Object} {
  28.     constructor
  29.     method destructor
  30.     method save
  31.     method getInstanceName
  32.     method getDefinition
  33.     method getState
  34. }
  35.  
  36. constructor PersObject {class this name} {
  37.     set this [Object::constructor $class $this $name]
  38.     # Start constructor user section
  39.     # End constructor user section
  40.     return $this
  41. }
  42.  
  43. method PersObject::destructor {this} {
  44.     # Start destructor user section
  45.     # End destructor user section
  46. }
  47.  
  48. method PersObject::save {this fd } {
  49.     puts $fd [$this getDefinition]
  50.     puts $fd [$this getState]
  51. }
  52.  
  53. method PersObject::getInstanceName {this} {
  54.     return $this
  55. }
  56.  
  57. method PersObject::getDefinition {this {currentClass ""}} {
  58.         if {$currentClass == "" } {
  59.             set currentClass [$this objType]
  60.         }
  61.         return "$currentClass new [$this getInstanceName] \n"
  62. }
  63.  
  64. method PersObject::getState {this {currentClass ""}} {
  65.     if {$currentClass == "" } {
  66.         set currentClass [$this objType]
  67.     }
  68.     set state ""
  69.     foreach  attr [$currentClass info attributes] {
  70.         set state "${state}[$this getInstanceName] $attr \"[$this $attr]\" \n"
  71.     }
  72.     foreach superClass [$currentClass info supers] {
  73.         set state "${state}[$this getState $superClass]"
  74.     }
  75.     return $state
  76. }
  77.  
  78. # Do not delete this line -- regeneration end marker
  79.  
  80.