home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / drsdriver.tcl < prev    next >
Text File  |  1997-09-23  |  5KB  |  168 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)drsdriver.tcl    /main/titanic/4
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)drsdriver.tcl    /main/titanic/4   23 Sep 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. require drslevelob.tcl        
  13. require drsqobject.tcl
  14. require drscorpobj.tcl        
  15. require drssmitemo.tcl
  16. require drsphaseob.tcl        
  17. require drssmmodel.tcl
  18. require drsdxlcomm.tcl        
  19. require drsfileobj.tcl        
  20. require drssystemo.tcl
  21. require drsgrouped.tcl
  22. require drsprojobj.tcl
  23. require drstreeobj.tcl
  24. require drsqfileob.tcl
  25. require drsitemobj.tcl
  26. require drsqitemob.tcl
  27. # End user added include file section
  28.  
  29. require "reqdriver.tcl"
  30.  
  31. Class DrsDriver : {ReqDriver} {
  32.     constructor
  33.     method destructor
  34.     method applyToMultiple
  35. }
  36.  
  37. global DrsDriver::FORMALMODULE
  38. set DrsDriver::FORMALMODULE ""
  39.  
  40.  
  41. constructor DrsDriver {class this} {
  42.     set this [ReqDriver::constructor $class $this]
  43.     # Start constructor user section
  44.     $this init doors Drs
  45.     # End constructor user section
  46.     return $this
  47. }
  48.  
  49. method DrsDriver::destructor {this} {
  50.     # Start destructor user section
  51.     # End destructor user section
  52.     $this ReqDriver::destructor
  53. }
  54.  
  55. method DrsDriver::applyToMultiple {this objTeamObjs orgParentOTObj operation dxlCommandRef {arg1 ""} {arg2 ""}} {
  56.     set doorsProject [DrsDriver::getProjectName]
  57.         if ![llength  $doorsProject] {
  58.         return 
  59.         }
  60.     
  61.         upvar $dxlCommandRef dxlCommand
  62.         if {$arg2 == "All"} {
  63.         set doorsObj [DrsObject new ""]
  64.         $doorsObj dxlCommand $dxlCommand
  65.         $doorsObj $operation $arg1 $arg2
  66.         set dxlCommand [$doorsObj dxlCommand]
  67.         return
  68.         }
  69.  
  70.         foreach objTeamObj $objTeamObjs  {
  71.             set parentOTObj $orgParentOTObj
  72.             if [$objTeamObj  isA ConfigVersion] {
  73.             set phases [$objTeamObj phaseVersions]
  74.             continue
  75.         } elseif [$objTeamObj  isA Corporate] {
  76.                 set doorsObj [DrsCorpObject new $objTeamObj]
  77.             } elseif [$objTeamObj  isA Project] {
  78.                 set doorsObj [DrsProjObject new $objTeamObj $parentOTObj]
  79.             } else {
  80.             set level [$objTeamObj object]
  81.             set origConf [$objTeamObj [$objTeamObj ORB_class]::config]
  82.             set origConfName [$origConf name]
  83.             set versionNumber [$objTeamObj versionNumber]
  84.             set levelVersion $origConfName.$versionNumber
  85.  
  86.             set parOrigConf [$parentOTObj [$parentOTObj ORB_class]::config]
  87.             set parOrigConfName [$parOrigConf name]
  88.             set pVersionNumber [$parentOTObj versionNumber]
  89.             set pVers $parOrigConfName.$pVersionNumber
  90.  
  91.             if [$objTeamObj  isA PhaseVersion] {
  92.             set parentOTObj [$parentOTObj project]
  93.             set pLevel [$parentOTObj  customLevel]
  94.             set doorsObj [DrsPhaseObject new $level \
  95.                         $levelVersion $pLevel $pVers ]
  96.             } else {
  97.             set pLevel [$parentOTObj  customLevel]
  98.             }
  99.             if [$objTeamObj  isA SystemVersion] {
  100.             set doorsObj [DrsSystemObject new $level \
  101.                         $levelVersion $pLevel $pVers]
  102.             } elseif [$objTeamObj  isA FileVersion] {
  103.             if {[[$objTeamObj file] type] == "cdm" } {
  104.                 #skip cdm
  105.                 continue
  106.             }
  107.             set doorsObj [DrsFileObject new $level \
  108.                         $levelVersion $pLevel $pVers]
  109.             }
  110.         }
  111.  
  112.  
  113.         $doorsObj dxlCommand $dxlCommand
  114.             if [llength $arg1]  {
  115.                 if ![llength $arg2] {
  116.                     set dxlResult [$doorsObj $operation $arg1]
  117.                 } else {
  118.                     set dxlResult [$doorsObj $operation $arg1 $arg2]
  119.                 }
  120.             } else {
  121.                 set dxlResult [$doorsObj $operation]
  122.             }
  123.         set dxlCommand [$doorsObj dxlCommand]
  124.     }
  125. }
  126.  
  127. proc DrsDriver::getProjectName {{forced 0}} {
  128.        set doorsProject [m4_var get M4_doors_project]
  129.         if {![llength  $doorsProject] || $forced} {
  130.         set doorsObj [DrsObject new ""]
  131.         set dxlCommand [DrsDxlCommand new]
  132.         $dxlCommand doorsInitialize "false"
  133.         $dxlCommand mustBeDone 1
  134.         $dxlCommand doorsResultSave projectName
  135.         set doorsProject  [$dxlCommand execute]
  136.         m4_var set M4_doors_project $doorsProject
  137.         }
  138.         if ![llength $doorsProject] {
  139.         wmtkerror "No Doors Project Opened"
  140.         return
  141.         }
  142.  
  143.     global DrsDriver::FORMALMODULE
  144.         set DrsDriver::FORMALMODULE DOORS_${doorsProject}_[m4_var get M4_doors_formal_module]
  145.     set formMod [m4_var get M4_doors_formal_module]
  146.         if ![llength $formMod] {
  147.                 m4_var set M4_doors_formal_module ObjectTeam
  148.         m4_var saveStatus M4_doors_formal_module 0
  149.         }
  150.  
  151.         set linkMod [m4_var get M4_doors_trace_link_module]
  152.         if ![llength $linkMod] {
  153.                 m4_var set M4_doors_trace_link_module OTTrace
  154.         m4_var saveStatus M4_doors_trace_link_module
  155.         }
  156.  
  157.         set linkMod [m4_var get M4_doors_connections_link_module]
  158.         if ![llength $linkMod] {
  159.                 m4_var set M4_doors_connections_link_module OTConnections
  160.         m4_var saveStatus M4_doors_connections_link_module
  161.         }
  162.     return $doorsProject
  163.  
  164. }
  165.  
  166. # Do not delete this line -- regeneration end marker
  167.  
  168.