home *** CD-ROM | disk | FTP | other *** search
/ PC World 1997 November / PCWorld_1997-11_cd.bin / software / programy / komix / DATA.Z / pbimporter.tcl < prev    next >
Text File  |  1997-03-25  |  2KB  |  94 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)pbimporter.tcl    /main/hindenburg/3
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)pbimporter.tcl    /main/hindenburg/3   25 Mar 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12.  
  13. require pb_msg.tcl
  14. require pboopl.tcl
  15. require pbtarget.tcl
  16. require pbgentor.tcl
  17.  
  18. # End user added include file section
  19.  
  20. require "importer.tcl"
  21.  
  22. Class PbImporter : {Importer} {
  23.     constructor
  24.     method destructor
  25.     method generateOopl
  26.     method getOoplFileTypesToGenerateFor
  27.     method import
  28. }
  29.  
  30. constructor PbImporter {class this} {
  31.     set this [Importer::constructor $class $this]
  32.     # Start constructor user section
  33.     # End constructor user section
  34.     return $this
  35. }
  36.  
  37. method PbImporter::destructor {this} {
  38.     # Start destructor user section
  39.     # End destructor user section
  40.     $this Importer::destructor
  41. }
  42.  
  43. method PbImporter::generateOopl {this classes} {
  44.     set fileHandler [PBFileHandler new]
  45.     $fileHandler sourceTclFiles
  46.     set selectedClasses [List new]
  47.  
  48.     foreach class $classes {
  49.         if [$class isExternal] {
  50.             continue
  51.         }
  52.  
  53.         if {[$class getName] == ""} {
  54.             m4_warning $W_CLASS_WITHOUT_NAME
  55.         } else {
  56.             $selectedClasses append $class
  57.         }
  58.     }
  59.  
  60.     set pbGenerator [PBGenerator new]
  61.     set generatedSections [$pbGenerator generate $selectedClasses]
  62.  
  63.     $generatedSections foreach class classToSection {
  64.         $classToSection foreach type section {
  65.             $fileHandler writeSectionToFile $section $class $type
  66.         }
  67.     }
  68. }
  69.  
  70. method PbImporter::getOoplFileTypesToGenerateFor {this} {
  71.     set fileHandler [PBFileHandler new]
  72.     return [[$fileHandler getFileTypes] contents]
  73. }
  74.  
  75. method PbImporter::import {this} {
  76.     set cc [ClientContext::global]
  77.     set prevPhaseV [[$cc currentPhase] previous [$cc currentConfig]]
  78.     if [$prevPhaseV isNil] {
  79.         m4_error $E_NO_PREV_PHASE [$cc levelNameAt Phase]
  80.         return
  81.     }
  82.     set sysName "PBBuiltins"
  83.     set sysV [$prevPhaseV findSystemVersion $sysName "system"]
  84.     if [$sysV isNil] {
  85.         m4_error $E_NOBUILTINSYS $sysName
  86.         return
  87.     }
  88.  
  89.     $this Importer::import
  90. }
  91.  
  92. # Do not delete this line -- regeneration end marker
  93.  
  94.