taskjuggler 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (432) hide show
  1. data/Rakefile +1 -0
  2. data/benchmarks/depends.tjp +2 -1
  3. data/benchmarks/htmltaskreport.tjp +2 -1
  4. data/doc/classes/AppConfig.html +124 -120
  5. data/doc/classes/Arguments.html +10 -6
  6. data/doc/classes/Object.html +229 -0
  7. data/doc/classes/String.html +35 -31
  8. data/doc/classes/TaskJuggler/Account.html +18 -18
  9. data/doc/classes/TaskJuggler/AccountAttribute.html +261 -0
  10. data/doc/classes/TaskJuggler/AccountScenario.html +12 -12
  11. data/doc/classes/TaskJuggler/Allocation.html +34 -30
  12. data/doc/classes/TaskJuggler/AllocationAttribute.html +70 -70
  13. data/doc/classes/TaskJuggler/AttributeBase.html +131 -147
  14. data/doc/classes/TaskJuggler/AttributeDefinition.html +38 -21
  15. data/doc/classes/TaskJuggler/BatchProcessor.html +313 -0
  16. data/doc/classes/TaskJuggler/Booking.html +22 -18
  17. data/doc/classes/TaskJuggler/BookingListAttribute.html +42 -42
  18. data/doc/classes/TaskJuggler/BooleanAttribute.html +40 -40
  19. data/doc/classes/TaskJuggler/CSVFile.html +28 -24
  20. data/doc/classes/TaskJuggler/Charge.html +22 -18
  21. data/doc/classes/TaskJuggler/ChargeListAttribute.html +30 -30
  22. data/doc/classes/TaskJuggler/ChargeSet.html +41 -37
  23. data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +46 -46
  24. data/doc/classes/TaskJuggler/ColumnListAttribute.html +231 -0
  25. data/doc/classes/TaskJuggler/ColumnTable.html +23 -21
  26. data/doc/classes/TaskJuggler/DateAttribute.html +20 -20
  27. data/doc/classes/TaskJuggler/DefinitionListAttribute.html +162 -0
  28. data/doc/classes/TaskJuggler/DependencyListAttribute.html +46 -46
  29. data/doc/classes/TaskJuggler/DurationAttribute.html +30 -30
  30. data/doc/classes/TaskJuggler/FixnumAttribute.html +20 -20
  31. data/doc/classes/TaskJuggler/FlagListAttribute.html +42 -42
  32. data/doc/classes/TaskJuggler/FloatAttribute.html +30 -30
  33. data/doc/classes/TaskJuggler/FormatListAttribute.html +197 -0
  34. data/doc/classes/TaskJuggler/GanttChart.html +236 -207
  35. data/doc/classes/TaskJuggler/GanttContainer.html +46 -42
  36. data/doc/classes/TaskJuggler/GanttHeader.html +16 -12
  37. data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +16 -12
  38. data/doc/classes/TaskJuggler/GanttLine.html +28 -24
  39. data/doc/classes/TaskJuggler/GanttLoadStack.html +22 -18
  40. data/doc/classes/TaskJuggler/GanttMilestone.html +46 -42
  41. data/doc/classes/TaskJuggler/GanttRouter.html +104 -98
  42. data/doc/classes/TaskJuggler/GanttTaskBar.html +46 -42
  43. data/doc/classes/TaskJuggler/HTMLDocument.html +12 -12
  44. data/doc/classes/TaskJuggler/HTMLGraphics.html +12 -12
  45. data/doc/classes/TaskJuggler/Interval.html +126 -120
  46. data/doc/classes/TaskJuggler/IntervalListAttribute.html +46 -46
  47. data/doc/classes/TaskJuggler/JobInfo.html +284 -0
  48. data/doc/classes/TaskJuggler/Journal.html +197 -0
  49. data/doc/classes/TaskJuggler/JournalEntry.html +218 -0
  50. data/doc/classes/TaskJuggler/KeywordArray.html +179 -0
  51. data/doc/classes/TaskJuggler/KeywordDocumentation.html +445 -396
  52. data/doc/classes/TaskJuggler/Limits/Limit.html +34 -30
  53. data/doc/classes/TaskJuggler/Limits.html +68 -62
  54. data/doc/classes/TaskJuggler/LimitsAttribute.html +40 -40
  55. data/doc/classes/TaskJuggler/ListAttributeBase.html +207 -0
  56. data/doc/classes/TaskJuggler/Log.html +72 -68
  57. data/doc/classes/TaskJuggler/LogicalAttribute.html +38 -34
  58. data/doc/classes/TaskJuggler/LogicalExpression.html +16 -12
  59. data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +194 -0
  60. data/doc/classes/TaskJuggler/LogicalFlag.html +32 -32
  61. data/doc/classes/TaskJuggler/LogicalFunction.html +28 -24
  62. data/doc/classes/TaskJuggler/LogicalOperation.html +17 -13
  63. data/doc/classes/TaskJuggler/Macro.html +10 -6
  64. data/doc/classes/TaskJuggler/MacroParser.html +36 -36
  65. data/doc/classes/TaskJuggler/MacroTable.html +40 -36
  66. data/doc/classes/TaskJuggler/Message.html +16 -12
  67. data/doc/classes/TaskJuggler/MessageHandler.html +16 -12
  68. data/doc/classes/TaskJuggler/Navigator.html +249 -0
  69. data/doc/classes/TaskJuggler/OnShiftCache.html +316 -0
  70. data/doc/classes/TaskJuggler/Project.html +1064 -678
  71. data/doc/classes/TaskJuggler/ProjectFileParser.html +90 -85
  72. data/doc/classes/TaskJuggler/PropertyAttribute.html +194 -0
  73. data/doc/classes/TaskJuggler/PropertyList.html +114 -113
  74. data/doc/classes/TaskJuggler/PropertySet.html +355 -312
  75. data/doc/classes/TaskJuggler/PropertyTreeNode.html +527 -474
  76. data/doc/classes/TaskJuggler/Query.html +90 -85
  77. data/doc/classes/TaskJuggler/RTPNavigator.html +292 -0
  78. data/doc/classes/TaskJuggler/RTPReport.html +301 -0
  79. data/doc/classes/TaskJuggler/RealFormat.html +114 -57
  80. data/doc/classes/TaskJuggler/RealFormatAttribute.html +162 -0
  81. data/doc/classes/TaskJuggler/ReferenceAttribute.html +87 -20
  82. data/doc/classes/TaskJuggler/Report.html +82 -291
  83. data/doc/classes/TaskJuggler/ReportBase.html +448 -0
  84. data/doc/classes/TaskJuggler/ReportContext.html +243 -0
  85. data/doc/classes/TaskJuggler/ReportTable.html +158 -129
  86. data/doc/classes/TaskJuggler/ReportTableCell.html +30 -26
  87. data/doc/classes/TaskJuggler/ReportTableColumn.html +29 -25
  88. data/doc/classes/TaskJuggler/ReportTableLegend.html +28 -24
  89. data/doc/classes/TaskJuggler/ReportTableLine.html +34 -30
  90. data/doc/classes/TaskJuggler/Resource.html +12 -12
  91. data/doc/classes/TaskJuggler/ResourceListAttribute.html +46 -46
  92. data/doc/classes/TaskJuggler/ResourceListRE.html +49 -57
  93. data/doc/classes/TaskJuggler/ResourceScenario.html +126 -126
  94. data/doc/classes/TaskJuggler/RichText.html +52 -48
  95. data/doc/classes/TaskJuggler/RichTextAttribute.html +30 -30
  96. data/doc/classes/TaskJuggler/RichTextDocument.html +41 -37
  97. data/doc/classes/TaskJuggler/RichTextElement.html +274 -264
  98. data/doc/classes/TaskJuggler/RichTextException.html +13 -13
  99. data/doc/classes/TaskJuggler/RichTextParser.html +48 -47
  100. data/doc/classes/TaskJuggler/RichTextProtocolExample.html +52 -55
  101. data/doc/classes/TaskJuggler/RichTextProtocolHandler.html +55 -10
  102. data/doc/classes/TaskJuggler/RichTextScanner.html +106 -245
  103. data/doc/classes/TaskJuggler/RichTextSnip.html +28 -24
  104. data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +381 -301
  105. data/doc/classes/TaskJuggler/Scenario.html +6 -6
  106. data/doc/classes/TaskJuggler/ScenarioData.html +40 -36
  107. data/doc/classes/TaskJuggler/ScenarioListAttribute.html +229 -0
  108. data/doc/classes/TaskJuggler/Scoreboard.html +70 -66
  109. data/doc/classes/TaskJuggler/Shift.html +18 -18
  110. data/doc/classes/TaskJuggler/ShiftAssignment.html +58 -54
  111. data/doc/classes/TaskJuggler/ShiftAssignments.html +82 -78
  112. data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +40 -40
  113. data/doc/classes/TaskJuggler/ShiftScenario.html +24 -24
  114. data/doc/classes/TaskJuggler/SortListAttribute.html +196 -0
  115. data/doc/classes/TaskJuggler/SourceFileInfo.html +16 -12
  116. data/doc/classes/TaskJuggler/StringAttribute.html +30 -30
  117. data/doc/classes/TaskJuggler/SymbolAttribute.html +20 -20
  118. data/doc/classes/TaskJuggler/SyntaxReference.html +46 -42
  119. data/doc/classes/TaskJuggler/TOCEntry.html +16 -12
  120. data/doc/classes/TaskJuggler/TableColumnDefinition.html +48 -33
  121. data/doc/classes/TaskJuggler/TableOfContents.html +22 -18
  122. data/doc/classes/TaskJuggler/TableReport.html +1036 -0
  123. data/doc/classes/TaskJuggler/Task.html +12 -12
  124. data/doc/classes/TaskJuggler/TaskDependency.html +16 -12
  125. data/doc/classes/TaskJuggler/TaskListAttribute.html +46 -46
  126. data/doc/classes/TaskJuggler/TaskListRE.html +49 -58
  127. data/doc/classes/TaskJuggler/TaskScenario.html +1270 -1180
  128. data/doc/classes/TaskJuggler/TextParser/Pattern.html +100 -96
  129. data/doc/classes/TaskJuggler/TextParser/Rule.html +88 -84
  130. data/doc/classes/TaskJuggler/TextParser/StackElement.html +16 -12
  131. data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +12 -12
  132. data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +10 -6
  133. data/doc/classes/TaskJuggler/TextParser.html +203 -140
  134. data/doc/classes/TaskJuggler/TextReport.html +364 -0
  135. data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +70 -70
  136. data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +50 -42
  137. data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +16 -12
  138. data/doc/classes/TaskJuggler/TextScanner.html +334 -240
  139. data/doc/classes/TaskJuggler/TjException.html +6 -6
  140. data/doc/classes/TaskJuggler/TjTime.html +547 -497
  141. data/doc/classes/TaskJuggler/TjpExample.html +29 -25
  142. data/doc/classes/TaskJuggler/TjpExportRE.html +77 -97
  143. data/doc/classes/TaskJuggler/TjpSyntaxRules.html +3911 -3886
  144. data/doc/classes/TaskJuggler/UserManual.html +54 -54
  145. data/doc/classes/TaskJuggler/WorkingHours.html +53 -49
  146. data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +53 -85
  147. data/doc/classes/TaskJuggler/XMLBlob.html +21 -21
  148. data/doc/classes/TaskJuggler/XMLComment.html +21 -21
  149. data/doc/classes/TaskJuggler/XMLDocument.html +28 -24
  150. data/doc/classes/TaskJuggler/XMLElement.html +70 -58
  151. data/doc/classes/TaskJuggler/XMLNamedText.html +11 -11
  152. data/doc/classes/TaskJuggler/XMLText.html +36 -36
  153. data/doc/classes/TaskJuggler.html +266 -183
  154. data/doc/files/COPYING.html +1 -1
  155. data/doc/files/README.html +1 -1
  156. data/doc/files/lib/AccountScenario_rb.html +1 -1
  157. data/doc/files/lib/Account_rb.html +1 -1
  158. data/doc/files/lib/Allocation_rb.html +1 -1
  159. data/doc/files/lib/AppConfig_rb.html +1 -1
  160. data/doc/files/lib/AttributeBase_rb.html +11 -1
  161. data/doc/files/lib/AttributeDefinition_rb.html +1 -1
  162. data/doc/files/lib/Attributes_rb.html +1 -1
  163. data/doc/files/lib/{LogicalFlag_rb.html → BatchProcessor_rb.html} +8 -6
  164. data/doc/files/lib/Booking_rb.html +1 -1
  165. data/doc/files/lib/ChargeSet_rb.html +1 -1
  166. data/doc/files/lib/Charge_rb.html +1 -1
  167. data/doc/files/lib/HTMLDocument_rb.html +1 -1
  168. data/doc/files/lib/Interval_rb.html +1 -1
  169. data/doc/files/lib/Journal_rb.html +106 -0
  170. data/doc/files/lib/KeywordArray_rb.html +106 -0
  171. data/doc/files/lib/KeywordDocumentation_rb.html +1 -1
  172. data/doc/files/lib/Limits_rb.html +1 -1
  173. data/doc/files/lib/Log_rb.html +1 -1
  174. data/doc/files/lib/LogicalExpression_rb.html +1 -3
  175. data/doc/files/lib/LogicalFunction_rb.html +1 -1
  176. data/doc/files/lib/LogicalOperation_rb.html +1 -1
  177. data/doc/files/lib/MacroParser_rb.html +1 -1
  178. data/doc/files/lib/MacroTable_rb.html +1 -1
  179. data/doc/files/lib/MessageHandler_rb.html +1 -1
  180. data/doc/files/lib/Message_rb.html +1 -1
  181. data/doc/files/lib/ProjectFileParser_rb.html +5 -1
  182. data/doc/files/lib/Project_rb.html +5 -1
  183. data/doc/files/lib/PropertyList_rb.html +1 -1
  184. data/doc/files/lib/PropertySet_rb.html +1 -1
  185. data/doc/files/lib/PropertyTreeNode_rb.html +1 -1
  186. data/doc/files/lib/Query_rb.html +1 -1
  187. data/doc/files/lib/RTPNavigator_rb.html +120 -0
  188. data/doc/files/lib/RTPReport_rb.html +118 -0
  189. data/doc/files/lib/RealFormat_rb.html +1 -1
  190. data/doc/files/lib/ResourceScenario_rb.html +1 -1
  191. data/doc/files/lib/Resource_rb.html +1 -1
  192. data/doc/files/lib/RichTextDocument_rb.html +1 -1
  193. data/doc/files/lib/RichTextElement_rb.html +1 -1
  194. data/doc/files/lib/RichTextParser_rb.html +1 -1
  195. data/doc/files/lib/RichTextProtocolExample_rb.html +1 -1
  196. data/doc/files/lib/RichTextProtocolHandler_rb.html +1 -1
  197. data/doc/files/lib/RichTextScanner_rb.html +1 -1
  198. data/doc/files/lib/RichTextSnip_rb.html +1 -1
  199. data/doc/files/lib/RichTextSyntaxRules_rb.html +1 -1
  200. data/doc/files/lib/RichText_rb.html +1 -1
  201. data/doc/files/lib/ScenarioData_rb.html +1 -1
  202. data/doc/files/lib/Scenario_rb.html +1 -1
  203. data/doc/files/lib/Scoreboard_rb.html +1 -1
  204. data/doc/files/lib/ShiftAssignments_rb.html +1 -1
  205. data/doc/files/lib/ShiftScenario_rb.html +1 -1
  206. data/doc/files/lib/Shift_rb.html +1 -1
  207. data/doc/files/lib/SourceFileInfo_rb.html +1 -1
  208. data/doc/files/lib/SyntaxReference_rb.html +1 -1
  209. data/doc/files/lib/TOCEntry_rb.html +1 -1
  210. data/doc/files/lib/TableColumnDefinition_rb.html +1 -1
  211. data/doc/files/lib/TableOfContents_rb.html +1 -1
  212. data/doc/files/lib/TaskDependency_rb.html +1 -1
  213. data/doc/files/lib/TaskJuggler_rb.html +1 -1
  214. data/doc/files/lib/TaskScenario_rb.html +1 -1
  215. data/doc/files/lib/Task_rb.html +1 -1
  216. data/doc/files/lib/TextParser/Pattern_rb.html +1 -1
  217. data/doc/files/lib/TextParser/Rule_rb.html +1 -1
  218. data/doc/files/lib/TextParser/StackElement_rb.html +1 -1
  219. data/doc/files/lib/TextParser/TokenDoc_rb.html +1 -1
  220. data/doc/files/lib/TextParser_rb.html +1 -1
  221. data/doc/files/lib/TextScanner_rb.html +1 -1
  222. data/doc/files/lib/Tj3Config_rb.html +1 -1
  223. data/doc/files/lib/TjException_rb.html +1 -1
  224. data/doc/files/lib/TjTime_rb.html +1 -1
  225. data/doc/files/lib/TjpExample_rb.html +1 -1
  226. data/doc/files/lib/TjpSyntaxRules_rb.html +1 -1
  227. data/doc/files/lib/UTF8String_rb.html +1 -1
  228. data/doc/files/lib/UserManual_rb.html +1 -1
  229. data/doc/files/lib/WorkingHours_rb.html +1 -1
  230. data/doc/files/lib/XMLDocument_rb.html +1 -1
  231. data/doc/files/lib/XMLElement_rb.html +1 -1
  232. data/doc/files/lib/deep_copy_rb.html +106 -0
  233. data/doc/files/lib/ms_test_rb.html +90 -0
  234. data/doc/files/lib/reports/CSVFile_rb.html +1 -1
  235. data/doc/files/lib/reports/ColumnTable_rb.html +1 -1
  236. data/doc/files/lib/reports/GanttChart_rb.html +1 -1
  237. data/doc/files/lib/reports/GanttContainer_rb.html +1 -1
  238. data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +1 -1
  239. data/doc/files/lib/reports/GanttHeader_rb.html +1 -1
  240. data/doc/files/lib/reports/GanttLine_rb.html +1 -1
  241. data/doc/files/lib/reports/GanttLoadStack_rb.html +1 -1
  242. data/doc/files/lib/reports/GanttMilestone_rb.html +1 -1
  243. data/doc/files/lib/reports/GanttRouter_rb.html +1 -1
  244. data/doc/files/lib/reports/GanttTaskBar_rb.html +1 -1
  245. data/doc/files/lib/reports/HTMLGraphics_rb.html +1 -1
  246. data/doc/files/lib/reports/{ReportElement_rb.html → Navigator_rb.html} +6 -8
  247. data/doc/files/lib/reports/ReportBase_rb.html +106 -0
  248. data/doc/files/lib/reports/ReportContext_rb.html +106 -0
  249. data/doc/files/lib/reports/ReportTableCell_rb.html +1 -1
  250. data/doc/files/lib/reports/ReportTableColumn_rb.html +1 -1
  251. data/doc/files/lib/reports/ReportTableLegend_rb.html +1 -1
  252. data/doc/files/lib/reports/ReportTableLine_rb.html +1 -1
  253. data/doc/files/lib/reports/ReportTable_rb.html +1 -1
  254. data/doc/files/lib/reports/Report_rb.html +8 -2
  255. data/doc/files/lib/reports/ResourceListRE_rb.html +2 -2
  256. data/doc/files/lib/reports/{ReportTableElement_rb.html → TableReport_rb.html} +7 -5
  257. data/doc/files/lib/reports/TaskListRE_rb.html +2 -2
  258. data/doc/files/lib/reports/TextReport_rb.html +116 -0
  259. data/doc/files/lib/reports/TjpExportRE_rb.html +2 -2
  260. data/doc/files/lib/taskjuggler3_rb.html +61 -56
  261. data/doc/files/lib/tj3man_rb.html +1 -1
  262. data/doc/fr_class_index.html +41 -3
  263. data/doc/fr_file_index.html +21 -5
  264. data/doc/fr_method_index.html +1069 -959
  265. data/examples/ContactList.html +1467 -0
  266. data/examples/Deliveries.html +485 -0
  267. data/examples/Development.html +2525 -0
  268. data/examples/Overview.html +747 -0
  269. data/examples/Resource Graph.html +616 -0
  270. data/examples/tutorial.tjp +63 -67
  271. data/lib/AttributeBase.rb +27 -31
  272. data/lib/AttributeDefinition.rb +12 -7
  273. data/lib/Attributes.rb +134 -34
  274. data/lib/Interval.rb +2 -0
  275. data/lib/Journal.rb +44 -0
  276. data/lib/{LogicalFlag.rb → KeywordArray.rb} +5 -13
  277. data/lib/KeywordDocumentation.rb +84 -47
  278. data/lib/Limits.rb +7 -5
  279. data/lib/LogicalExpression.rb +1 -1
  280. data/lib/LogicalOperation.rb +33 -0
  281. data/lib/Project.rb +313 -99
  282. data/lib/ProjectFileParser.rb +88 -11
  283. data/lib/PropertyList.rb +2 -1
  284. data/lib/PropertySet.rb +13 -4
  285. data/lib/PropertyTreeNode.rb +34 -15
  286. data/lib/Query.rb +2 -1
  287. data/lib/RTPNavigator.rb +53 -0
  288. data/lib/RTPReport.rb +62 -0
  289. data/lib/RealFormat.rb +28 -10
  290. data/lib/RichTextElement.rb +18 -12
  291. data/lib/RichTextParser.rb +1 -0
  292. data/lib/RichTextProtocolExample.rb +8 -11
  293. data/lib/RichTextProtocolHandler.rb +11 -1
  294. data/lib/RichTextScanner.rb +308 -164
  295. data/lib/RichTextSyntaxRules.rb +24 -0
  296. data/lib/TableColumnDefinition.rb +5 -1
  297. data/lib/TaskJuggler.rb +3 -2
  298. data/lib/TaskScenario.rb +123 -31
  299. data/lib/TextParser.rb +14 -3
  300. data/lib/TextScanner.rb +210 -34
  301. data/lib/Tj3Config.rb +1 -1
  302. data/lib/TjTime.rb +15 -0
  303. data/lib/TjpExample.rb +1 -1
  304. data/lib/TjpSyntaxRules.rb +674 -473
  305. data/lib/WorkingHours.rb +1 -1
  306. data/lib/XMLElement.rb +11 -3
  307. data/lib/deep_copy.rb +72 -0
  308. data/lib/ms_test.rb +27 -0
  309. data/lib/reports/ColumnTable.rb +7 -5
  310. data/lib/reports/GanttChart.rb +60 -34
  311. data/lib/reports/GanttHeader.rb +1 -1
  312. data/lib/reports/GanttRouter.rb +7 -5
  313. data/lib/reports/Navigator.rb +72 -0
  314. data/lib/reports/Report.rb +58 -73
  315. data/lib/reports/ReportBase.rb +241 -0
  316. data/lib/reports/ReportContext.rb +41 -0
  317. data/lib/reports/ReportTable.rb +7 -2
  318. data/lib/reports/ReportTableCell.rb +3 -3
  319. data/lib/reports/ResourceListRE.rb +19 -26
  320. data/lib/reports/{ReportTableElement.rb → TableReport.rb} +297 -97
  321. data/lib/reports/TaskListRE.rb +16 -24
  322. data/lib/reports/TextReport.rb +87 -0
  323. data/lib/reports/TjpExportRE.rb +55 -50
  324. data/lib/taskjuggler3.rb +6 -1
  325. data/manual/Getting_Started +57 -6
  326. data/manual/How_To_Contribute +2 -4
  327. data/manual/Intro +2 -2
  328. data/manual/Reporting_Bugs +9 -2
  329. data/manual/Rich_Text_Attributes +41 -0
  330. data/manual/Tutorial +219 -173
  331. data/tasks/test.rake +3 -0
  332. data/test/TestSuite/CSV-Reports/celltext.tjp +2 -1
  333. data/test/TestSuite/CSV-Reports/resourcereport.tjp +2 -1
  334. data/test/TestSuite/CSV-Reports/resourcereport_with_tasks.tjp +2 -1
  335. data/test/TestSuite/CSV-Reports/sortByTree.tjp +2 -1
  336. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +2 -1
  337. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +2 -1
  338. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +2 -1
  339. data/test/TestSuite/CSV-Reports/taskreport.tjp +2 -1
  340. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +2 -1
  341. data/test/TestSuite/HTML-Reports/depArrows.tjp +72 -0
  342. data/test/TestSuite/HTML-Reports/reference-export.html +187 -0
  343. data/test/TestSuite/HTML-Reports/reference.tjp +21 -0
  344. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -1
  345. data/test/TestSuite/Scheduler/Correct/AutomaticMilestones.tjp +3 -3
  346. data/test/TestSuite/Scheduler/Correct/Booking.tjp +3 -3
  347. data/test/TestSuite/Scheduler/Correct/Container-2.tjp +37 -0
  348. data/test/TestSuite/Scheduler/Correct/Container.tjp +40 -0
  349. data/test/TestSuite/Scheduler/Correct/Depends.tjp +9 -14
  350. data/test/TestSuite/Scheduler/Correct/Duration.tjp +2 -1
  351. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +20 -29
  352. data/test/TestSuite/Scheduler/Correct/Limits.tjp +11 -13
  353. data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +6 -5
  354. data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +10 -6
  355. data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +9 -6
  356. data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +9 -6
  357. data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +13 -10
  358. data/test/TestSuite/Scheduler/Correct/Precedes.tjp +9 -14
  359. data/test/TestSuite/Scheduler/Correct/Shift.tjp +9 -8
  360. data/test/TestSuite/Scheduler/Correct/checks.tji +4 -0
  361. data/test/TestSuite/Scheduler/Errors/weak_end_dep.tjp +16 -0
  362. data/test/TestSuite/Scheduler/Errors/weak_start_dep.tjp +16 -0
  363. data/test/TestSuite/Syntax/Correct/Account.tjp +1 -1
  364. data/test/TestSuite/Syntax/Correct/AutoID.tjp +21 -0
  365. data/test/TestSuite/Syntax/Correct/AutoMacros.tjp +2 -1
  366. data/test/TestSuite/Syntax/Correct/Caption.tjp +7 -6
  367. data/test/TestSuite/Syntax/Correct/Celltext.tjp +7 -4
  368. data/test/TestSuite/Syntax/Correct/Comments.tjp +1 -1
  369. data/test/TestSuite/Syntax/Correct/CompletedWork.tji +11 -19
  370. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +4 -3
  371. data/test/TestSuite/Syntax/Correct/Export.tjp +3 -1
  372. data/test/TestSuite/Syntax/Correct/Flags.tjp +2 -1
  373. data/test/TestSuite/Syntax/Correct/HtmlTaskReport.tjp +2 -1
  374. data/test/TestSuite/Syntax/Correct/Journal.tjp +18 -0
  375. data/test/TestSuite/Syntax/Correct/LoadUnits.tjp +2 -1
  376. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +16 -0
  377. data/test/TestSuite/Syntax/Correct/Period.tjp +2 -1
  378. data/test/TestSuite/Syntax/Correct/RawHTML.tjp +4 -2
  379. data/test/TestSuite/Syntax/Correct/Reports.tjp +4 -2
  380. data/test/TestSuite/Syntax/Correct/ResourcePrefix.tji +2 -0
  381. data/test/TestSuite/Syntax/Correct/ResourcePrefix.tjp +23 -0
  382. data/test/TestSuite/Syntax/Correct/Responsible.tjp +1 -1
  383. data/test/TestSuite/Syntax/Correct/Simple.tjp +1 -1
  384. data/test/TestSuite/Syntax/Correct/String.tjp +1 -1
  385. data/test/TestSuite/Syntax/Correct/TaskRoot.tjp +2 -1
  386. data/test/TestSuite/Syntax/Correct/tutorial.tjp +92 -70
  387. data/test/TestSuite/Syntax/Errors/bad_comment.tjp +7 -0
  388. data/test/TestSuite/Syntax/Errors/bad_include.tjp +1 -1
  389. data/test/TestSuite/Syntax/Errors/bad_time_zone.tjp +6 -0
  390. data/test/TestSuite/Syntax/Errors/bad_timing_res.tjp +5 -0
  391. data/test/TestSuite/Syntax/Errors/chargeset_master.tjp +1 -1
  392. data/test/TestSuite/Syntax/Errors/container_attribute.tjp +1 -1
  393. data/test/TestSuite/Syntax/Errors/cost_acct_no_top.tjp +3 -2
  394. data/test/TestSuite/Syntax/Errors/cost_rev_same.tjp +1 -1
  395. data/test/TestSuite/Syntax/Errors/eof_in_istring1.tjp +5 -0
  396. data/test/TestSuite/Syntax/Errors/eof_in_istring2.tjp +5 -0
  397. data/test/TestSuite/Syntax/Errors/eof_in_istring3.tjp +6 -0
  398. data/test/TestSuite/Syntax/Errors/eof_in_istring4.tjp +6 -0
  399. data/test/TestSuite/Syntax/Errors/eof_in_istring5.tjp +6 -0
  400. data/test/TestSuite/Syntax/Errors/include_recursion.tji +1 -0
  401. data/test/TestSuite/Syntax/Errors/include_recursion.tjp +7 -0
  402. data/test/TestSuite/Syntax/Errors/junk_after_cut.tjp +6 -0
  403. data/test/TestSuite/Syntax/Errors/navigator_exists.tjp +10 -0
  404. data/test/TestSuite/Syntax/Errors/operand_unkn_flag.tjp +1 -1
  405. data/test/TestSuite/Syntax/Errors/report_end.tjp +1 -1
  406. data/test/TestSuite/Syntax/Errors/report_exists.tjp +10 -0
  407. data/test/TestSuite/Syntax/Errors/report_start.tjp +1 -1
  408. data/test/TestSuite/Syntax/Errors/rev_acct_no_top.tjp +1 -1
  409. data/test/TestSuite/Syntax/Errors/sort_direction.tjp +1 -1
  410. data/test/TestSuite/Syntax/Errors/sort_unknown_scen.tjp +1 -1
  411. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd1.tjp +1 -1
  412. data/test/TestSuite/Syntax/Errors/sorting_crit_exptd2.tjp +1 -1
  413. data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +1 -1
  414. data/test/TestSuite/Syntax/Errors/too_large_timing_res.tjp +7 -0
  415. data/test/TestSuite/Syntax/Errors/unknown_scenario_idx.tjp +1 -1
  416. data/test/TestSuite/Syntax/Errors/unknown_task.tjp +1 -1
  417. data/test/all.rb +1 -16
  418. data/test/test_CSV-Reports.rb +8 -5
  419. data/test/test_Query.rb +2 -2
  420. data/test/test_RichText.rb +95 -0
  421. data/test/test_Scheduler.rb +8 -4
  422. data/test/test_Syntax.rb +8 -4
  423. data/test/test_deep_copy.rb +83 -0
  424. metadata +549 -487
  425. data/benchmarks/UTF-8-Strings.rb +0 -58
  426. data/doc/classes/TaskJuggler/ReportElement.html +0 -1070
  427. data/doc/classes/TaskJuggler/ReportTableElement.html +0 -644
  428. data/lib/reports/ReportElement.rb +0 -427
  429. data/test/TestSuite/Syntax/Correct/csvtest +0 -16
  430. data/test/TestSuite/Syntax/Errors/no_csv_suffix.tjp +0 -10
  431. data/test/TestSuite/Syntax/Errors/no_html_suffix.tjp +0 -10
  432. data/test/TestSuite/Syntax/Errors/report_redifinition.tjp +0 -10
@@ -70,8 +70,12 @@
70
70
  <td><strong>Parent:</strong></td>
71
71
  <td>
72
72
 
73
+ <a href="../Object.html">
74
+
73
75
  Object
74
76
 
77
+ </a>
78
+
75
79
  </td>
76
80
  </tr>
77
81
 
@@ -113,59 +117,61 @@ attribute like an URL that contains more details about the task.
113
117
 
114
118
  <div class="name-list">
115
119
 
116
- <a href="#M000526">[]</a>&nbsp;&nbsp;
120
+ <a href="#M000681">[]</a>&nbsp;&nbsp;
121
+
122
+ <a href="#M000680">[]=</a>&nbsp;&nbsp;
117
123
 
118
- <a href="#M000525">[]=</a>&nbsp;&nbsp;
124
+ <a href="#M000670">addChild</a>&nbsp;&nbsp;
119
125
 
120
- <a href="#M000515">addChild</a>&nbsp;&nbsp;
126
+ <a href="#M000663">all</a>&nbsp;&nbsp;
121
127
 
122
- <a href="#M000508">all</a>&nbsp;&nbsp;
128
+ <a href="#M000664">allLeaves</a>&nbsp;&nbsp;
123
129
 
124
- <a href="#M000509">allLeaves</a>&nbsp;&nbsp;
130
+ <a href="#M000676">attributeDefinition</a>&nbsp;&nbsp;
125
131
 
126
- <a href="#M000521">attributeDefinition</a>&nbsp;&nbsp;
132
+ <a href="#M000673">container?</a>&nbsp;&nbsp;
127
133
 
128
- <a href="#M000518">container?</a>&nbsp;&nbsp;
134
+ <a href="#M000675">declareAttribute</a>&nbsp;&nbsp;
129
135
 
130
- <a href="#M000520">declareAttribute</a>&nbsp;&nbsp;
136
+ <a href="#M000659">deep_clone</a>&nbsp;&nbsp;
131
137
 
132
- <a href="#M000510">eachAttribute</a>&nbsp;&nbsp;
138
+ <a href="#M000665">eachAttribute</a>&nbsp;&nbsp;
133
139
 
134
- <a href="#M000511">eachScenarioAttribute</a>&nbsp;&nbsp;
140
+ <a href="#M000666">eachScenarioAttribute</a>&nbsp;&nbsp;
135
141
 
136
- <a href="#M000512">fullId</a>&nbsp;&nbsp;
142
+ <a href="#M000667">fullId</a>&nbsp;&nbsp;
137
143
 
138
- <a href="#M000522">get</a>&nbsp;&nbsp;
144
+ <a href="#M000677">get</a>&nbsp;&nbsp;
139
145
 
140
- <a href="#M000523">getAttr</a>&nbsp;&nbsp;
146
+ <a href="#M000678">getAttr</a>&nbsp;&nbsp;
141
147
 
142
- <a href="#M000514">getWBSIndicies</a>&nbsp;&nbsp;
148
+ <a href="#M000669">getWBSIndicies</a>&nbsp;&nbsp;
143
149
 
144
- <a href="#M000527">hasQuery?</a>&nbsp;&nbsp;
150
+ <a href="#M000682">hasQuery?</a>&nbsp;&nbsp;
145
151
 
146
- <a href="#M000506">inheritAttributes</a>&nbsp;&nbsp;
152
+ <a href="#M000661">inheritAttributes</a>&nbsp;&nbsp;
147
153
 
148
- <a href="#M000507">inheritAttributesFromScenario</a>&nbsp;&nbsp;
154
+ <a href="#M000662">inheritAttributesFromScenario</a>&nbsp;&nbsp;
149
155
 
150
- <a href="#M000529">inherited</a>&nbsp;&nbsp;
156
+ <a href="#M000684">inherited</a>&nbsp;&nbsp;
151
157
 
152
- <a href="#M000516">isChildOf?</a>&nbsp;&nbsp;
158
+ <a href="#M000671">isChildOf?</a>&nbsp;&nbsp;
153
159
 
154
- <a href="#M000517">leaf?</a>&nbsp;&nbsp;
160
+ <a href="#M000672">leaf?</a>&nbsp;&nbsp;
155
161
 
156
- <a href="#M000513">level</a>&nbsp;&nbsp;
162
+ <a href="#M000668">level</a>&nbsp;&nbsp;
157
163
 
158
- <a href="#M000505">levelSeqNo</a>&nbsp;&nbsp;
164
+ <a href="#M000660">levelSeqNo</a>&nbsp;&nbsp;
159
165
 
160
- <a href="#M000530">method_missing</a>&nbsp;&nbsp;
166
+ <a href="#M000685">method_missing</a>&nbsp;&nbsp;
161
167
 
162
- <a href="#M000504">new</a>&nbsp;&nbsp;
168
+ <a href="#M000658">new</a>&nbsp;&nbsp;
163
169
 
164
- <a href="#M000528">provided</a>&nbsp;&nbsp;
170
+ <a href="#M000683">provided</a>&nbsp;&nbsp;
165
171
 
166
- <a href="#M000519">root</a>&nbsp;&nbsp;
172
+ <a href="#M000674">root</a>&nbsp;&nbsp;
167
173
 
168
- <a href="#M000524">set</a>&nbsp;&nbsp;
174
+ <a href="#M000679">set</a>&nbsp;&nbsp;
169
175
 
170
176
  </div>
171
177
  </div>
@@ -260,12 +266,12 @@ attribute like an URL that contains more details about the task.
260
266
  <h3 class="section-bar">Public Class methods</h3>
261
267
 
262
268
 
263
- <div id="method-M000504" class="method-detail">
264
- <a name="M000504"></a>
269
+ <div id="method-M000658" class="method-detail">
270
+ <a name="M000658"></a>
265
271
 
266
272
  <div class="method-heading">
267
273
 
268
- <a href="#M000504" class="method-signature">
274
+ <a href="#M000658" class="method-signature">
269
275
 
270
276
  <span class="method-name">new</span><span class="method-args">(propertySet, id, name, parent)</span>
271
277
 
@@ -291,51 +297,56 @@ be nil and specified by a hierachical <em>id</em> (e. g.
291
297
  </p>
292
298
 
293
299
  <p><a class="source-toggle" href="#"
294
- onclick="toggleCode('M000504-source');return false;">[Source]</a></p>
295
- <div class="method-source-code" id="M000504-source">
300
+ onclick="toggleCode('M000658-source');return false;">[Source]</a></p>
301
+ <div class="method-source-code" id="M000658-source">
296
302
  <pre>
297
303
  <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 41</span>
298
304
  41: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">propertySet</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">parent</span>)
299
305
  42: <span class="ruby-ivar">@propertySet</span> = <span class="ruby-identifier">propertySet</span>
300
- 43: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">flatNamespace</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">id</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-value str">'.'</span>)
301
- 44: <span class="ruby-identifier">parentId</span> = <span class="ruby-identifier">id</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">id</span>.<span class="ruby-identifier">rindex</span>(<span class="ruby-value str">'.'</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)]
302
- 45: <span class="ruby-comment cmt"># Set parent to the parent property if it's still nil.</span>
303
- 46: <span class="ruby-identifier">parent</span> = <span class="ruby-ivar">@propertySet</span>[<span class="ruby-identifier">parentId</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">parent</span>
304
- 47: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
305
- 48: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">parent</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertySet</span>[<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">fullId</span>]
306
- 49: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Fatal Error: parent must be member of same property set&quot;</span>
307
- 50: <span class="ruby-keyword kw">end</span>
308
- 51: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parentId</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">fullId</span>
309
- 52: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Fatal Error: parent (#{parent.fullId}) and parent ID &quot;</span> <span class="ruby-operator">+</span>
310
- 53: <span class="ruby-node">&quot;(#{parentId}) don't match&quot;</span>
311
- 54: <span class="ruby-keyword kw">end</span>
312
- 55: <span class="ruby-keyword kw">end</span>
313
- 56: <span class="ruby-ivar">@id</span> = <span class="ruby-identifier">id</span>[(<span class="ruby-identifier">id</span>.<span class="ruby-identifier">rindex</span>(<span class="ruby-value str">'.'</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)<span class="ruby-operator">..</span> <span class="ruby-value">-1</span>]
314
- 57: <span class="ruby-keyword kw">else</span>
315
- 58: <span class="ruby-ivar">@id</span> = <span class="ruby-identifier">id</span>
316
- 59: <span class="ruby-keyword kw">end</span>
317
- 60: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
318
- 61: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">propertySet</span>.<span class="ruby-identifier">project</span>
319
- 62: <span class="ruby-ivar">@level</span> = <span class="ruby-value">-1</span>
320
- 63: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>
321
- 64:
322
- 65: <span class="ruby-ivar">@parent</span> = <span class="ruby-identifier">parent</span>
323
- 66: <span class="ruby-ivar">@sequenceNo</span> = <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">items</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
324
- 67: <span class="ruby-ivar">@children</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
325
- 68: <span class="ruby-comment cmt"># In case we have a parent object, we register this object as child of</span>
326
- 69: <span class="ruby-comment cmt"># the parent.</span>
327
- 70: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@parent</span>)
328
- 71: <span class="ruby-ivar">@parent</span>.<span class="ruby-identifier">addChild</span>(<span class="ruby-keyword kw">self</span>)
329
- 72: <span class="ruby-keyword kw">end</span>
330
- 73:
331
- 74: <span class="ruby-ivar">@attributes</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
332
- 75: <span class="ruby-ivar">@scenarioAttributes</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioCount</span>)
333
- 76: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioCount</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
334
- 77: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">i</span>] = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
306
+ 43: <span class="ruby-comment cmt"># If _id_ is still nil, we generate a unique id.</span>
307
+ 44: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">id</span>
308
+ 45: <span class="ruby-identifier">tag</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/TaskJuggler::/</span>, <span class="ruby-value str">''</span>)
309
+ 46: <span class="ruby-identifier">id</span> = <span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">tag</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">propertySet</span>.<span class="ruby-identifier">items</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>).<span class="ruby-identifier">to_s</span>
310
+ 47: <span class="ruby-identifier">id</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">id</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">id</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">flatNamespace</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">parent</span>
311
+ 48: <span class="ruby-keyword kw">end</span>
312
+ 49: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">flatNamespace</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">id</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-value str">'.'</span>)
313
+ 50: <span class="ruby-identifier">parentId</span> = <span class="ruby-identifier">id</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">id</span>.<span class="ruby-identifier">rindex</span>(<span class="ruby-value str">'.'</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)]
314
+ 51: <span class="ruby-comment cmt"># Set parent to the parent property if it's still nil.</span>
315
+ 52: <span class="ruby-identifier">parent</span> = <span class="ruby-ivar">@propertySet</span>[<span class="ruby-identifier">parentId</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">parent</span>
316
+ 53: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
317
+ 54: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">parent</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertySet</span>[<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">fullId</span>]
318
+ 55: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Fatal Error: parent must be member of same property set&quot;</span>
319
+ 56: <span class="ruby-keyword kw">end</span>
320
+ 57: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parentId</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">fullId</span>
321
+ 58: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Fatal Error: parent (#{parent.fullId}) and parent ID &quot;</span> <span class="ruby-operator">+</span>
322
+ 59: <span class="ruby-node">&quot;(#{parentId}) don't match&quot;</span>
323
+ 60: <span class="ruby-keyword kw">end</span>
324
+ 61: <span class="ruby-keyword kw">end</span>
325
+ 62: <span class="ruby-ivar">@id</span> = <span class="ruby-identifier">id</span>[(<span class="ruby-identifier">id</span>.<span class="ruby-identifier">rindex</span>(<span class="ruby-value str">'.'</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)<span class="ruby-operator">..</span> <span class="ruby-value">-1</span>]
326
+ 63: <span class="ruby-keyword kw">else</span>
327
+ 64: <span class="ruby-ivar">@id</span> = <span class="ruby-identifier">id</span>
328
+ 65: <span class="ruby-keyword kw">end</span>
329
+ 66: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
330
+ 67: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">propertySet</span>.<span class="ruby-identifier">project</span>
331
+ 68: <span class="ruby-ivar">@level</span> = <span class="ruby-value">-1</span>
332
+ 69: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>
333
+ 70:
334
+ 71: <span class="ruby-ivar">@parent</span> = <span class="ruby-identifier">parent</span>
335
+ 72: <span class="ruby-ivar">@sequenceNo</span> = <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">items</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
336
+ 73: <span class="ruby-ivar">@children</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
337
+ 74: <span class="ruby-comment cmt"># In case we have a parent object, we register this object as child of</span>
338
+ 75: <span class="ruby-comment cmt"># the parent.</span>
339
+ 76: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@parent</span>)
340
+ 77: <span class="ruby-ivar">@parent</span>.<span class="ruby-identifier">addChild</span>(<span class="ruby-keyword kw">self</span>)
335
341
  78: <span class="ruby-keyword kw">end</span>
336
- 79: <span class="ruby-comment cmt"># Scenario specific data</span>
337
- 80: <span class="ruby-ivar">@data</span> = <span class="ruby-keyword kw">nil</span>
338
- 81: <span class="ruby-keyword kw">end</span>
342
+ 79:
343
+ 80: <span class="ruby-ivar">@attributes</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
344
+ 81: <span class="ruby-ivar">@scenarioAttributes</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioCount</span>)
345
+ 82: <span class="ruby-ivar">@scenarioAttributes</span>.<span class="ruby-identifier">collect!</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">sca</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sca</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span> }
346
+ 83:
347
+ 84: <span class="ruby-comment cmt"># Scenario specific data</span>
348
+ 85: <span class="ruby-ivar">@data</span> = <span class="ruby-keyword kw">nil</span>
349
+ 86: <span class="ruby-keyword kw">end</span>
339
350
  </pre>
340
351
  </div>
341
352
 
@@ -346,12 +357,12 @@ be nil and specified by a hierachical <em>id</em> (e. g.
346
357
  <h3 class="section-bar">Public Instance methods</h3>
347
358
 
348
359
 
349
- <div id="method-M000526" class="method-detail">
350
- <a name="M000526"></a>
360
+ <div id="method-M000681" class="method-detail">
361
+ <a name="M000681"></a>
351
362
 
352
363
  <div class="method-heading">
353
364
 
354
- <a href="#M000526" class="method-signature">
365
+ <a href="#M000681" class="method-signature">
355
366
 
356
367
  <span class="method-name">[]</span><span class="method-args">(attributeId, scenario)</span>
357
368
 
@@ -368,17 +379,17 @@ the <a href="Scenario.html">Scenario</a>.
368
379
  </p>
369
380
 
370
381
  <p><a class="source-toggle" href="#"
371
- onclick="toggleCode('M000526-source');return false;">[Source]</a></p>
372
- <div class="method-source-code" id="M000526-source">
382
+ onclick="toggleCode('M000681-source');return false;">[Source]</a></p>
383
+ <div class="method-source-code" id="M000681-source">
373
384
  <pre>
374
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 356</span>
375
- 356: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenario</span>)
376
- 357: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>].<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attributeId</span>)
377
- 358: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">get</span>
378
- 359: <span class="ruby-keyword kw">else</span>
379
- 360: <span class="ruby-identifier">get</span>(<span class="ruby-identifier">attributeId</span>);
380
- 361: <span class="ruby-keyword kw">end</span>
381
- 362: <span class="ruby-keyword kw">end</span>
385
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 374</span>
386
+ 374: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenario</span>)
387
+ 375: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>].<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attributeId</span>)
388
+ 376: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">get</span>
389
+ 377: <span class="ruby-keyword kw">else</span>
390
+ 378: <span class="ruby-identifier">get</span>(<span class="ruby-identifier">attributeId</span>);
391
+ 379: <span class="ruby-keyword kw">end</span>
392
+ 380: <span class="ruby-keyword kw">end</span>
382
393
  </pre>
383
394
  </div>
384
395
 
@@ -386,12 +397,12 @@ the <a href="Scenario.html">Scenario</a>.
386
397
  </div>
387
398
 
388
399
 
389
- <div id="method-M000525" class="method-detail">
390
- <a name="M000525"></a>
400
+ <div id="method-M000680" class="method-detail">
401
+ <a name="M000680"></a>
391
402
 
392
403
  <div class="method-heading">
393
404
 
394
- <a href="#M000525" class="method-signature">
405
+ <a href="#M000680" class="method-signature">
395
406
 
396
407
  <span class="method-name">[]=</span><span class="method-args">(attributeId, scenario, value)</span>
397
408
 
@@ -408,20 +419,20 @@ attribute does not exist, an exception is raised.
408
419
  </p>
409
420
 
410
421
  <p><a class="source-toggle" href="#"
411
- onclick="toggleCode('M000525-source');return false;">[Source]</a></p>
412
- <div class="method-source-code" id="M000525-source">
422
+ onclick="toggleCode('M000680-source');return false;">[Source]</a></p>
423
+ <div class="method-source-code" id="M000680-source">
413
424
  <pre>
414
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 342</span>
415
- 342: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]=</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenario</span>, <span class="ruby-identifier">value</span>)
416
- 343: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>].<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attributeId</span>)
417
- 344: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
418
- 345: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attributeId</span>)
419
- 346: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
420
- 347: <span class="ruby-keyword kw">else</span>
421
- 348: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Unknown attribute #{attributeId}&quot;</span>
422
- 349: <span class="ruby-keyword kw">end</span>
423
- 350: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
424
- 351: <span class="ruby-keyword kw">end</span>
425
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 360</span>
426
+ 360: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]=</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenario</span>, <span class="ruby-identifier">value</span>)
427
+ 361: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>].<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attributeId</span>)
428
+ 362: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
429
+ 363: <span class="ruby-keyword kw">elsif</span> <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attributeId</span>)
430
+ 364: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
431
+ 365: <span class="ruby-keyword kw">else</span>
432
+ 366: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Unknown attribute #{attributeId}&quot;</span>
433
+ 367: <span class="ruby-keyword kw">end</span>
434
+ 368: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
435
+ 369: <span class="ruby-keyword kw">end</span>
425
436
  </pre>
426
437
  </div>
427
438
 
@@ -429,12 +440,12 @@ attribute does not exist, an exception is raised.
429
440
  </div>
430
441
 
431
442
 
432
- <div id="method-M000515" class="method-detail">
433
- <a name="M000515"></a>
443
+ <div id="method-M000670" class="method-detail">
444
+ <a name="M000670"></a>
434
445
 
435
446
  <div class="method-heading">
436
447
 
437
- <a href="#M000515" class="method-signature">
448
+ <a href="#M000670" class="method-signature">
438
449
 
439
450
  <span class="method-name">addChild</span><span class="method-args">(child)</span>
440
451
 
@@ -449,16 +460,16 @@ Add <em>child</em> node as child to this node.
449
460
  </p>
450
461
 
451
462
  <p><a class="source-toggle" href="#"
452
- onclick="toggleCode('M000515-source');return false;">[Source]</a></p>
453
- <div class="method-source-code" id="M000515-source">
463
+ onclick="toggleCode('M000670-source');return false;">[Source]</a></p>
464
+ <div class="method-source-code" id="M000670-source">
454
465
  <pre>
455
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 246</span>
456
- 246: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addChild</span>(<span class="ruby-identifier">child</span>)
457
- 247: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">propertySet</span> <span class="ruby-operator">!=</span> <span class="ruby-ivar">@propertySet</span>
458
- 248: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Child nodes must belong to the same property set as the parent&quot;</span>
459
- 249: <span class="ruby-keyword kw">end</span>
460
- 250: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">child</span>)
461
- 251: <span class="ruby-keyword kw">end</span>
466
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 255</span>
467
+ 255: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addChild</span>(<span class="ruby-identifier">child</span>)
468
+ 256: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">propertySet</span> <span class="ruby-operator">!=</span> <span class="ruby-ivar">@propertySet</span>
469
+ 257: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Child nodes must belong to the same property set as the parent&quot;</span>
470
+ 258: <span class="ruby-keyword kw">end</span>
471
+ 259: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">child</span>)
472
+ 260: <span class="ruby-keyword kw">end</span>
462
473
  </pre>
463
474
  </div>
464
475
 
@@ -466,12 +477,12 @@ Add <em>child</em> node as child to this node.
466
477
  </div>
467
478
 
468
479
 
469
- <div id="method-M000508" class="method-detail">
470
- <a name="M000508"></a>
480
+ <div id="method-M000663" class="method-detail">
481
+ <a name="M000663"></a>
471
482
 
472
483
  <div class="method-heading">
473
484
 
474
- <a href="#M000508" class="method-signature">
485
+ <a href="#M000663" class="method-signature">
475
486
 
476
487
  <span class="method-name">all</span><span class="method-args">()</span>
477
488
 
@@ -486,17 +497,17 @@ Returns a list of this node and all transient sub nodes.
486
497
  </p>
487
498
 
488
499
  <p><a class="source-toggle" href="#"
489
- onclick="toggleCode('M000508-source');return false;">[Source]</a></p>
490
- <div class="method-source-code" id="M000508-source">
500
+ onclick="toggleCode('M000663-source');return false;">[Source]</a></p>
501
+ <div class="method-source-code" id="M000663-source">
491
502
  <pre>
492
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 167</span>
493
- 167: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">all</span>
494
- 168: <span class="ruby-identifier">res</span> = [ <span class="ruby-keyword kw">self</span> ]
495
- 169: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
496
- 170: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">res</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">c</span>.<span class="ruby-identifier">all</span>)
497
- 171: <span class="ruby-keyword kw">end</span>
498
- 172: <span class="ruby-identifier">res</span>
499
- 173: <span class="ruby-keyword kw">end</span>
503
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 176</span>
504
+ 176: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">all</span>
505
+ 177: <span class="ruby-identifier">res</span> = [ <span class="ruby-keyword kw">self</span> ]
506
+ 178: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
507
+ 179: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">res</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">c</span>.<span class="ruby-identifier">all</span>)
508
+ 180: <span class="ruby-keyword kw">end</span>
509
+ 181: <span class="ruby-identifier">res</span>
510
+ 182: <span class="ruby-keyword kw">end</span>
500
511
  </pre>
501
512
  </div>
502
513
 
@@ -504,12 +515,12 @@ Returns a list of this node and all transient sub nodes.
504
515
  </div>
505
516
 
506
517
 
507
- <div id="method-M000509" class="method-detail">
508
- <a name="M000509"></a>
518
+ <div id="method-M000664" class="method-detail">
519
+ <a name="M000664"></a>
509
520
 
510
521
  <div class="method-heading">
511
522
 
512
- <a href="#M000509" class="method-signature">
523
+ <a href="#M000664" class="method-signature">
513
524
 
514
525
  <span class="method-name">allLeaves</span><span class="method-args">()</span>
515
526
 
@@ -524,21 +535,21 @@ Return a list of all leaf nodes of this node.
524
535
  </p>
525
536
 
526
537
  <p><a class="source-toggle" href="#"
527
- onclick="toggleCode('M000509-source');return false;">[Source]</a></p>
528
- <div class="method-source-code" id="M000509-source">
538
+ onclick="toggleCode('M000664-source');return false;">[Source]</a></p>
539
+ <div class="method-source-code" id="M000664-source">
529
540
  <pre>
530
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 176</span>
531
- 176: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">allLeaves</span>
532
- 177: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">leaf?</span>
533
- 178: <span class="ruby-identifier">res</span> = [ <span class="ruby-keyword kw">self</span> ]
534
- 179: <span class="ruby-keyword kw">else</span>
535
- 180: <span class="ruby-identifier">res</span> = []
536
- 181: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
537
- 182: <span class="ruby-identifier">res</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">allLeaves</span>
538
- 183: <span class="ruby-keyword kw">end</span>
539
- 184: <span class="ruby-keyword kw">end</span>
540
- 185: <span class="ruby-identifier">res</span>
541
- 186: <span class="ruby-keyword kw">end</span>
541
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 185</span>
542
+ 185: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">allLeaves</span>
543
+ 186: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">leaf?</span>
544
+ 187: <span class="ruby-identifier">res</span> = [ <span class="ruby-keyword kw">self</span> ]
545
+ 188: <span class="ruby-keyword kw">else</span>
546
+ 189: <span class="ruby-identifier">res</span> = []
547
+ 190: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
548
+ 191: <span class="ruby-identifier">res</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">allLeaves</span>
549
+ 192: <span class="ruby-keyword kw">end</span>
550
+ 193: <span class="ruby-keyword kw">end</span>
551
+ 194: <span class="ruby-identifier">res</span>
552
+ 195: <span class="ruby-keyword kw">end</span>
542
553
  </pre>
543
554
  </div>
544
555
 
@@ -546,12 +557,12 @@ Return a list of all leaf nodes of this node.
546
557
  </div>
547
558
 
548
559
 
549
- <div id="method-M000521" class="method-detail">
550
- <a name="M000521"></a>
560
+ <div id="method-M000676" class="method-detail">
561
+ <a name="M000676"></a>
551
562
 
552
563
  <div class="method-heading">
553
564
 
554
- <a href="#M000521" class="method-signature">
565
+ <a href="#M000676" class="method-signature">
555
566
 
556
567
  <span class="method-name">attributeDefinition</span><span class="method-args">(attributeId)</span>
557
568
 
@@ -566,13 +577,13 @@ Return the type of the attribute with ID <em>attributeId</em>.
566
577
  </p>
567
578
 
568
579
  <p><a class="source-toggle" href="#"
569
- onclick="toggleCode('M000521-source');return false;">[Source]</a></p>
570
- <div class="method-source-code" id="M000521-source">
580
+ onclick="toggleCode('M000676-source');return false;">[Source]</a></p>
581
+ <div class="method-source-code" id="M000676-source">
571
582
  <pre>
572
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 296</span>
573
- 296: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributeDefinition</span>(<span class="ruby-identifier">attributeId</span>)
574
- 297: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">attributeDefinitions</span>[<span class="ruby-identifier">attributeId</span>]
575
- 298: <span class="ruby-keyword kw">end</span>
583
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 305</span>
584
+ 305: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributeDefinition</span>(<span class="ruby-identifier">attributeId</span>)
585
+ 306: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">attributeDefinitions</span>[<span class="ruby-identifier">attributeId</span>]
586
+ 307: <span class="ruby-keyword kw">end</span>
576
587
  </pre>
577
588
  </div>
578
589
 
@@ -580,12 +591,12 @@ Return the type of the attribute with ID <em>attributeId</em>.
580
591
  </div>
581
592
 
582
593
 
583
- <div id="method-M000518" class="method-detail">
584
- <a name="M000518"></a>
594
+ <div id="method-M000673" class="method-detail">
595
+ <a name="M000673"></a>
585
596
 
586
597
  <div class="method-heading">
587
598
 
588
- <a href="#M000518" class="method-signature">
599
+ <a href="#M000673" class="method-signature">
589
600
 
590
601
  <span class="method-name">container?</span><span class="method-args">()</span>
591
602
 
@@ -600,13 +611,13 @@ Return true if the node has children.
600
611
  </p>
601
612
 
602
613
  <p><a class="source-toggle" href="#"
603
- onclick="toggleCode('M000518-source');return false;">[Source]</a></p>
604
- <div class="method-source-code" id="M000518-source">
614
+ onclick="toggleCode('M000673-source');return false;">[Source]</a></p>
615
+ <div class="method-source-code" id="M000673-source">
605
616
  <pre>
606
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 268</span>
607
- 268: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">container?</span>
608
- 269: <span class="ruby-operator">!</span><span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>
609
- 270: <span class="ruby-keyword kw">end</span>
617
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 277</span>
618
+ 277: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">container?</span>
619
+ 278: <span class="ruby-operator">!</span><span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>
620
+ 279: <span class="ruby-keyword kw">end</span>
610
621
  </pre>
611
622
  </div>
612
623
 
@@ -614,12 +625,12 @@ Return true if the node has children.
614
625
  </div>
615
626
 
616
627
 
617
- <div id="method-M000520" class="method-detail">
618
- <a name="M000520"></a>
628
+ <div id="method-M000675" class="method-detail">
629
+ <a name="M000675"></a>
619
630
 
620
631
  <div class="method-heading">
621
632
 
622
- <a href="#M000520" class="method-signature">
633
+ <a href="#M000675" class="method-signature">
623
634
 
624
635
  <span class="method-name">declareAttribute</span><span class="method-args">(attributeType)</span>
625
636
 
@@ -636,21 +647,57 @@ for each scenario.
636
647
  </p>
637
648
 
638
649
  <p><a class="source-toggle" href="#"
639
- onclick="toggleCode('M000520-source');return false;">[Source]</a></p>
640
- <div class="method-source-code" id="M000520-source">
650
+ onclick="toggleCode('M000675-source');return false;">[Source]</a></p>
651
+ <div class="method-source-code" id="M000675-source">
652
+ <pre>
653
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 292</span>
654
+ 292: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">declareAttribute</span>(<span class="ruby-identifier">attributeType</span>)
655
+ 293: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributeType</span>.<span class="ruby-identifier">scenarioSpecific</span>
656
+ 294: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioCount</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
657
+ 295: <span class="ruby-identifier">attribute</span> = <span class="ruby-identifier">newAttribute</span>(<span class="ruby-identifier">attributeType</span>)
658
+ 296: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">attribute</span>.<span class="ruby-identifier">id</span>] = <span class="ruby-identifier">attribute</span>
659
+ 297: <span class="ruby-keyword kw">end</span>
660
+ 298: <span class="ruby-keyword kw">else</span>
661
+ 299: <span class="ruby-identifier">attribute</span> = <span class="ruby-identifier">newAttribute</span>(<span class="ruby-identifier">attributeType</span>)
662
+ 300: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attribute</span>.<span class="ruby-identifier">id</span>] = <span class="ruby-identifier">attribute</span>
663
+ 301: <span class="ruby-keyword kw">end</span>
664
+ 302: <span class="ruby-keyword kw">end</span>
665
+ </pre>
666
+ </div>
667
+
668
+ </div>
669
+ </div>
670
+
671
+
672
+ <div id="method-M000659" class="method-detail">
673
+ <a name="M000659"></a>
674
+
675
+ <div class="method-heading">
676
+
677
+ <a href="#M000659" class="method-signature">
678
+
679
+ <span class="method-name">deep_clone</span><span class="method-args">()</span>
680
+
681
+ </a>
682
+
683
+ </div>
684
+
685
+ <div class="method-description">
686
+
687
+ <p>
688
+ We only use <a href="PropertyTreeNode.html#M000659">deep_clone</a> for
689
+ attributes, never for properties. Since attributes may reference properties
690
+ these references should remain references.
691
+ </p>
692
+
693
+ <p><a class="source-toggle" href="#"
694
+ onclick="toggleCode('M000659-source');return false;">[Source]</a></p>
695
+ <div class="method-source-code" id="M000659-source">
641
696
  <pre>
642
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 283</span>
643
- 283: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">declareAttribute</span>(<span class="ruby-identifier">attributeType</span>)
644
- 284: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributeType</span>.<span class="ruby-identifier">scenarioSpecific</span>
645
- 285: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioCount</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
646
- 286: <span class="ruby-identifier">attribute</span> = <span class="ruby-identifier">newAttribute</span>(<span class="ruby-identifier">attributeType</span>)
647
- 287: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">i</span>][<span class="ruby-identifier">attribute</span>.<span class="ruby-identifier">id</span>] = <span class="ruby-identifier">attribute</span>
648
- 288: <span class="ruby-keyword kw">end</span>
649
- 289: <span class="ruby-keyword kw">else</span>
650
- 290: <span class="ruby-identifier">attribute</span> = <span class="ruby-identifier">newAttribute</span>(<span class="ruby-identifier">attributeType</span>)
651
- 291: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attribute</span>.<span class="ruby-identifier">id</span>] = <span class="ruby-identifier">attribute</span>
652
- 292: <span class="ruby-keyword kw">end</span>
653
- 293: <span class="ruby-keyword kw">end</span>
697
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 91</span>
698
+ 91: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">deep_clone</span>
699
+ 92: <span class="ruby-keyword kw">self</span>
700
+ 93: <span class="ruby-keyword kw">end</span>
654
701
  </pre>
655
702
  </div>
656
703
 
@@ -658,12 +705,12 @@ for each scenario.
658
705
  </div>
659
706
 
660
707
 
661
- <div id="method-M000510" class="method-detail">
662
- <a name="M000510"></a>
708
+ <div id="method-M000665" class="method-detail">
709
+ <a name="M000665"></a>
663
710
 
664
711
  <div class="method-heading">
665
712
 
666
- <a href="#M000510" class="method-signature">
713
+ <a href="#M000665" class="method-signature">
667
714
 
668
715
  <span class="method-name">eachAttribute</span><span class="method-args">() {|attr| ...}</span>
669
716
 
@@ -678,15 +725,15 @@ Iterator over all non-scenario-specific attributes of this node.
678
725
  </p>
679
726
 
680
727
  <p><a class="source-toggle" href="#"
681
- onclick="toggleCode('M000510-source');return false;">[Source]</a></p>
682
- <div class="method-source-code" id="M000510-source">
728
+ onclick="toggleCode('M000665-source');return false;">[Source]</a></p>
729
+ <div class="method-source-code" id="M000665-source">
683
730
  <pre>
684
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 189</span>
685
- 189: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eachAttribute</span>
686
- 190: <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span>
687
- 191: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">attr</span>
688
- 192: <span class="ruby-keyword kw">end</span>
689
- 193: <span class="ruby-keyword kw">end</span>
731
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 198</span>
732
+ 198: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eachAttribute</span>
733
+ 199: <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span>
734
+ 200: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">attr</span>
735
+ 201: <span class="ruby-keyword kw">end</span>
736
+ 202: <span class="ruby-keyword kw">end</span>
690
737
  </pre>
691
738
  </div>
692
739
 
@@ -694,12 +741,12 @@ Iterator over all non-scenario-specific attributes of this node.
694
741
  </div>
695
742
 
696
743
 
697
- <div id="method-M000511" class="method-detail">
698
- <a name="M000511"></a>
744
+ <div id="method-M000666" class="method-detail">
745
+ <a name="M000666"></a>
699
746
 
700
747
  <div class="method-heading">
701
748
 
702
- <a href="#M000511" class="method-signature">
749
+ <a href="#M000666" class="method-signature">
703
750
 
704
751
  <span class="method-name">eachScenarioAttribute</span><span class="method-args">(scenario) {|attr| ...}</span>
705
752
 
@@ -714,15 +761,15 @@ Iterator over all scenario-specific attributes of this node.
714
761
  </p>
715
762
 
716
763
  <p><a class="source-toggle" href="#"
717
- onclick="toggleCode('M000511-source');return false;">[Source]</a></p>
718
- <div class="method-source-code" id="M000511-source">
764
+ onclick="toggleCode('M000666-source');return false;">[Source]</a></p>
765
+ <div class="method-source-code" id="M000666-source">
719
766
  <pre>
720
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 196</span>
721
- 196: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eachScenarioAttribute</span>(<span class="ruby-identifier">scenario</span>)
722
- 197: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>].<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span>
723
- 198: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">attr</span>
724
- 199: <span class="ruby-keyword kw">end</span>
725
- 200: <span class="ruby-keyword kw">end</span>
767
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 205</span>
768
+ 205: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eachScenarioAttribute</span>(<span class="ruby-identifier">scenario</span>)
769
+ 206: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>].<span class="ruby-identifier">each_value</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attr</span><span class="ruby-operator">|</span>
770
+ 207: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">attr</span>
771
+ 208: <span class="ruby-keyword kw">end</span>
772
+ 209: <span class="ruby-keyword kw">end</span>
726
773
  </pre>
727
774
  </div>
728
775
 
@@ -730,12 +777,12 @@ Iterator over all scenario-specific attributes of this node.
730
777
  </div>
731
778
 
732
779
 
733
- <div id="method-M000512" class="method-detail">
734
- <a name="M000512"></a>
780
+ <div id="method-M000667" class="method-detail">
781
+ <a name="M000667"></a>
735
782
 
736
783
  <div class="method-heading">
737
784
 
738
- <a href="#M000512" class="method-signature">
785
+ <a href="#M000667" class="method-signature">
739
786
 
740
787
  <span class="method-name">fullId</span><span class="method-args">()</span>
741
788
 
@@ -753,20 +800,20 @@ node to this node, separating the IDs by a dot.
753
800
  </p>
754
801
 
755
802
  <p><a class="source-toggle" href="#"
756
- onclick="toggleCode('M000512-source');return false;">[Source]</a></p>
757
- <div class="method-source-code" id="M000512-source">
803
+ onclick="toggleCode('M000667-source');return false;">[Source]</a></p>
804
+ <div class="method-source-code" id="M000667-source">
758
805
  <pre>
759
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 205</span>
760
- 205: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fullId</span>
761
- 206: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@id</span>
762
- 207: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">flatNamespace</span>
763
- 208: <span class="ruby-identifier">t</span> = <span class="ruby-keyword kw">self</span>
764
- 209: <span class="ruby-keyword kw">until</span> (<span class="ruby-identifier">t</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">parent</span>).<span class="ruby-identifier">nil?</span>
765
- 210: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">id</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;.&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">res</span>
766
- 211: <span class="ruby-keyword kw">end</span>
767
- 212: <span class="ruby-keyword kw">end</span>
768
- 213: <span class="ruby-identifier">res</span>
769
- 214: <span class="ruby-keyword kw">end</span>
806
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 214</span>
807
+ 214: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fullId</span>
808
+ 215: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@id</span>
809
+ 216: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">flatNamespace</span>
810
+ 217: <span class="ruby-identifier">t</span> = <span class="ruby-keyword kw">self</span>
811
+ 218: <span class="ruby-keyword kw">until</span> (<span class="ruby-identifier">t</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">parent</span>).<span class="ruby-identifier">nil?</span>
812
+ 219: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">id</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;.&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">res</span>
813
+ 220: <span class="ruby-keyword kw">end</span>
814
+ 221: <span class="ruby-keyword kw">end</span>
815
+ 222: <span class="ruby-identifier">res</span>
816
+ 223: <span class="ruby-keyword kw">end</span>
770
817
  </pre>
771
818
  </div>
772
819
 
@@ -774,12 +821,12 @@ node to this node, separating the IDs by a dot.
774
821
  </div>
775
822
 
776
823
 
777
- <div id="method-M000522" class="method-detail">
778
- <a name="M000522"></a>
824
+ <div id="method-M000677" class="method-detail">
825
+ <a name="M000677"></a>
779
826
 
780
827
  <div class="method-heading">
781
828
 
782
- <a href="#M000522" class="method-signature">
829
+ <a href="#M000677" class="method-signature">
783
830
 
784
831
  <span class="method-name">get</span><span class="method-args">(attributeId)</span>
785
832
 
@@ -796,25 +843,25 @@ raised.
796
843
  </p>
797
844
 
798
845
  <p><a class="source-toggle" href="#"
799
- onclick="toggleCode('M000522-source');return false;">[Source]</a></p>
800
- <div class="method-source-code" id="M000522-source">
846
+ onclick="toggleCode('M000677-source');return false;">[Source]</a></p>
847
+ <div class="method-source-code" id="M000677-source">
801
848
  <pre>
802
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 303</span>
803
- 303: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">attributeId</span>)
804
- 304: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">attributeId</span>
805
- 305: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'id'</span>
806
- 306: <span class="ruby-ivar">@id</span>
807
- 307: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
808
- 308: <span class="ruby-ivar">@name</span>
809
- 309: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'seqno'</span>
810
- 310: <span class="ruby-ivar">@sequenceNo</span>
811
- 311: <span class="ruby-keyword kw">else</span>
812
- 312: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attributeId</span>)
813
- 313: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Unknown attribute #{attributeId}&quot;</span>
814
- 314: <span class="ruby-keyword kw">end</span>
815
- 315: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">get</span>
816
- 316: <span class="ruby-keyword kw">end</span>
817
- 317: <span class="ruby-keyword kw">end</span>
849
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 312</span>
850
+ 312: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">attributeId</span>)
851
+ 313: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">attributeId</span>
852
+ 314: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'id'</span>
853
+ 315: <span class="ruby-ivar">@id</span>
854
+ 316: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
855
+ 317: <span class="ruby-ivar">@name</span>
856
+ 318: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'seqno'</span>
857
+ 319: <span class="ruby-ivar">@sequenceNo</span>
858
+ 320: <span class="ruby-keyword kw">else</span>
859
+ 321: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attributeId</span>)
860
+ 322: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Unknown attribute #{attributeId}&quot;</span>
861
+ 323: <span class="ruby-keyword kw">end</span>
862
+ 324: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">get</span>
863
+ 325: <span class="ruby-keyword kw">end</span>
864
+ 326: <span class="ruby-keyword kw">end</span>
818
865
  </pre>
819
866
  </div>
820
867
 
@@ -822,12 +869,12 @@ raised.
822
869
  </div>
823
870
 
824
871
 
825
- <div id="method-M000523" class="method-detail">
826
- <a name="M000523"></a>
872
+ <div id="method-M000678" class="method-detail">
873
+ <a name="M000678"></a>
827
874
 
828
875
  <div class="method-heading">
829
876
 
830
- <a href="#M000523" class="method-signature">
877
+ <a href="#M000678" class="method-signature">
831
878
 
832
879
  <span class="method-name">getAttr</span><span class="method-args">(attributeId, scenarioIdx = nil)</span>
833
880
 
@@ -844,17 +891,26 @@ provided by <em>scenarioIdx</em>.
844
891
  </p>
845
892
 
846
893
  <p><a class="source-toggle" href="#"
847
- onclick="toggleCode('M000523-source');return false;">[Source]</a></p>
848
- <div class="method-source-code" id="M000523-source">
894
+ onclick="toggleCode('M000678-source');return false;">[Source]</a></p>
895
+ <div class="method-source-code" id="M000678-source">
849
896
  <pre>
850
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 322</span>
851
- 322: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getAttr</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
852
- 323: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>.<span class="ruby-identifier">nil?</span>
853
- 324: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>]
854
- 325: <span class="ruby-keyword kw">else</span>
855
- 326: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>]
856
- 327: <span class="ruby-keyword kw">end</span>
857
- 328: <span class="ruby-keyword kw">end</span>
897
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 331</span>
898
+ 331: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getAttr</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
899
+ 332: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>.<span class="ruby-identifier">nil?</span>
900
+ 333: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">attributeId</span>
901
+ 334: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'id'</span>
902
+ 335: <span class="ruby-ivar">@id</span>
903
+ 336: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
904
+ 337: <span class="ruby-ivar">@name</span>
905
+ 338: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'seqno'</span>
906
+ 339: <span class="ruby-ivar">@sequenceNo</span>
907
+ 340: <span class="ruby-keyword kw">else</span>
908
+ 341: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>]
909
+ 342: <span class="ruby-keyword kw">end</span>
910
+ 343: <span class="ruby-keyword kw">else</span>
911
+ 344: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>]
912
+ 345: <span class="ruby-keyword kw">end</span>
913
+ 346: <span class="ruby-keyword kw">end</span>
858
914
  </pre>
859
915
  </div>
860
916
 
@@ -862,12 +918,12 @@ provided by <em>scenarioIdx</em>.
862
918
  </div>
863
919
 
864
920
 
865
- <div id="method-M000514" class="method-detail">
866
- <a name="M000514"></a>
921
+ <div id="method-M000669" class="method-detail">
922
+ <a name="M000669"></a>
867
923
 
868
924
  <div class="method-heading">
869
925
 
870
- <a href="#M000514" class="method-signature">
926
+ <a href="#M000669" class="method-signature">
871
927
 
872
928
  <span class="method-name">getWBSIndicies</span><span class="method-args">()</span>
873
929
 
@@ -884,21 +940,21 @@ with an index for each level from the root to this node.
884
940
  </p>
885
941
 
886
942
  <p><a class="source-toggle" href="#"
887
- onclick="toggleCode('M000514-source');return false;">[Source]</a></p>
888
- <div class="method-source-code" id="M000514-source">
943
+ onclick="toggleCode('M000669-source');return false;">[Source]</a></p>
944
+ <div class="method-source-code" id="M000669-source">
889
945
  <pre>
890
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 233</span>
891
- 233: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getWBSIndicies</span>
892
- 234: <span class="ruby-identifier">idcs</span> = []
893
- 235: <span class="ruby-identifier">p</span> = <span class="ruby-keyword kw">self</span>
894
- 236: <span class="ruby-keyword kw">begin</span>
895
- 237: <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
896
- 238: <span class="ruby-identifier">idcs</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">parent</span> <span class="ruby-value">? </span><span class="ruby-identifier">parent</span>.<span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">p</span>) <span class="ruby-operator">:</span>
897
- 239: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">p</span>))
898
- 240: <span class="ruby-identifier">p</span> = <span class="ruby-identifier">parent</span>
899
- 241: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">p</span>
900
- 242: <span class="ruby-identifier">idcs</span>
901
- 243: <span class="ruby-keyword kw">end</span>
946
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 242</span>
947
+ 242: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getWBSIndicies</span>
948
+ 243: <span class="ruby-identifier">idcs</span> = []
949
+ 244: <span class="ruby-identifier">p</span> = <span class="ruby-keyword kw">self</span>
950
+ 245: <span class="ruby-keyword kw">begin</span>
951
+ 246: <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
952
+ 247: <span class="ruby-identifier">idcs</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">parent</span> <span class="ruby-value">? </span><span class="ruby-identifier">parent</span>.<span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">p</span>) <span class="ruby-operator">:</span>
953
+ 248: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">p</span>))
954
+ 249: <span class="ruby-identifier">p</span> = <span class="ruby-identifier">parent</span>
955
+ 250: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">p</span>
956
+ 251: <span class="ruby-identifier">idcs</span>
957
+ 252: <span class="ruby-keyword kw">end</span>
902
958
  </pre>
903
959
  </div>
904
960
 
@@ -906,12 +962,12 @@ with an index for each level from the root to this node.
906
962
  </div>
907
963
 
908
964
 
909
- <div id="method-M000527" class="method-detail">
910
- <a name="M000527"></a>
965
+ <div id="method-M000682" class="method-detail">
966
+ <a name="M000682"></a>
911
967
 
912
968
  <div class="method-heading">
913
969
 
914
- <a href="#M000527" class="method-signature">
970
+ <a href="#M000682" class="method-signature">
915
971
 
916
972
  <span class="method-name">hasQuery?</span><span class="method-args">(queryId, scenarioIdx = nil)</span>
917
973
 
@@ -929,18 +985,18 @@ the query function must be scenario specific.
929
985
  </p>
930
986
 
931
987
  <p><a class="source-toggle" href="#"
932
- onclick="toggleCode('M000527-source');return false;">[Source]</a></p>
933
- <div class="method-source-code" id="M000527-source">
988
+ onclick="toggleCode('M000682-source');return false;">[Source]</a></p>
989
+ <div class="method-source-code" id="M000682-source">
934
990
  <pre>
935
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 367</span>
936
- 367: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hasQuery?</span>(<span class="ruby-identifier">queryId</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
937
- 368: <span class="ruby-identifier">methodName</span> = <span class="ruby-value str">'query_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">queryId</span>
938
- 369: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
939
- 370: <span class="ruby-ivar">@data</span>[<span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">methodName</span>)
940
- 371: <span class="ruby-keyword kw">else</span>
941
- 372: <span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">methodName</span>)
942
- 373: <span class="ruby-keyword kw">end</span>
943
- 374: <span class="ruby-keyword kw">end</span>
991
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 385</span>
992
+ 385: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hasQuery?</span>(<span class="ruby-identifier">queryId</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
993
+ 386: <span class="ruby-identifier">methodName</span> = <span class="ruby-value str">'query_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">queryId</span>
994
+ 387: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
995
+ 388: <span class="ruby-ivar">@data</span>[<span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">methodName</span>)
996
+ 389: <span class="ruby-keyword kw">else</span>
997
+ 390: <span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">methodName</span>)
998
+ 391: <span class="ruby-keyword kw">end</span>
999
+ 392: <span class="ruby-keyword kw">end</span>
944
1000
  </pre>
945
1001
  </div>
946
1002
 
@@ -948,12 +1004,12 @@ the query function must be scenario specific.
948
1004
  </div>
949
1005
 
950
1006
 
951
- <div id="method-M000506" class="method-detail">
952
- <a name="M000506"></a>
1007
+ <div id="method-M000661" class="method-detail">
1008
+ <a name="M000661"></a>
953
1009
 
954
1010
  <div class="method-heading">
955
1011
 
956
- <a href="#M000506" class="method-signature">
1012
+ <a href="#M000661" class="method-signature">
957
1013
 
958
1014
  <span class="method-name">inheritAttributes</span><span class="method-args">()</span>
959
1015
 
@@ -969,59 +1025,56 @@ href="Project.html">Project</a>.
969
1025
  </p>
970
1026
 
971
1027
  <p><a class="source-toggle" href="#"
972
- onclick="toggleCode('M000506-source');return false;">[Source]</a></p>
973
- <div class="method-source-code" id="M000506-source">
1028
+ onclick="toggleCode('M000661-source');return false;">[Source]</a></p>
1029
+ <div class="method-source-code" id="M000661-source">
974
1030
  <pre>
975
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 89</span>
976
- 89: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inheritAttributes</span>
977
- 90: <span class="ruby-comment cmt"># These attributes are being inherited from the Project.</span>
978
- 91: <span class="ruby-identifier">whitelist</span> = <span class="ruby-node">%w( limits priority projectid rate vacation workinghours )</span>
979
- 92:
980
- 93: <span class="ruby-comment cmt"># Inherit non-scenario-specific values</span>
981
- 94: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">eachAttributeDefinition</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attrDef</span><span class="ruby-operator">|</span>
982
- 95: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">scenarioSpecific</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">inheritable</span>
983
- 96:
984
- 97: <span class="ruby-identifier">aId</span> = <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>
985
- 98: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>
986
- 99: <span class="ruby-comment cmt"># Inherit values from parent property</span>
987
- 100: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">provided</span>(<span class="ruby-identifier">aId</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">aId</span>)
988
- 101: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">aId</span>].<span class="ruby-identifier">inherit</span>(<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">aId</span>))
989
- 102: <span class="ruby-keyword kw">end</span>
990
- 103: <span class="ruby-keyword kw">else</span>
991
- 104: <span class="ruby-comment cmt"># Inherit selected values from project if top-level property</span>
992
- 105: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">whitelist</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">aId</span>)
993
- 106: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>[<span class="ruby-identifier">aId</span>]
994
- 107: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">aId</span>].<span class="ruby-identifier">inherit</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-identifier">aId</span>])
995
- 108: <span class="ruby-keyword kw">end</span>
996
- 109: <span class="ruby-keyword kw">end</span>
997
- 110: <span class="ruby-keyword kw">end</span>
998
- 111: <span class="ruby-keyword kw">end</span>
999
- 112:
1000
- 113: <span class="ruby-comment cmt"># Inherit scenario-specific values</span>
1001
- 114: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">eachAttributeDefinition</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attrDef</span><span class="ruby-operator">|</span>
1002
- 115: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">scenarioSpecific</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">inheritable</span>
1003
- 116:
1004
- 117: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioCount</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1005
- 118: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>
1006
- 119: <span class="ruby-comment cmt"># Inherit scenario specific values from parent property</span>
1007
- 120: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">provided</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>) <span class="ruby-operator">||</span>
1008
- 121: <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>)
1009
- 122: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>].<span class="ruby-identifier">inherit</span>(
1010
- 123: <span class="ruby-identifier">parent</span>[<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>])
1011
- 124: <span class="ruby-keyword kw">end</span>
1012
- 125: <span class="ruby-keyword kw">else</span>
1013
- 126: <span class="ruby-comment cmt"># Inherit selected values from project if top-level property</span>
1014
- 127: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">whitelist</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>)
1015
- 128: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>[<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>] <span class="ruby-operator">&amp;&amp;</span>
1016
- 129: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>]
1017
- 130: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>].<span class="ruby-identifier">inherit</span>(
1018
- 131: <span class="ruby-ivar">@project</span>[<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>])
1019
- 132: <span class="ruby-keyword kw">end</span>
1031
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 101</span>
1032
+ 101: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inheritAttributes</span>
1033
+ 102: <span class="ruby-comment cmt"># Inherit non-scenario-specific values</span>
1034
+ 103: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">eachAttributeDefinition</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attrDef</span><span class="ruby-operator">|</span>
1035
+ 104: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">scenarioSpecific</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">inheritedFromParent</span>
1036
+ 105:
1037
+ 106: <span class="ruby-identifier">aId</span> = <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>
1038
+ 107: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>
1039
+ 108: <span class="ruby-comment cmt"># Inherit values from parent property</span>
1040
+ 109: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">provided</span>(<span class="ruby-identifier">aId</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">aId</span>)
1041
+ 110: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">aId</span>].<span class="ruby-identifier">inherit</span>(<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">aId</span>))
1042
+ 111: <span class="ruby-keyword kw">end</span>
1043
+ 112: <span class="ruby-keyword kw">else</span>
1044
+ 113: <span class="ruby-comment cmt"># Inherit selected values from project if top-level property</span>
1045
+ 114: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">inheritedFromProject</span>
1046
+ 115: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>[<span class="ruby-identifier">aId</span>]
1047
+ 116: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">aId</span>].<span class="ruby-identifier">inherit</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-identifier">aId</span>])
1048
+ 117: <span class="ruby-keyword kw">end</span>
1049
+ 118: <span class="ruby-keyword kw">end</span>
1050
+ 119: <span class="ruby-keyword kw">end</span>
1051
+ 120: <span class="ruby-keyword kw">end</span>
1052
+ 121:
1053
+ 122: <span class="ruby-comment cmt"># Inherit scenario-specific values</span>
1054
+ 123: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">eachAttributeDefinition</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attrDef</span><span class="ruby-operator">|</span>
1055
+ 124: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">scenarioSpecific</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">inheritedFromParent</span>
1056
+ 125:
1057
+ 126: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioCount</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1058
+ 127: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>
1059
+ 128: <span class="ruby-comment cmt"># Inherit scenario specific values from parent property</span>
1060
+ 129: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">provided</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>) <span class="ruby-operator">||</span>
1061
+ 130: <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>)
1062
+ 131: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>].<span class="ruby-identifier">inherit</span>(
1063
+ 132: <span class="ruby-identifier">parent</span>[<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>])
1020
1064
  133: <span class="ruby-keyword kw">end</span>
1021
- 134: <span class="ruby-keyword kw">end</span>
1022
- 135: <span class="ruby-keyword kw">end</span>
1023
- 136: <span class="ruby-keyword kw">end</span>
1024
- 137: <span class="ruby-keyword kw">end</span>
1065
+ 134: <span class="ruby-keyword kw">else</span>
1066
+ 135: <span class="ruby-comment cmt"># Inherit selected values from project if top-level property</span>
1067
+ 136: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">inheritedFromProject</span>
1068
+ 137: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>[<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>] <span class="ruby-operator">&amp;&amp;</span>
1069
+ 138: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>]
1070
+ 139: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>].<span class="ruby-identifier">inherit</span>(
1071
+ 140: <span class="ruby-ivar">@project</span>[<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>])
1072
+ 141: <span class="ruby-keyword kw">end</span>
1073
+ 142: <span class="ruby-keyword kw">end</span>
1074
+ 143: <span class="ruby-keyword kw">end</span>
1075
+ 144: <span class="ruby-keyword kw">end</span>
1076
+ 145: <span class="ruby-keyword kw">end</span>
1077
+ 146: <span class="ruby-keyword kw">end</span>
1025
1078
  </pre>
1026
1079
  </div>
1027
1080
 
@@ -1029,12 +1082,12 @@ href="Project.html">Project</a>.
1029
1082
  </div>
1030
1083
 
1031
1084
 
1032
- <div id="method-M000507" class="method-detail">
1033
- <a name="M000507"></a>
1085
+ <div id="method-M000662" class="method-detail">
1086
+ <a name="M000662"></a>
1034
1087
 
1035
1088
  <div class="method-heading">
1036
1089
 
1037
- <a href="#M000507" class="method-signature">
1090
+ <a href="#M000662" class="method-signature">
1038
1091
 
1039
1092
  <span class="method-name">inheritAttributesFromScenario</span><span class="method-args">()</span>
1040
1093
 
@@ -1050,34 +1103,34 @@ for attributes that don&#8217;t have a user-specified value already.
1050
1103
  </p>
1051
1104
 
1052
1105
  <p><a class="source-toggle" href="#"
1053
- onclick="toggleCode('M000507-source');return false;">[Source]</a></p>
1054
- <div class="method-source-code" id="M000507-source">
1106
+ onclick="toggleCode('M000662-source');return false;">[Source]</a></p>
1107
+ <div class="method-source-code" id="M000662-source">
1055
1108
  <pre>
1056
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 141</span>
1057
- 141: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inheritAttributesFromScenario</span>
1058
- 142: <span class="ruby-comment cmt"># Inherit scenario-specific values</span>
1059
- 143: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">eachAttributeDefinition</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attrDef</span><span class="ruby-operator">|</span>
1060
- 144: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">scenarioSpecific</span>
1061
- 145:
1062
- 146: <span class="ruby-comment cmt"># We know that parent scenarios precede their children in the list. So</span>
1063
- 147: <span class="ruby-comment cmt"># it's safe to iterate over the list instead of recursively descend</span>
1064
- 148: <span class="ruby-comment cmt"># the tree.</span>
1065
- 149: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioCount</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1066
- 150: <span class="ruby-identifier">scenario</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">scenarioIdx</span>)
1067
- 151: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenario</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span>
1068
- 152: <span class="ruby-identifier">parentScenarioIdx</span> = <span class="ruby-identifier">scenario</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">sequenceNo</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
1069
- 153: <span class="ruby-comment cmt"># We copy only provided or inherited values from parent scenario when</span>
1070
- 154: <span class="ruby-comment cmt"># we don't have a provided or inherited value in this scenario.</span>
1071
- 155: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">provided</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">parentScenarioIdx</span>) <span class="ruby-operator">||</span>
1072
- 156: <span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">parentScenarioIdx</span>)) <span class="ruby-operator">&amp;&amp;</span>
1073
- 157: <span class="ruby-operator">!</span>(<span class="ruby-identifier">provided</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>) <span class="ruby-operator">||</span>
1074
- 158: <span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>))
1075
- 159: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>].<span class="ruby-identifier">inherit</span>(
1076
- 160: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">parentScenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>].<span class="ruby-identifier">get</span>)
1077
- 161: <span class="ruby-keyword kw">end</span>
1078
- 162: <span class="ruby-keyword kw">end</span>
1079
- 163: <span class="ruby-keyword kw">end</span>
1080
- 164: <span class="ruby-keyword kw">end</span>
1109
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 150</span>
1110
+ 150: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inheritAttributesFromScenario</span>
1111
+ 151: <span class="ruby-comment cmt"># Inherit scenario-specific values</span>
1112
+ 152: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">eachAttributeDefinition</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attrDef</span><span class="ruby-operator">|</span>
1113
+ 153: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">scenarioSpecific</span>
1114
+ 154:
1115
+ 155: <span class="ruby-comment cmt"># We know that parent scenarios precede their children in the list. So</span>
1116
+ 156: <span class="ruby-comment cmt"># it's safe to iterate over the list instead of recursively descend</span>
1117
+ 157: <span class="ruby-comment cmt"># the tree.</span>
1118
+ 158: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioCount</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1119
+ 159: <span class="ruby-identifier">scenario</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">scenarioIdx</span>)
1120
+ 160: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenario</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span>
1121
+ 161: <span class="ruby-identifier">parentScenarioIdx</span> = <span class="ruby-identifier">scenario</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">sequenceNo</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
1122
+ 162: <span class="ruby-comment cmt"># We copy only provided or inherited values from parent scenario when</span>
1123
+ 163: <span class="ruby-comment cmt"># we don't have a provided or inherited value in this scenario.</span>
1124
+ 164: <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">provided</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">parentScenarioIdx</span>) <span class="ruby-operator">||</span>
1125
+ 165: <span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">parentScenarioIdx</span>)) <span class="ruby-operator">&amp;&amp;</span>
1126
+ 166: <span class="ruby-operator">!</span>(<span class="ruby-identifier">provided</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>) <span class="ruby-operator">||</span>
1127
+ 167: <span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>))
1128
+ 168: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>] =
1129
+ 169: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">parentScenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>].<span class="ruby-identifier">deep_clone</span>
1130
+ 170: <span class="ruby-keyword kw">end</span>
1131
+ 171: <span class="ruby-keyword kw">end</span>
1132
+ 172: <span class="ruby-keyword kw">end</span>
1133
+ 173: <span class="ruby-keyword kw">end</span>
1081
1134
  </pre>
1082
1135
  </div>
1083
1136
 
@@ -1085,12 +1138,12 @@ for attributes that don&#8217;t have a user-specified value already.
1085
1138
  </div>
1086
1139
 
1087
1140
 
1088
- <div id="method-M000529" class="method-detail">
1089
- <a name="M000529"></a>
1141
+ <div id="method-M000684" class="method-detail">
1142
+ <a name="M000684"></a>
1090
1143
 
1091
1144
  <div class="method-heading">
1092
1145
 
1093
- <a href="#M000529" class="method-signature">
1146
+ <a href="#M000684" class="method-signature">
1094
1147
 
1095
1148
  <span class="method-name">inherited</span><span class="method-args">(attributeId, scenarioIdx = nil)</span>
1096
1149
 
@@ -1107,19 +1160,19 @@ scenario.
1107
1160
  </p>
1108
1161
 
1109
1162
  <p><a class="source-toggle" href="#"
1110
- onclick="toggleCode('M000529-source');return false;">[Source]</a></p>
1111
- <div class="method-source-code" id="M000529-source">
1163
+ onclick="toggleCode('M000684-source');return false;">[Source]</a></p>
1164
+ <div class="method-source-code" id="M000684-source">
1112
1165
  <pre>
1113
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 390</span>
1114
- 390: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
1115
- 391: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
1116
- 392: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">nil?</span>
1117
- 393: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
1118
- 394: <span class="ruby-keyword kw">else</span>
1119
- 395: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">nil?</span>
1120
- 396: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
1121
- 397: <span class="ruby-keyword kw">end</span>
1122
- 398: <span class="ruby-keyword kw">end</span>
1166
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 408</span>
1167
+ 408: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
1168
+ 409: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
1169
+ 410: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">nil?</span>
1170
+ 411: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
1171
+ 412: <span class="ruby-keyword kw">else</span>
1172
+ 413: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">nil?</span>
1173
+ 414: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
1174
+ 415: <span class="ruby-keyword kw">end</span>
1175
+ 416: <span class="ruby-keyword kw">end</span>
1123
1176
  </pre>
1124
1177
  </div>
1125
1178
 
@@ -1127,12 +1180,12 @@ scenario.
1127
1180
  </div>
1128
1181
 
1129
1182
 
1130
- <div id="method-M000516" class="method-detail">
1131
- <a name="M000516"></a>
1183
+ <div id="method-M000671" class="method-detail">
1184
+ <a name="M000671"></a>
1132
1185
 
1133
1186
  <div class="method-heading">
1134
1187
 
1135
- <a href="#M000516" class="method-signature">
1188
+ <a href="#M000671" class="method-signature">
1136
1189
 
1137
1190
  <span class="method-name">isChildOf?</span><span class="method-args">(ancestor)</span>
1138
1191
 
@@ -1148,17 +1201,17 @@ Find out if this property is a direct or indirect child of
1148
1201
  </p>
1149
1202
 
1150
1203
  <p><a class="source-toggle" href="#"
1151
- onclick="toggleCode('M000516-source');return false;">[Source]</a></p>
1152
- <div class="method-source-code" id="M000516-source">
1204
+ onclick="toggleCode('M000671-source');return false;">[Source]</a></p>
1205
+ <div class="method-source-code" id="M000671-source">
1153
1206
  <pre>
1154
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 254</span>
1155
- 254: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isChildOf?</span>(<span class="ruby-identifier">ancestor</span>)
1156
- 255: <span class="ruby-identifier">parent</span> = <span class="ruby-keyword kw">self</span>
1157
- 256: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">parent</span>
1158
- 257: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">parent</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">ancestor</span>)
1159
- 258: <span class="ruby-keyword kw">end</span>
1160
- 259: <span class="ruby-keyword kw">false</span>
1161
- 260: <span class="ruby-keyword kw">end</span>
1207
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 263</span>
1208
+ 263: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isChildOf?</span>(<span class="ruby-identifier">ancestor</span>)
1209
+ 264: <span class="ruby-identifier">parent</span> = <span class="ruby-keyword kw">self</span>
1210
+ 265: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">parent</span>
1211
+ 266: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">parent</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">ancestor</span>)
1212
+ 267: <span class="ruby-keyword kw">end</span>
1213
+ 268: <span class="ruby-keyword kw">false</span>
1214
+ 269: <span class="ruby-keyword kw">end</span>
1162
1215
  </pre>
1163
1216
  </div>
1164
1217
 
@@ -1166,12 +1219,12 @@ Find out if this property is a direct or indirect child of
1166
1219
  </div>
1167
1220
 
1168
1221
 
1169
- <div id="method-M000517" class="method-detail">
1170
- <a name="M000517"></a>
1222
+ <div id="method-M000672" class="method-detail">
1223
+ <a name="M000672"></a>
1171
1224
 
1172
1225
  <div class="method-heading">
1173
1226
 
1174
- <a href="#M000517" class="method-signature">
1227
+ <a href="#M000672" class="method-signature">
1175
1228
 
1176
1229
  <span class="method-name">leaf?</span><span class="method-args">()</span>
1177
1230
 
@@ -1186,13 +1239,13 @@ Return true if the node is a leaf node (has no children).
1186
1239
  </p>
1187
1240
 
1188
1241
  <p><a class="source-toggle" href="#"
1189
- onclick="toggleCode('M000517-source');return false;">[Source]</a></p>
1190
- <div class="method-source-code" id="M000517-source">
1242
+ onclick="toggleCode('M000672-source');return false;">[Source]</a></p>
1243
+ <div class="method-source-code" id="M000672-source">
1191
1244
  <pre>
1192
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 263</span>
1193
- 263: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">leaf?</span>
1194
- 264: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>
1195
- 265: <span class="ruby-keyword kw">end</span>
1245
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 272</span>
1246
+ 272: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">leaf?</span>
1247
+ 273: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>
1248
+ 274: <span class="ruby-keyword kw">end</span>
1196
1249
  </pre>
1197
1250
  </div>
1198
1251
 
@@ -1200,12 +1253,12 @@ Return true if the node is a leaf node (has no children).
1200
1253
  </div>
1201
1254
 
1202
1255
 
1203
- <div id="method-M000513" class="method-detail">
1204
- <a name="M000513"></a>
1256
+ <div id="method-M000668" class="method-detail">
1257
+ <a name="M000668"></a>
1205
1258
 
1206
1259
  <div class="method-heading">
1207
1260
 
1208
- <a href="#M000513" class="method-signature">
1261
+ <a href="#M000668" class="method-signature">
1209
1262
 
1210
1263
  <span class="method-name">level</span><span class="method-args">()</span>
1211
1264
 
@@ -1222,20 +1275,20 @@ have to be calculated each time the function is called.
1222
1275
  </p>
1223
1276
 
1224
1277
  <p><a class="source-toggle" href="#"
1225
- onclick="toggleCode('M000513-source');return false;">[Source]</a></p>
1226
- <div class="method-source-code" id="M000513-source">
1278
+ onclick="toggleCode('M000668-source');return false;">[Source]</a></p>
1279
+ <div class="method-source-code" id="M000668-source">
1227
1280
  <pre>
1228
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 219</span>
1229
- 219: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">level</span>
1230
- 220: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@level</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@level</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>
1231
- 221:
1232
- 222: <span class="ruby-identifier">t</span> = <span class="ruby-keyword kw">self</span>
1233
- 223: <span class="ruby-ivar">@level</span> = <span class="ruby-value">0</span>
1234
- 224: <span class="ruby-keyword kw">until</span> (<span class="ruby-identifier">t</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">parent</span>).<span class="ruby-identifier">nil?</span>
1235
- 225: <span class="ruby-ivar">@level</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1236
- 226: <span class="ruby-keyword kw">end</span>
1237
- 227: <span class="ruby-ivar">@level</span>
1238
- 228: <span class="ruby-keyword kw">end</span>
1281
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 228</span>
1282
+ 228: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">level</span>
1283
+ 229: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@level</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@level</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>
1284
+ 230:
1285
+ 231: <span class="ruby-identifier">t</span> = <span class="ruby-keyword kw">self</span>
1286
+ 232: <span class="ruby-ivar">@level</span> = <span class="ruby-value">0</span>
1287
+ 233: <span class="ruby-keyword kw">until</span> (<span class="ruby-identifier">t</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">parent</span>).<span class="ruby-identifier">nil?</span>
1288
+ 234: <span class="ruby-ivar">@level</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1289
+ 235: <span class="ruby-keyword kw">end</span>
1290
+ 236: <span class="ruby-ivar">@level</span>
1291
+ 237: <span class="ruby-keyword kw">end</span>
1239
1292
  </pre>
1240
1293
  </div>
1241
1294
 
@@ -1243,12 +1296,12 @@ have to be calculated each time the function is called.
1243
1296
  </div>
1244
1297
 
1245
1298
 
1246
- <div id="method-M000505" class="method-detail">
1247
- <a name="M000505"></a>
1299
+ <div id="method-M000660" class="method-detail">
1300
+ <a name="M000660"></a>
1248
1301
 
1249
1302
  <div class="method-heading">
1250
1303
 
1251
- <a href="#M000505" class="method-signature">
1304
+ <a href="#M000660" class="method-signature">
1252
1305
 
1253
1306
  <span class="method-name">levelSeqNo</span><span class="method-args">(node)</span>
1254
1307
 
@@ -1263,13 +1316,13 @@ Return the index of the child <em>node</em>.
1263
1316
  </p>
1264
1317
 
1265
1318
  <p><a class="source-toggle" href="#"
1266
- onclick="toggleCode('M000505-source');return false;">[Source]</a></p>
1267
- <div class="method-source-code" id="M000505-source">
1319
+ onclick="toggleCode('M000660-source');return false;">[Source]</a></p>
1320
+ <div class="method-source-code" id="M000660-source">
1268
1321
  <pre>
1269
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 84</span>
1270
- 84: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">node</span>)
1271
- 85: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">node</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1272
- 86: <span class="ruby-keyword kw">end</span>
1322
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 96</span>
1323
+ 96: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">node</span>)
1324
+ 97: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">node</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1325
+ 98: <span class="ruby-keyword kw">end</span>
1273
1326
  </pre>
1274
1327
  </div>
1275
1328
 
@@ -1277,12 +1330,12 @@ Return the index of the child <em>node</em>.
1277
1330
  </div>
1278
1331
 
1279
1332
 
1280
- <div id="method-M000530" class="method-detail">
1281
- <a name="M000530"></a>
1333
+ <div id="method-M000685" class="method-detail">
1334
+ <a name="M000685"></a>
1282
1335
 
1283
1336
  <div class="method-heading">
1284
1337
 
1285
- <a href="#M000530" class="method-signature">
1338
+ <a href="#M000685" class="method-signature">
1286
1339
 
1287
1340
  <span class="method-name">method_missing</span><span class="method-args">(func, scenarioIdx, *args)</span>
1288
1341
 
@@ -1301,13 +1354,13 @@ href="Scenario.html">Scenario</a> class.
1301
1354
  </p>
1302
1355
 
1303
1356
  <p><a class="source-toggle" href="#"
1304
- onclick="toggleCode('M000530-source');return false;">[Source]</a></p>
1305
- <div class="method-source-code" id="M000530-source">
1357
+ onclick="toggleCode('M000685-source');return false;">[Source]</a></p>
1358
+ <div class="method-source-code" id="M000685-source">
1306
1359
  <pre>
1307
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 438</span>
1308
- 438: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">func</span>, <span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
1309
- 439: <span class="ruby-ivar">@data</span>[<span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">method</span>(<span class="ruby-identifier">func</span>).<span class="ruby-identifier">call</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
1310
- 440: <span class="ruby-keyword kw">end</span>
1360
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 457</span>
1361
+ 457: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">func</span>, <span class="ruby-identifier">scenarioIdx</span>, <span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
1362
+ 458: <span class="ruby-ivar">@data</span>[<span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">method</span>(<span class="ruby-identifier">func</span>).<span class="ruby-identifier">call</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
1363
+ 459: <span class="ruby-keyword kw">end</span>
1311
1364
  </pre>
1312
1365
  </div>
1313
1366
 
@@ -1315,12 +1368,12 @@ href="Scenario.html">Scenario</a> class.
1315
1368
  </div>
1316
1369
 
1317
1370
 
1318
- <div id="method-M000528" class="method-detail">
1319
- <a name="M000528"></a>
1371
+ <div id="method-M000683" class="method-detail">
1372
+ <a name="M000683"></a>
1320
1373
 
1321
1374
  <div class="method-heading">
1322
1375
 
1323
- <a href="#M000528" class="method-signature">
1376
+ <a href="#M000683" class="method-signature">
1324
1377
 
1325
1378
  <span class="method-name">provided</span><span class="method-args">(attributeId, scenarioIdx = nil)</span>
1326
1379
 
@@ -1336,19 +1389,19 @@ scenario <em>scenarioIdx</em>) has been provided by the user.
1336
1389
  </p>
1337
1390
 
1338
1391
  <p><a class="source-toggle" href="#"
1339
- onclick="toggleCode('M000528-source');return false;">[Source]</a></p>
1340
- <div class="method-source-code" id="M000528-source">
1392
+ onclick="toggleCode('M000683-source');return false;">[Source]</a></p>
1393
+ <div class="method-source-code" id="M000683-source">
1341
1394
  <pre>
1342
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 378</span>
1343
- 378: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">provided</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
1344
- 379: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
1345
- 380: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">nil?</span>
1346
- 381: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span>
1347
- 382: <span class="ruby-keyword kw">else</span>
1348
- 383: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">nil?</span>
1349
- 384: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span>
1350
- 385: <span class="ruby-keyword kw">end</span>
1351
- 386: <span class="ruby-keyword kw">end</span>
1395
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 396</span>
1396
+ 396: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">provided</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
1397
+ 397: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
1398
+ 398: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">nil?</span>
1399
+ 399: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span>
1400
+ 400: <span class="ruby-keyword kw">else</span>
1401
+ 401: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">nil?</span>
1402
+ 402: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span>
1403
+ 403: <span class="ruby-keyword kw">end</span>
1404
+ 404: <span class="ruby-keyword kw">end</span>
1352
1405
  </pre>
1353
1406
  </div>
1354
1407
 
@@ -1356,12 +1409,12 @@ scenario <em>scenarioIdx</em>) has been provided by the user.
1356
1409
  </div>
1357
1410
 
1358
1411
 
1359
- <div id="method-M000519" class="method-detail">
1360
- <a name="M000519"></a>
1412
+ <div id="method-M000674" class="method-detail">
1413
+ <a name="M000674"></a>
1361
1414
 
1362
1415
  <div class="method-heading">
1363
1416
 
1364
- <a href="#M000519" class="method-signature">
1417
+ <a href="#M000674" class="method-signature">
1365
1418
 
1366
1419
  <span class="method-name">root</span><span class="method-args">()</span>
1367
1420
 
@@ -1376,17 +1429,17 @@ Return the top-level node for this node.
1376
1429
  </p>
1377
1430
 
1378
1431
  <p><a class="source-toggle" href="#"
1379
- onclick="toggleCode('M000519-source');return false;">[Source]</a></p>
1380
- <div class="method-source-code" id="M000519-source">
1432
+ onclick="toggleCode('M000674-source');return false;">[Source]</a></p>
1433
+ <div class="method-source-code" id="M000674-source">
1381
1434
  <pre>
1382
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 273</span>
1383
- 273: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">root</span>
1384
- 274: <span class="ruby-identifier">n</span> = <span class="ruby-keyword kw">self</span>
1385
- 275: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">parent</span>
1386
- 276: <span class="ruby-identifier">n</span> = <span class="ruby-identifier">n</span>.<span class="ruby-identifier">parent</span>
1387
- 277: <span class="ruby-keyword kw">end</span>
1388
- 278: <span class="ruby-identifier">n</span>
1389
- 279: <span class="ruby-keyword kw">end</span>
1435
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 282</span>
1436
+ 282: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">root</span>
1437
+ 283: <span class="ruby-identifier">n</span> = <span class="ruby-keyword kw">self</span>
1438
+ 284: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">parent</span>
1439
+ 285: <span class="ruby-identifier">n</span> = <span class="ruby-identifier">n</span>.<span class="ruby-identifier">parent</span>
1440
+ 286: <span class="ruby-keyword kw">end</span>
1441
+ 287: <span class="ruby-identifier">n</span>
1442
+ 288: <span class="ruby-keyword kw">end</span>
1390
1443
  </pre>
1391
1444
  </div>
1392
1445
 
@@ -1394,12 +1447,12 @@ Return the top-level node for this node.
1394
1447
  </div>
1395
1448
 
1396
1449
 
1397
- <div id="method-M000524" class="method-detail">
1398
- <a name="M000524"></a>
1450
+ <div id="method-M000679" class="method-detail">
1451
+ <a name="M000679"></a>
1399
1452
 
1400
1453
  <div class="method-heading">
1401
1454
 
1402
- <a href="#M000524" class="method-signature">
1455
+ <a href="#M000679" class="method-signature">
1403
1456
 
1404
1457
  <span class="method-name">set</span><span class="method-args">(attributeId, value)</span>
1405
1458
 
@@ -1416,16 +1469,16 @@ raised.
1416
1469
  </p>
1417
1470
 
1418
1471
  <p><a class="source-toggle" href="#"
1419
- onclick="toggleCode('M000524-source');return false;">[Source]</a></p>
1420
- <div class="method-source-code" id="M000524-source">
1472
+ onclick="toggleCode('M000679-source');return false;">[Source]</a></p>
1473
+ <div class="method-source-code" id="M000679-source">
1421
1474
  <pre>
1422
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 332</span>
1423
- 332: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">value</span>)
1424
- 333: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attributeId</span>)
1425
- 334: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Unknown attribute #{attributeId}&quot;</span>
1426
- 335: <span class="ruby-keyword kw">end</span>
1427
- 336: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
1428
- 337: <span class="ruby-keyword kw">end</span>
1475
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 350</span>
1476
+ 350: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">value</span>)
1477
+ 351: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attributeId</span>)
1478
+ 352: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Unknown attribute #{attributeId}&quot;</span>
1479
+ 353: <span class="ruby-keyword kw">end</span>
1480
+ 354: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
1481
+ 355: <span class="ruby-keyword kw">end</span>
1429
1482
  </pre>
1430
1483
  </div>
1431
1484