taskjuggler 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. data/benchmarks/UTF-8-Strings.rb +58 -0
  2. data/data/css/tjmanual.css +52 -0
  3. data/data/css/tjreport.css +195 -0
  4. data/data/icons/details.png +0 -0
  5. data/data/icons/flag-green.png +0 -0
  6. data/data/icons/flag-red.png +0 -0
  7. data/data/icons/flag-yellow.png +0 -0
  8. data/data/icons/resource.png +0 -0
  9. data/data/icons/resourcegroup.png +0 -0
  10. data/data/icons/task.png +0 -0
  11. data/data/icons/taskgroup.png +0 -0
  12. data/data/icons/trend-down.png +0 -0
  13. data/data/icons/trend-flat.png +0 -0
  14. data/data/icons/trend-up.png +0 -0
  15. data/data/scripts/wz_tooltip.js +1301 -0
  16. data/doc/classes/AppConfig.html +298 -230
  17. data/doc/classes/Arguments.html +8 -8
  18. data/doc/classes/Object.html +7 -7
  19. data/doc/classes/String.html +89 -89
  20. data/doc/classes/TaskJuggler.html +396 -264
  21. data/doc/classes/TaskJuggler/Account.html +18 -18
  22. data/doc/classes/TaskJuggler/AccountAttribute.html +26 -26
  23. data/doc/classes/TaskJuggler/AccountScenario.html +12 -12
  24. data/doc/classes/TaskJuggler/Allocation.html +30 -30
  25. data/doc/classes/TaskJuggler/AllocationAttribute.html +26 -26
  26. data/doc/classes/TaskJuggler/AttributeBase.html +227 -115
  27. data/doc/classes/TaskJuggler/AttributeDefinition.html +6 -6
  28. data/doc/classes/TaskJuggler/BatchProcessor.html +117 -83
  29. data/doc/classes/TaskJuggler/Booking.html +18 -18
  30. data/doc/classes/TaskJuggler/BookingListAttribute.html +26 -26
  31. data/doc/classes/TaskJuggler/BooleanAttribute.html +26 -26
  32. data/doc/classes/TaskJuggler/CSVFile.html +24 -24
  33. data/doc/classes/TaskJuggler/CellSettingPattern.html +201 -0
  34. data/doc/classes/TaskJuggler/CellSettingPatternList.html +253 -0
  35. data/doc/classes/TaskJuggler/Charge.html +18 -18
  36. data/doc/classes/TaskJuggler/ChargeListAttribute.html +20 -20
  37. data/doc/classes/TaskJuggler/ChargeSet.html +37 -37
  38. data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +26 -26
  39. data/doc/classes/TaskJuggler/ColumnListAttribute.html +20 -20
  40. data/doc/classes/TaskJuggler/ColumnTable.html +40 -40
  41. data/doc/classes/TaskJuggler/DateAttribute.html +54 -15
  42. data/doc/classes/TaskJuggler/DefinitionListAttribute.html +10 -10
  43. data/doc/classes/TaskJuggler/DependencyListAttribute.html +47 -47
  44. data/doc/classes/TaskJuggler/DurationAttribute.html +30 -30
  45. data/doc/classes/TaskJuggler/FixnumAttribute.html +20 -20
  46. data/doc/classes/TaskJuggler/FlagListAttribute.html +43 -43
  47. data/doc/classes/TaskJuggler/FloatAttribute.html +30 -30
  48. data/doc/classes/TaskJuggler/FormatListAttribute.html +21 -21
  49. data/doc/classes/TaskJuggler/GanttChart.html +48 -48
  50. data/doc/classes/TaskJuggler/GanttContainer.html +42 -42
  51. data/doc/classes/TaskJuggler/GanttHeader.html +12 -12
  52. data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +12 -12
  53. data/doc/classes/TaskJuggler/GanttLine.html +24 -24
  54. data/doc/classes/TaskJuggler/GanttLoadStack.html +18 -18
  55. data/doc/classes/TaskJuggler/GanttMilestone.html +42 -42
  56. data/doc/classes/TaskJuggler/GanttRouter.html +24 -24
  57. data/doc/classes/TaskJuggler/GanttTaskBar.html +42 -42
  58. data/doc/classes/TaskJuggler/HTMLDocument.html +13 -13
  59. data/doc/classes/TaskJuggler/HTMLGraphics.html +12 -12
  60. data/doc/classes/TaskJuggler/Interval.html +57 -57
  61. data/doc/classes/TaskJuggler/IntervalListAttribute.html +47 -47
  62. data/doc/classes/TaskJuggler/JobInfo.html +68 -12
  63. data/doc/classes/TaskJuggler/Journal.html +266 -20
  64. data/doc/classes/TaskJuggler/JournalEntry.html +79 -23
  65. data/doc/classes/TaskJuggler/JournalEntryList.html +454 -0
  66. data/doc/classes/TaskJuggler/KeywordArray.html +10 -10
  67. data/doc/classes/TaskJuggler/KeywordDocumentation.html +171 -170
  68. data/doc/classes/TaskJuggler/Limits.html +36 -36
  69. data/doc/classes/TaskJuggler/Limits/Limit.html +30 -30
  70. data/doc/classes/TaskJuggler/LimitsAttribute.html +40 -40
  71. data/doc/classes/TaskJuggler/ListAttributeBase.html +20 -20
  72. data/doc/classes/TaskJuggler/Log.html +145 -107
  73. data/doc/classes/TaskJuggler/LogicalAttribute.html +65 -36
  74. data/doc/classes/TaskJuggler/LogicalExpression.html +61 -24
  75. data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +20 -20
  76. data/doc/classes/TaskJuggler/LogicalFlag.html +31 -51
  77. data/doc/classes/TaskJuggler/LogicalFunction.html +64 -53
  78. data/doc/classes/TaskJuggler/LogicalOperation.html +103 -55
  79. data/doc/classes/TaskJuggler/Macro.html +6 -6
  80. data/doc/classes/TaskJuggler/MacroParser.html +36 -36
  81. data/doc/classes/TaskJuggler/MacroTable.html +37 -37
  82. data/doc/classes/TaskJuggler/Message.html +12 -12
  83. data/doc/classes/TaskJuggler/MessageHandler.html +32 -20
  84. data/doc/classes/TaskJuggler/Navigator.html +110 -46
  85. data/doc/classes/TaskJuggler/NavigatorElement.html +449 -0
  86. data/doc/classes/TaskJuggler/OnShiftCache.html +24 -24
  87. data/doc/classes/TaskJuggler/Project.html +1158 -893
  88. data/doc/classes/TaskJuggler/ProjectFileParser.html +94 -91
  89. data/doc/classes/TaskJuggler/PropertyAttribute.html +20 -20
  90. data/doc/classes/TaskJuggler/PropertyList.html +225 -155
  91. data/doc/classes/TaskJuggler/PropertySet.html +375 -332
  92. data/doc/classes/TaskJuggler/PropertyTreeNode.html +750 -510
  93. data/doc/classes/TaskJuggler/Query.html +404 -139
  94. data/doc/classes/TaskJuggler/{RTPNavigator.html → RTFNavigator.html} +57 -56
  95. data/doc/classes/TaskJuggler/RTFQuery.html +343 -0
  96. data/doc/classes/TaskJuggler/{RTPReport.html → RTFReport.html} +70 -67
  97. data/doc/classes/TaskJuggler/RealFormat.html +18 -18
  98. data/doc/classes/TaskJuggler/RealFormatAttribute.html +10 -10
  99. data/doc/classes/TaskJuggler/ReferenceAttribute.html +107 -40
  100. data/doc/classes/TaskJuggler/RemoteServiceManager.html +335 -0
  101. data/doc/classes/TaskJuggler/Report.html +66 -64
  102. data/doc/classes/TaskJuggler/ReportBase.html +112 -123
  103. data/doc/classes/TaskJuggler/ReportContext.html +43 -38
  104. data/doc/classes/TaskJuggler/ReportServer.html +320 -0
  105. data/doc/classes/TaskJuggler/ReportTable.html +42 -42
  106. data/doc/classes/TaskJuggler/ReportTableCell.html +221 -129
  107. data/doc/classes/TaskJuggler/ReportTableColumn.html +27 -27
  108. data/doc/classes/TaskJuggler/ReportTableLegend.html +24 -24
  109. data/doc/classes/TaskJuggler/ReportTableLine.html +126 -80
  110. data/doc/classes/TaskJuggler/Resource.html +12 -12
  111. data/doc/classes/TaskJuggler/ResourceListAttribute.html +82 -47
  112. data/doc/classes/TaskJuggler/ResourceListRE.html +43 -39
  113. data/doc/classes/TaskJuggler/ResourceScenario.html +413 -321
  114. data/doc/classes/TaskJuggler/RichText.html +64 -248
  115. data/doc/classes/TaskJuggler/RichTextAttribute.html +94 -30
  116. data/doc/classes/TaskJuggler/RichTextDocument.html +87 -85
  117. data/doc/classes/TaskJuggler/RichTextElement.html +456 -363
  118. data/doc/classes/TaskJuggler/RichTextException.html +13 -13
  119. data/doc/classes/TaskJuggler/{RichTextProtocolExample.html → RichTextFunctionExample.html} +64 -63
  120. data/doc/classes/TaskJuggler/{RichTextProtocolHandler.html → RichTextFunctionHandler.html} +42 -36
  121. data/doc/classes/TaskJuggler/RichTextIntermediate.html +563 -0
  122. data/doc/classes/TaskJuggler/RichTextParser.html +54 -51
  123. data/doc/classes/TaskJuggler/RichTextScanner.html +94 -92
  124. data/doc/classes/TaskJuggler/RichTextSnip.html +96 -60
  125. data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +369 -227
  126. data/doc/classes/TaskJuggler/Scenario.html +6 -6
  127. data/doc/classes/TaskJuggler/ScenarioData.html +37 -37
  128. data/doc/classes/TaskJuggler/ScenarioListAttribute.html +31 -31
  129. data/doc/classes/TaskJuggler/Scoreboard.html +66 -66
  130. data/doc/classes/TaskJuggler/Shift.html +18 -18
  131. data/doc/classes/TaskJuggler/ShiftAssignment.html +54 -54
  132. data/doc/classes/TaskJuggler/ShiftAssignments.html +78 -78
  133. data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +40 -40
  134. data/doc/classes/TaskJuggler/ShiftScenario.html +24 -24
  135. data/doc/classes/TaskJuggler/SortListAttribute.html +22 -22
  136. data/doc/classes/TaskJuggler/SourceFileInfo.html +12 -12
  137. data/doc/classes/TaskJuggler/StringAttribute.html +30 -30
  138. data/doc/classes/TaskJuggler/SymbolAttribute.html +20 -20
  139. data/doc/classes/TaskJuggler/SyntaxReference.html +42 -42
  140. data/doc/classes/TaskJuggler/TOCEntry.html +12 -12
  141. data/doc/classes/TaskJuggler/TSResourceRecord.html +197 -0
  142. data/doc/classes/TaskJuggler/TSTaskRecord.html +215 -0
  143. data/doc/classes/TaskJuggler/TableColumnDefinition.html +64 -43
  144. data/doc/classes/TaskJuggler/TableOfContents.html +18 -18
  145. data/doc/classes/TaskJuggler/TableReport.html +447 -468
  146. data/doc/classes/TaskJuggler/Task.html +12 -12
  147. data/doc/classes/TaskJuggler/TaskDependency.html +12 -12
  148. data/doc/classes/TaskJuggler/TaskListAttribute.html +47 -47
  149. data/doc/classes/TaskJuggler/TaskListRE.html +43 -39
  150. data/doc/classes/TaskJuggler/TaskScenario.html +529 -282
  151. data/doc/classes/TaskJuggler/TextParser.html +215 -194
  152. data/doc/classes/TaskJuggler/TextParser/Pattern.html +97 -97
  153. data/doc/classes/TaskJuggler/TextParser/Rule.html +84 -84
  154. data/doc/classes/TaskJuggler/TextParser/StackElement.html +16 -15
  155. data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +12 -12
  156. data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +6 -6
  157. data/doc/classes/TaskJuggler/TextReport.html +77 -74
  158. data/doc/classes/TaskJuggler/TextScanner.html +294 -281
  159. data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +70 -70
  160. data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +59 -60
  161. data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +12 -12
  162. data/doc/classes/TaskJuggler/TimeSheetReport.html +406 -0
  163. data/doc/classes/TaskJuggler/TjException.html +6 -6
  164. data/doc/classes/TaskJuggler/TjTime.html +522 -513
  165. data/doc/classes/TaskJuggler/TjpExample.html +25 -25
  166. data/doc/classes/TaskJuggler/TjpExportRE.html +21 -24
  167. data/doc/classes/TaskJuggler/TjpSyntaxRules.html +6177 -4318
  168. data/doc/classes/TaskJuggler/UserManual.html +212 -213
  169. data/doc/classes/TaskJuggler/WorkingHours.html +49 -49
  170. data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +53 -53
  171. data/doc/classes/TaskJuggler/XMLBlob.html +21 -21
  172. data/doc/classes/TaskJuggler/XMLComment.html +21 -21
  173. data/doc/classes/TaskJuggler/XMLDocument.html +27 -26
  174. data/doc/classes/TaskJuggler/XMLElement.html +86 -50
  175. data/doc/classes/TaskJuggler/XMLNamedText.html +11 -11
  176. data/doc/classes/TaskJuggler/XMLText.html +36 -36
  177. data/doc/files/COPYING.html +1 -1
  178. data/doc/files/README.html +1 -1
  179. data/doc/files/lib/AccountScenario_rb.html +3 -2
  180. data/doc/files/lib/Account_rb.html +3 -2
  181. data/doc/files/lib/Allocation_rb.html +3 -2
  182. data/doc/files/lib/AppConfig_rb.html +5 -2
  183. data/doc/files/lib/AttributeBase_rb.html +3 -2
  184. data/doc/files/lib/AttributeDefinition_rb.html +3 -2
  185. data/doc/files/lib/Attributes_rb.html +3 -2
  186. data/doc/files/lib/BatchProcessor_rb.html +4 -3
  187. data/doc/files/lib/Booking_rb.html +3 -2
  188. data/doc/files/lib/ChargeSet_rb.html +3 -2
  189. data/doc/files/lib/Charge_rb.html +3 -2
  190. data/doc/files/lib/HTMLDocument_rb.html +3 -2
  191. data/doc/files/lib/Interval_rb.html +3 -2
  192. data/doc/files/lib/Journal_rb.html +4 -3
  193. data/doc/files/lib/KeywordArray_rb.html +3 -2
  194. data/doc/files/lib/KeywordDocumentation_rb.html +3 -2
  195. data/doc/files/lib/Limits_rb.html +3 -2
  196. data/doc/files/lib/Log_rb.html +3 -2
  197. data/doc/files/lib/LogicalExpression_rb.html +3 -2
  198. data/doc/files/lib/LogicalFunction_rb.html +3 -2
  199. data/doc/files/lib/LogicalOperation_rb.html +3 -2
  200. data/doc/files/lib/MacroParser_rb.html +3 -2
  201. data/doc/files/lib/MacroTable_rb.html +3 -2
  202. data/doc/files/lib/MessageHandler_rb.html +3 -2
  203. data/doc/files/lib/Message_rb.html +3 -2
  204. data/doc/files/lib/ProjectFileParser_rb.html +7 -4
  205. data/doc/files/lib/Project_rb.html +3 -2
  206. data/doc/files/lib/PropertyList_rb.html +3 -2
  207. data/doc/files/lib/PropertySet_rb.html +3 -2
  208. data/doc/files/lib/PropertyTreeNode_rb.html +3 -2
  209. data/doc/files/lib/Query_rb.html +3 -2
  210. data/doc/files/lib/{RTPNavigator_rb.html → RTFNavigator_rb.html} +8 -7
  211. data/doc/files/lib/RTFQuery_rb.html +121 -0
  212. data/doc/files/lib/{RTPReport_rb.html → RTFReport_rb.html} +8 -7
  213. data/doc/files/lib/RealFormat_rb.html +3 -2
  214. data/doc/files/lib/RemoteServiceManager_rb.html +117 -0
  215. data/doc/files/lib/ReportServer_rb.html +107 -0
  216. data/doc/files/lib/ResourceScenario_rb.html +3 -2
  217. data/doc/files/lib/Resource_rb.html +3 -2
  218. data/doc/files/lib/RichTextDocument_rb.html +4 -3
  219. data/doc/files/lib/RichTextElement_rb.html +3 -2
  220. data/doc/files/lib/{RichTextProtocolExample_rb.html → RichTextFunctionExample_rb.html} +8 -7
  221. data/doc/files/lib/{RichTextProtocolHandler_rb.html → RichTextFunctionHandler_rb.html} +7 -6
  222. data/doc/files/lib/RichTextParser_rb.html +3 -2
  223. data/doc/files/lib/RichTextScanner_rb.html +3 -2
  224. data/doc/files/lib/RichTextSnip_rb.html +3 -2
  225. data/doc/files/lib/RichTextSyntaxRules_rb.html +3 -2
  226. data/doc/files/lib/RichText_rb.html +3 -2
  227. data/doc/files/lib/ScenarioData_rb.html +3 -2
  228. data/doc/files/lib/Scenario_rb.html +3 -2
  229. data/doc/files/lib/Scoreboard_rb.html +3 -2
  230. data/doc/files/lib/ShiftAssignments_rb.html +3 -2
  231. data/doc/files/lib/ShiftScenario_rb.html +3 -2
  232. data/doc/files/lib/Shift_rb.html +3 -2
  233. data/doc/files/lib/SourceFileInfo_rb.html +3 -2
  234. data/doc/files/lib/SyntaxReference_rb.html +3 -2
  235. data/doc/files/lib/TOCEntry_rb.html +3 -2
  236. data/doc/files/lib/TableColumnDefinition_rb.html +3 -2
  237. data/doc/files/lib/TableOfContents_rb.html +3 -2
  238. data/doc/files/lib/TaskDependency_rb.html +3 -2
  239. data/doc/files/lib/TaskJuggler_rb.html +7 -2
  240. data/doc/files/lib/TaskScenario_rb.html +3 -2
  241. data/doc/files/lib/Task_rb.html +3 -2
  242. data/doc/files/lib/TextParser/Pattern_rb.html +4 -3
  243. data/doc/files/lib/TextParser/Rule_rb.html +4 -3
  244. data/doc/files/lib/TextParser/StackElement_rb.html +4 -3
  245. data/doc/files/lib/TextParser/TokenDoc_rb.html +4 -3
  246. data/doc/files/lib/TextParser_rb.html +3 -2
  247. data/doc/files/lib/TextScanner_rb.html +3 -2
  248. data/doc/files/lib/Tj3Config_rb.html +3 -2
  249. data/doc/files/lib/TjException_rb.html +3 -2
  250. data/doc/files/lib/TjTime_rb.html +3 -2
  251. data/doc/files/lib/TjpExample_rb.html +3 -2
  252. data/doc/files/lib/TjpSyntaxRules_rb.html +3 -2
  253. data/doc/files/lib/UTF8String_rb.html +14 -6
  254. data/doc/files/lib/UserManual_rb.html +6 -3
  255. data/doc/files/lib/WorkingHours_rb.html +3 -2
  256. data/doc/files/lib/XMLDocument_rb.html +3 -2
  257. data/doc/files/lib/XMLElement_rb.html +3 -2
  258. data/doc/files/lib/deep_copy_rb.html +3 -2
  259. data/doc/files/lib/reports/CSVFile_rb.html +3 -2
  260. data/doc/files/lib/reports/ColumnTable_rb.html +3 -2
  261. data/doc/files/lib/reports/GanttChart_rb.html +3 -2
  262. data/doc/files/lib/reports/GanttContainer_rb.html +3 -2
  263. data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +3 -2
  264. data/doc/files/lib/reports/GanttHeader_rb.html +3 -2
  265. data/doc/files/lib/reports/GanttLine_rb.html +3 -2
  266. data/doc/files/lib/reports/GanttLoadStack_rb.html +3 -2
  267. data/doc/files/lib/reports/GanttMilestone_rb.html +3 -2
  268. data/doc/files/lib/reports/GanttRouter_rb.html +3 -2
  269. data/doc/files/lib/reports/GanttTaskBar_rb.html +3 -2
  270. data/doc/files/lib/reports/HTMLGraphics_rb.html +3 -2
  271. data/doc/files/lib/reports/Navigator_rb.html +3 -2
  272. data/doc/files/lib/reports/ReportBase_rb.html +3 -2
  273. data/doc/files/lib/reports/ReportContext_rb.html +3 -2
  274. data/doc/files/lib/reports/ReportTableCell_rb.html +3 -2
  275. data/doc/files/lib/reports/ReportTableColumn_rb.html +3 -2
  276. data/doc/files/lib/reports/ReportTableLegend_rb.html +3 -2
  277. data/doc/files/lib/reports/ReportTableLine_rb.html +3 -2
  278. data/doc/files/lib/reports/ReportTable_rb.html +3 -2
  279. data/doc/files/lib/reports/Report_rb.html +7 -2
  280. data/doc/files/lib/reports/ResourceListRE_rb.html +3 -2
  281. data/doc/files/lib/reports/TableReport_rb.html +3 -2
  282. data/doc/files/lib/reports/TaskListRE_rb.html +3 -2
  283. data/doc/files/lib/reports/TextReport_rb.html +4 -3
  284. data/doc/files/lib/reports/TimeSheetReport_rb.html +117 -0
  285. data/doc/files/lib/reports/TjpExportRE_rb.html +3 -2
  286. data/doc/files/lib/taskjuggler3_rb.html +94 -77
  287. data/doc/files/lib/tj3client_rb.html +280 -0
  288. data/doc/files/lib/tj3man_rb.html +10 -9
  289. data/doc/fr_class_index.html +27 -5
  290. data/doc/fr_file_index.html +15 -7
  291. data/doc/fr_method_index.html +1312 -1020
  292. data/examples/tutorial.tjp +113 -14
  293. data/gem_spec.rb +2 -1
  294. data/lib/Account.rb +1 -1
  295. data/lib/AccountScenario.rb +1 -1
  296. data/lib/Allocation.rb +1 -1
  297. data/lib/AppConfig.rb +23 -10
  298. data/lib/AttributeBase.rb +34 -6
  299. data/lib/AttributeDefinition.rb +1 -1
  300. data/lib/Attributes.rb +51 -16
  301. data/lib/BatchProcessor.rb +204 -77
  302. data/lib/Booking.rb +1 -1
  303. data/lib/Charge.rb +1 -1
  304. data/lib/ChargeSet.rb +1 -1
  305. data/lib/HTMLDocument.rb +2 -2
  306. data/lib/Interval.rb +1 -1
  307. data/lib/Journal.rb +231 -9
  308. data/lib/KeywordArray.rb +1 -1
  309. data/lib/KeywordDocumentation.rb +6 -4
  310. data/lib/Limits.rb +1 -1
  311. data/lib/Log.rb +8 -1
  312. data/lib/LogicalExpression.rb +14 -13
  313. data/lib/LogicalFunction.rb +88 -14
  314. data/lib/LogicalOperation.rb +124 -53
  315. data/lib/MacroParser.rb +1 -1
  316. data/lib/MacroTable.rb +2 -2
  317. data/lib/Message.rb +1 -1
  318. data/lib/MessageHandler.rb +7 -3
  319. data/lib/Project.rb +93 -14
  320. data/lib/ProjectFileParser.rb +30 -15
  321. data/lib/PropertyList.rb +103 -36
  322. data/lib/PropertySet.rb +22 -10
  323. data/lib/PropertyTreeNode.rb +120 -15
  324. data/lib/Query.rb +119 -48
  325. data/lib/{RTPNavigator.rb → RTFNavigator.rb} +11 -10
  326. data/lib/RTFQuery.rb +166 -0
  327. data/lib/{RTPReport.rb → RTFReport.rb} +11 -8
  328. data/lib/RealFormat.rb +1 -1
  329. data/lib/RemoteServiceManager.rb +80 -0
  330. data/lib/ReportServer.rb +66 -0
  331. data/lib/Resource.rb +1 -1
  332. data/lib/ResourceScenario.rb +48 -19
  333. data/lib/RichText.rb +98 -41
  334. data/lib/RichTextDocument.rb +10 -8
  335. data/lib/RichTextElement.rb +72 -28
  336. data/lib/{RichTextProtocolExample.rb → RichTextFunctionExample.rb} +8 -7
  337. data/lib/{RichTextProtocolHandler.rb → RichTextFunctionHandler.rb} +12 -14
  338. data/lib/RichTextParser.rb +6 -3
  339. data/lib/RichTextScanner.rb +91 -19
  340. data/lib/RichTextSnip.rb +8 -3
  341. data/lib/RichTextSyntaxRules.rb +103 -45
  342. data/lib/Scenario.rb +1 -1
  343. data/lib/ScenarioData.rb +2 -2
  344. data/lib/Scoreboard.rb +1 -1
  345. data/lib/Shift.rb +1 -1
  346. data/lib/ShiftAssignments.rb +1 -1
  347. data/lib/ShiftScenario.rb +1 -1
  348. data/lib/SourceFileInfo.rb +1 -1
  349. data/lib/SyntaxReference.rb +2 -2
  350. data/lib/TOCEntry.rb +1 -1
  351. data/lib/TableColumnDefinition.rb +59 -16
  352. data/lib/TableOfContents.rb +1 -1
  353. data/lib/Task.rb +1 -1
  354. data/lib/TaskDependency.rb +1 -1
  355. data/lib/TaskJuggler.rb +31 -8
  356. data/lib/TaskScenario.rb +165 -16
  357. data/lib/TextParser.rb +36 -22
  358. data/lib/TextParser/Pattern.rb +3 -3
  359. data/lib/TextParser/Rule.rb +2 -2
  360. data/lib/TextParser/StackElement.rb +4 -3
  361. data/lib/TextParser/TokenDoc.rb +2 -2
  362. data/lib/TextScanner.rb +52 -37
  363. data/lib/Tj3Config.rb +6 -5
  364. data/lib/TjException.rb +1 -1
  365. data/lib/TjTime.rb +12 -3
  366. data/lib/TjpExample.rb +1 -1
  367. data/lib/TjpSyntaxRules.rb +1044 -150
  368. data/lib/UTF8String.rb +2 -1
  369. data/lib/UserManual.rb +18 -70
  370. data/lib/WorkingHours.rb +3 -3
  371. data/lib/XMLDocument.rb +3 -2
  372. data/lib/XMLElement.rb +6 -1
  373. data/lib/deep_copy.rb +1 -1
  374. data/lib/reports/CSVFile.rb +1 -1
  375. data/lib/reports/ColumnTable.rb +9 -9
  376. data/lib/reports/GanttChart.rb +1 -1
  377. data/lib/reports/GanttContainer.rb +1 -1
  378. data/lib/reports/GanttHeader.rb +1 -1
  379. data/lib/reports/GanttHeaderScaleItem.rb +1 -1
  380. data/lib/reports/GanttLine.rb +40 -40
  381. data/lib/reports/GanttLoadStack.rb +1 -1
  382. data/lib/reports/GanttMilestone.rb +1 -1
  383. data/lib/reports/GanttRouter.rb +1 -1
  384. data/lib/reports/GanttTaskBar.rb +1 -1
  385. data/lib/reports/HTMLGraphics.rb +1 -1
  386. data/lib/reports/Navigator.rb +149 -22
  387. data/lib/reports/Report.rb +115 -172
  388. data/lib/reports/ReportBase.rb +22 -27
  389. data/lib/reports/ReportContext.rb +29 -15
  390. data/lib/reports/ReportTable.rb +1 -1
  391. data/lib/reports/ReportTableCell.rb +120 -27
  392. data/lib/reports/ReportTableColumn.rb +3 -3
  393. data/lib/reports/ReportTableLegend.rb +1 -1
  394. data/lib/reports/ReportTableLine.rb +10 -2
  395. data/lib/reports/ResourceListRE.rb +5 -1
  396. data/lib/reports/TableReport.rb +237 -287
  397. data/lib/reports/TaskListRE.rb +5 -1
  398. data/lib/reports/TextReport.rb +7 -4
  399. data/lib/reports/TimeSheetReport.rb +233 -0
  400. data/lib/reports/TjpExportRE.rb +2 -2
  401. data/lib/taskjuggler3.rb +27 -11
  402. data/lib/tj3client.rb +110 -0
  403. data/lib/tj3man.rb +4 -4
  404. data/manual/Getting_Started +0 -50
  405. data/manual/How_To_Contribute +6 -13
  406. data/manual/Installation +102 -28
  407. data/manual/Intro +11 -1
  408. data/manual/Reporting_Bugs +23 -7
  409. data/manual/Rich_Text_Attributes +59 -6
  410. data/manual/TaskJuggler_2x_Migration +27 -0
  411. data/manual/The_TaskJuggler_Syntax +104 -0
  412. data/manual/Tutorial +10 -9
  413. data/prj_cfg.rb +8 -2
  414. data/tasks/csts.rake +1 -1
  415. data/tasks/manual.rake +5 -3
  416. data/test/MessageChecker.rb +1 -1
  417. data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
  418. data/test/TestSuite/HTML-Reports/Alerts.tjp +77 -0
  419. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  420. data/test/TestSuite/HTML-Reports/CellText.tjp +75 -0
  421. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  422. data/test/TestSuite/HTML-Reports/ColumnPeriods.tjp +44 -0
  423. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  424. data/test/TestSuite/HTML-Reports/IsOngoing.tjp +34 -0
  425. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +80 -0
  426. data/test/TestSuite/HTML-Reports/LogicalFunctions.tjp +20 -0
  427. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  428. data/test/TestSuite/HTML-Reports/Query.tjp +28 -0
  429. data/test/TestSuite/HTML-Reports/Sorting.tjp +68 -0
  430. data/test/TestSuite/HTML-Reports/TimeSheet.tjp +69 -0
  431. data/test/TestSuite/HTML-Reports/UDAQuery.tjp +27 -0
  432. data/test/TestSuite/HTML-Reports/css/tjmanual.css +52 -0
  433. data/test/TestSuite/HTML-Reports/css/tjreport.css +195 -0
  434. data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
  435. data/test/TestSuite/HTML-Reports/icons/details.png +0 -0
  436. data/test/TestSuite/HTML-Reports/icons/flag-green.png +0 -0
  437. data/test/TestSuite/HTML-Reports/icons/flag-red.png +0 -0
  438. data/test/TestSuite/HTML-Reports/icons/flag-yellow.png +0 -0
  439. data/test/TestSuite/HTML-Reports/icons/resource.png +0 -0
  440. data/test/TestSuite/HTML-Reports/icons/resourcegroup.png +0 -0
  441. data/test/TestSuite/HTML-Reports/icons/task.png +0 -0
  442. data/test/TestSuite/HTML-Reports/icons/taskgroup.png +0 -0
  443. data/test/TestSuite/HTML-Reports/reference.tjp +7 -8
  444. data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
  445. data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +1301 -0
  446. data/test/TestSuite/Scheduler/Correct/Mandatory.tjp +34 -0
  447. data/test/TestSuite/Syntax/Correct/Celltext.tjp +2 -1
  448. data/test/TestSuite/Syntax/Correct/Journal.tjp +2 -2
  449. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +2 -1
  450. data/test/TestSuite/Syntax/Correct/LogicalFunction.tjp +20 -0
  451. data/test/TestSuite/Syntax/Correct/Query.tjp +18 -0
  452. data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +45 -0
  453. data/test/TestSuite/Syntax/Correct/TimeSheet.tjp +49 -0
  454. data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
  455. data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
  456. data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
  457. data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
  458. data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
  459. data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
  460. data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
  461. data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
  462. data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
  463. data/test/TestSuite/Syntax/Correct/tutorial.tjp +113 -14
  464. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +28 -0
  465. data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +12 -0
  466. data/test/all.rb +2 -2
  467. data/test/test_BatchProcessor.rb +42 -13
  468. data/test/test_CSV-Reports.rb +1 -1
  469. data/test/test_Journal.rb +176 -0
  470. data/test/test_Limits.rb +1 -1
  471. data/test/test_LogicalExpression.rb +14 -5
  472. data/test/test_MacroTable.rb +1 -1
  473. data/test/test_Project.rb +1 -1
  474. data/test/test_PropertySet.rb +1 -1
  475. data/test/test_Query.rb +1 -1
  476. data/test/test_RealFormat.rb +1 -1
  477. data/test/test_RichText.rb +30 -20
  478. data/test/test_Scheduler.rb +1 -1
  479. data/test/test_ShiftAssignments.rb +2 -2
  480. data/test/test_Syntax.rb +1 -1
  481. data/test/test_TextScanner.rb +1 -1
  482. data/test/test_TjTime.rb +1 -1
  483. data/test/test_TjpExample.rb +1 -1
  484. data/test/test_UTF8String.rb +1 -1
  485. data/test/test_WorkingHours.rb +1 -1
  486. data/test/test_deep_copy.rb +2 -2
  487. metadata +610 -532
  488. data/doc/files/lib/ms_test_rb.html +0 -90
  489. data/examples/ContactList.html +0 -1467
  490. data/examples/Deliveries.html +0 -485
  491. data/examples/Development.html +0 -2525
  492. data/examples/Overview.html +0 -747
  493. data/examples/Resource Graph.html +0 -616
  494. data/lib/ms_test.rb +0 -27
  495. data/test/TestSuite/HTML-Reports/reference-export.html +0 -187
@@ -117,61 +117,73 @@ attribute like an URL that contains more details about the task.
117
117
 
118
118
  <div class="name-list">
119
119
 
120
- <a href="#M000681">[]</a>&nbsp;&nbsp;
120
+ <a href="#M000616">[]</a>&nbsp;&nbsp;
121
121
 
122
- <a href="#M000680">[]=</a>&nbsp;&nbsp;
122
+ <a href="#M000615">[]=</a>&nbsp;&nbsp;
123
123
 
124
- <a href="#M000670">addChild</a>&nbsp;&nbsp;
124
+ <a href="#M000604">addChild</a>&nbsp;&nbsp;
125
125
 
126
- <a href="#M000663">all</a>&nbsp;&nbsp;
126
+ <a href="#M000596">all</a>&nbsp;&nbsp;
127
127
 
128
- <a href="#M000664">allLeaves</a>&nbsp;&nbsp;
128
+ <a href="#M000597">allLeaves</a>&nbsp;&nbsp;
129
129
 
130
- <a href="#M000676">attributeDefinition</a>&nbsp;&nbsp;
130
+ <a href="#M000610">attributeDefinition</a>&nbsp;&nbsp;
131
131
 
132
- <a href="#M000673">container?</a>&nbsp;&nbsp;
132
+ <a href="#M000607">container?</a>&nbsp;&nbsp;
133
133
 
134
- <a href="#M000675">declareAttribute</a>&nbsp;&nbsp;
134
+ <a href="#M000609">declareAttribute</a>&nbsp;&nbsp;
135
135
 
136
- <a href="#M000659">deep_clone</a>&nbsp;&nbsp;
136
+ <a href="#M000592">deep_clone</a>&nbsp;&nbsp;
137
137
 
138
- <a href="#M000665">eachAttribute</a>&nbsp;&nbsp;
138
+ <a href="#M000598">eachAttribute</a>&nbsp;&nbsp;
139
139
 
140
- <a href="#M000666">eachScenarioAttribute</a>&nbsp;&nbsp;
140
+ <a href="#M000599">eachScenarioAttribute</a>&nbsp;&nbsp;
141
141
 
142
- <a href="#M000667">fullId</a>&nbsp;&nbsp;
142
+ <a href="#M000600">fullId</a>&nbsp;&nbsp;
143
143
 
144
- <a href="#M000677">get</a>&nbsp;&nbsp;
144
+ <a href="#M000611">get</a>&nbsp;&nbsp;
145
145
 
146
- <a href="#M000678">getAttr</a>&nbsp;&nbsp;
146
+ <a href="#M000612">getAttr</a>&nbsp;&nbsp;
147
147
 
148
- <a href="#M000669">getWBSIndicies</a>&nbsp;&nbsp;
148
+ <a href="#M000613">getAttribute</a>&nbsp;&nbsp;
149
149
 
150
- <a href="#M000682">hasQuery?</a>&nbsp;&nbsp;
150
+ <a href="#M000603">getIndicies</a>&nbsp;&nbsp;
151
151
 
152
- <a href="#M000661">inheritAttributes</a>&nbsp;&nbsp;
152
+ <a href="#M000602">getWBSIndicies</a>&nbsp;&nbsp;
153
153
 
154
- <a href="#M000662">inheritAttributesFromScenario</a>&nbsp;&nbsp;
154
+ <a href="#M000594">inheritAttributes</a>&nbsp;&nbsp;
155
155
 
156
- <a href="#M000684">inherited</a>&nbsp;&nbsp;
156
+ <a href="#M000595">inheritAttributesFromScenario</a>&nbsp;&nbsp;
157
157
 
158
- <a href="#M000671">isChildOf?</a>&nbsp;&nbsp;
158
+ <a href="#M000618">inherited</a>&nbsp;&nbsp;
159
159
 
160
- <a href="#M000672">leaf?</a>&nbsp;&nbsp;
160
+ <a href="#M000605">isChildOf?</a>&nbsp;&nbsp;
161
161
 
162
- <a href="#M000668">level</a>&nbsp;&nbsp;
162
+ <a href="#M000606">leaf?</a>&nbsp;&nbsp;
163
163
 
164
- <a href="#M000660">levelSeqNo</a>&nbsp;&nbsp;
164
+ <a href="#M000601">level</a>&nbsp;&nbsp;
165
165
 
166
- <a href="#M000685">method_missing</a>&nbsp;&nbsp;
166
+ <a href="#M000593">levelSeqNo</a>&nbsp;&nbsp;
167
167
 
168
- <a href="#M000658">new</a>&nbsp;&nbsp;
168
+ <a href="#M000624">method_missing</a>&nbsp;&nbsp;
169
169
 
170
- <a href="#M000683">provided</a>&nbsp;&nbsp;
170
+ <a href="#M000619">modified?</a>&nbsp;&nbsp;
171
171
 
172
- <a href="#M000674">root</a>&nbsp;&nbsp;
172
+ <a href="#M000591">new</a>&nbsp;&nbsp;
173
173
 
174
- <a href="#M000679">set</a>&nbsp;&nbsp;
174
+ <a href="#M000617">provided</a>&nbsp;&nbsp;
175
+
176
+ <a href="#M000620">query_alert</a>&nbsp;&nbsp;
177
+
178
+ <a href="#M000622">query_alertmessage</a>&nbsp;&nbsp;
179
+
180
+ <a href="#M000621">query_alertsummary</a>&nbsp;&nbsp;
181
+
182
+ <a href="#M000623">query_alerttrend</a>&nbsp;&nbsp;
183
+
184
+ <a href="#M000608">root</a>&nbsp;&nbsp;
185
+
186
+ <a href="#M000614">set</a>&nbsp;&nbsp;
175
187
 
176
188
  </div>
177
189
  </div>
@@ -198,6 +210,14 @@ attribute like an URL that contains more details about the task.
198
210
  <td class="context-item-desc"></td>
199
211
  </tr>
200
212
 
213
+ <tr class="top-aligned-row context-row">
214
+ <td class="context-item-name">data</td>
215
+
216
+ <td class="context-item-value">&nbsp;[R]&nbsp;</td>
217
+
218
+ <td class="context-item-desc"></td>
219
+ </tr>
220
+
201
221
  <tr class="top-aligned-row context-row">
202
222
  <td class="context-item-name">id</td>
203
223
 
@@ -266,12 +286,12 @@ attribute like an URL that contains more details about the task.
266
286
  <h3 class="section-bar">Public Class methods</h3>
267
287
 
268
288
 
269
- <div id="method-M000658" class="method-detail">
270
- <a name="M000658"></a>
289
+ <div id="method-M000591" class="method-detail">
290
+ <a name="M000591"></a>
271
291
 
272
292
  <div class="method-heading">
273
293
 
274
- <a href="#M000658" class="method-signature">
294
+ <a href="#M000591" class="method-signature">
275
295
 
276
296
  <span class="method-name">new</span><span class="method-args">(propertySet, id, name, parent)</span>
277
297
 
@@ -297,56 +317,56 @@ be nil and specified by a hierachical <em>id</em> (e. g.
297
317
  </p>
298
318
 
299
319
  <p><a class="source-toggle" href="#"
300
- onclick="toggleCode('M000658-source');return false;">[Source]</a></p>
301
- <div class="method-source-code" id="M000658-source">
320
+ onclick="toggleCode('M000591-source');return false;">[Source]</a></p>
321
+ <div class="method-source-code" id="M000591-source">
302
322
  <pre>
303
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 41</span>
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>)
305
- 42: <span class="ruby-ivar">@propertySet</span> = <span class="ruby-identifier">propertySet</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>)
341
- 78: <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>
323
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 42</span>
324
+ 42: <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>)
325
+ 43: <span class="ruby-ivar">@propertySet</span> = <span class="ruby-identifier">propertySet</span>
326
+ 44: <span class="ruby-comment cmt"># If _id_ is still nil, we generate a unique id.</span>
327
+ 45: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">id</span>
328
+ 46: <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>)
329
+ 47: <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>
330
+ 48: <span class="ruby-identifier">id</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">fullId</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>
331
+ 49: <span class="ruby-keyword kw">end</span>
332
+ 50: <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>)
333
+ 51: <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>)]
334
+ 52: <span class="ruby-comment cmt"># Set parent to the parent property if it's still nil.</span>
335
+ 53: <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>
336
+ 54: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
337
+ 55: <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>]
338
+ 56: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Fatal Error: parent must be member of same property set&quot;</span>
339
+ 57: <span class="ruby-keyword kw">end</span>
340
+ 58: <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>
341
+ 59: <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>
342
+ 60: <span class="ruby-node">&quot;(#{parentId}) don't match&quot;</span>
343
+ 61: <span class="ruby-keyword kw">end</span>
344
+ 62: <span class="ruby-keyword kw">end</span>
345
+ 63: <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>]
346
+ 64: <span class="ruby-keyword kw">else</span>
347
+ 65: <span class="ruby-ivar">@id</span> = <span class="ruby-identifier">id</span>
348
+ 66: <span class="ruby-keyword kw">end</span>
349
+ 67: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
350
+ 68: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">propertySet</span>.<span class="ruby-identifier">project</span>
351
+ 69: <span class="ruby-ivar">@level</span> = <span class="ruby-value">-1</span>
352
+ 70: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>
353
+ 71:
354
+ 72: <span class="ruby-ivar">@parent</span> = <span class="ruby-identifier">parent</span>
355
+ 73: <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>
356
+ 74: <span class="ruby-ivar">@children</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
357
+ 75: <span class="ruby-comment cmt"># In case we have a parent object, we register this object as child of</span>
358
+ 76: <span class="ruby-comment cmt"># the parent.</span>
359
+ 77: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@parent</span>)
360
+ 78: <span class="ruby-ivar">@parent</span>.<span class="ruby-identifier">addChild</span>(<span class="ruby-keyword kw">self</span>)
361
+ 79: <span class="ruby-keyword kw">end</span>
362
+ 80:
363
+ 81: <span class="ruby-ivar">@attributes</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
364
+ 82: <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>)
365
+ 83: <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> }
366
+ 84:
367
+ 85: <span class="ruby-comment cmt"># Scenario specific data</span>
368
+ 86: <span class="ruby-ivar">@data</span> = <span class="ruby-keyword kw">nil</span>
369
+ 87: <span class="ruby-keyword kw">end</span>
350
370
  </pre>
351
371
  </div>
352
372
 
@@ -357,12 +377,12 @@ be nil and specified by a hierachical <em>id</em> (e. g.
357
377
  <h3 class="section-bar">Public Instance methods</h3>
358
378
 
359
379
 
360
- <div id="method-M000681" class="method-detail">
361
- <a name="M000681"></a>
380
+ <div id="method-M000616" class="method-detail">
381
+ <a name="M000616"></a>
362
382
 
363
383
  <div class="method-heading">
364
384
 
365
- <a href="#M000681" class="method-signature">
385
+ <a href="#M000616" class="method-signature">
366
386
 
367
387
  <span class="method-name">[]</span><span class="method-args">(attributeId, scenario)</span>
368
388
 
@@ -379,17 +399,17 @@ the <a href="Scenario.html">Scenario</a>.
379
399
  </p>
380
400
 
381
401
  <p><a class="source-toggle" href="#"
382
- onclick="toggleCode('M000681-source');return false;">[Source]</a></p>
383
- <div class="method-source-code" id="M000681-source">
402
+ onclick="toggleCode('M000616-source');return false;">[Source]</a></p>
403
+ <div class="method-source-code" id="M000616-source">
384
404
  <pre>
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>
405
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 406</span>
406
+ 406: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenario</span>)
407
+ 407: <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>)
408
+ 408: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">get</span>
409
+ 409: <span class="ruby-keyword kw">else</span>
410
+ 410: <span class="ruby-identifier">get</span>(<span class="ruby-identifier">attributeId</span>);
411
+ 411: <span class="ruby-keyword kw">end</span>
412
+ 412: <span class="ruby-keyword kw">end</span>
393
413
  </pre>
394
414
  </div>
395
415
 
@@ -397,12 +417,12 @@ the <a href="Scenario.html">Scenario</a>.
397
417
  </div>
398
418
 
399
419
 
400
- <div id="method-M000680" class="method-detail">
401
- <a name="M000680"></a>
420
+ <div id="method-M000615" class="method-detail">
421
+ <a name="M000615"></a>
402
422
 
403
423
  <div class="method-heading">
404
424
 
405
- <a href="#M000680" class="method-signature">
425
+ <a href="#M000615" class="method-signature">
406
426
 
407
427
  <span class="method-name">[]=</span><span class="method-args">(attributeId, scenario, value)</span>
408
428
 
@@ -419,20 +439,20 @@ attribute does not exist, an exception is raised.
419
439
  </p>
420
440
 
421
441
  <p><a class="source-toggle" href="#"
422
- onclick="toggleCode('M000680-source');return false;">[Source]</a></p>
423
- <div class="method-source-code" id="M000680-source">
442
+ onclick="toggleCode('M000615-source');return false;">[Source]</a></p>
443
+ <div class="method-source-code" id="M000615-source">
424
444
  <pre>
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>
445
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 392</span>
446
+ 392: <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>)
447
+ 393: <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>)
448
+ 394: <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>)
449
+ 395: <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>)
450
+ 396: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
451
+ 397: <span class="ruby-keyword kw">else</span>
452
+ 398: <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>
453
+ 399: <span class="ruby-keyword kw">end</span>
454
+ 400: <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>)
455
+ 401: <span class="ruby-keyword kw">end</span>
436
456
  </pre>
437
457
  </div>
438
458
 
@@ -440,12 +460,12 @@ attribute does not exist, an exception is raised.
440
460
  </div>
441
461
 
442
462
 
443
- <div id="method-M000670" class="method-detail">
444
- <a name="M000670"></a>
463
+ <div id="method-M000604" class="method-detail">
464
+ <a name="M000604"></a>
445
465
 
446
466
  <div class="method-heading">
447
467
 
448
- <a href="#M000670" class="method-signature">
468
+ <a href="#M000604" class="method-signature">
449
469
 
450
470
  <span class="method-name">addChild</span><span class="method-args">(child)</span>
451
471
 
@@ -460,16 +480,16 @@ Add <em>child</em> node as child to this node.
460
480
  </p>
461
481
 
462
482
  <p><a class="source-toggle" href="#"
463
- onclick="toggleCode('M000670-source');return false;">[Source]</a></p>
464
- <div class="method-source-code" id="M000670-source">
483
+ onclick="toggleCode('M000604-source');return false;">[Source]</a></p>
484
+ <div class="method-source-code" id="M000604-source">
465
485
  <pre>
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>
486
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 269</span>
487
+ 269: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addChild</span>(<span class="ruby-identifier">child</span>)
488
+ 270: <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>
489
+ 271: <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>
490
+ 272: <span class="ruby-keyword kw">end</span>
491
+ 273: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">child</span>)
492
+ 274: <span class="ruby-keyword kw">end</span>
473
493
  </pre>
474
494
  </div>
475
495
 
@@ -477,12 +497,12 @@ Add <em>child</em> node as child to this node.
477
497
  </div>
478
498
 
479
499
 
480
- <div id="method-M000663" class="method-detail">
481
- <a name="M000663"></a>
500
+ <div id="method-M000596" class="method-detail">
501
+ <a name="M000596"></a>
482
502
 
483
503
  <div class="method-heading">
484
504
 
485
- <a href="#M000663" class="method-signature">
505
+ <a href="#M000596" class="method-signature">
486
506
 
487
507
  <span class="method-name">all</span><span class="method-args">()</span>
488
508
 
@@ -497,17 +517,17 @@ Returns a list of this node and all transient sub nodes.
497
517
  </p>
498
518
 
499
519
  <p><a class="source-toggle" href="#"
500
- onclick="toggleCode('M000663-source');return false;">[Source]</a></p>
501
- <div class="method-source-code" id="M000663-source">
520
+ onclick="toggleCode('M000596-source');return false;">[Source]</a></p>
521
+ <div class="method-source-code" id="M000596-source">
502
522
  <pre>
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>
523
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 177</span>
524
+ 177: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">all</span>
525
+ 178: <span class="ruby-identifier">res</span> = [ <span class="ruby-keyword kw">self</span> ]
526
+ 179: <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>
527
+ 180: <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>)
528
+ 181: <span class="ruby-keyword kw">end</span>
529
+ 182: <span class="ruby-identifier">res</span>
530
+ 183: <span class="ruby-keyword kw">end</span>
511
531
  </pre>
512
532
  </div>
513
533
 
@@ -515,12 +535,12 @@ Returns a list of this node and all transient sub nodes.
515
535
  </div>
516
536
 
517
537
 
518
- <div id="method-M000664" class="method-detail">
519
- <a name="M000664"></a>
538
+ <div id="method-M000597" class="method-detail">
539
+ <a name="M000597"></a>
520
540
 
521
541
  <div class="method-heading">
522
542
 
523
- <a href="#M000664" class="method-signature">
543
+ <a href="#M000597" class="method-signature">
524
544
 
525
545
  <span class="method-name">allLeaves</span><span class="method-args">()</span>
526
546
 
@@ -535,21 +555,21 @@ Return a list of all leaf nodes of this node.
535
555
  </p>
536
556
 
537
557
  <p><a class="source-toggle" href="#"
538
- onclick="toggleCode('M000664-source');return false;">[Source]</a></p>
539
- <div class="method-source-code" id="M000664-source">
558
+ onclick="toggleCode('M000597-source');return false;">[Source]</a></p>
559
+ <div class="method-source-code" id="M000597-source">
540
560
  <pre>
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>
561
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 186</span>
562
+ 186: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">allLeaves</span>
563
+ 187: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">leaf?</span>
564
+ 188: <span class="ruby-identifier">res</span> = [ <span class="ruby-keyword kw">self</span> ]
565
+ 189: <span class="ruby-keyword kw">else</span>
566
+ 190: <span class="ruby-identifier">res</span> = []
567
+ 191: <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>
568
+ 192: <span class="ruby-identifier">res</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">allLeaves</span>
569
+ 193: <span class="ruby-keyword kw">end</span>
570
+ 194: <span class="ruby-keyword kw">end</span>
571
+ 195: <span class="ruby-identifier">res</span>
572
+ 196: <span class="ruby-keyword kw">end</span>
553
573
  </pre>
554
574
  </div>
555
575
 
@@ -557,12 +577,12 @@ Return a list of all leaf nodes of this node.
557
577
  </div>
558
578
 
559
579
 
560
- <div id="method-M000676" class="method-detail">
561
- <a name="M000676"></a>
580
+ <div id="method-M000610" class="method-detail">
581
+ <a name="M000610"></a>
562
582
 
563
583
  <div class="method-heading">
564
584
 
565
- <a href="#M000676" class="method-signature">
585
+ <a href="#M000610" class="method-signature">
566
586
 
567
587
  <span class="method-name">attributeDefinition</span><span class="method-args">(attributeId)</span>
568
588
 
@@ -577,13 +597,13 @@ Return the type of the attribute with ID <em>attributeId</em>.
577
597
  </p>
578
598
 
579
599
  <p><a class="source-toggle" href="#"
580
- onclick="toggleCode('M000676-source');return false;">[Source]</a></p>
581
- <div class="method-source-code" id="M000676-source">
600
+ onclick="toggleCode('M000610-source');return false;">[Source]</a></p>
601
+ <div class="method-source-code" id="M000610-source">
582
602
  <pre>
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>
603
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 319</span>
604
+ 319: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributeDefinition</span>(<span class="ruby-identifier">attributeId</span>)
605
+ 320: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">attributeDefinitions</span>[<span class="ruby-identifier">attributeId</span>]
606
+ 321: <span class="ruby-keyword kw">end</span>
587
607
  </pre>
588
608
  </div>
589
609
 
@@ -591,12 +611,12 @@ Return the type of the attribute with ID <em>attributeId</em>.
591
611
  </div>
592
612
 
593
613
 
594
- <div id="method-M000673" class="method-detail">
595
- <a name="M000673"></a>
614
+ <div id="method-M000607" class="method-detail">
615
+ <a name="M000607"></a>
596
616
 
597
617
  <div class="method-heading">
598
618
 
599
- <a href="#M000673" class="method-signature">
619
+ <a href="#M000607" class="method-signature">
600
620
 
601
621
  <span class="method-name">container?</span><span class="method-args">()</span>
602
622
 
@@ -611,13 +631,13 @@ Return true if the node has children.
611
631
  </p>
612
632
 
613
633
  <p><a class="source-toggle" href="#"
614
- onclick="toggleCode('M000673-source');return false;">[Source]</a></p>
615
- <div class="method-source-code" id="M000673-source">
634
+ onclick="toggleCode('M000607-source');return false;">[Source]</a></p>
635
+ <div class="method-source-code" id="M000607-source">
616
636
  <pre>
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>
637
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 291</span>
638
+ 291: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">container?</span>
639
+ 292: <span class="ruby-operator">!</span><span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>
640
+ 293: <span class="ruby-keyword kw">end</span>
621
641
  </pre>
622
642
  </div>
623
643
 
@@ -625,12 +645,12 @@ Return true if the node has children.
625
645
  </div>
626
646
 
627
647
 
628
- <div id="method-M000675" class="method-detail">
629
- <a name="M000675"></a>
648
+ <div id="method-M000609" class="method-detail">
649
+ <a name="M000609"></a>
630
650
 
631
651
  <div class="method-heading">
632
652
 
633
- <a href="#M000675" class="method-signature">
653
+ <a href="#M000609" class="method-signature">
634
654
 
635
655
  <span class="method-name">declareAttribute</span><span class="method-args">(attributeType)</span>
636
656
 
@@ -647,21 +667,21 @@ for each scenario.
647
667
  </p>
648
668
 
649
669
  <p><a class="source-toggle" href="#"
650
- onclick="toggleCode('M000675-source');return false;">[Source]</a></p>
651
- <div class="method-source-code" id="M000675-source">
670
+ onclick="toggleCode('M000609-source');return false;">[Source]</a></p>
671
+ <div class="method-source-code" id="M000609-source">
652
672
  <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>
673
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 306</span>
674
+ 306: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">declareAttribute</span>(<span class="ruby-identifier">attributeType</span>)
675
+ 307: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributeType</span>.<span class="ruby-identifier">scenarioSpecific</span>
676
+ 308: <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>
677
+ 309: <span class="ruby-identifier">attribute</span> = <span class="ruby-identifier">newAttribute</span>(<span class="ruby-identifier">attributeType</span>)
678
+ 310: <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>
679
+ 311: <span class="ruby-keyword kw">end</span>
680
+ 312: <span class="ruby-keyword kw">else</span>
681
+ 313: <span class="ruby-identifier">attribute</span> = <span class="ruby-identifier">newAttribute</span>(<span class="ruby-identifier">attributeType</span>)
682
+ 314: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attribute</span>.<span class="ruby-identifier">id</span>] = <span class="ruby-identifier">attribute</span>
683
+ 315: <span class="ruby-keyword kw">end</span>
684
+ 316: <span class="ruby-keyword kw">end</span>
665
685
  </pre>
666
686
  </div>
667
687
 
@@ -669,12 +689,12 @@ for each scenario.
669
689
  </div>
670
690
 
671
691
 
672
- <div id="method-M000659" class="method-detail">
673
- <a name="M000659"></a>
692
+ <div id="method-M000592" class="method-detail">
693
+ <a name="M000592"></a>
674
694
 
675
695
  <div class="method-heading">
676
696
 
677
- <a href="#M000659" class="method-signature">
697
+ <a href="#M000592" class="method-signature">
678
698
 
679
699
  <span class="method-name">deep_clone</span><span class="method-args">()</span>
680
700
 
@@ -685,19 +705,19 @@ for each scenario.
685
705
  <div class="method-description">
686
706
 
687
707
  <p>
688
- We only use <a href="PropertyTreeNode.html#M000659">deep_clone</a> for
708
+ We only use <a href="PropertyTreeNode.html#M000592">deep_clone</a> for
689
709
  attributes, never for properties. Since attributes may reference properties
690
710
  these references should remain references.
691
711
  </p>
692
712
 
693
713
  <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">
714
+ onclick="toggleCode('M000592-source');return false;">[Source]</a></p>
715
+ <div class="method-source-code" id="M000592-source">
696
716
  <pre>
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>
717
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 92</span>
718
+ 92: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">deep_clone</span>
719
+ 93: <span class="ruby-keyword kw">self</span>
720
+ 94: <span class="ruby-keyword kw">end</span>
701
721
  </pre>
702
722
  </div>
703
723
 
@@ -705,12 +725,12 @@ these references should remain references.
705
725
  </div>
706
726
 
707
727
 
708
- <div id="method-M000665" class="method-detail">
709
- <a name="M000665"></a>
728
+ <div id="method-M000598" class="method-detail">
729
+ <a name="M000598"></a>
710
730
 
711
731
  <div class="method-heading">
712
732
 
713
- <a href="#M000665" class="method-signature">
733
+ <a href="#M000598" class="method-signature">
714
734
 
715
735
  <span class="method-name">eachAttribute</span><span class="method-args">() {|attr| ...}</span>
716
736
 
@@ -725,15 +745,15 @@ Iterator over all non-scenario-specific attributes of this node.
725
745
  </p>
726
746
 
727
747
  <p><a class="source-toggle" href="#"
728
- onclick="toggleCode('M000665-source');return false;">[Source]</a></p>
729
- <div class="method-source-code" id="M000665-source">
748
+ onclick="toggleCode('M000598-source');return false;">[Source]</a></p>
749
+ <div class="method-source-code" id="M000598-source">
730
750
  <pre>
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>
751
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 199</span>
752
+ 199: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eachAttribute</span>
753
+ 200: <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>
754
+ 201: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">attr</span>
755
+ 202: <span class="ruby-keyword kw">end</span>
756
+ 203: <span class="ruby-keyword kw">end</span>
737
757
  </pre>
738
758
  </div>
739
759
 
@@ -741,12 +761,12 @@ Iterator over all non-scenario-specific attributes of this node.
741
761
  </div>
742
762
 
743
763
 
744
- <div id="method-M000666" class="method-detail">
745
- <a name="M000666"></a>
764
+ <div id="method-M000599" class="method-detail">
765
+ <a name="M000599"></a>
746
766
 
747
767
  <div class="method-heading">
748
768
 
749
- <a href="#M000666" class="method-signature">
769
+ <a href="#M000599" class="method-signature">
750
770
 
751
771
  <span class="method-name">eachScenarioAttribute</span><span class="method-args">(scenario) {|attr| ...}</span>
752
772
 
@@ -761,15 +781,15 @@ Iterator over all scenario-specific attributes of this node.
761
781
  </p>
762
782
 
763
783
  <p><a class="source-toggle" href="#"
764
- onclick="toggleCode('M000666-source');return false;">[Source]</a></p>
765
- <div class="method-source-code" id="M000666-source">
784
+ onclick="toggleCode('M000599-source');return false;">[Source]</a></p>
785
+ <div class="method-source-code" id="M000599-source">
766
786
  <pre>
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>
787
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 206</span>
788
+ 206: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eachScenarioAttribute</span>(<span class="ruby-identifier">scenario</span>)
789
+ 207: <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>
790
+ 208: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">attr</span>
791
+ 209: <span class="ruby-keyword kw">end</span>
792
+ 210: <span class="ruby-keyword kw">end</span>
773
793
  </pre>
774
794
  </div>
775
795
 
@@ -777,12 +797,12 @@ Iterator over all scenario-specific attributes of this node.
777
797
  </div>
778
798
 
779
799
 
780
- <div id="method-M000667" class="method-detail">
781
- <a name="M000667"></a>
800
+ <div id="method-M000600" class="method-detail">
801
+ <a name="M000600"></a>
782
802
 
783
803
  <div class="method-heading">
784
804
 
785
- <a href="#M000667" class="method-signature">
805
+ <a href="#M000600" class="method-signature">
786
806
 
787
807
  <span class="method-name">fullId</span><span class="method-args">()</span>
788
808
 
@@ -800,20 +820,20 @@ node to this node, separating the IDs by a dot.
800
820
  </p>
801
821
 
802
822
  <p><a class="source-toggle" href="#"
803
- onclick="toggleCode('M000667-source');return false;">[Source]</a></p>
804
- <div class="method-source-code" id="M000667-source">
823
+ onclick="toggleCode('M000600-source');return false;">[Source]</a></p>
824
+ <div class="method-source-code" id="M000600-source">
805
825
  <pre>
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>
826
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 215</span>
827
+ 215: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fullId</span>
828
+ 216: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@id</span>
829
+ 217: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">flatNamespace</span>
830
+ 218: <span class="ruby-identifier">t</span> = <span class="ruby-keyword kw">self</span>
831
+ 219: <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>
832
+ 220: <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>
833
+ 221: <span class="ruby-keyword kw">end</span>
834
+ 222: <span class="ruby-keyword kw">end</span>
835
+ 223: <span class="ruby-identifier">res</span>
836
+ 224: <span class="ruby-keyword kw">end</span>
817
837
  </pre>
818
838
  </div>
819
839
 
@@ -821,12 +841,12 @@ node to this node, separating the IDs by a dot.
821
841
  </div>
822
842
 
823
843
 
824
- <div id="method-M000677" class="method-detail">
825
- <a name="M000677"></a>
844
+ <div id="method-M000611" class="method-detail">
845
+ <a name="M000611"></a>
826
846
 
827
847
  <div class="method-heading">
828
848
 
829
- <a href="#M000677" class="method-signature">
849
+ <a href="#M000611" class="method-signature">
830
850
 
831
851
  <span class="method-name">get</span><span class="method-args">(attributeId)</span>
832
852
 
@@ -843,25 +863,27 @@ raised.
843
863
  </p>
844
864
 
845
865
  <p><a class="source-toggle" href="#"
846
- onclick="toggleCode('M000677-source');return false;">[Source]</a></p>
847
- <div class="method-source-code" id="M000677-source">
866
+ onclick="toggleCode('M000611-source');return false;">[Source]</a></p>
867
+ <div class="method-source-code" id="M000611-source">
848
868
  <pre>
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>
869
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 326</span>
870
+ 326: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">attributeId</span>)
871
+ 327: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">attributeId</span>
872
+ 328: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'id'</span>
873
+ 329: <span class="ruby-ivar">@id</span>
874
+ 330: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
875
+ 331: <span class="ruby-ivar">@name</span>
876
+ 332: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'seqno'</span>
877
+ 333: <span class="ruby-ivar">@sequenceNo</span>
878
+ 334: <span class="ruby-keyword kw">else</span>
879
+ 335: <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>)
880
+ 336: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>,
881
+ 337: <span class="ruby-node">&quot;Unknown attribute '#{attributeId}' requested for &quot;</span> <span class="ruby-operator">+</span>
882
+ 338: <span class="ruby-node">&quot;#{self.class.to_s.sub(/TaskJuggler::/, '')} '#{fullId}'&quot;</span>
883
+ 339: <span class="ruby-keyword kw">end</span>
884
+ 340: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">get</span>
885
+ 341: <span class="ruby-keyword kw">end</span>
886
+ 342: <span class="ruby-keyword kw">end</span>
865
887
  </pre>
866
888
  </div>
867
889
 
@@ -869,12 +891,12 @@ raised.
869
891
  </div>
870
892
 
871
893
 
872
- <div id="method-M000678" class="method-detail">
873
- <a name="M000678"></a>
894
+ <div id="method-M000612" class="method-detail">
895
+ <a name="M000612"></a>
874
896
 
875
897
  <div class="method-heading">
876
898
 
877
- <a href="#M000678" class="method-signature">
899
+ <a href="#M000612" class="method-signature">
878
900
 
879
901
  <span class="method-name">getAttr</span><span class="method-args">(attributeId, scenarioIdx = nil)</span>
880
902
 
@@ -891,26 +913,26 @@ provided by <em>scenarioIdx</em>.
891
913
  </p>
892
914
 
893
915
  <p><a class="source-toggle" href="#"
894
- onclick="toggleCode('M000678-source');return false;">[Source]</a></p>
895
- <div class="method-source-code" id="M000678-source">
916
+ onclick="toggleCode('M000612-source');return false;">[Source]</a></p>
917
+ <div class="method-source-code" id="M000612-source">
896
918
  <pre>
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>
919
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 347</span>
920
+ 347: <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>)
921
+ 348: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>.<span class="ruby-identifier">nil?</span>
922
+ 349: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">attributeId</span>
923
+ 350: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'id'</span>
924
+ 351: <span class="ruby-ivar">@id</span>
925
+ 352: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
926
+ 353: <span class="ruby-ivar">@name</span>
927
+ 354: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'seqno'</span>
928
+ 355: <span class="ruby-ivar">@sequenceNo</span>
929
+ 356: <span class="ruby-keyword kw">else</span>
930
+ 357: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>]
931
+ 358: <span class="ruby-keyword kw">end</span>
932
+ 359: <span class="ruby-keyword kw">else</span>
933
+ 360: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>]
934
+ 361: <span class="ruby-keyword kw">end</span>
935
+ 362: <span class="ruby-keyword kw">end</span>
914
936
  </pre>
915
937
  </div>
916
938
 
@@ -918,14 +940,14 @@ provided by <em>scenarioIdx</em>.
918
940
  </div>
919
941
 
920
942
 
921
- <div id="method-M000669" class="method-detail">
922
- <a name="M000669"></a>
943
+ <div id="method-M000613" class="method-detail">
944
+ <a name="M000613"></a>
923
945
 
924
946
  <div class="method-heading">
925
947
 
926
- <a href="#M000669" class="method-signature">
948
+ <a href="#M000613" class="method-signature">
927
949
 
928
- <span class="method-name">getWBSIndicies</span><span class="method-args">()</span>
950
+ <span class="method-name">getAttribute</span><span class="method-args">(attributeId, scenarioIdx = nil)</span>
929
951
 
930
952
  </a>
931
953
 
@@ -934,27 +956,71 @@ provided by <em>scenarioIdx</em>.
934
956
  <div class="method-description">
935
957
 
936
958
  <p>
937
- Return the hierarchical index of this node. In project management lingo
938
- this is called the Work Breakdown Structure (WBS). The result is an Array
939
- with an index for each level from the root to this node.
959
+ This function is similar to getAttr() but it always returns a <a
960
+ href="AttributeBase.html">AttributeBase</a> object.
961
+ </p>
962
+
963
+ <p><a class="source-toggle" href="#"
964
+ onclick="toggleCode('M000613-source');return false;">[Source]</a></p>
965
+ <div class="method-source-code" id="M000613-source">
966
+ <pre>
967
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 366</span>
968
+ 366: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getAttribute</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
969
+ 367: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">attributeId</span>
970
+ 368: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'id'</span>
971
+ 369: <span class="ruby-constant">StringAttribute</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-ivar">@id</span>)
972
+ 370: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
973
+ 371: <span class="ruby-constant">StringAttribute</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-ivar">@name</span>)
974
+ 372: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'seqno'</span>
975
+ 373: <span class="ruby-constant">FixnumAttribute</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-ivar">@sequenceNo</span>)
976
+ 374: <span class="ruby-keyword kw">else</span>
977
+ 375: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>] <span class="ruby-operator">||</span>
978
+ 376: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>]
979
+ 377: <span class="ruby-keyword kw">end</span>
980
+ 378: <span class="ruby-keyword kw">end</span>
981
+ </pre>
982
+ </div>
983
+
984
+ </div>
985
+ </div>
986
+
987
+
988
+ <div id="method-M000603" class="method-detail">
989
+ <a name="M000603"></a>
990
+
991
+ <div class="method-heading">
992
+
993
+ <a href="#M000603" class="method-signature">
994
+
995
+ <span class="method-name">getIndicies</span><span class="method-args">()</span>
996
+
997
+ </a>
998
+
999
+ </div>
1000
+
1001
+ <div class="method-description">
1002
+
1003
+ <p>
1004
+ Return the &#8216;index&#8217; attributes of this property, prefixed by the
1005
+ &#8216;index&#8217; attributes of all its parents. The result is an Array
1006
+ of Fixnums.
940
1007
  </p>
941
1008
 
942
1009
  <p><a class="source-toggle" href="#"
943
- onclick="toggleCode('M000669-source');return false;">[Source]</a></p>
944
- <div class="method-source-code" id="M000669-source">
1010
+ onclick="toggleCode('M000603-source');return false;">[Source]</a></p>
1011
+ <div class="method-source-code" id="M000603-source">
945
1012
  <pre>
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>
1013
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 257</span>
1014
+ 257: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getIndicies</span>
1015
+ 258: <span class="ruby-identifier">idcs</span> = []
1016
+ 259: <span class="ruby-identifier">p</span> = <span class="ruby-keyword kw">self</span>
1017
+ 260: <span class="ruby-keyword kw">begin</span>
1018
+ 261: <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
1019
+ 262: <span class="ruby-identifier">idcs</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">p</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>))
1020
+ 263: <span class="ruby-identifier">p</span> = <span class="ruby-identifier">parent</span>
1021
+ 264: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">p</span>
1022
+ 265: <span class="ruby-identifier">idcs</span>
1023
+ 266: <span class="ruby-keyword kw">end</span>
958
1024
  </pre>
959
1025
  </div>
960
1026
 
@@ -962,14 +1028,14 @@ with an index for each level from the root to this node.
962
1028
  </div>
963
1029
 
964
1030
 
965
- <div id="method-M000682" class="method-detail">
966
- <a name="M000682"></a>
1031
+ <div id="method-M000602" class="method-detail">
1032
+ <a name="M000602"></a>
967
1033
 
968
1034
  <div class="method-heading">
969
1035
 
970
- <a href="#M000682" class="method-signature">
1036
+ <a href="#M000602" class="method-signature">
971
1037
 
972
- <span class="method-name">hasQuery?</span><span class="method-args">(queryId, scenarioIdx = nil)</span>
1038
+ <span class="method-name">getWBSIndicies</span><span class="method-args">()</span>
973
1039
 
974
1040
  </a>
975
1041
 
@@ -978,25 +1044,27 @@ with an index for each level from the root to this node.
978
1044
  <div class="method-description">
979
1045
 
980
1046
  <p>
981
- This function returns true if the <a
982
- href="PropertyTreeNode.html">PropertyTreeNode</a> has a query function for
983
- the given ID <em>queryId</em>. In case a <em>scenarioIdx</em> is specified,
984
- the query function must be scenario specific.
1047
+ Return the hierarchical index of this node. In project management lingo
1048
+ this is called the Work Breakdown Structure (WBS). The result is an Array
1049
+ with an index for each level from the root to this node.
985
1050
  </p>
986
1051
 
987
1052
  <p><a class="source-toggle" href="#"
988
- onclick="toggleCode('M000682-source');return false;">[Source]</a></p>
989
- <div class="method-source-code" id="M000682-source">
1053
+ onclick="toggleCode('M000602-source');return false;">[Source]</a></p>
1054
+ <div class="method-source-code" id="M000602-source">
990
1055
  <pre>
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>
1056
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 243</span>
1057
+ 243: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getWBSIndicies</span>
1058
+ 244: <span class="ruby-identifier">idcs</span> = []
1059
+ 245: <span class="ruby-identifier">p</span> = <span class="ruby-keyword kw">self</span>
1060
+ 246: <span class="ruby-keyword kw">begin</span>
1061
+ 247: <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
1062
+ 248: <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>
1063
+ 249: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">p</span>))
1064
+ 250: <span class="ruby-identifier">p</span> = <span class="ruby-identifier">parent</span>
1065
+ 251: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">p</span>
1066
+ 252: <span class="ruby-identifier">idcs</span>
1067
+ 253: <span class="ruby-keyword kw">end</span>
1000
1068
  </pre>
1001
1069
  </div>
1002
1070
 
@@ -1004,12 +1072,12 @@ the query function must be scenario specific.
1004
1072
  </div>
1005
1073
 
1006
1074
 
1007
- <div id="method-M000661" class="method-detail">
1008
- <a name="M000661"></a>
1075
+ <div id="method-M000594" class="method-detail">
1076
+ <a name="M000594"></a>
1009
1077
 
1010
1078
  <div class="method-heading">
1011
1079
 
1012
- <a href="#M000661" class="method-signature">
1080
+ <a href="#M000594" class="method-signature">
1013
1081
 
1014
1082
  <span class="method-name">inheritAttributes</span><span class="method-args">()</span>
1015
1083
 
@@ -1025,56 +1093,56 @@ href="Project.html">Project</a>.
1025
1093
  </p>
1026
1094
 
1027
1095
  <p><a class="source-toggle" href="#"
1028
- onclick="toggleCode('M000661-source');return false;">[Source]</a></p>
1029
- <div class="method-source-code" id="M000661-source">
1096
+ onclick="toggleCode('M000594-source');return false;">[Source]</a></p>
1097
+ <div class="method-source-code" id="M000594-source">
1030
1098
  <pre>
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>])
1064
- 133: <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>
1099
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 102</span>
1100
+ 102: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inheritAttributes</span>
1101
+ 103: <span class="ruby-comment cmt"># Inherit non-scenario-specific values</span>
1102
+ 104: <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>
1103
+ 105: <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>
1104
+ 106:
1105
+ 107: <span class="ruby-identifier">aId</span> = <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>
1106
+ 108: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>
1107
+ 109: <span class="ruby-comment cmt"># Inherit values from parent property</span>
1108
+ 110: <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>)
1109
+ 111: <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>))
1110
+ 112: <span class="ruby-keyword kw">end</span>
1111
+ 113: <span class="ruby-keyword kw">else</span>
1112
+ 114: <span class="ruby-comment cmt"># Inherit selected values from project if top-level property</span>
1113
+ 115: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">inheritedFromProject</span>
1114
+ 116: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>[<span class="ruby-identifier">aId</span>]
1115
+ 117: <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>])
1116
+ 118: <span class="ruby-keyword kw">end</span>
1117
+ 119: <span class="ruby-keyword kw">end</span>
1118
+ 120: <span class="ruby-keyword kw">end</span>
1119
+ 121: <span class="ruby-keyword kw">end</span>
1120
+ 122:
1121
+ 123: <span class="ruby-comment cmt"># Inherit scenario-specific values</span>
1122
+ 124: <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>
1123
+ 125: <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>
1124
+ 126:
1125
+ 127: <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>
1126
+ 128: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>
1127
+ 129: <span class="ruby-comment cmt"># Inherit scenario specific values from parent property</span>
1128
+ 130: <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>
1129
+ 131: <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>)
1130
+ 132: <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>(
1131
+ 133: <span class="ruby-identifier">parent</span>[<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>])
1132
+ 134: <span class="ruby-keyword kw">end</span>
1133
+ 135: <span class="ruby-keyword kw">else</span>
1134
+ 136: <span class="ruby-comment cmt"># Inherit selected values from project if top-level property</span>
1135
+ 137: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">inheritedFromProject</span>
1136
+ 138: <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>
1137
+ 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>]
1138
+ 140: <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>(
1139
+ 141: <span class="ruby-ivar">@project</span>[<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>])
1140
+ 142: <span class="ruby-keyword kw">end</span>
1141
+ 143: <span class="ruby-keyword kw">end</span>
1142
+ 144: <span class="ruby-keyword kw">end</span>
1143
+ 145: <span class="ruby-keyword kw">end</span>
1144
+ 146: <span class="ruby-keyword kw">end</span>
1145
+ 147: <span class="ruby-keyword kw">end</span>
1078
1146
  </pre>
1079
1147
  </div>
1080
1148
 
@@ -1082,12 +1150,12 @@ href="Project.html">Project</a>.
1082
1150
  </div>
1083
1151
 
1084
1152
 
1085
- <div id="method-M000662" class="method-detail">
1086
- <a name="M000662"></a>
1153
+ <div id="method-M000595" class="method-detail">
1154
+ <a name="M000595"></a>
1087
1155
 
1088
1156
  <div class="method-heading">
1089
1157
 
1090
- <a href="#M000662" class="method-signature">
1158
+ <a href="#M000595" class="method-signature">
1091
1159
 
1092
1160
  <span class="method-name">inheritAttributesFromScenario</span><span class="method-args">()</span>
1093
1161
 
@@ -1103,34 +1171,34 @@ for attributes that don&#8217;t have a user-specified value already.
1103
1171
  </p>
1104
1172
 
1105
1173
  <p><a class="source-toggle" href="#"
1106
- onclick="toggleCode('M000662-source');return false;">[Source]</a></p>
1107
- <div class="method-source-code" id="M000662-source">
1174
+ onclick="toggleCode('M000595-source');return false;">[Source]</a></p>
1175
+ <div class="method-source-code" id="M000595-source">
1108
1176
  <pre>
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>
1177
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 151</span>
1178
+ 151: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inheritAttributesFromScenario</span>
1179
+ 152: <span class="ruby-comment cmt"># Inherit scenario-specific values</span>
1180
+ 153: <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>
1181
+ 154: <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>
1182
+ 155:
1183
+ 156: <span class="ruby-comment cmt"># We know that parent scenarios precede their children in the list. So</span>
1184
+ 157: <span class="ruby-comment cmt"># it's safe to iterate over the list instead of recursively descend</span>
1185
+ 158: <span class="ruby-comment cmt"># the tree.</span>
1186
+ 159: <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>
1187
+ 160: <span class="ruby-identifier">scenario</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">scenarioIdx</span>)
1188
+ 161: <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>
1189
+ 162: <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>
1190
+ 163: <span class="ruby-comment cmt"># We copy only provided or inherited values from parent scenario when</span>
1191
+ 164: <span class="ruby-comment cmt"># we don't have a provided or inherited value in this scenario.</span>
1192
+ 165: <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>
1193
+ 166: <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>
1194
+ 167: <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>
1195
+ 168: <span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>))
1196
+ 169: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>] =
1197
+ 170: <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>
1198
+ 171: <span class="ruby-keyword kw">end</span>
1199
+ 172: <span class="ruby-keyword kw">end</span>
1200
+ 173: <span class="ruby-keyword kw">end</span>
1201
+ 174: <span class="ruby-keyword kw">end</span>
1134
1202
  </pre>
1135
1203
  </div>
1136
1204
 
@@ -1138,12 +1206,12 @@ for attributes that don&#8217;t have a user-specified value already.
1138
1206
  </div>
1139
1207
 
1140
1208
 
1141
- <div id="method-M000684" class="method-detail">
1142
- <a name="M000684"></a>
1209
+ <div id="method-M000618" class="method-detail">
1210
+ <a name="M000618"></a>
1143
1211
 
1144
1212
  <div class="method-heading">
1145
1213
 
1146
- <a href="#M000684" class="method-signature">
1214
+ <a href="#M000618" class="method-signature">
1147
1215
 
1148
1216
  <span class="method-name">inherited</span><span class="method-args">(attributeId, scenarioIdx = nil)</span>
1149
1217
 
@@ -1160,19 +1228,19 @@ scenario.
1160
1228
  </p>
1161
1229
 
1162
1230
  <p><a class="source-toggle" href="#"
1163
- onclick="toggleCode('M000684-source');return false;">[Source]</a></p>
1164
- <div class="method-source-code" id="M000684-source">
1231
+ onclick="toggleCode('M000618-source');return false;">[Source]</a></p>
1232
+ <div class="method-source-code" id="M000618-source">
1165
1233
  <pre>
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>
1234
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 428</span>
1235
+ 428: <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>)
1236
+ 429: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
1237
+ 430: <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>
1238
+ 431: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
1239
+ 432: <span class="ruby-keyword kw">else</span>
1240
+ 433: <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>
1241
+ 434: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
1242
+ 435: <span class="ruby-keyword kw">end</span>
1243
+ 436: <span class="ruby-keyword kw">end</span>
1176
1244
  </pre>
1177
1245
  </div>
1178
1246
 
@@ -1180,12 +1248,12 @@ scenario.
1180
1248
  </div>
1181
1249
 
1182
1250
 
1183
- <div id="method-M000671" class="method-detail">
1184
- <a name="M000671"></a>
1251
+ <div id="method-M000605" class="method-detail">
1252
+ <a name="M000605"></a>
1185
1253
 
1186
1254
  <div class="method-heading">
1187
1255
 
1188
- <a href="#M000671" class="method-signature">
1256
+ <a href="#M000605" class="method-signature">
1189
1257
 
1190
1258
  <span class="method-name">isChildOf?</span><span class="method-args">(ancestor)</span>
1191
1259
 
@@ -1201,17 +1269,17 @@ Find out if this property is a direct or indirect child of
1201
1269
  </p>
1202
1270
 
1203
1271
  <p><a class="source-toggle" href="#"
1204
- onclick="toggleCode('M000671-source');return false;">[Source]</a></p>
1205
- <div class="method-source-code" id="M000671-source">
1272
+ onclick="toggleCode('M000605-source');return false;">[Source]</a></p>
1273
+ <div class="method-source-code" id="M000605-source">
1206
1274
  <pre>
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>
1275
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 277</span>
1276
+ 277: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isChildOf?</span>(<span class="ruby-identifier">ancestor</span>)
1277
+ 278: <span class="ruby-identifier">parent</span> = <span class="ruby-keyword kw">self</span>
1278
+ 279: <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>
1279
+ 280: <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>)
1280
+ 281: <span class="ruby-keyword kw">end</span>
1281
+ 282: <span class="ruby-keyword kw">false</span>
1282
+ 283: <span class="ruby-keyword kw">end</span>
1215
1283
  </pre>
1216
1284
  </div>
1217
1285
 
@@ -1219,12 +1287,12 @@ Find out if this property is a direct or indirect child of
1219
1287
  </div>
1220
1288
 
1221
1289
 
1222
- <div id="method-M000672" class="method-detail">
1223
- <a name="M000672"></a>
1290
+ <div id="method-M000606" class="method-detail">
1291
+ <a name="M000606"></a>
1224
1292
 
1225
1293
  <div class="method-heading">
1226
1294
 
1227
- <a href="#M000672" class="method-signature">
1295
+ <a href="#M000606" class="method-signature">
1228
1296
 
1229
1297
  <span class="method-name">leaf?</span><span class="method-args">()</span>
1230
1298
 
@@ -1239,13 +1307,13 @@ Return true if the node is a leaf node (has no children).
1239
1307
  </p>
1240
1308
 
1241
1309
  <p><a class="source-toggle" href="#"
1242
- onclick="toggleCode('M000672-source');return false;">[Source]</a></p>
1243
- <div class="method-source-code" id="M000672-source">
1310
+ onclick="toggleCode('M000606-source');return false;">[Source]</a></p>
1311
+ <div class="method-source-code" id="M000606-source">
1244
1312
  <pre>
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>
1313
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 286</span>
1314
+ 286: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">leaf?</span>
1315
+ 287: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>
1316
+ 288: <span class="ruby-keyword kw">end</span>
1249
1317
  </pre>
1250
1318
  </div>
1251
1319
 
@@ -1253,12 +1321,12 @@ Return true if the node is a leaf node (has no children).
1253
1321
  </div>
1254
1322
 
1255
1323
 
1256
- <div id="method-M000668" class="method-detail">
1257
- <a name="M000668"></a>
1324
+ <div id="method-M000601" class="method-detail">
1325
+ <a name="M000601"></a>
1258
1326
 
1259
1327
  <div class="method-heading">
1260
1328
 
1261
- <a href="#M000668" class="method-signature">
1329
+ <a href="#M000601" class="method-signature">
1262
1330
 
1263
1331
  <span class="method-name">level</span><span class="method-args">()</span>
1264
1332
 
@@ -1275,20 +1343,20 @@ have to be calculated each time the function is called.
1275
1343
  </p>
1276
1344
 
1277
1345
  <p><a class="source-toggle" href="#"
1278
- onclick="toggleCode('M000668-source');return false;">[Source]</a></p>
1279
- <div class="method-source-code" id="M000668-source">
1346
+ onclick="toggleCode('M000601-source');return false;">[Source]</a></p>
1347
+ <div class="method-source-code" id="M000601-source">
1280
1348
  <pre>
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>
1349
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 229</span>
1350
+ 229: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">level</span>
1351
+ 230: <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>
1352
+ 231:
1353
+ 232: <span class="ruby-identifier">t</span> = <span class="ruby-keyword kw">self</span>
1354
+ 233: <span class="ruby-ivar">@level</span> = <span class="ruby-value">0</span>
1355
+ 234: <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>
1356
+ 235: <span class="ruby-ivar">@level</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1357
+ 236: <span class="ruby-keyword kw">end</span>
1358
+ 237: <span class="ruby-ivar">@level</span>
1359
+ 238: <span class="ruby-keyword kw">end</span>
1292
1360
  </pre>
1293
1361
  </div>
1294
1362
 
@@ -1296,12 +1364,12 @@ have to be calculated each time the function is called.
1296
1364
  </div>
1297
1365
 
1298
1366
 
1299
- <div id="method-M000660" class="method-detail">
1300
- <a name="M000660"></a>
1367
+ <div id="method-M000593" class="method-detail">
1368
+ <a name="M000593"></a>
1301
1369
 
1302
1370
  <div class="method-heading">
1303
1371
 
1304
- <a href="#M000660" class="method-signature">
1372
+ <a href="#M000593" class="method-signature">
1305
1373
 
1306
1374
  <span class="method-name">levelSeqNo</span><span class="method-args">(node)</span>
1307
1375
 
@@ -1316,13 +1384,13 @@ Return the index of the child <em>node</em>.
1316
1384
  </p>
1317
1385
 
1318
1386
  <p><a class="source-toggle" href="#"
1319
- onclick="toggleCode('M000660-source');return false;">[Source]</a></p>
1320
- <div class="method-source-code" id="M000660-source">
1387
+ onclick="toggleCode('M000593-source');return false;">[Source]</a></p>
1388
+ <div class="method-source-code" id="M000593-source">
1321
1389
  <pre>
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>
1390
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 97</span>
1391
+ 97: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">node</span>)
1392
+ 98: <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>
1393
+ 99: <span class="ruby-keyword kw">end</span>
1326
1394
  </pre>
1327
1395
  </div>
1328
1396
 
@@ -1330,12 +1398,12 @@ Return the index of the child <em>node</em>.
1330
1398
  </div>
1331
1399
 
1332
1400
 
1333
- <div id="method-M000685" class="method-detail">
1334
- <a name="M000685"></a>
1401
+ <div id="method-M000624" class="method-detail">
1402
+ <a name="M000624"></a>
1335
1403
 
1336
1404
  <div class="method-heading">
1337
1405
 
1338
- <a href="#M000685" class="method-signature">
1406
+ <a href="#M000624" class="method-signature">
1339
1407
 
1340
1408
  <span class="method-name">method_missing</span><span class="method-args">(func, scenarioIdx, *args)</span>
1341
1409
 
@@ -1354,13 +1422,50 @@ href="Scenario.html">Scenario</a> class.
1354
1422
  </p>
1355
1423
 
1356
1424
  <p><a class="source-toggle" href="#"
1357
- onclick="toggleCode('M000685-source');return false;">[Source]</a></p>
1358
- <div class="method-source-code" id="M000685-source">
1425
+ onclick="toggleCode('M000624-source');return false;">[Source]</a></p>
1426
+ <div class="method-source-code" id="M000624-source">
1427
+ <pre>
1428
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 519</span>
1429
+ 519: <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>)
1430
+ 520: <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>)
1431
+ 521: <span class="ruby-keyword kw">end</span>
1432
+ </pre>
1433
+ </div>
1434
+
1435
+ </div>
1436
+ </div>
1437
+
1438
+
1439
+ <div id="method-M000619" class="method-detail">
1440
+ <a name="M000619"></a>
1441
+
1442
+ <div class="method-heading">
1443
+
1444
+ <a href="#M000619" class="method-signature">
1445
+
1446
+ <span class="method-name">modified?</span><span class="method-args">(attributeId, scenarioIdx = nil)</span>
1447
+
1448
+ </a>
1449
+
1450
+ </div>
1451
+
1452
+ <div class="method-description">
1453
+
1454
+ <p><a class="source-toggle" href="#"
1455
+ onclick="toggleCode('M000619-source');return false;">[Source]</a></p>
1456
+ <div class="method-source-code" id="M000619-source">
1359
1457
  <pre>
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>
1458
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 438</span>
1459
+ 438: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">modified?</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
1460
+ 439: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
1461
+ 440: <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>
1462
+ 441: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span> <span class="ruby-operator">||</span>
1463
+ 442: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
1464
+ 443: <span class="ruby-keyword kw">else</span>
1465
+ 444: <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>
1466
+ 445: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
1467
+ 446: <span class="ruby-keyword kw">end</span>
1468
+ 447: <span class="ruby-keyword kw">end</span>
1364
1469
  </pre>
1365
1470
  </div>
1366
1471
 
@@ -1368,12 +1473,12 @@ href="Scenario.html">Scenario</a> class.
1368
1473
  </div>
1369
1474
 
1370
1475
 
1371
- <div id="method-M000683" class="method-detail">
1372
- <a name="M000683"></a>
1476
+ <div id="method-M000617" class="method-detail">
1477
+ <a name="M000617"></a>
1373
1478
 
1374
1479
  <div class="method-heading">
1375
1480
 
1376
- <a href="#M000683" class="method-signature">
1481
+ <a href="#M000617" class="method-signature">
1377
1482
 
1378
1483
  <span class="method-name">provided</span><span class="method-args">(attributeId, scenarioIdx = nil)</span>
1379
1484
 
@@ -1389,19 +1494,154 @@ scenario <em>scenarioIdx</em>) has been provided by the user.
1389
1494
  </p>
1390
1495
 
1391
1496
  <p><a class="source-toggle" href="#"
1392
- onclick="toggleCode('M000683-source');return false;">[Source]</a></p>
1393
- <div class="method-source-code" id="M000683-source">
1497
+ onclick="toggleCode('M000617-source');return false;">[Source]</a></p>
1498
+ <div class="method-source-code" id="M000617-source">
1499
+ <pre>
1500
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 416</span>
1501
+ 416: <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>)
1502
+ 417: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
1503
+ 418: <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>
1504
+ 419: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span>
1505
+ 420: <span class="ruby-keyword kw">else</span>
1506
+ 421: <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>
1507
+ 422: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span>
1508
+ 423: <span class="ruby-keyword kw">end</span>
1509
+ 424: <span class="ruby-keyword kw">end</span>
1510
+ </pre>
1511
+ </div>
1512
+
1513
+ </div>
1514
+ </div>
1515
+
1516
+
1517
+ <div id="method-M000620" class="method-detail">
1518
+ <a name="M000620"></a>
1519
+
1520
+ <div class="method-heading">
1521
+
1522
+ <a href="#M000620" class="method-signature">
1523
+
1524
+ <span class="method-name">query_alert</span><span class="method-args">(query)</span>
1525
+
1526
+ </a>
1527
+
1528
+ </div>
1529
+
1530
+ <div class="method-description">
1531
+
1532
+ <p><a class="source-toggle" href="#"
1533
+ onclick="toggleCode('M000620-source');return false;">[Source]</a></p>
1534
+ <div class="method-source-code" id="M000620-source">
1535
+ <pre>
1536
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 449</span>
1537
+ 449: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_alert</span>(<span class="ruby-identifier">query</span>)
1538
+ 450: <span class="ruby-identifier">journal</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>]
1539
+ 451: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">sortable</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">numerical</span> = <span class="ruby-identifier">alert</span> =
1540
+ 452: <span class="ruby-identifier">journal</span>.<span class="ruby-identifier">alertLevel</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">self</span>)
1541
+ 453: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">string</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">alertLevelName</span>(<span class="ruby-identifier">alert</span>)
1542
+ 454: <span class="ruby-keyword kw">end</span>
1543
+ </pre>
1544
+ </div>
1545
+
1546
+ </div>
1547
+ </div>
1548
+
1549
+
1550
+ <div id="method-M000622" class="method-detail">
1551
+ <a name="M000622"></a>
1552
+
1553
+ <div class="method-heading">
1554
+
1555
+ <a href="#M000622" class="method-signature">
1556
+
1557
+ <span class="method-name">query_alertmessage</span><span class="method-args">(query)</span>
1558
+
1559
+ </a>
1560
+
1561
+ </div>
1562
+
1563
+ <div class="method-description">
1564
+
1565
+ <p><a class="source-toggle" href="#"
1566
+ onclick="toggleCode('M000622-source');return false;">[Source]</a></p>
1567
+ <div class="method-source-code" id="M000622-source">
1568
+ <pre>
1569
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 460</span>
1570
+ 460: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_alertmessage</span>(<span class="ruby-identifier">query</span>)
1571
+ 461: <span class="ruby-identifier">alertMessages</span>(<span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">true</span>)
1572
+ 462: <span class="ruby-keyword kw">end</span>
1573
+ </pre>
1574
+ </div>
1575
+
1576
+ </div>
1577
+ </div>
1578
+
1579
+
1580
+ <div id="method-M000621" class="method-detail">
1581
+ <a name="M000621"></a>
1582
+
1583
+ <div class="method-heading">
1584
+
1585
+ <a href="#M000621" class="method-signature">
1586
+
1587
+ <span class="method-name">query_alertsummary</span><span class="method-args">(query)</span>
1588
+
1589
+ </a>
1590
+
1591
+ </div>
1592
+
1593
+ <div class="method-description">
1594
+
1595
+ <p><a class="source-toggle" href="#"
1596
+ onclick="toggleCode('M000621-source');return false;">[Source]</a></p>
1597
+ <div class="method-source-code" id="M000621-source">
1598
+ <pre>
1599
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 456</span>
1600
+ 456: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_alertsummary</span>(<span class="ruby-identifier">query</span>)
1601
+ 457: <span class="ruby-identifier">alertMessages</span>(<span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">false</span>)
1602
+ 458: <span class="ruby-keyword kw">end</span>
1603
+ </pre>
1604
+ </div>
1605
+
1606
+ </div>
1607
+ </div>
1608
+
1609
+
1610
+ <div id="method-M000623" class="method-detail">
1611
+ <a name="M000623"></a>
1612
+
1613
+ <div class="method-heading">
1614
+
1615
+ <a href="#M000623" class="method-signature">
1616
+
1617
+ <span class="method-name">query_alerttrend</span><span class="method-args">(query)</span>
1618
+
1619
+ </a>
1620
+
1621
+ </div>
1622
+
1623
+ <div class="method-description">
1624
+
1625
+ <p><a class="source-toggle" href="#"
1626
+ onclick="toggleCode('M000623-source');return false;">[Source]</a></p>
1627
+ <div class="method-source-code" id="M000623-source">
1394
1628
  <pre>
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>
1629
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 464</span>
1630
+ 464: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_alerttrend</span>(<span class="ruby-identifier">query</span>)
1631
+ 465: <span class="ruby-identifier">journal</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>]
1632
+ 466: <span class="ruby-identifier">startAlert</span> = <span class="ruby-identifier">journal</span>.<span class="ruby-identifier">alertLevel</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>, <span class="ruby-keyword kw">self</span>)
1633
+ 467: <span class="ruby-identifier">endAlert</span> = <span class="ruby-identifier">journal</span>.<span class="ruby-identifier">alertLevel</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">self</span>)
1634
+ 468: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">startAlert</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">endAlert</span>
1635
+ 469: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">sortable</span> = <span class="ruby-value">0</span>
1636
+ 470: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">string</span> = <span class="ruby-value str">'Up'</span>
1637
+ 471: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">startAlert</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">endAlert</span>
1638
+ 472: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">sortable</span> = <span class="ruby-value">2</span>
1639
+ 473: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">string</span> = <span class="ruby-value str">'Down'</span>
1640
+ 474: <span class="ruby-keyword kw">else</span>
1641
+ 475: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">sortable</span> = <span class="ruby-value">1</span>
1642
+ 476: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">string</span> = <span class="ruby-value str">'Flat'</span>
1643
+ 477: <span class="ruby-keyword kw">end</span>
1644
+ 478: <span class="ruby-keyword kw">end</span>
1405
1645
  </pre>
1406
1646
  </div>
1407
1647
 
@@ -1409,12 +1649,12 @@ scenario <em>scenarioIdx</em>) has been provided by the user.
1409
1649
  </div>
1410
1650
 
1411
1651
 
1412
- <div id="method-M000674" class="method-detail">
1413
- <a name="M000674"></a>
1652
+ <div id="method-M000608" class="method-detail">
1653
+ <a name="M000608"></a>
1414
1654
 
1415
1655
  <div class="method-heading">
1416
1656
 
1417
- <a href="#M000674" class="method-signature">
1657
+ <a href="#M000608" class="method-signature">
1418
1658
 
1419
1659
  <span class="method-name">root</span><span class="method-args">()</span>
1420
1660
 
@@ -1429,17 +1669,17 @@ Return the top-level node for this node.
1429
1669
  </p>
1430
1670
 
1431
1671
  <p><a class="source-toggle" href="#"
1432
- onclick="toggleCode('M000674-source');return false;">[Source]</a></p>
1433
- <div class="method-source-code" id="M000674-source">
1672
+ onclick="toggleCode('M000608-source');return false;">[Source]</a></p>
1673
+ <div class="method-source-code" id="M000608-source">
1434
1674
  <pre>
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>
1675
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 296</span>
1676
+ 296: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">root</span>
1677
+ 297: <span class="ruby-identifier">n</span> = <span class="ruby-keyword kw">self</span>
1678
+ 298: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">parent</span>
1679
+ 299: <span class="ruby-identifier">n</span> = <span class="ruby-identifier">n</span>.<span class="ruby-identifier">parent</span>
1680
+ 300: <span class="ruby-keyword kw">end</span>
1681
+ 301: <span class="ruby-identifier">n</span>
1682
+ 302: <span class="ruby-keyword kw">end</span>
1443
1683
  </pre>
1444
1684
  </div>
1445
1685
 
@@ -1447,12 +1687,12 @@ Return the top-level node for this node.
1447
1687
  </div>
1448
1688
 
1449
1689
 
1450
- <div id="method-M000679" class="method-detail">
1451
- <a name="M000679"></a>
1690
+ <div id="method-M000614" class="method-detail">
1691
+ <a name="M000614"></a>
1452
1692
 
1453
1693
  <div class="method-heading">
1454
1694
 
1455
- <a href="#M000679" class="method-signature">
1695
+ <a href="#M000614" class="method-signature">
1456
1696
 
1457
1697
  <span class="method-name">set</span><span class="method-args">(attributeId, value)</span>
1458
1698
 
@@ -1469,16 +1709,16 @@ raised.
1469
1709
  </p>
1470
1710
 
1471
1711
  <p><a class="source-toggle" href="#"
1472
- onclick="toggleCode('M000679-source');return false;">[Source]</a></p>
1473
- <div class="method-source-code" id="M000679-source">
1712
+ onclick="toggleCode('M000614-source');return false;">[Source]</a></p>
1713
+ <div class="method-source-code" id="M000614-source">
1474
1714
  <pre>
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>
1715
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 382</span>
1716
+ 382: <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>)
1717
+ 383: <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>)
1718
+ 384: <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>
1719
+ 385: <span class="ruby-keyword kw">end</span>
1720
+ 386: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
1721
+ 387: <span class="ruby-keyword kw">end</span>
1482
1722
  </pre>
1483
1723
  </div>
1484
1724