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

  1. #---------------------------------------------------------------------------
  2. #
  3. #      (c)     Cayenne Software Inc.    1997
  4. #
  5. #      File:           @(#)moduledbpa.tcl    /main/titanic/2
  6. #      Author:         <generated>
  7. #      Description:
  8. #---------------------------------------------------------------------------
  9. # SccsId = @(#)moduledbpa.tcl    /main/titanic/2   3 Oct 1997 Copyright 1997 Cayenne Software Inc.
  10.  
  11. # Start user added include file section
  12. # End user added include file section
  13.  
  14.  
  15. Class ModuleDBPathInfo : {GCObject} {
  16.     constructor
  17.     method destructor
  18.     method initialize
  19.     method addPropName
  20.     method removePropName
  21.     method getPropValue
  22.     method setPropValue
  23.     method removePropValue
  24.     attribute modulePath
  25.     attribute isValidModule
  26.     attribute propNameSet
  27.     attribute propValue
  28. }
  29.  
  30. constructor ModuleDBPathInfo {class this i_modulePath} {
  31.     set this [GCObject::constructor $class $this]
  32.     $this isValidModule 0
  33.     $this modulePath $i_modulePath
  34.     $this propNameSet [List new]
  35.     $this propValue [Dictionary new]
  36.     # Start constructor user section
  37.     $this initialize
  38.     # End constructor user section
  39.     return $this
  40. }
  41.  
  42. method ModuleDBPathInfo::destructor {this} {
  43.     # Start destructor user section
  44.     # End destructor user section
  45. }
  46.  
  47. method ModuleDBPathInfo::initialize {this} {
  48.     # Read properties.properties file
  49.     #
  50.     set propFile [path_name concat [$this modulePath] properties properties]
  51.     if {!([file isfile $propFile] && [file readable $propFile])} {
  52.         return
  53.     }
  54.     set propLines [readConfigurationFile $propFile]
  55.     foreach propLine $propLines {
  56.         set propName [lindex $propLine 0]
  57.         $this setPropValue $propName [lindex $propLine 1]
  58.         $this addPropName $propName
  59.     }
  60.  
  61.     # A module must have the following properties set in order to be a
  62.     # valid module: 'name', 'type' and 'longName'. Also, the 'moduleName'
  63.     # and the 'name'-property must compare equal (case insensitive on
  64.     # windows).
  65.     #
  66.     set moduleName [file tail [$this modulePath]]
  67.     set nameProp [$this getPropValue "name"]
  68.     if $win95 {
  69.         set moduleName [string tolower $moduleName]
  70.         set nameProp [string tolower $nameProp]
  71.     }
  72.     if {$moduleName != $nameProp} {
  73.         return
  74.     }
  75.     if {[$this getPropValue "type"] == ""} {
  76.         return
  77.     }
  78.     if {[$this getPropValue "longName"] == ""} {
  79.         return
  80.     }
  81.     $this isValidModule 1
  82. }
  83.  
  84. # Do not delete this line -- regeneration end marker
  85.  
  86. method ModuleDBPathInfo::addPropName {this newPropName} {
  87.     [$this propNameSet] append $newPropName
  88.  
  89. }
  90.  
  91. method ModuleDBPathInfo::removePropName {this oldPropName} {
  92.     [$this propNameSet] removeValue $oldPropName
  93. }
  94.  
  95. method ModuleDBPathInfo::getPropValue {this propName} {
  96.     return [[$this propValue] set $propName]
  97. }
  98.  
  99. method ModuleDBPathInfo::setPropValue {this propName newPropValue} {
  100.     [$this propValue] set $propName $newPropValue
  101. }
  102.  
  103. method ModuleDBPathInfo::removePropValue {this propName} {
  104.     [$this propValue] unset $propName
  105. }
  106.  
  107.