home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / komix / DATA.Z / cppclldef.tcl < prev    next >
Text File  |  1997-12-01  |  12KB  |  449 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            : cppclldef.tcl
  17. #       Author          : 
  18. #       Original date   : November 1997
  19. #       Description     : Classes for code generation
  20. #
  21. #---------------------------------------------------------------------------
  22.  
  23. #---------------------------------------------------------------------------
  24. #      File:           @(#)cppclassde.tcl    /main/titanic/4
  25. #---------------------------------------------------------------------------
  26.  
  27. # Start user added include file section
  28. # End user added include file section
  29.  
  30.  
  31. Class CppClassDef : {GCObject} {
  32.     constructor
  33.     method destructor
  34.     attribute name
  35.     attribute clss
  36.     attribute attr
  37. }
  38.  
  39. constructor CppClassDef {class this clss attr} {
  40.     set this [GCObject::constructor $class $this]
  41.     $this clss $clss
  42.     $this attr $attr
  43.     # Start constructor user section
  44.     # End constructor user section
  45.     return $this
  46. }
  47.  
  48. method CppClassDef::destructor {this} {
  49.     # Start destructor user section
  50.     # End destructor user section
  51. }
  52.  
  53. # Do not delete this line -- regeneration end marker
  54.  
  55. #---------------------------------------------------------------------------
  56. #      File:           @(#)cppptrdef.tcl    /main/titanic/8
  57. #---------------------------------------------------------------------------
  58.  
  59. # Start user added include file section
  60. # End user added include file section
  61.  
  62.  
  63. Class CppPtrDef : {CppClassDef} {
  64.     constructor
  65.     method destructor
  66.     method getIncludeList
  67.     method getTypeAttr
  68.     method genIsEmpty
  69.     method genIsNotEmpty
  70.     method genGet
  71.     method genSet
  72.     method genDtor
  73.     method genCtor
  74. }
  75.  
  76. constructor CppPtrDef {class this clss attr} {
  77.     set this [CppClassDef::constructor $class $this $clss $attr]
  78.     # Start constructor user section
  79.     # End constructor user section
  80.     return $this
  81. }
  82.  
  83. method CppPtrDef::destructor {this} {
  84.     # Start destructor user section
  85.     # End destructor user section
  86.     $this CppClassDef::destructor
  87. }
  88.  
  89. method CppPtrDef::getIncludeList {this} {
  90.     # should return one or more include files necessary for
  91.     # implementing this association
  92.     return ""
  93. }
  94.  
  95. method CppPtrDef::getTypeAttr {this} {
  96.     # should return the CppType object representing the type
  97.     # of the association attribute storage
  98.     set attr [$this attr]
  99.     set tgt [[$this clss] model]
  100.     set type [[[$attr assocAttr] ooplType] generate $tgt]
  101.     $type isPointer 1
  102.     return $type
  103. }
  104.  
  105. method CppPtrDef::genIsEmpty {this attrName} {
  106.     # should return the piece of code use for the compare
  107.     return ""
  108. }
  109.  
  110. method CppPtrDef::genIsNotEmpty {this attrName} {
  111.     # should return the piece of code use for the compare
  112.     return ""
  113. }
  114.  
  115. method CppPtrDef::genGet {this attrName} {
  116.     # should return the string needed to get something from a one assoc
  117.     return ""
  118. }
  119.  
  120. method CppPtrDef::genSet {this attrName value} {
  121.     # should return the string needed to set something from a one assoc
  122.     return ""
  123. }
  124.  
  125. method CppPtrDef::genDtor {this} {
  126.     # returns the code needed to destroy the one assoc
  127.     return ""
  128. }
  129.  
  130. method CppPtrDef::genCtor {this} {
  131.     # returns the code to create the one assoc
  132.     return ""
  133. }
  134.  
  135. # Do not delete this line -- regeneration end marker
  136.  
  137. #---------------------------------------------------------------------------
  138. #      File:           @(#)cppsetdict.tcl    /main/titanic/10
  139. #---------------------------------------------------------------------------
  140.  
  141. # Start user added include file section
  142. # End user added include file section
  143.  
  144.  
  145. Class CppSetDictDef : {CppClassDef} {
  146.     constructor
  147.     method destructor
  148.     method getIncludeList
  149.     method getTypeAttr
  150.     method getTypeGet
  151.     method genIsEmpty
  152.     method genIsNotEmpty
  153.     method genGet
  154.     method genAdd
  155.     method genRemove
  156.     method genIterator
  157.     method genDtor
  158.     method genCtor
  159. }
  160.  
  161. constructor CppSetDictDef {class this clss attr} {
  162.     set this [CppClassDef::constructor $class $this $clss $attr]
  163.     # Start constructor user section
  164.     # End constructor user section
  165.     return $this
  166. }
  167.  
  168. method CppSetDictDef::destructor {this} {
  169.     # Start destructor user section
  170.     # End destructor user section
  171.     $this CppClassDef::destructor
  172. }
  173.  
  174. method CppSetDictDef::getIncludeList {this} {
  175.     # should return one or more include files necessary for
  176.     # implementing this association
  177.     return ""
  178. }
  179.  
  180. method CppSetDictDef::getTypeAttr {this} {
  181.     # should return the CppType object representing the type
  182.     # of the association attribute storage
  183.     set attr [$this attr]
  184.     set tgt [[$this clss] model]
  185.     set type [[[$attr assocAttr] ooplType] generate $tgt]
  186.     $type isPointer 1
  187.     return $type
  188. }
  189.  
  190. method CppSetDictDef::getTypeGet {this} {
  191.     # should return the CppType object which can be used as
  192.     # the type of the return value for a get method
  193.     return [$this getTypeAttr]
  194. }
  195.  
  196. method CppSetDictDef::genIsEmpty {this attrName} {
  197.     # should return the piece of code use for the compare
  198.     return ""
  199. }
  200.  
  201. method CppSetDictDef::genIsNotEmpty {this attrName} {
  202.     # should return the piece of code use for the compare
  203.     return ""
  204. }
  205.  
  206. method CppSetDictDef::genGet {this attrName keyName} {
  207.     # should return the string needed to get a set from a dict
  208.     return ""
  209. }
  210.  
  211. method CppSetDictDef::genAdd {this attrName keyName value} {
  212.     # should return the string needed to add one value to the dict
  213.     return ""
  214. }
  215.  
  216. method CppSetDictDef::genRemove {this attrName keyName value} {
  217.     # should return the string needed to remove one key/value
  218.     # pair from the dict
  219.     return ""
  220. }
  221.  
  222. method CppSetDictDef::genIterator {this sect loopExpr} {
  223.     # should add the code needed to iterate over the complete
  224.     # dictionary, executing loopExpr (where $loopVar in the
  225.     # expression is replaced by the actual Object)
  226.     return ""
  227. }
  228.  
  229. method CppSetDictDef::genDtor {this} {
  230.     # returns the code needed to destroy the dictionary
  231.     # (the dictionary is already empty)
  232.     return ""
  233. }
  234.  
  235. method CppSetDictDef::genCtor {this} {
  236.     # returns the code to create the dictionary
  237.     return ""
  238. }
  239.  
  240. # Do not delete this line -- regeneration end marker
  241.  
  242. #---------------------------------------------------------------------------
  243. #      File:           @(#)cppdictdef.tcl    /main/titanic/10
  244. #---------------------------------------------------------------------------
  245.  
  246. # Start user added include file section
  247. # End user added include file section
  248.  
  249.  
  250. Class CppDictDef : {CppClassDef} {
  251.     constructor
  252.     method destructor
  253.     method getIncludeList
  254.     method getTypeAttr
  255.     method getTypeGet
  256.     method genIsEmpty
  257.     method genIsNotEmpty
  258.     method genGet
  259.     method genAdd
  260.     method genRemove
  261.     method genIterator
  262.     method genDtor
  263.     method genCtor
  264. }
  265.  
  266. constructor CppDictDef {class this clss attr} {
  267.     set this [CppClassDef::constructor $class $this $clss $attr]
  268.     # Start constructor user section
  269.     # End constructor user section
  270.     return $this
  271. }
  272.  
  273. method CppDictDef::destructor {this} {
  274.     # Start destructor user section
  275.     # End destructor user section
  276.     $this CppClassDef::destructor
  277. }
  278.  
  279. method CppDictDef::getIncludeList {this} {
  280.     # should return one or more include files necessary for
  281.     # implementing this association
  282.     return ""
  283. }
  284.  
  285. method CppDictDef::getTypeAttr {this} {
  286.     # should return the CppType object representing the type
  287.     # of the association attribute storage
  288.     set attr [$this attr]
  289.     set tgt [[$this clss] model]
  290.     set type [[[$attr assocAttr] ooplType] generate $tgt]
  291.     $type isPointer 1
  292.     return $type
  293. }
  294.  
  295. method CppDictDef::getTypeGet {this} {
  296.     # should return the CppType object which can be used as
  297.     # the type of the return value for a get method
  298.     return [$this getTypeAttr]
  299. }
  300.  
  301. method CppDictDef::genIsEmpty {this attrName} {
  302.     # should return the piece of code use for the compare
  303.     return ""
  304. }
  305.  
  306. method CppDictDef::genIsNotEmpty {this attrName} {
  307.     # should return the piece of code use for the compare
  308.     return ""
  309. }
  310.  
  311. method CppDictDef::genGet {this attrName keyName} {
  312.     # should return the string needed to get something from a dict
  313. }
  314.  
  315. method CppDictDef::genAdd {this attrName keyName value} {
  316.     # should return the string needed to add one value to the dict
  317.     return ""
  318. }
  319.  
  320. method CppDictDef::genRemove {this attrName keyName} {
  321.     # should return the string needed to remove one key from the dict
  322.     return ""
  323. }
  324.  
  325. method CppDictDef::genIterator {this sect loopExpr} {
  326.     # should add the code needed to iterate over the complete
  327.     # dictionary, executing loopExpr (where $loopVar in the
  328.     # expression is replaced by the actual Object)
  329.     return ""
  330. }
  331.  
  332. method CppDictDef::genDtor {this} {
  333.     # returns the code needed to destroy the dictionary
  334.     # (the dictionary is already empty)
  335.     return ""
  336. }
  337.  
  338. method CppDictDef::genCtor {this} {
  339.     # returns the code to create the dictionary
  340.     return ""
  341. }
  342.  
  343. # Do not delete this line -- regeneration end marker
  344.  
  345. #---------------------------------------------------------------------------
  346. #      File:           @(#)cppsetdef.tcl    /main/titanic/10
  347. #---------------------------------------------------------------------------
  348.  
  349. # Start user added include file section
  350. # End user added include file section
  351.  
  352.  
  353. Class CppSetDef : {CppClassDef} {
  354.     constructor
  355.     method destructor
  356.     method getIncludeList
  357.     method getTypeAttr
  358.     method getTypeGet
  359.     method genIsEmpty
  360.     method genIsNotEmpty
  361.     method genGet
  362.     method genAdd
  363.     method genRemove
  364.     method genIterator
  365.     method genDtor
  366.     method genCtor
  367. }
  368.  
  369. constructor CppSetDef {class this clss attr} {
  370.     set this [CppClassDef::constructor $class $this $clss $attr]
  371.     # Start constructor user section
  372.     # End constructor user section
  373.     return $this
  374. }
  375.  
  376. method CppSetDef::destructor {this} {
  377.     # Start destructor user section
  378.     # End destructor user section
  379.     $this CppClassDef::destructor
  380. }
  381.  
  382. method CppSetDef::getIncludeList {this} {
  383.     # should return one or more include files necessary for
  384.     # implementing this association
  385.     return ""
  386. }
  387.  
  388. method CppSetDef::getTypeAttr {this} {
  389.     # should return the CppType object representing the type
  390.     # of the association attribute storage
  391.     set attr [$this attr]
  392.     set tgt [[$this clss] model]
  393.     set type [[[$attr assocAttr] ooplType] generate $tgt]
  394.     $type isPointer 1
  395.     return $type
  396. }
  397.  
  398. method CppSetDef::getTypeGet {this} {
  399.     # should return the CppType object which can be used as
  400.     # the type of the return value for a get method
  401.     return [$this getTypeAttr]
  402. }
  403.  
  404. method CppSetDef::genIsEmpty {this attrName} {
  405.     # should return the piece of code use for the compare
  406.     return ""
  407. }
  408.  
  409. method CppSetDef::genIsNotEmpty {this attrName} {
  410.     # should return the piece of code use for the compare
  411.     return ""
  412. }
  413.  
  414. method CppSetDef::genGet {this attrName} {
  415.     # should return the string needed to get something from a set
  416.     return ""
  417. }
  418.  
  419. method CppSetDef::genAdd {this attrName value} {
  420.     # should return the string needed to add one value to the set
  421.     return ""
  422. }
  423.  
  424. method CppSetDef::genRemove {this attrName value} {
  425.     # should return the string needed to remove one key from the set
  426.     return ""
  427. }
  428.  
  429. method CppSetDef::genIterator {this sect loopExpr} {
  430.     # should add the code needed to iterate over the complete
  431.     # set, executing loopExpr (where $loopVar in the
  432.     # expression is replaced by the actual Object)
  433.     return ""
  434. }
  435.  
  436. method CppSetDef::genDtor {this} {
  437.     # returns the code needed to destroy the set
  438.     # (the set is already empty)
  439.     return ""
  440. }
  441.  
  442. method CppSetDef::genCtor {this} {
  443.     # returns the code to create the set
  444.     return ""
  445. }
  446.  
  447. # Do not delete this line -- regeneration end marker
  448.  
  449.