home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / vbimporter.tcl < prev    next >
Text File  |  1997-07-16  |  3KB  |  109 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)vbimporter.tcl    /main/titanic/5
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)vbimporter.tcl    /main/titanic/5   16 Jul 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12.  
  13. require vb_msg.tcl
  14. require vbgclasses.tcl
  15. require vbgentor.tcl
  16. require vbgrammar.tcl
  17.  
  18. # End user added include file section
  19.  
  20. require "importer.tcl"
  21.  
  22. Class VBImporter : {Importer} {
  23.     constructor
  24.     method destructor
  25.     method generateOopl
  26.     method getOoplFileTypesToGenerateFor
  27.     method getFileNamesNotToGenerateFor
  28.     attribute genSpecialFiles
  29. }
  30.  
  31. constructor VBImporter {class this} {
  32.     set this [Importer::constructor $class $this]
  33.     $this genSpecialFiles 0
  34.     # Start constructor user section
  35.     # End constructor user section
  36.     return $this
  37. }
  38.  
  39. method VBImporter::destructor {this} {
  40.     # Start destructor user section
  41.     # End destructor user section
  42.     $this Importer::destructor
  43. }
  44.  
  45. method VBImporter::generateOopl {this classes} {
  46.         set fileHandler [VBFileHandler new]
  47.         $fileHandler sourceTclFiles
  48.         set selectedClasses [List new]
  49.  
  50.         foreach class $classes {
  51.                 if [$class isExternal] {
  52.                         continue
  53.                 }
  54.  
  55.                 if {[$class getName] == ""} {
  56.                         m4_warning $W_NONAMECLASS
  57.                 } else {
  58.                         $selectedClasses append $class
  59.                 }
  60.         }
  61.  
  62.         set vbGenerator [VBGenerator new]
  63.     $vbGenerator ooplModel [$this ooplModel]
  64.     $vbGenerator importer $this
  65.  
  66.         set generatedSections [$vbGenerator generate $selectedClasses]
  67.  
  68.         $generatedSections foreach class classToSection {
  69.                 $classToSection foreach type section {
  70.                         $fileHandler writeSectionToFile $section $class $type
  71.                 }
  72.         }
  73.  
  74.         # Special files
  75.  
  76.         set import_new [lempty [$this targetObjects]]
  77.     
  78.         if $import_new {
  79.                 set specialFileList [$fileHandler getSpecialFiles]
  80.         } else {
  81.                 set specialFileList [List new]
  82.                 set selectedFiles [$this targetObjects]
  83.                 [$fileHandler getSpecialFiles] foreach specialFile {
  84.                         if { [lsearch $selectedFiles $specialFile] != -1 } {
  85.                                 $specialFileList append $specialFile
  86.                         }
  87.                 }
  88.         }
  89.     
  90.         if { ![$specialFileList empty] || [$this genSpecialFiles] } {
  91.                 if {[M4CheckManager::getErrorCount] > 0} {
  92.                         m4_error $E_NOSPECFILES
  93.                 } else {
  94.                         $vbGenerator generateSpecialFiles $specialFileList
  95.                 }
  96.         }
  97. }
  98.  
  99. method VBImporter::getOoplFileTypesToGenerateFor {this} {
  100.     return "cls frm bas vbp"
  101. }
  102.  
  103. method VBImporter::getFileNamesNotToGenerateFor {this} {
  104.       return "[getCurrentSystemName]"
  105. }
  106.  
  107. # Do not delete this line -- regeneration end marker
  108.  
  109.