home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / vacppimpor.tcl < prev    next >
Text File  |  1997-11-04  |  4KB  |  129 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)vacppimpor.tcl    /main/titanic/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)vacppimpor.tcl    /main/titanic/2   4 Nov 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12.  
  13. require "vacppgentor.tcl"
  14. require "vacppoopl.tcl"
  15. require "vatarget.tcl"
  16. require "vacpptarget.tcl"
  17. require "vacpp_msg.tcl"
  18.  
  19. # End user added include file section
  20.  
  21. require "cppimporte.tcl"
  22.  
  23. Class VACPPImporter : {CppImporter} {
  24.     constructor
  25.     method destructor
  26.     method generateOopl
  27.     method getOoplFileTypesToGenerateFor
  28.     method getFileNamesNotToGenerateFor
  29.     method promoter
  30.     attribute genSpecialFiles
  31. }
  32.  
  33. constructor VACPPImporter {class this} {
  34.     set this [CppImporter::constructor $class $this]
  35.     $this genSpecialFiles 0
  36.     # Start constructor user section
  37.     # End constructor user section
  38.     return $this
  39. }
  40.  
  41. method VACPPImporter::destructor {this} {
  42.     # Start destructor user section
  43.     # End destructor user section
  44.     $this CppImporter::destructor
  45. }
  46.  
  47. method VACPPImporter::generateOopl {this classes} {
  48.     $this CppImporter::generateOopl $classes
  49.     if {[M4CheckManager::getErrorCount] > 0} {
  50.                 m4_message $M_NOMAKE
  51.         return 
  52.     }
  53.  
  54.         set fileHandler [VACPPFileHandler new]
  55.         $fileHandler sourceTclFiles
  56.         set selectedClasses [List new]
  57.  
  58.         foreach class $classes {
  59.                 if [$class isExternal] {
  60.                         continue
  61.                 }
  62.  
  63.                 if {[$class getName] == ""} {
  64.                         m4_warning $W_NONAMECLASS
  65.                 } else {
  66.                         $selectedClasses append $class
  67.                 }
  68.         }
  69.  
  70.         set vacppGenerator [VACPPGenerator new]
  71.         $vacppGenerator ooplModel [$this ooplModel]
  72.         $vacppGenerator importer $this
  73.         $vacppGenerator fileHandler $fileHandler
  74.  
  75.         set generatedSections [$vacppGenerator generate $selectedClasses]
  76.  
  77.         $generatedSections foreach class classToSection {
  78.                 $classToSection foreach type section {
  79.                         $fileHandler writeSectionToFile $section $class $type
  80.                 }
  81.         }
  82.  
  83.         # Special files
  84.  
  85.         set import_new [lempty [$this targetObjects]]
  86.  
  87.         if $import_new {
  88.                 set specialFileList [$fileHandler getSpecialFiles]
  89.         } else {
  90.                 set specialFileList [List new]
  91.                 set selectedFiles [$this targetObjects]
  92.                 [$fileHandler getSpecialFiles] foreach specialFile {
  93.                         if { [lsearch $selectedFiles $specialFile] != -1 } {
  94.                                 $specialFileList append $specialFile
  95.                         }
  96.                 }
  97.         }
  98.  
  99.         if { ![$specialFileList empty] || [$this genSpecialFiles] != 0 } {
  100.                 if {[M4CheckManager::getErrorCount] > 0} {
  101.                         m4_error $E_NOSPECFILES
  102.                 } else {
  103.                         $vacppGenerator generateSpecialFiles $specialFileList
  104.                 }
  105.         }
  106. }
  107.  
  108. method VACPPImporter::getOoplFileTypesToGenerateFor {this} {
  109.         return "[$this CppImporter::getOoplFileTypesToGenerateFor] {vbe}"
  110. }
  111.  
  112. method VACPPImporter::getFileNamesNotToGenerateFor {this} {
  113.           return "[$this CppImporter::getFileNamesNotToGenerateFor] {[getCurrentSystemName]}"
  114. }
  115.  
  116. selfPromoter CppImporter {this} {
  117.         VACPPImporter promote $this
  118. }
  119.  
  120. method VACPPImporter::promoter {this} {
  121.         $this sourceObjects [CommandLineInterface::getSourceObjects]
  122.         $this targetObjects [CommandLineInterface::getTargetObjects]
  123.         $this ooplFileTypes [$this getOoplFileTypesToGenerateFor]
  124.         $this sqlFileTypes [$this getSqlFileTypesToGenerateFor]
  125. }
  126.  
  127. # Do not delete this line -- regeneration end marker
  128.  
  129.