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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)msumlparam.tcl    /main/titanic/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)msumlparam.tcl    /main/titanic/2   29 Aug 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14. #require "msumltypee.tcl"
  15.  
  16. Class MSUMLParameter : {MSUMLTypeExpression} {
  17.     method destructor
  18.     constructor
  19.     method ot2ms
  20.     method ms2ot
  21.     method promoter
  22.     method owner
  23.     attribute _owner
  24.     attribute cell
  25. }
  26.  
  27. method MSUMLParameter::destructor {this} {
  28.     set ref [$this _owner]
  29.     if {$ref != ""} {
  30.         [$ref _parameterSet] removeValue $this
  31.     }
  32.     # Start destructor user section
  33.     # End destructor user section
  34.     $this MSUMLTypeExpression::destructor
  35. }
  36.  
  37. constructor MSUMLParameter {class this typeName cell item owner {typeItem ""}} {
  38.     set this [MSUMLTypeExpression::constructor $class $this $typeName $typeItem]
  39.     $this _owner $owner
  40.     #[$owner _parameterSet] append $this
  41.     $this workItem $item
  42.     $this cell $cell
  43.     return $this
  44. }
  45.  
  46. method MSUMLParameter::ot2ms {this msOper {kind ""}} {
  47.     set workItem [$this workItem]
  48.         set name [$workItem name]
  49.     puts "\t\t\tParameter $name"
  50.     global trans
  51.     $trans begin
  52.     set myParam [$msOper createParameter $name]
  53.     set iParam [$myParam getInterface IUmlParameter]
  54.  
  55.     set typeItem [$this typeItem]
  56.     if [llength $typeItem] {
  57.         $iParam property TypeExpression [$typeItem name]
  58.     }
  59.     if [llength $kind] {
  60.         $iParam property Kind $kind
  61.     }
  62.     if {$kind == "return"} {
  63.         $trans commit
  64.         return $myParam
  65.     }
  66.  
  67.     set cell [$this cell]
  68.         set defValue [$cell getPropertyValue default_value]
  69.     if [llength $defValue] {
  70.         $iParam property DefaultValue $defValue
  71.     }
  72.     #$this saveFreeTextProp $myParam [$workItem properties]
  73.     $trans commit
  74.     return $myParam
  75. }
  76.  
  77. method MSUMLParameter::ms2ot {this myOper} {
  78.     set paramName [$this name]
  79.     set iParam [$this getInterface IUmlParameter]
  80.         set typeName [$iParam property TypeExpression]
  81.     set defValue [$iParam property DefaultValue]
  82.     if [llength $typeName] {
  83.         set paramName "${paramName}:$typeName"
  84.     }
  85.     set param [$myOper addParam $paramName]
  86.     if [llength $defValue] {
  87.         $param setProp default_value $defValue
  88.     }
  89.     $this loadFreeTextProp $param
  90.     return $param
  91. }
  92.  
  93. method MSUMLParameter::promoter {this} {
  94.      $this MSUMLTypeExpression::promoter
  95. }
  96.  
  97. # Do not delete this line -- regeneration end marker
  98.  
  99. method MSUMLParameter::owner {this args} {
  100.     if {$args == ""} {
  101.         return [$this _owner]
  102.     }
  103.     set ref [$this _owner]
  104.     if {$ref != ""} {
  105.         [$ref _parameterSet] removeValue $this
  106.     }
  107.     set obj [lindex $args 0]
  108.     if {$obj != ""} {
  109.         [$obj _parameterSet] append $this
  110.     }
  111.     $this _owner $obj
  112. }
  113.