taskjuggler 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
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