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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)drssynchro.tcl    /main/titanic/3
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)drssynchro.tcl    /main/titanic/3   8 Sep 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. require drsdriver.tcl
  13. # End user added include file section
  14.  
  15. require "reqsynchro.tcl"
  16.  
  17. Class DrsSynchronizer : {ReqSynchronizer} {
  18.     constructor
  19.     method destructor
  20.     method applyToMultiple
  21.     attribute DxlError
  22. }
  23.  
  24. constructor DrsSynchronizer {class this} {
  25.     set this [ReqSynchronizer::constructor $class $this]
  26.     # Start constructor user section
  27.     $this DxlError 0
  28.         $this init doors Drs
  29.     # End constructor user section
  30.     return $this
  31. }
  32.  
  33. method DrsSynchronizer::destructor {this} {
  34.     # Start destructor user section
  35.     # End destructor user section
  36.     $this ReqSynchronizer::destructor
  37. }
  38.  
  39. method DrsSynchronizer::applyToMultiple {this objTeamObjs orgParentOTObj operation dxlCommandRef {arg1 ""} {arg2 ""}} {
  40.         if [$this DxlError] {
  41.             return
  42.         }
  43.     set doorsProject [DrsDriver::getProjectName]
  44.         if ![llength  $doorsProject] {
  45.             $this DxlError 1
  46.             return 
  47.         }
  48.         set DrsDriver::FORMALMODULE DOORS_${doorsProject}_[m4_var get M4_doors_formal_module]
  49.     
  50.         upvar $dxlCommandRef dxlCommand
  51.         if {$arg2 == "All"} {
  52.         set doorsObj [DrsObject new ""]
  53.         $doorsObj dxlCommand $dxlCommand
  54.         $doorsObj $operation $arg1 $arg2
  55.         set dxlCommand [$doorsObj dxlCommand]
  56.         return
  57.         }
  58.  
  59.         foreach objTeamObj $objTeamObjs  {
  60.             set parentOTObj $orgParentOTObj
  61.             if [$objTeamObj  isA ConfigVersion] {
  62.             set phases [$objTeamObj phaseVersions]
  63.             continue
  64.         } elseif [$objTeamObj  isA Corporate] {
  65.                 set doorsObj [DrsCorpObject new $objTeamObj]
  66.             } elseif [$objTeamObj  isA Project] {
  67.                 set doorsObj [DrsProjObject new $objTeamObj $parentOTObj]
  68.             } else {
  69.             set level [$objTeamObj object]
  70.             set origConf [$objTeamObj [$objTeamObj ORB_class]::config]
  71.             set origConfName [$origConf name]
  72.             set versionNumber [$objTeamObj versionNumber]
  73.             set levelVersion $origConfName.$versionNumber
  74.  
  75.             set parOrigConf [$parentOTObj [$parentOTObj ORB_class]::config]
  76.             set parOrigConfName [$parOrigConf name]
  77.             set pVersionNumber [$parentOTObj versionNumber]
  78.             set pVers $parOrigConfName.$pVersionNumber
  79.  
  80.             if [$objTeamObj  isA PhaseVersion] {
  81.             set parentOTObj [$parentOTObj project]
  82.             set pLevel [$parentOTObj  customLevel]
  83.             set doorsObj [DrsPhaseObject new $level \
  84.                         $levelVersion $pLevel $pVers ]
  85.             } else {
  86.             set pLevel [$parentOTObj  customLevel]
  87.             }
  88.             if [$objTeamObj  isA SystemVersion] {
  89.             set doorsObj [DrsSystemObject new $level \
  90.                         $levelVersion $pLevel $pVers]
  91.             } elseif [$objTeamObj  isA FileVersion] {
  92.             if {[[$objTeamObj file] type] == "cdm" } {
  93.                 #skip cdm
  94.                 continue
  95.             }
  96.             set doorsObj [DrsFileObject new $level \
  97.                         $levelVersion $pLevel $pVers]
  98.            
  99.             }
  100.         }
  101.         $doorsObj driver $this
  102.  
  103.  
  104.         $doorsObj dxlCommand $dxlCommand
  105.             if [llength $arg1]  {
  106.                 if ![llength $arg2] {
  107.                     set dxlResult [$doorsObj $operation $arg1]
  108.                 } else {
  109.                     set dxlResult [$doorsObj $operation $arg1 $arg2]
  110.                 }
  111.             } else {
  112.                 set dxlResult [$doorsObj $operation]
  113.             }
  114.         if ![llength $dxlResult] {
  115.             $this DxlError 1
  116.         }
  117.         set dxlCommand [$doorsObj dxlCommand]
  118.     }
  119. }
  120.  
  121. # Do not delete this line -- regeneration end marker
  122.  
  123.