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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)genlink.tcl    /main/titanic/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)genlink.tcl    /main/titanic/2   13 Oct 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class GenLink : {Object} {
  16.     method destructor
  17.     constructor
  18.     method getDocStructure
  19.     method match
  20.     method getStructureLine
  21.     attribute document
  22. }
  23.  
  24. method GenLink::destructor {this} {
  25.     # Start destructor user section
  26.     # End destructor user section
  27. }
  28.  
  29. constructor GenLink {class this name document} {
  30.     set this [Object::constructor $class $this $name]
  31.     $this document $document
  32.     # Start constructor user section
  33.     # End constructor user section
  34.     return $this
  35. }
  36.  
  37. method GenLink::getDocStructure {this fileTypes {prefix ""}} {
  38.  
  39.     set structure ""
  40.     set first 1
  41.  
  42.     set sv [[$this document] documentedSystem]
  43.  
  44.     if [$sv isNil] {
  45.     wmtkerror "Invalid documented system"
  46.     return $structure
  47.     }
  48.  
  49.     foreach fv [$sv localFileVersions] {
  50.     if [$this match $fileTypes $fv] {
  51.         set structureLine [$this getStructureLine $fv $first $prefix]
  52.         if $first {
  53.         set structure $structureLine
  54.         } else {
  55.         set structure "$structure\n$structureLine"
  56.         }
  57.         set first 0
  58.     }
  59.     }
  60.  
  61.     return $structure
  62. }
  63.  
  64. method GenLink::match {this fileTypes fileVersion} {
  65.  
  66.     if {[lsearch $fileTypes [[$fileVersion file] type]] == -1} {
  67.     return 0
  68.     }
  69.     return 1
  70. }
  71.  
  72. method GenLink::getStructureLine {this fileVersion first {prefix ""}} {
  73.  
  74.     set indent "="
  75.     if {$first == "1"} {
  76.     set indent "+"
  77.     }
  78.  
  79.     set name [[$fileVersion file] qualifiedName :]
  80.     set type [[$fileVersion file] type]
  81.     set line "${name}_$type | $indent | | $type | | | $fileVersion"
  82.     if {$prefix != ""} {
  83.     set line "${prefix}_$line"
  84.     }
  85.  
  86.     return $line
  87. }
  88.  
  89. # Do not delete this line -- regeneration end marker
  90.  
  91.