home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / javatarget.tcl < prev    next >
Text File  |  1997-12-01  |  44KB  |  1,701 lines

  1. #---------------------------------------------------------------------------
  2. #
  3. # Copyright (c) 1997 by Cayenne Software, Inc.
  4. #
  5. # This software is furnished under a license and may be used only in
  6. # accordance with the terms of such license and with the inclusion of
  7. # the above copyright notice. This software or any other copies thereof
  8. # may not be provided or otherwise made available to any other person.
  9. # No title to and ownership of the software is hereby transferred.
  10. #
  11. # The information in this software is subject to change without notice
  12. # and should not be construed as a commitment by Cayenne Software, Inc.
  13. #
  14. #---------------------------------------------------------------------------
  15. #
  16. #       File            : javatarget.tcl
  17. #       Author          : 
  18. #       Original date   : November 1997
  19. #       Description     : Classes for code generation
  20. #
  21. #---------------------------------------------------------------------------
  22.  
  23. #---------------------------------------------------------------------------
  24. #      File:           @(#)javaaccess.tcl    /main/titanic/1
  25. #---------------------------------------------------------------------------
  26.  
  27. # Start user added include file section
  28. # End user added include file section
  29.  
  30.  
  31. Class JavaAccess : {GCObject} {
  32.     constructor
  33.     method destructor
  34.     method generate
  35.     attribute accessor
  36. }
  37.  
  38. constructor JavaAccess {class this i_accessor} {
  39.     set this [GCObject::constructor $class $this]
  40.     $this accessor $i_accessor
  41.     # Start constructor user section
  42.     # End constructor user section
  43.     return $this
  44. }
  45.  
  46. method JavaAccess::destructor {this} {
  47.     # Start destructor user section
  48.     # End destructor user section
  49. }
  50.  
  51. method JavaAccess::generate {this sect} {
  52.     $sect append "[$this accessor] "
  53. }
  54.  
  55. # Do not delete this line -- regeneration end marker
  56.  
  57. #---------------------------------------------------------------------------
  58. #      File:           @(#)javacommen.tcl    /main/titanic/1
  59. #---------------------------------------------------------------------------
  60.  
  61. # Start user added include file section
  62. # End user added include file section
  63.  
  64.  
  65. Class JavaComment : {GCObject} {
  66.     constructor
  67.     method destructor
  68.     method generate
  69.     attribute comment
  70. }
  71.  
  72. constructor JavaComment {class this comment} {
  73.     set this [GCObject::constructor $class $this]
  74.     $this comment $comment
  75.     # Start constructor user section
  76.     # End constructor user section
  77.     return $this
  78. }
  79.  
  80. method JavaComment::destructor {this} {
  81.     # Start destructor user section
  82.     # End destructor user section
  83. }
  84.  
  85. method JavaComment::generate {this sect} {
  86.     # !! Implement this function !!
  87. }
  88.  
  89. # Do not delete this line -- regeneration end marker
  90.  
  91. #---------------------------------------------------------------------------
  92. #      File:           @(#)javacompil.tcl    /main/titanic/4
  93. #---------------------------------------------------------------------------
  94.  
  95. # Start user added include file section
  96. # End user added include file section
  97.  
  98.  
  99. Class JavaCompilationUnit : {GCObject} {
  100.     constructor
  101.     method destructor
  102.     method addSystemImport
  103.     method generate
  104.     method needsType
  105.     method addImportOnDemand
  106.     method removeImportOnDemand
  107.     method addImportPackage
  108.     method removeImportPackage
  109.     method addImportType
  110.     method removeImportType
  111.     method addUserImport
  112.     method removeUserImport
  113.     method addContainer
  114.     method removeContainer
  115.     attribute name
  116.     attribute importOnDemandSet
  117.     attribute importPackageSet
  118.     attribute importTypeSet
  119.     attribute packageStatement
  120.     attribute systemImportSet
  121.     attribute userImportSet
  122.     attribute masterContainer
  123.     attribute containerSet
  124. }
  125.  
  126. constructor JavaCompilationUnit {class this i_name} {
  127.     set this [GCObject::constructor $class $this]
  128.     $this name $i_name
  129.     $this importOnDemandSet [List new]
  130.     $this importPackageSet [List new]
  131.     $this importTypeSet [List new]
  132.     $this systemImportSet [List new]
  133.     $this userImportSet [List new]
  134.     $this containerSet [List new]
  135.     # Start constructor user section
  136.     # End constructor user section
  137.     return $this
  138. }
  139.  
  140. method JavaCompilationUnit::destructor {this} {
  141.     # Start destructor user section
  142.     # End destructor user section
  143. }
  144.  
  145. method JavaCompilationUnit::addSystemImport {this newSystemImport} {
  146.     set ident [$newSystemImport identifier]
  147.  
  148.     [$this systemImportSet] foreach systemImport {
  149.         if {[$systemImport identifier] == $ident} {
  150.         return
  151.         }
  152.     }
  153.  
  154.     [$this systemImportSet] append $newSystemImport
  155. }
  156.  
  157. method JavaCompilationUnit::generate {this} {
  158.     if [$this needsType "Hashtable"] {
  159.         $this addSystemImport [JavaPackageName new "java.util.Hashtable"]
  160.     }
  161.  
  162.     if [$this needsType "Vector"] {
  163.         $this addSystemImport [JavaPackageName new "java.util.Vector"]
  164.     }
  165.  
  166.     set sect [TextSection new]
  167.  
  168.     expandHeaderIntoSection [$this name].java java $sect
  169.  
  170.     if {[$this packageStatement] != ""} {
  171.         $sect append "package "
  172.         [$this packageStatement] generate $sect
  173.         $sect append ";\n\n"
  174.     }
  175.  
  176.     [$this systemImportSet] foreach package {
  177.         $sect append "import "
  178.         $package generate $sect
  179.         $sect append ";\n"
  180.     }
  181.  
  182.     set userImports [List new]
  183.  
  184.     [$this userImportSet] foreach package {
  185.         if {[$userImports search -exact [$package identifier]] < 0} {
  186.         $userImports append [$package identifier]
  187.         }
  188.     }
  189.  
  190.     [$this importPackageSet] foreach package {
  191.         if {[$userImports search -exact [$package identifier]] < 0} {
  192.         $userImports append [$package identifier]
  193.         }
  194.     }
  195.  
  196.     [$this importTypeSet] foreach package {
  197.         if {[$userImports search -exact [$package identifier]] < 0} {
  198.         $userImports append [$package identifier]
  199.         }
  200.     }
  201.  
  202.     [$this importOnDemandSet] foreach package {
  203.         if {[$userImports search -exact [$package identifier].*] < 0} {
  204.         $userImports append [$package identifier].*
  205.         }
  206.     }
  207.  
  208.     $sect append "\n${JavaCookie::startUserImportSection}\n\n"
  209.  
  210.     $userImports foreach name {
  211.         $sect append "import $name;\n"
  212.     }
  213.  
  214.     $sect append "\n${JavaCookie::endUserImportSection}\n"
  215.  
  216.     $sect append "\n${JavaCookie::startClassDeclaration}\n\n"
  217.  
  218.     if {[$this masterContainer] != ""} {
  219.         [$this masterContainer] generate $sect
  220.     }
  221.  
  222.     [$this containerSet] foreach container {
  223.         if {[$this masterContainer] != $container} {
  224.         $container generate $sect
  225.         }
  226.     }
  227.  
  228.     $sect append "\n${JavaCookie::endClassDeclaration}\n"
  229.  
  230.     return $sect
  231. }
  232.  
  233. method JavaCompilationUnit::needsType {this typeName} {
  234.     [$this containerSet] foreach container {
  235.         if [$container needsType $typeName] {
  236.         return 1
  237.         }
  238.     }
  239.  
  240.     return 0
  241. }
  242.  
  243. # Do not delete this line -- regeneration end marker
  244.  
  245. method JavaCompilationUnit::addImportOnDemand {this newImportOnDemand} {
  246.     [$this importOnDemandSet] append $newImportOnDemand
  247.  
  248. }
  249.  
  250. method JavaCompilationUnit::removeImportOnDemand {this oldImportOnDemand} {
  251.     [$this importOnDemandSet] removeValue $oldImportOnDemand
  252. }
  253.  
  254. method JavaCompilationUnit::addImportPackage {this newImportPackage} {
  255.     [$this importPackageSet] append $newImportPackage
  256.  
  257. }
  258.  
  259. method JavaCompilationUnit::removeImportPackage {this oldImportPackage} {
  260.     [$this importPackageSet] removeValue $oldImportPackage
  261. }
  262.  
  263. method JavaCompilationUnit::addImportType {this newImportType} {
  264.     [$this importTypeSet] append $newImportType
  265.  
  266. }
  267.  
  268. method JavaCompilationUnit::removeImportType {this oldImportType} {
  269.     [$this importTypeSet] removeValue $oldImportType
  270. }
  271.  
  272. method JavaCompilationUnit::addUserImport {this newUserImport} {
  273.     [$this userImportSet] append $newUserImport
  274.  
  275. }
  276.  
  277. method JavaCompilationUnit::removeUserImport {this oldUserImport} {
  278.     [$this userImportSet] removeValue $oldUserImport
  279. }
  280.  
  281. method JavaCompilationUnit::addContainer {this newContainer} {
  282.     [$this containerSet] append $newContainer
  283.  
  284. }
  285.  
  286. method JavaCompilationUnit::removeContainer {this oldContainer} {
  287.     [$this containerSet] removeValue $oldContainer
  288. }
  289.  
  290. #---------------------------------------------------------------------------
  291. #      File:           @(#)javacontai.tcl    /main/titanic/2
  292. #---------------------------------------------------------------------------
  293.  
  294. # Start user added include file section
  295. # End user added include file section
  296.  
  297.  
  298. Class JavaContainer : {GCObject} {
  299.     constructor
  300.     method destructor
  301.     method generate
  302.     method generateInterfaceList
  303.     method needsType
  304.     method addMethod
  305.     method removeMethod
  306.     method addConstructor
  307.     method removeConstructor
  308.     method addVariable
  309.     method removeVariable
  310.     method addInterface
  311.     method removeInterface
  312.     attribute name
  313.     attribute needsHashtable
  314.     attribute needsVector
  315.     attribute comment
  316.     attribute access
  317.     attribute modifier
  318.     attribute methodSet
  319.     attribute constructorSet
  320.     attribute variableSet
  321.     attribute interfaceSet
  322.     attribute ooplClass
  323. }
  324.  
  325. constructor JavaContainer {class this ooplClass} {
  326.     set this [GCObject::constructor $class $this]
  327.     $this needsHashtable 0
  328.     $this needsVector 0
  329.     $this ooplClass $ooplClass
  330.     $this methodSet [List new]
  331.     $this constructorSet [List new]
  332.     $this variableSet [List new]
  333.     $this interfaceSet [List new]
  334.     # Start constructor user section
  335.  
  336.     $this name [$ooplClass getName]
  337.  
  338.     # End constructor user section
  339.     return $this
  340. }
  341.  
  342. method JavaContainer::destructor {this} {
  343.     # Start destructor user section
  344.     # End destructor user section
  345. }
  346.  
  347. method JavaContainer::generate {this sect} {
  348.     # !! Implement this function !!
  349. }
  350.  
  351. method JavaContainer::generateInterfaceList {this keyword} {
  352.     set sect [TextSection new]
  353.     set first 1
  354.  
  355.         [$this interfaceSet] foreach interface {
  356.             if {$first} {
  357.                 $sect append " $keyword $interface"
  358.                 incr first -1
  359.             } else {
  360.                 $sect append ", $interface"
  361.             }
  362.         }
  363.  
  364.     return $sect
  365. }
  366.  
  367. method JavaContainer::needsType {this typeName} {
  368.     return 0
  369. }
  370.  
  371. # Do not delete this line -- regeneration end marker
  372.  
  373. method JavaContainer::addMethod {this newMethod} {
  374.     [$this methodSet] append $newMethod
  375.  
  376. }
  377.  
  378. method JavaContainer::removeMethod {this oldMethod} {
  379.     [$this methodSet] removeValue $oldMethod
  380. }
  381.  
  382. method JavaContainer::addConstructor {this newConstructor} {
  383.     [$this constructorSet] append $newConstructor
  384.  
  385. }
  386.  
  387. method JavaContainer::removeConstructor {this oldConstructor} {
  388.     [$this constructorSet] removeValue $oldConstructor
  389. }
  390.  
  391. method JavaContainer::addVariable {this newVariable} {
  392.     [$this variableSet] append $newVariable
  393.  
  394. }
  395.  
  396. method JavaContainer::removeVariable {this oldVariable} {
  397.     [$this variableSet] removeValue $oldVariable
  398. }
  399.  
  400. method JavaContainer::addInterface {this newInterface} {
  401.     [$this interfaceSet] append $newInterface
  402.  
  403. }
  404.  
  405. method JavaContainer::removeInterface {this oldInterface} {
  406.     [$this interfaceSet] removeValue $oldInterface
  407. }
  408.  
  409. #---------------------------------------------------------------------------
  410. #      File:           @(#)javacookie.tcl    /main/titanic/4
  411. #---------------------------------------------------------------------------
  412.  
  413. # Start user added include file section
  414. # End user added include file section
  415.  
  416.  
  417. Class JavaCookie : {GCObject} {
  418.     constructor
  419.     method destructor
  420. }
  421.  
  422. global JavaCookie::dataAttributeSection
  423. set JavaCookie::dataAttributeSection "// Data attributes"
  424.  
  425. global JavaCookie::associationAttributeSection
  426. set JavaCookie::associationAttributeSection "// Association attributes"
  427.  
  428. global JavaCookie::defaultConstructorSection
  429. set JavaCookie::defaultConstructorSection "// Default constructor"
  430.  
  431. global JavaCookie::userConstructorSection
  432. set JavaCookie::userConstructorSection "// User defined constructors"
  433.  
  434. global JavaCookie::methodSection
  435. set JavaCookie::methodSection "// Methods"
  436.  
  437. global JavaCookie::attributeAccessorSection
  438. set JavaCookie::attributeAccessorSection "// Attribute accessors"
  439.  
  440. global JavaCookie::associationAccessorSection
  441. set JavaCookie::associationAccessorSection "// Association accessors"
  442.  
  443. global JavaCookie::startClassDeclaration
  444. set JavaCookie::startClassDeclaration "// Do not delete this line -- Start Class Declarations"
  445.  
  446. global JavaCookie::regenerationEndSection
  447. set JavaCookie::regenerationEndSection "// Do not delete this line -- regeneration end marker"
  448.  
  449. global JavaCookie::endClassDeclaration
  450. set JavaCookie::endClassDeclaration "// Do not delete this line -- End Class Declarations"
  451.  
  452. global JavaCookie::startUserSection
  453. set JavaCookie::startUserSection "// Start user code section"
  454.  
  455. global JavaCookie::endUserSection
  456. set JavaCookie::endUserSection "// End user code section"
  457.  
  458. global JavaCookie::startObsoleteCodeSection
  459. set JavaCookie::startObsoleteCodeSection "// Start obsolete code section -- Remove this line"
  460.  
  461. global JavaCookie::endObsoleteCodeSection
  462. set JavaCookie::endObsoleteCodeSection "// End obsolete code section -- Remove this line"
  463.  
  464. global JavaCookie::startUserImportSection
  465. set JavaCookie::startUserImportSection "// Begin user import section"
  466.  
  467. global JavaCookie::endUserImportSection
  468. set JavaCookie::endUserImportSection "// End user import section"
  469.  
  470. global JavaCookie::endMarker
  471. set JavaCookie::endMarker "-- regeneration end marker"
  472.  
  473.  
  474. constructor JavaCookie {class this} {
  475.     set this [GCObject::constructor $class $this]
  476.     # Start constructor user section
  477.     # End constructor user section
  478.     return $this
  479. }
  480.  
  481. method JavaCookie::destructor {this} {
  482.     # Start destructor user section
  483.     # End destructor user section
  484. }
  485.  
  486. # Do not delete this line -- regeneration end marker
  487.  
  488. #---------------------------------------------------------------------------
  489. #      File:           @(#)javafeatur.tcl    /main/titanic/1
  490. #---------------------------------------------------------------------------
  491.  
  492. # Start user added include file section
  493. # End user added include file section
  494.  
  495.  
  496. Class JavaFeature : {GCObject} {
  497.     constructor
  498.     method destructor
  499.     method generate
  500.     method addModifier
  501.     method removeModifier
  502.     attribute name
  503.     attribute comment
  504.     attribute type
  505.     attribute modifierSet
  506.     attribute access
  507. }
  508.  
  509. constructor JavaFeature {class this i_name} {
  510.     set this [GCObject::constructor $class $this]
  511.     $this name $i_name
  512.     $this modifierSet [List new]
  513.     # Start constructor user section
  514.     # End constructor user section
  515.     return $this
  516. }
  517.  
  518. method JavaFeature::destructor {this} {
  519.     # Start destructor user section
  520.     # End destructor user section
  521. }
  522.  
  523. method JavaFeature::generate {this sect} {
  524.     # !! Implement this function !!
  525. }
  526.  
  527. # Do not delete this line -- regeneration end marker
  528.  
  529. method JavaFeature::addModifier {this newModifier} {
  530.     [$this modifierSet] append $newModifier
  531.  
  532. }
  533.  
  534. method JavaFeature::removeModifier {this oldModifier} {
  535.     [$this modifierSet] removeValue $oldModifier
  536. }
  537.  
  538. #---------------------------------------------------------------------------
  539. #      File:           @(#)javainitia.tcl    /main/titanic/1
  540. #---------------------------------------------------------------------------
  541.  
  542. # Start user added include file section
  543. # End user added include file section
  544.  
  545.  
  546. Class JavaInitializer : {GCObject} {
  547.     constructor
  548.     method destructor
  549.     method generate
  550.     attribute value
  551. }
  552.  
  553. constructor JavaInitializer {class this i_value} {
  554.     set this [GCObject::constructor $class $this]
  555.     $this value $i_value
  556.     # Start constructor user section
  557.     # End constructor user section
  558.     return $this
  559. }
  560.  
  561. method JavaInitializer::destructor {this} {
  562.     # Start destructor user section
  563.     # End destructor user section
  564. }
  565.  
  566. method JavaInitializer::generate {this sect} {
  567.     $sect append " = [$this value]"
  568. }
  569.  
  570. # Do not delete this line -- regeneration end marker
  571.  
  572. #---------------------------------------------------------------------------
  573. #      File:           @(#)javamodel.tcl    /main/titanic/1
  574. #---------------------------------------------------------------------------
  575.  
  576. # Start user added include file section
  577. # End user added include file section
  578.  
  579.  
  580. Class JavaModel : {GCObject} {
  581.     constructor
  582.     method destructor
  583.     method generate
  584.     method getCompilationUnit
  585.     method addUnit
  586.     method removeUnit
  587.     attribute unitSet
  588. }
  589.  
  590. constructor JavaModel {class this} {
  591.     set this [GCObject::constructor $class $this]
  592.     $this unitSet [List new]
  593.     # Start constructor user section
  594.     # End constructor user section
  595.     return $this
  596. }
  597.  
  598. method JavaModel::destructor {this} {
  599.     # Start destructor user section
  600.     # End destructor user section
  601. }
  602.  
  603. method JavaModel::generate {this typeToClassDict} {
  604.     [$this unitSet] foreach unit {
  605.         if {[$unit masterContainer] != ""} {
  606.         set sectionDict [Dictionary new]
  607.         $sectionDict set "java" [$unit generate]
  608.         set ooplClass [[$unit masterContainer] ooplClass]
  609.         $typeToClassDict set $ooplClass $sectionDict
  610.         }
  611.     }
  612. }
  613.  
  614. method JavaModel::getCompilationUnit {this unitName} {
  615.     [$this unitSet] foreach unit {
  616.         if {[$unit name] == $unitName} {
  617.         return $unit
  618.         }
  619.     }
  620.  
  621.     set unit [JavaCompilationUnit new $unitName]
  622.  
  623.     $this addUnit $unit
  624.  
  625.     return $unit
  626. }
  627.  
  628. # Do not delete this line -- regeneration end marker
  629.  
  630. method JavaModel::addUnit {this newUnit} {
  631.     [$this unitSet] append $newUnit
  632.  
  633. }
  634.  
  635. method JavaModel::removeUnit {this oldUnit} {
  636.     [$this unitSet] removeValue $oldUnit
  637. }
  638.  
  639. #---------------------------------------------------------------------------
  640. #      File:           @(#)javamodifi.tcl    /main/titanic/1
  641. #---------------------------------------------------------------------------
  642.  
  643. # Start user added include file section
  644. # End user added include file section
  645.  
  646.  
  647. Class JavaModifier : {GCObject} {
  648.     constructor
  649.     method destructor
  650.     method generate
  651.     attribute modifier
  652. }
  653.  
  654. constructor JavaModifier {class this i_modifier} {
  655.     set this [GCObject::constructor $class $this]
  656.     $this modifier $i_modifier
  657.     # Start constructor user section
  658.     # End constructor user section
  659.     return $this
  660. }
  661.  
  662. method JavaModifier::destructor {this} {
  663.     # Start destructor user section
  664.     # End destructor user section
  665. }
  666.  
  667. method JavaModifier::generate {this sect} {
  668.     $sect append "[$this modifier] "
  669. }
  670.  
  671. # Do not delete this line -- regeneration end marker
  672.  
  673. #---------------------------------------------------------------------------
  674. #      File:           @(#)javapackag.tcl    /main/titanic/1
  675. #---------------------------------------------------------------------------
  676.  
  677. # Start user added include file section
  678. # End user added include file section
  679.  
  680.  
  681. Class JavaPackageName : {GCObject} {
  682.     constructor
  683.     method destructor
  684.     method generate
  685.     attribute identifier
  686. }
  687.  
  688. constructor JavaPackageName {class this i_identifier} {
  689.     set this [GCObject::constructor $class $this]
  690.     $this identifier $i_identifier
  691.     # Start constructor user section
  692.  
  693.     $this identifier [string trim $i_identifier]
  694.  
  695.     # End constructor user section
  696.     return $this
  697. }
  698.  
  699. method JavaPackageName::destructor {this} {
  700.     # Start destructor user section
  701.     # End destructor user section
  702. }
  703.  
  704. method JavaPackageName::generate {this sect} {
  705.     $sect append [$this identifier]
  706. }
  707.  
  708. # Do not delete this line -- regeneration end marker
  709.  
  710. #---------------------------------------------------------------------------
  711. #      File:           @(#)javaparame.tcl    /main/titanic/1
  712. #---------------------------------------------------------------------------
  713.  
  714. # Start user added include file section
  715. # End user added include file section
  716.  
  717.  
  718. Class JavaParameter : {GCObject} {
  719.     constructor
  720.     method destructor
  721.     method generate
  722.     attribute name
  723.     attribute type
  724. }
  725.  
  726. constructor JavaParameter {class this i_name type} {
  727.     set this [GCObject::constructor $class $this]
  728.     $this name $i_name
  729.     $this type $type
  730.     # Start constructor user section
  731.     # End constructor user section
  732.     return $this
  733. }
  734.  
  735. method JavaParameter::destructor {this} {
  736.     # Start destructor user section
  737.     # End destructor user section
  738. }
  739.  
  740. method JavaParameter::generate {this sect} {
  741.     [$this type] generate $sect
  742.     $sect append [$this name]
  743. }
  744.  
  745. # Do not delete this line -- regeneration end marker
  746.  
  747. #---------------------------------------------------------------------------
  748. #      File:           @(#)javatype.tcl    /main/titanic/1
  749. #---------------------------------------------------------------------------
  750.  
  751. # Start user added include file section
  752. # End user added include file section
  753.  
  754.  
  755. Class JavaType : {GCObject} {
  756.     constructor
  757.     method destructor
  758.     method generate
  759.     attribute name
  760. }
  761.  
  762. constructor JavaType {class this i_name} {
  763.     set this [GCObject::constructor $class $this]
  764.     $this name $i_name
  765.     # Start constructor user section
  766.     # End constructor user section
  767.     return $this
  768. }
  769.  
  770. method JavaType::destructor {this} {
  771.     # Start destructor user section
  772.     # End destructor user section
  773. }
  774.  
  775. method JavaType::generate {this sect} {
  776.     $sect append "[$this name] "
  777. }
  778.  
  779. # Do not delete this line -- regeneration end marker
  780.  
  781. #---------------------------------------------------------------------------
  782. #      File:           @(#)javamethod.tcl    /main/titanic/1
  783. #---------------------------------------------------------------------------
  784.  
  785. # Start user added include file section
  786. # End user added include file section
  787.  
  788.  
  789. Class JavaMethod : {JavaFeature} {
  790.     constructor
  791.     method destructor
  792.     method generate
  793.     method generateParameterList
  794.     method addParameter
  795.     method removeParameter
  796.     attribute userBody
  797.     attribute parameterSet
  798. }
  799.  
  800. constructor JavaMethod {class this i_name} {
  801.     set this [JavaFeature::constructor $class $this $i_name]
  802.     $this parameterSet [List new]
  803.     # Start constructor user section
  804.     # End constructor user section
  805.     return $this
  806. }
  807.  
  808. method JavaMethod::destructor {this} {
  809.     # Start destructor user section
  810.     # End destructor user section
  811.     $this JavaFeature::destructor
  812. }
  813.  
  814. method JavaMethod::generate {this sect} {
  815.     # !! Implement this function !!
  816. }
  817.  
  818. method JavaMethod::generateParameterList {this} {
  819.     set sect [TextSection new]
  820.  
  821.     $sect append "("
  822.     set first 1
  823.  
  824.     [$this parameterSet] foreach parameter {
  825.         if {$first} {
  826.         incr first -1
  827.         } else {
  828.         $sect append ", "
  829.         }
  830.  
  831.         $parameter generate $sect
  832.     }
  833.  
  834.     $sect append ")"
  835.  
  836.     return $sect
  837. }
  838.  
  839. # Do not delete this line -- regeneration end marker
  840.  
  841. method JavaMethod::addParameter {this newParameter} {
  842.     [$this parameterSet] append $newParameter
  843.  
  844. }
  845.  
  846. method JavaMethod::removeParameter {this oldParameter} {
  847.     [$this parameterSet] removeValue $oldParameter
  848. }
  849.  
  850. #---------------------------------------------------------------------------
  851. #      File:           @(#)javathrowe.tcl    /main/titanic/1
  852. #---------------------------------------------------------------------------
  853.  
  854. # Start user added include file section
  855. # End user added include file section
  856.  
  857.  
  858. Class JavaThrower : {JavaMethod} {
  859.     constructor
  860.     method destructor
  861.     method generateThrowList
  862.     method addThrow
  863.     method removeThrow
  864.     attribute throwSet
  865. }
  866.  
  867. constructor JavaThrower {class this i_name} {
  868.     set this [JavaMethod::constructor $class $this $i_name]
  869.     $this throwSet [List new]
  870.     # Start constructor user section
  871.     # End constructor user section
  872.     return $this
  873. }
  874.  
  875. method JavaThrower::destructor {this} {
  876.     # Start destructor user section
  877.     # End destructor user section
  878.     $this JavaMethod::destructor
  879. }
  880.  
  881. method JavaThrower::generateThrowList {this} {
  882.     set sect [TextSection new]
  883.  
  884.     if {![[$this throwSet] empty]} {
  885.         set first 1
  886.  
  887.         [$this throwSet] foreach throw {
  888.         if {$first} {
  889.             $sect append " throws "
  890.             incr first -1
  891.         } else {
  892.             $sect append ", "
  893.         }
  894.  
  895.         $throw generate $sect
  896.         }
  897.     }
  898.  
  899.     return $sect
  900. }
  901.  
  902. # Do not delete this line -- regeneration end marker
  903.  
  904. method JavaThrower::addThrow {this newThrow} {
  905.     [$this throwSet] append $newThrow
  906.  
  907. }
  908.  
  909. method JavaThrower::removeThrow {this oldThrow} {
  910.     [$this throwSet] removeValue $oldThrow
  911. }
  912.  
  913. #---------------------------------------------------------------------------
  914. #      File:           @(#)javavariab.tcl    /main/titanic/1
  915. #---------------------------------------------------------------------------
  916.  
  917. # Start user added include file section
  918. # End user added include file section
  919.  
  920.  
  921. Class JavaVariable : {JavaFeature} {
  922.     constructor
  923.     method destructor
  924.     method generate
  925.     attribute initializer
  926. }
  927.  
  928. constructor JavaVariable {class this i_name} {
  929.     set this [JavaFeature::constructor $class $this $i_name]
  930.     # Start constructor user section
  931.     # End constructor user section
  932.     return $this
  933. }
  934.  
  935. method JavaVariable::destructor {this} {
  936.     # Start destructor user section
  937.     # End destructor user section
  938.     $this JavaFeature::destructor
  939. }
  940.  
  941. method JavaVariable::generate {this sect} {
  942.     if {[$this comment] != ""} {
  943.         [$this comment] generate $sect
  944.     }
  945.  
  946.     if {[$this access] != ""} {
  947.         [$this access] generate $sect
  948.     }
  949.  
  950.     [$this modifierSet] foreach modifier {
  951.         $modifier generate $sect
  952.     }
  953.  
  954.     [$this type] generate $sect
  955.  
  956.     $sect append [$this name]
  957.  
  958.     if {[$this initializer] != ""} {
  959.         [$this initializer] generate $sect
  960.     }
  961.  
  962.     $sect append ";\n"
  963. }
  964.  
  965. # Do not delete this line -- regeneration end marker
  966.  
  967. #---------------------------------------------------------------------------
  968. #      File:           @(#)javaconstr.tcl    /main/titanic/3
  969. #---------------------------------------------------------------------------
  970.  
  971. # Start user added include file section
  972. # End user added include file section
  973.  
  974.  
  975. Class JavaConstructor : {JavaMethod} {
  976.     constructor
  977.     method destructor
  978.     method generate
  979.     attribute generatorBody
  980. }
  981.  
  982. constructor JavaConstructor {class this i_name} {
  983.     set this [JavaMethod::constructor $class $this $i_name]
  984.     # Start constructor user section
  985.     # End constructor user section
  986.     return $this
  987. }
  988.  
  989. method JavaConstructor::destructor {this} {
  990.     # Start destructor user section
  991.     # End destructor user section
  992.     $this JavaMethod::destructor
  993. }
  994.  
  995. method JavaConstructor::generate {this sect} {
  996.     if {[$this comment] != ""} {
  997.         [$this comment] generate $sect
  998.     }
  999.  
  1000.     if {[$this access] != ""} {
  1001.         [$this access] generate $sect
  1002.     }
  1003.  
  1004.     $sect append [$this name]
  1005.     $sect appendSect [$this generateParameterList]
  1006.     $sect append " {\n"
  1007.     $sect indent +
  1008.     $sect appendSect [$this generatorBody]
  1009.     $sect append "\n${JavaCookie::startUserSection}\n"
  1010.  
  1011.     if {[$this userBody] != ""} {
  1012.         set oldIndent [$sect indent]
  1013.  
  1014.         $sect indent 0
  1015.         $sect appendSect [$this userBody]
  1016.         $sect indent $oldIndent
  1017.     }
  1018.  
  1019.     $sect append "${JavaCookie::endUserSection}\n"
  1020.     $sect indent -
  1021.     $sect append "} // default constructor [$this name]\n\n"
  1022. }
  1023.  
  1024. # Do not delete this line -- regeneration end marker
  1025.  
  1026. #---------------------------------------------------------------------------
  1027. #      File:           @(#)javauserme.tcl    /main/titanic/3
  1028. #---------------------------------------------------------------------------
  1029.  
  1030. # Start user added include file section
  1031. # End user added include file section
  1032.  
  1033.  
  1034. Class JavaUserMethod : {JavaThrower} {
  1035.     constructor
  1036.     method destructor
  1037.     method generate
  1038.     attribute hasBody
  1039. }
  1040.  
  1041. constructor JavaUserMethod {class this i_name} {
  1042.     set this [JavaThrower::constructor $class $this $i_name]
  1043.     # Start constructor user section
  1044.  
  1045.     $this hasBody 1
  1046.  
  1047.     # End constructor user section
  1048.     return $this
  1049. }
  1050.  
  1051. method JavaUserMethod::destructor {this} {
  1052.     # Start destructor user section
  1053.     # End destructor user section
  1054.     $this JavaThrower::destructor
  1055. }
  1056.  
  1057. method JavaUserMethod::generate {this sect} {
  1058.     if {[$this comment] != ""} {
  1059.         [$this comment] generate $sect
  1060.     }
  1061.  
  1062.     if {[$this access] != ""} {
  1063.         [$this access] generate $sect
  1064.     }
  1065.  
  1066.     [$this modifierSet] foreach modifier {
  1067.         $modifier generate $sect
  1068.     }
  1069.  
  1070.     if {[$this type] != ""} {
  1071.         [$this type] generate $sect
  1072.     }
  1073.  
  1074.     $sect append [$this name]
  1075.  
  1076.     $sect appendSect [$this generateParameterList]
  1077.     $sect appendSect [$this generateThrowList]
  1078.  
  1079.     if [$this hasBody] {
  1080.         $sect append " {\n"
  1081.  
  1082.         if {[$this userBody] != ""} {
  1083.         set oldIndent [$sect indent]
  1084.  
  1085.         $sect indent 0
  1086.         $sect appendSect [$this userBody]
  1087.         $sect indent $oldIndent
  1088.         }
  1089.  
  1090.         $sect append "} // method [$this name] ${JavaCookie::endMarker}\n\n"
  1091.     } else {
  1092.         $sect append ";\n\n"
  1093.     }
  1094. }
  1095.  
  1096. # Do not delete this line -- regeneration end marker
  1097.  
  1098. #---------------------------------------------------------------------------
  1099. #      File:           @(#)javaenumcl.tcl    /main/titanic/1
  1100. #---------------------------------------------------------------------------
  1101.  
  1102. # Start user added include file section
  1103. # End user added include file section
  1104.  
  1105.  
  1106. Class JavaEnumClass : {JavaContainer} {
  1107.     constructor
  1108.     method destructor
  1109.     method generate
  1110.     attribute obsoleteCode
  1111. }
  1112.  
  1113. constructor JavaEnumClass {class this ooplClass} {
  1114.     set this [JavaContainer::constructor $class $this $ooplClass]
  1115.     # Start constructor user section
  1116.     # End constructor user section
  1117.     return $this
  1118. }
  1119.  
  1120. method JavaEnumClass::destructor {this} {
  1121.     # Start destructor user section
  1122.     # End destructor user section
  1123.     $this JavaContainer::destructor
  1124. }
  1125.  
  1126. method JavaEnumClass::generate {this sect} {
  1127.     if {[$this comment] != ""} {
  1128.         [$this comment] generate $sect
  1129.     }
  1130.  
  1131.     if {[$this access] != ""} {
  1132.         [$this access] generate $sect
  1133.     }
  1134.  
  1135.     if {[$this modifier] != ""} {
  1136.         [$this modifier] generate $sect
  1137.     }
  1138.  
  1139.     $sect append "class [$this name] extends Object"
  1140.  
  1141.     $sect append " {\n"
  1142.     $sect indent +
  1143.     $sect append "\n${JavaCookie::dataAttributeSection}\n\n"
  1144.  
  1145.     [$this variableSet] foreach variable {
  1146.         $variable generate $sect
  1147.     }
  1148.  
  1149.     $sect append "\n${JavaCookie::regenerationEndSection}\n"
  1150.  
  1151.     if {[$this obsoleteCode] != ""} {
  1152.         $sect append "\n${JavaCookie::startObsoleteCodeSection}\n\n"
  1153.         $sect appendSect [$this obsoleteCode]
  1154.         $sect append "\n${JavaCookie::endObsoleteCodeSection}\n\n"
  1155.     }
  1156.  
  1157.     $sect indent -
  1158.     $sect append "} // class [$this name]\n\n"
  1159. }
  1160.  
  1161. # Do not delete this line -- regeneration end marker
  1162.  
  1163. #---------------------------------------------------------------------------
  1164. #      File:           @(#)javastatic.tcl    /main/titanic/2
  1165. #---------------------------------------------------------------------------
  1166.  
  1167. # Start user added include file section
  1168. # End user added include file section
  1169.  
  1170.  
  1171. Class JavaStaticInitializer : {JavaMethod} {
  1172.     constructor
  1173.     method destructor
  1174.     method generate
  1175.     method generateParameterList
  1176. }
  1177.  
  1178. constructor JavaStaticInitializer {class this i_name} {
  1179.     set this [JavaMethod::constructor $class $this $i_name]
  1180.     # Start constructor user section
  1181.     # End constructor user section
  1182.     return $this
  1183. }
  1184.  
  1185. method JavaStaticInitializer::destructor {this} {
  1186.     # Start destructor user section
  1187.     # End destructor user section
  1188.     $this JavaMethod::destructor
  1189. }
  1190.  
  1191. method JavaStaticInitializer::generate {this sect} {
  1192.     if {[$this comment] != ""} {
  1193.         [$this comment] generate $sect
  1194.     }
  1195.  
  1196.     $sect append "static {\n"
  1197.  
  1198.     if {[$this userBody] != ""} {
  1199.         set oldIndent [$sect indent]
  1200.  
  1201.         $sect indent 0
  1202.         $sect appendSect [$this userBody]
  1203.         $sect indent $oldIndent
  1204.     }
  1205.  
  1206.     $sect append "} // static initializer ${JavaCookie::endMarker}\n\n"
  1207. }
  1208.  
  1209. method JavaStaticInitializer::generateParameterList {this} {
  1210.     return [TextSection new]
  1211. }
  1212.  
  1213. # Do not delete this line -- regeneration end marker
  1214.  
  1215. #---------------------------------------------------------------------------
  1216. #      File:           @(#)javaaccmet.tcl    /main/titanic/1
  1217. #---------------------------------------------------------------------------
  1218.  
  1219. # Start user added include file section
  1220. # End user added include file section
  1221.  
  1222.  
  1223. Class JavaAccMethod : {JavaMethod} {
  1224.     constructor
  1225.     method destructor
  1226.     method generate
  1227.     attribute generatorBody
  1228. }
  1229.  
  1230. constructor JavaAccMethod {class this i_name} {
  1231.     set this [JavaMethod::constructor $class $this $i_name]
  1232.     # Start constructor user section
  1233.     # End constructor user section
  1234.     return $this
  1235. }
  1236.  
  1237. method JavaAccMethod::destructor {this} {
  1238.     # Start destructor user section
  1239.     # End destructor user section
  1240.     $this JavaMethod::destructor
  1241. }
  1242.  
  1243. method JavaAccMethod::generate {this sect} {
  1244.     if {[$this access] != ""} {
  1245.         [$this access] generate $sect
  1246.     }
  1247.  
  1248.     [$this modifierSet] foreach modifier {
  1249.         $modifier generate $sect
  1250.     }
  1251.  
  1252.     if {[$this type] != ""} {
  1253.         [$this type] generate $sect
  1254.     }
  1255.  
  1256.     $sect append [$this name]
  1257.  
  1258.     $sect appendSect [$this generateParameterList]
  1259.  
  1260.     $sect append " {\n"
  1261.     $sect indent +
  1262.     $sect appendSect [$this generatorBody]
  1263.     $sect indent -
  1264.     $sect append "}\n\n"
  1265. }
  1266.  
  1267. # Do not delete this line -- regeneration end marker
  1268.  
  1269. #---------------------------------------------------------------------------
  1270. #      File:           @(#)javablockc.tcl    /main/titanic/1
  1271. #---------------------------------------------------------------------------
  1272.  
  1273. # Start user added include file section
  1274. # End user added include file section
  1275.  
  1276.  
  1277. Class JavaBlockComment : {JavaComment} {
  1278.     constructor
  1279.     method destructor
  1280.     method generate
  1281. }
  1282.  
  1283. constructor JavaBlockComment {class this comment} {
  1284.     set this [JavaComment::constructor $class $this $comment]
  1285.     # Start constructor user section
  1286.     # End constructor user section
  1287.     return $this
  1288. }
  1289.  
  1290. method JavaBlockComment::destructor {this} {
  1291.     # Start destructor user section
  1292.     # End destructor user section
  1293.     $this JavaComment::destructor
  1294. }
  1295.  
  1296. method JavaBlockComment::generate {this sect} {
  1297.     $sect append "/*\n"
  1298.     $sect append "[$this comment]\n"
  1299.     $sect append "*/\n"
  1300. }
  1301.  
  1302. # Do not delete this line -- regeneration end marker
  1303.  
  1304. #---------------------------------------------------------------------------
  1305. #      File:           @(#)javauserco.tcl    /main/titanic/4
  1306. #---------------------------------------------------------------------------
  1307.  
  1308. # Start user added include file section
  1309. # End user added include file section
  1310.  
  1311.  
  1312. Class JavaUserConstructor : {JavaThrower} {
  1313.     constructor
  1314.     method destructor
  1315.     method generate
  1316. }
  1317.  
  1318. constructor JavaUserConstructor {class this i_name} {
  1319.     set this [JavaThrower::constructor $class $this $i_name]
  1320.     # Start constructor user section
  1321.     # End constructor user section
  1322.     return $this
  1323. }
  1324.  
  1325. method JavaUserConstructor::destructor {this} {
  1326.     # Start destructor user section
  1327.     # End destructor user section
  1328.     $this JavaThrower::destructor
  1329. }
  1330.  
  1331. method JavaUserConstructor::generate {this sect} {
  1332.     if {[$this comment] != ""} {
  1333.         [$this comment] generate $sect
  1334.     }
  1335.  
  1336.     if {[$this access] != ""} {
  1337.         [$this access] generate $sect
  1338.     }
  1339.  
  1340.     $sect append [$this name]
  1341.  
  1342.     $sect appendSect [$this generateParameterList]
  1343.     $sect appendSect [$this generateThrowList]
  1344.  
  1345.     $sect append " {\n"
  1346.  
  1347.     if {[$this userBody] != ""} {
  1348.         set oldIndent [$sect indent]
  1349.  
  1350.         $sect indent 0
  1351.         $sect appendSect [$this userBody]
  1352.         $sect indent $oldIndent
  1353.     }
  1354.  
  1355.     $sect append "} // user constructor [$this name] ${JavaCookie::endMarker}\n\n"
  1356. }
  1357.  
  1358. # Do not delete this line -- regeneration end marker
  1359.  
  1360. #---------------------------------------------------------------------------
  1361. #      File:           @(#)javainterf.tcl    /main/titanic/1
  1362. #---------------------------------------------------------------------------
  1363.  
  1364. # Start user added include file section
  1365. # End user added include file section
  1366.  
  1367.  
  1368. Class JavaInterface : {JavaContainer} {
  1369.     constructor
  1370.     method destructor
  1371.     method generate
  1372. }
  1373.  
  1374. constructor JavaInterface {class this ooplClass} {
  1375.     set this [JavaContainer::constructor $class $this $ooplClass]
  1376.     # Start constructor user section
  1377.     # End constructor user section
  1378.     return $this
  1379. }
  1380.  
  1381. method JavaInterface::destructor {this} {
  1382.     # Start destructor user section
  1383.     # End destructor user section
  1384.     $this JavaContainer::destructor
  1385. }
  1386.  
  1387. method JavaInterface::generate {this sect} {
  1388.     if {[$this comment] != ""} {
  1389.         [$this comment] generate $sect
  1390.     }
  1391.  
  1392.     if {[$this access] != ""} {
  1393.         [$this access] generate $sect
  1394.     }
  1395.  
  1396.     if {[$this modifier] != ""} {
  1397.         [$this modifier] generate $sect
  1398.     }
  1399.  
  1400.     $sect append "interface [$this name]"
  1401.     $sect appendSect [$this generateInterfaceList "extends"]
  1402.     $sect append " {\n"
  1403.     $sect indent +
  1404.     $sect append "\n${JavaCookie::dataAttributeSection}\n\n"
  1405.  
  1406.     [$this variableSet] foreach variable {
  1407.         $variable generate $sect
  1408.     }
  1409.  
  1410.     $sect append "\n${JavaCookie::methodSection}\n\n"
  1411.  
  1412.     [$this methodSet] foreach method {
  1413.         $method generate $sect
  1414.     }
  1415.  
  1416.     $sect indent -
  1417.     $sect append "} // interface [$this name]\n\n"
  1418. }
  1419.  
  1420. # Do not delete this line -- regeneration end marker
  1421.  
  1422. #---------------------------------------------------------------------------
  1423. #      File:           @(#)javaclass.tcl    /main/titanic/3
  1424. #---------------------------------------------------------------------------
  1425.  
  1426. # Start user added include file section
  1427. # End user added include file section
  1428.  
  1429.  
  1430. Class JavaClass : {JavaContainer} {
  1431.     constructor
  1432.     method destructor
  1433.     method generate
  1434.     method needsType
  1435.     method addAttributeAccessor
  1436.     method removeAttributeAccessor
  1437.     method addAssociationAccessor
  1438.     method removeAssociationAccessor
  1439.     method addUserConstructor
  1440.     method removeUserConstructor
  1441.     method addAssocVariable
  1442.     method removeAssocVariable
  1443.     attribute superClass
  1444.     attribute obsoleteCode
  1445.     attribute attributeAccessorSet
  1446.     attribute associationAccessorSet
  1447.     attribute userConstructorSet
  1448.     attribute defaultConstructor
  1449.     attribute assocVariableSet
  1450. }
  1451.  
  1452. constructor JavaClass {class this ooplClass} {
  1453.     set this [JavaContainer::constructor $class $this $ooplClass]
  1454.     $this attributeAccessorSet [List new]
  1455.     $this associationAccessorSet [List new]
  1456.     $this userConstructorSet [List new]
  1457.     $this assocVariableSet [List new]
  1458.     # Start constructor user section
  1459.     # End constructor user section
  1460.     return $this
  1461. }
  1462.  
  1463. method JavaClass::destructor {this} {
  1464.     # Start destructor user section
  1465.     # End destructor user section
  1466.     $this JavaContainer::destructor
  1467. }
  1468.  
  1469. method JavaClass::generate {this sect} {
  1470.     if {[$this comment] != ""} {
  1471.         [$this comment] generate $sect
  1472.     }
  1473.  
  1474.     if {[$this access] != ""} {
  1475.         [$this access] generate $sect
  1476.     }
  1477.  
  1478.     if {[$this modifier] != ""} {
  1479.         [$this modifier] generate $sect
  1480.     }
  1481.  
  1482.     $sect append "class [$this name] extends "
  1483.  
  1484.     if {[$this superClass] == ""} {
  1485.         $sect append "Object"
  1486.     } else {
  1487.         $sect append [$this superClass]
  1488.     }
  1489.  
  1490.     $sect appendSect [$this generateInterfaceList "implements"]
  1491.  
  1492.     $sect append " {\n"
  1493.     $sect indent +
  1494.     $sect append "\n${JavaCookie::dataAttributeSection}\n\n"
  1495.  
  1496.     [$this variableSet] foreach variable {
  1497.         $variable generate $sect
  1498.     }
  1499.  
  1500.     $sect append "\n${JavaCookie::associationAttributeSection}\n\n"
  1501.  
  1502.     [$this assocVariableSet] foreach variable {
  1503.         $variable generate $sect
  1504.     }
  1505.  
  1506.     $sect append "\n${JavaCookie::defaultConstructorSection}\n\n"
  1507.  
  1508.     if {[$this defaultConstructor] != ""} {
  1509.         [$this defaultConstructor] generate $sect
  1510.     }
  1511.  
  1512.     $sect append "\n${JavaCookie::userConstructorSection}\n\n"
  1513.  
  1514.     [$this userConstructorSet] foreach constructor {
  1515.         $constructor generate $sect
  1516.     }
  1517.  
  1518.     $sect append "\n${JavaCookie::methodSection}\n\n"
  1519.  
  1520.     [$this methodSet] foreach method {
  1521.         $method generate $sect
  1522.     }
  1523.  
  1524.     $sect append "\n${JavaCookie::regenerationEndSection}\n"
  1525.  
  1526.     $sect append "\n${JavaCookie::attributeAccessorSection}\n\n"
  1527.  
  1528.     [$this attributeAccessorSet] foreach accessor {
  1529.         $accessor generate $sect
  1530.     }
  1531.  
  1532.     $sect append "\n${JavaCookie::associationAccessorSection}\n\n"
  1533.  
  1534.     [$this associationAccessorSet] foreach accessor {
  1535.         $accessor generate $sect
  1536.     }
  1537.  
  1538.     if {[$this obsoleteCode] != ""} {
  1539.         $sect append "\n${JavaCookie::startObsoleteCodeSection}\n\n"
  1540.         $sect appendSect [$this obsoleteCode]
  1541.         $sect append "\n${JavaCookie::endObsoleteCodeSection}\n\n"
  1542.     }
  1543.  
  1544.     $sect indent -
  1545.     $sect append "} // class [$this name]\n\n"
  1546. }
  1547.  
  1548. method JavaClass::needsType {this typeName} {
  1549.     switch $typeName {
  1550.         Hashtable {return [$this needsHashtable]}
  1551.         Vector {return [$this needsVector]}
  1552.     }
  1553.  
  1554.     [$this assocVariableSet] foreach variable {
  1555.         if {[[$variable type] name] == $typeName} {
  1556.         return 1
  1557.         }
  1558.     }
  1559.  
  1560.     return 0
  1561. }
  1562.  
  1563. # Do not delete this line -- regeneration end marker
  1564.  
  1565. method JavaClass::addAttributeAccessor {this newAttributeAccessor} {
  1566.     [$this attributeAccessorSet] append $newAttributeAccessor
  1567.  
  1568. }
  1569.  
  1570. method JavaClass::removeAttributeAccessor {this oldAttributeAccessor} {
  1571.     [$this attributeAccessorSet] removeValue $oldAttributeAccessor
  1572. }
  1573.  
  1574. method JavaClass::addAssociationAccessor {this newAssociationAccessor} {
  1575.     [$this associationAccessorSet] append $newAssociationAccessor
  1576.  
  1577. }
  1578.  
  1579. method JavaClass::removeAssociationAccessor {this oldAssociationAccessor} {
  1580.     [$this associationAccessorSet] removeValue $oldAssociationAccessor
  1581. }
  1582.  
  1583. method JavaClass::addUserConstructor {this newUserConstructor} {
  1584.     [$this userConstructorSet] append $newUserConstructor
  1585.  
  1586. }
  1587.  
  1588. method JavaClass::removeUserConstructor {this oldUserConstructor} {
  1589.     [$this userConstructorSet] removeValue $oldUserConstructor
  1590. }
  1591.  
  1592. method JavaClass::addAssocVariable {this newAssocVariable} {
  1593.     [$this assocVariableSet] append $newAssocVariable
  1594.  
  1595. }
  1596.  
  1597. method JavaClass::removeAssocVariable {this oldAssocVariable} {
  1598.     [$this assocVariableSet] removeValue $oldAssocVariable
  1599. }
  1600.  
  1601. #---------------------------------------------------------------------------
  1602. #      File:           @(#)javadoccom.tcl    /main/titanic/1
  1603. #---------------------------------------------------------------------------
  1604.  
  1605. # Start user added include file section
  1606. # End user added include file section
  1607.  
  1608.  
  1609. Class JavaDocComment : {JavaComment} {
  1610.     constructor
  1611.     method destructor
  1612.     method generate
  1613. }
  1614.  
  1615. constructor JavaDocComment {class this comment} {
  1616.     set this [JavaComment::constructor $class $this $comment]
  1617.     # Start constructor user section
  1618.     # End constructor user section
  1619.     return $this
  1620. }
  1621.  
  1622. method JavaDocComment::destructor {this} {
  1623.     # Start destructor user section
  1624.     # End destructor user section
  1625.     $this JavaComment::destructor
  1626. }
  1627.  
  1628. method JavaDocComment::generate {this sect} {
  1629.     $sect append "/**\n"
  1630.     $sect append "[$this comment]\n"
  1631.     $sect append "*/\n"
  1632. }
  1633.  
  1634. # Do not delete this line -- regeneration end marker
  1635.  
  1636. #---------------------------------------------------------------------------
  1637. #      File:           @(#)javalineco.tcl    /main/titanic/1
  1638. #---------------------------------------------------------------------------
  1639.  
  1640. # Start user added include file section
  1641. # End user added include file section
  1642.  
  1643.  
  1644. Class JavaLineComment : {JavaComment} {
  1645.     constructor
  1646.     method destructor
  1647.     method generate
  1648. }
  1649.  
  1650. constructor JavaLineComment {class this comment} {
  1651.     set this [JavaComment::constructor $class $this $comment]
  1652.     # Start constructor user section
  1653.     # End constructor user section
  1654.     return $this
  1655. }
  1656.  
  1657. method JavaLineComment::destructor {this} {
  1658.     # Start destructor user section
  1659.     # End destructor user section
  1660.     $this JavaComment::destructor
  1661. }
  1662.  
  1663. method JavaLineComment::generate {this sect} {
  1664.     set lines [split [$this comment] "\n"]
  1665.  
  1666.     foreach line $lines {
  1667.         $sect append "// $line\n"
  1668.     }
  1669. }
  1670.  
  1671. # Do not delete this line -- regeneration end marker
  1672.  
  1673. #---------------------------------------------------------------------------
  1674. #      File:           @(#)javaexcept.tcl    /main/titanic/1
  1675. #---------------------------------------------------------------------------
  1676.  
  1677. # Start user added include file section
  1678. # End user added include file section
  1679.  
  1680.  
  1681. Class JavaException : {JavaPackageName} {
  1682.     constructor
  1683.     method destructor
  1684. }
  1685.  
  1686. constructor JavaException {class this i_identifier} {
  1687.     set this [JavaPackageName::constructor $class $this $i_identifier]
  1688.     # Start constructor user section
  1689.     # End constructor user section
  1690.     return $this
  1691. }
  1692.  
  1693. method JavaException::destructor {this} {
  1694.     # Start destructor user section
  1695.     # End destructor user section
  1696.     $this JavaPackageName::destructor
  1697. }
  1698.  
  1699. # Do not delete this line -- regeneration end marker
  1700.  
  1701.