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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)msumlattri.tcl    /main/titanic/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)msumlattri.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 "msumlmembe.tcl"
  15.  
  16. Class MSUMLAttribute : {MSUMLMember} {
  17.     constructor
  18.     method destructor
  19.     method ot2ms
  20.     method ms2ot
  21.     method promoter
  22. }
  23.  
  24. constructor MSUMLAttribute {class this typeName workItem {typeItem ""}} {
  25.     set this [MSUMLMember::constructor $class $this $typeName $workItem $typeItem]
  26.     # Start constructor user section
  27.     # End constructor user section
  28.     return $this
  29. }
  30.  
  31. method MSUMLAttribute::destructor {this} {
  32.     # Start destructor user section
  33.     # End destructor user section
  34.     $this MSUMLMember::destructor
  35. }
  36.  
  37. method MSUMLAttribute::ot2ms {this msClass} {
  38.         set workItem [$this workItem]
  39.         set name [$workItem name]
  40.     puts "\t\tAttribute '$name'"
  41.     global trans
  42.     $trans begin
  43.     set myAttr [$msClass createAttribute $name]
  44.     set ip [$workItem properties]
  45.     set initialValue [$ip getPropertyValue initial_value]
  46.     if [llength $initialValue] {
  47.         $myAttr property InitialValue $initialValue
  48.     }
  49.     $this saveFreeTextProp $myAttr $ip
  50.     $trans commit
  51.         return $myAttr
  52. }
  53.  
  54. method MSUMLAttribute::ms2ot {this myClass} {
  55.         set attrName [$this name]
  56.     set iAttr [$this interfaceOfMe IUmlAttribute] 
  57.     set attrType [$iAttr  property TypeExpression]
  58.     if [llength $attrType] {
  59.         set attrName "${attrName}:${attrType}"
  60.     }
  61.     set isTypeScope [$iAttr property IsTypeScope]
  62.         if {[llength $isTypeScope] && $isTypeScope == "1"} {
  63.             set attrName "\$$attrName"
  64.         }
  65.     set myAttr [$myClass addAttrib $attrName]
  66.     $myAttr setProp initial_value [$iAttr property InitialValue] comp
  67.     $this loadFreeTextProp $myAttr
  68.     return $myAttr
  69. }
  70.  
  71. method MSUMLAttribute::promoter {this} {
  72.         $this MSUMLMember::promoter
  73. }
  74.  
  75. # Do not delete this line -- regeneration end marker
  76.  
  77.