taskjuggler 0.0.8 → 0.0.9

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 (613) hide show
  1. data/CHANGELOG +1144 -2047
  2. data/README +1 -1
  3. data/Rakefile +6 -6
  4. data/data/css/tjmanual.css +20 -0
  5. data/data/css/tjreport.css +7 -6
  6. data/doc/AppConfig.html +136 -130
  7. data/doc/Arguments.html +46 -40
  8. data/doc/CHANGELOG.html +1162 -2057
  9. data/doc/COPYING.html +8 -2
  10. data/doc/Object.html +205 -199
  11. data/doc/README.html +9 -3
  12. data/doc/RuntimeConfig.html +75 -69
  13. data/doc/String.html +69 -63
  14. data/doc/TaskJuggler.html +350 -291
  15. data/doc/TaskJuggler/Account.html +26 -20
  16. data/doc/TaskJuggler/AccountAttribute.html +24 -18
  17. data/doc/TaskJuggler/AccountScenario.html +24 -18
  18. data/doc/TaskJuggler/Allocation.html +74 -68
  19. data/doc/TaskJuggler/AllocationAttribute.html +54 -48
  20. data/doc/TaskJuggler/AttributeBase.html +172 -93
  21. data/doc/TaskJuggler/AttributeDefinition.html +22 -16
  22. data/doc/TaskJuggler/AttributeOverwrite.html +586 -0
  23. data/doc/TaskJuggler/BatchProcessor.html +263 -257
  24. data/doc/TaskJuggler/Booking.html +44 -38
  25. data/doc/TaskJuggler/BookingListAttribute.html +25 -21
  26. data/doc/TaskJuggler/BooleanAttribute.html +24 -18
  27. data/doc/TaskJuggler/CSVFile.html +193 -187
  28. data/doc/TaskJuggler/CellSettingPattern.html +13 -7
  29. data/doc/TaskJuggler/CellSettingPatternList.html +25 -19
  30. data/doc/TaskJuggler/Charge.html +49 -43
  31. data/doc/TaskJuggler/ChargeListAttribute.html +21 -15
  32. data/doc/TaskJuggler/ChargeSet.html +94 -88
  33. data/doc/TaskJuggler/ChargeSetListAttribute.html +29 -25
  34. data/doc/TaskJuggler/CollisionDetector.html +142 -136
  35. data/doc/TaskJuggler/ColumnListAttribute.html +21 -17
  36. data/doc/TaskJuggler/ColumnTable.html +50 -44
  37. data/doc/TaskJuggler/Daemon.html +71 -50
  38. data/doc/TaskJuggler/DataCache.html +110 -58
  39. data/doc/TaskJuggler/DataCacheEntry.html +22 -16
  40. data/doc/TaskJuggler/DateAttribute.html +24 -18
  41. data/doc/TaskJuggler/DefinitionListAttribute.html +12 -6
  42. data/doc/TaskJuggler/DependencyListAttribute.html +29 -25
  43. data/doc/TaskJuggler/DurationAttribute.html +25 -19
  44. data/doc/TaskJuggler/FileList.html +25 -19
  45. data/doc/TaskJuggler/FileRecord.html +17 -11
  46. data/doc/TaskJuggler/FixnumAttribute.html +16 -10
  47. data/doc/TaskJuggler/FlagListAttribute.html +25 -21
  48. data/doc/TaskJuggler/FloatAttribute.html +20 -14
  49. data/doc/TaskJuggler/FormatListAttribute.html +17 -11
  50. data/doc/TaskJuggler/GanttChart.html +242 -236
  51. data/doc/TaskJuggler/GanttContainer.html +71 -67
  52. data/doc/TaskJuggler/GanttHeader.html +113 -107
  53. data/doc/TaskJuggler/GanttHeaderScaleItem.html +26 -20
  54. data/doc/TaskJuggler/GanttLine.html +217 -210
  55. data/doc/TaskJuggler/GanttLoadStack.html +89 -83
  56. data/doc/TaskJuggler/GanttMilestone.html +11 -6
  57. data/doc/TaskJuggler/GanttRouter.html +194 -186
  58. data/doc/TaskJuggler/GanttTaskBar.html +41 -34
  59. data/doc/TaskJuggler/HTMLDocument.html +52 -46
  60. data/doc/TaskJuggler/HTMLGraphics.html +58 -52
  61. data/doc/TaskJuggler/Interval.html +90 -84
  62. data/doc/TaskJuggler/IntervalList.html +777 -0
  63. data/doc/TaskJuggler/IntervalListAttribute.html +29 -25
  64. data/doc/TaskJuggler/JobInfo.html +36 -30
  65. data/doc/TaskJuggler/Journal.html +188 -177
  66. data/doc/TaskJuggler/JournalEntry.html +36 -30
  67. data/doc/TaskJuggler/JournalEntryList.html +88 -82
  68. data/doc/TaskJuggler/KeywordArray.html +12 -6
  69. data/doc/TaskJuggler/KeywordDocumentation.html +512 -503
  70. data/doc/TaskJuggler/Limits.html +111 -105
  71. data/doc/TaskJuggler/Limits/Limit.html +71 -65
  72. data/doc/TaskJuggler/LimitsAttribute.html +21 -15
  73. data/doc/TaskJuggler/ListAttributeBase.html +16 -10
  74. data/doc/TaskJuggler/Log.html +111 -105
  75. data/doc/TaskJuggler/LogFile.html +54 -48
  76. data/doc/TaskJuggler/LogicalAttribute.html +35 -29
  77. data/doc/TaskJuggler/LogicalExpression.html +32 -26
  78. data/doc/TaskJuggler/LogicalExpressionAttribute.html +16 -10
  79. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +671 -0
  80. data/doc/TaskJuggler/LogicalFlag.html +24 -18
  81. data/doc/TaskJuggler/LogicalFunction.html +164 -158
  82. data/doc/TaskJuggler/LogicalOperation.html +138 -132
  83. data/doc/TaskJuggler/Macro.html +14 -8
  84. data/doc/TaskJuggler/MacroTable.html +42 -36
  85. data/doc/TaskJuggler/ManagerResponsibilities.html +19 -13
  86. data/doc/TaskJuggler/ManagerStatusRecord.html +23 -17
  87. data/doc/TaskJuggler/Message.html +56 -50
  88. data/doc/TaskJuggler/MessageHandler.html +73 -67
  89. data/doc/TaskJuggler/Navigator.html +92 -86
  90. data/doc/TaskJuggler/NavigatorElement.html +88 -82
  91. data/doc/TaskJuggler/NikuProject.html +15 -9
  92. data/doc/TaskJuggler/NikuReport.html +405 -370
  93. data/doc/TaskJuggler/NikuResource.html +13 -7
  94. data/doc/TaskJuggler/NodeListAttribute.html +13 -9
  95. data/doc/TaskJuggler/PlaceHolderCell.html +22 -16
  96. data/doc/TaskJuggler/ProcessIntercom.html +116 -110
  97. data/doc/TaskJuggler/ProcessIntercomIface.html +39 -33
  98. data/doc/TaskJuggler/Project.html +1064 -895
  99. data/doc/TaskJuggler/ProjectBroker.html +439 -366
  100. data/doc/TaskJuggler/ProjectBrokerIface.html +63 -53
  101. data/doc/TaskJuggler/ProjectFileParser.html +329 -319
  102. data/doc/TaskJuggler/ProjectFileScanner.html +351 -345
  103. data/doc/TaskJuggler/ProjectRecord.html +66 -60
  104. data/doc/TaskJuggler/ProjectServer.html +287 -280
  105. data/doc/TaskJuggler/ProjectServerIface.html +43 -37
  106. data/doc/TaskJuggler/PropertyAttribute.html +16 -10
  107. data/doc/TaskJuggler/PropertyList.html +205 -199
  108. data/doc/TaskJuggler/PropertySet.html +264 -296
  109. data/doc/TaskJuggler/PropertyTreeNode.html +455 -505
  110. data/doc/TaskJuggler/Query.html +309 -524
  111. data/doc/TaskJuggler/RTFHandlers.html +17 -11
  112. data/doc/TaskJuggler/RTFNavigator.html +33 -27
  113. data/doc/TaskJuggler/RTFQuery.html +135 -129
  114. data/doc/TaskJuggler/RTFReport.html +63 -57
  115. data/doc/TaskJuggler/RTFReportLink.html +55 -49
  116. data/doc/TaskJuggler/RTFWithQuerySupport.html +17 -11
  117. data/doc/TaskJuggler/RealFormat.html +64 -58
  118. data/doc/TaskJuggler/RealFormatAttribute.html +12 -6
  119. data/doc/TaskJuggler/ReferenceAttribute.html +35 -29
  120. data/doc/TaskJuggler/Report.html +294 -249
  121. data/doc/TaskJuggler/ReportBase.html +229 -223
  122. data/doc/TaskJuggler/ReportContext.html +52 -46
  123. data/doc/TaskJuggler/ReportServer.html +143 -137
  124. data/doc/TaskJuggler/ReportServerIface.html +51 -43
  125. data/doc/TaskJuggler/ReportServerRecord.html +36 -30
  126. data/doc/TaskJuggler/ReportServlet.html +167 -140
  127. data/doc/TaskJuggler/ReportTable.html +137 -131
  128. data/doc/TaskJuggler/ReportTableCell.html +332 -292
  129. data/doc/TaskJuggler/ReportTableColumn.html +46 -40
  130. data/doc/TaskJuggler/ReportTableLegend.html +43 -38
  131. data/doc/TaskJuggler/ReportTableLine.html +66 -60
  132. data/doc/TaskJuggler/Resource.html +166 -160
  133. data/doc/TaskJuggler/ResourceListAttribute.html +54 -32
  134. data/doc/TaskJuggler/ResourceListRE.html +47 -41
  135. data/doc/TaskJuggler/ResourceScenario.html +671 -644
  136. data/doc/TaskJuggler/RichText.html +51 -45
  137. data/doc/TaskJuggler/RichTextAttribute.html +28 -22
  138. data/doc/TaskJuggler/RichTextDocument.html +96 -90
  139. data/doc/TaskJuggler/RichTextElement.html +503 -497
  140. data/doc/TaskJuggler/RichTextFunctionExample.html +41 -35
  141. data/doc/TaskJuggler/RichTextFunctionHandler.html +19 -13
  142. data/doc/TaskJuggler/RichTextImage.html +14 -8
  143. data/doc/TaskJuggler/RichTextIntermediate.html +86 -80
  144. data/doc/TaskJuggler/RichTextParser.html +59 -53
  145. data/doc/TaskJuggler/RichTextScanner.html +184 -178
  146. data/doc/TaskJuggler/RichTextSnip.html +69 -63
  147. data/doc/TaskJuggler/RichTextSyntaxRules.html +416 -410
  148. data/doc/TaskJuggler/Scenario.html +13 -7
  149. data/doc/TaskJuggler/ScenarioData.html +40 -34
  150. data/doc/TaskJuggler/ScenarioListAttribute.html +21 -15
  151. data/doc/TaskJuggler/Scoreboard.html +129 -107
  152. data/doc/TaskJuggler/SheetHandlerBase.html +245 -239
  153. data/doc/TaskJuggler/SheetReceiver.html +333 -327
  154. data/doc/TaskJuggler/SheetSender.html +227 -221
  155. data/doc/TaskJuggler/Shift.html +26 -20
  156. data/doc/TaskJuggler/ShiftAssignment.html +45 -39
  157. data/doc/TaskJuggler/ShiftAssignments.html +178 -172
  158. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +21 -15
  159. data/doc/TaskJuggler/ShiftScenario.html +29 -23
  160. data/doc/TaskJuggler/SimpleQueryExpander.html +36 -30
  161. data/doc/TaskJuggler/SortListAttribute.html +17 -13
  162. data/doc/TaskJuggler/SourceFileInfo.html +19 -13
  163. data/doc/TaskJuggler/StatusSheetReceiver.html +31 -25
  164. data/doc/TaskJuggler/StatusSheetReport.html +166 -159
  165. data/doc/TaskJuggler/StatusSheetSender.html +80 -74
  166. data/doc/TaskJuggler/StringAttribute.html +20 -14
  167. data/doc/TaskJuggler/SymbolAttribute.html +16 -10
  168. data/doc/TaskJuggler/SyntaxReference.html +231 -225
  169. data/doc/TaskJuggler/TOCEntry.html +46 -40
  170. data/doc/TaskJuggler/TSResourceRecord.html +15 -9
  171. data/doc/TaskJuggler/TSTaskRecord.html +16 -10
  172. data/doc/TaskJuggler/TableColumnDefinition.html +84 -39
  173. data/doc/TaskJuggler/TableOfContents.html +28 -22
  174. data/doc/TaskJuggler/TableReport.html +906 -866
  175. data/doc/TaskJuggler/Task.html +99 -93
  176. data/doc/TaskJuggler/TaskDependency.html +24 -18
  177. data/doc/TaskJuggler/TaskListAttribute.html +29 -25
  178. data/doc/TaskJuggler/TaskListRE.html +46 -39
  179. data/doc/TaskJuggler/TaskScenario.html +2218 -1965
  180. data/doc/TaskJuggler/TextFormatter.html +154 -148
  181. data/doc/TaskJuggler/TextParser.html +362 -348
  182. data/doc/TaskJuggler/TextParser/Pattern.html +313 -307
  183. data/doc/TaskJuggler/TextParser/Rule.html +147 -141
  184. data/doc/TaskJuggler/TextParser/StackElement.html +58 -52
  185. data/doc/TaskJuggler/TextParser/State.html +88 -82
  186. data/doc/TaskJuggler/TextParser/StateTransition.html +42 -36
  187. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +20 -14
  188. data/doc/TaskJuggler/TextParser/TokenDoc.html +19 -13
  189. data/doc/TaskJuggler/TextReport.html +80 -74
  190. data/doc/TaskJuggler/TextScanner.html +284 -272
  191. data/doc/TaskJuggler/TextScanner/BufferStreamHandle.html +14 -8
  192. data/doc/TaskJuggler/TextScanner/FileStreamHandle.html +21 -15
  193. data/doc/TaskJuggler/TextScanner/MacroStackEntry.html +15 -9
  194. data/doc/TaskJuggler/TextScanner/StreamHandle.html +102 -96
  195. data/doc/TaskJuggler/TimeSheet.html +123 -117
  196. data/doc/TaskJuggler/TimeSheetReceiver.html +28 -22
  197. data/doc/TaskJuggler/TimeSheetRecord.html +212 -206
  198. data/doc/TaskJuggler/TimeSheetReport.html +206 -199
  199. data/doc/TaskJuggler/TimeSheetSender.html +27 -21
  200. data/doc/TaskJuggler/TimeSheetSummary.html +140 -134
  201. data/doc/TaskJuggler/TimeSheets.html +20 -14
  202. data/doc/TaskJuggler/Tj3AppBase.html +100 -94
  203. data/doc/TaskJuggler/Tj3Client.html +407 -483
  204. data/doc/TaskJuggler/Tj3Daemon.html +116 -107
  205. data/doc/TaskJuggler/Tj3SheetAppBase.html +45 -39
  206. data/doc/TaskJuggler/Tj3SsReceiver.html +31 -25
  207. data/doc/TaskJuggler/Tj3SsSender.html +64 -58
  208. data/doc/TaskJuggler/Tj3TsReceiver.html +31 -25
  209. data/doc/TaskJuggler/Tj3TsSender.html +51 -45
  210. data/doc/TaskJuggler/Tj3TsSummary.html +59 -53
  211. data/doc/TaskJuggler/TjException.html +13 -7
  212. data/doc/TaskJuggler/TjTime.html +444 -438
  213. data/doc/TaskJuggler/TjpExample.html +84 -78
  214. data/doc/TaskJuggler/TjpExportRE.html +356 -349
  215. data/doc/TaskJuggler/TjpSyntaxRules.html +4279 -4151
  216. data/doc/TaskJuggler/URLParameter.html +16 -10
  217. data/doc/TaskJuggler/UserManual.html +185 -179
  218. data/doc/TaskJuggler/VimSyntax.html +144 -138
  219. data/doc/TaskJuggler/WebServer.html +46 -39
  220. data/doc/TaskJuggler/WelcomePage.html +769 -0
  221. data/doc/TaskJuggler/WorkingHours.html +185 -179
  222. data/doc/TaskJuggler/WorkingHoursAttribute.html +42 -36
  223. data/doc/TaskJuggler/XMLBlob.html +21 -15
  224. data/doc/TaskJuggler/XMLComment.html +17 -11
  225. data/doc/TaskJuggler/XMLDocument.html +33 -27
  226. data/doc/TaskJuggler/XMLElement.html +97 -91
  227. data/doc/TaskJuggler/XMLNamedText.html +13 -7
  228. data/doc/TaskJuggler/XMLText.html +32 -26
  229. data/doc/index.html +601 -563
  230. data/doc/lib/AccountScenario_rb.html +5 -3
  231. data/doc/lib/Account_rb.html +5 -3
  232. data/doc/lib/Allocation_rb.html +5 -3
  233. data/doc/lib/AppConfig_rb.html +5 -3
  234. data/doc/lib/AttributeBase_rb.html +5 -3
  235. data/doc/lib/AttributeDefinition_rb.html +5 -3
  236. data/doc/lib/Attributes_rb.html +5 -3
  237. data/doc/lib/BatchProcessor_rb.html +5 -3
  238. data/doc/lib/Booking_rb.html +5 -3
  239. data/doc/lib/ChargeSet_rb.html +5 -3
  240. data/doc/lib/Charge_rb.html +5 -3
  241. data/doc/lib/DataCache_rb.html +5 -3
  242. data/doc/lib/FileList_rb.html +5 -3
  243. data/doc/lib/HTMLDocument_rb.html +5 -3
  244. data/doc/lib/IntervalList_rb.html +69 -0
  245. data/doc/lib/Interval_rb.html +5 -3
  246. data/doc/lib/Journal_rb.html +5 -3
  247. data/doc/lib/KeywordArray_rb.html +5 -3
  248. data/doc/lib/KeywordDocumentation_rb.html +5 -3
  249. data/doc/lib/Limits_rb.html +5 -3
  250. data/doc/lib/LogFile_rb.html +5 -3
  251. data/doc/lib/Log_rb.html +5 -3
  252. data/doc/lib/LogicalExpression_rb.html +5 -3
  253. data/doc/lib/LogicalFunction_rb.html +5 -3
  254. data/doc/lib/LogicalOperation_rb.html +5 -3
  255. data/doc/lib/MacroTable_rb.html +5 -3
  256. data/doc/lib/MessageHandler_rb.html +5 -3
  257. data/doc/lib/ProjectFileParser_rb.html +5 -3
  258. data/doc/lib/ProjectFileScanner_rb.html +5 -3
  259. data/doc/lib/Project_rb.html +5 -3
  260. data/doc/lib/PropertyList_rb.html +5 -3
  261. data/doc/lib/PropertySet_rb.html +5 -3
  262. data/doc/lib/PropertyTreeNode_rb.html +5 -3
  263. data/doc/lib/Query_rb.html +5 -3
  264. data/doc/lib/RTFHandlers_rb.html +5 -3
  265. data/doc/lib/RTFNavigator_rb.html +5 -3
  266. data/doc/lib/RTFQuery_rb.html +5 -3
  267. data/doc/lib/RTFReportLink_rb.html +5 -3
  268. data/doc/lib/RTFReport_rb.html +5 -3
  269. data/doc/lib/RTFWithQuerySupport_rb.html +5 -3
  270. data/doc/lib/RealFormat_rb.html +5 -3
  271. data/doc/lib/ResourceScenario_rb.html +5 -3
  272. data/doc/lib/Resource_rb.html +5 -3
  273. data/doc/lib/RichTextDocument_rb.html +5 -3
  274. data/doc/lib/RichTextElement_rb.html +5 -3
  275. data/doc/lib/RichTextFunctionExample_rb.html +5 -3
  276. data/doc/lib/RichTextFunctionHandler_rb.html +5 -3
  277. data/doc/lib/RichTextParser_rb.html +5 -3
  278. data/doc/lib/RichTextScanner_rb.html +5 -3
  279. data/doc/lib/RichTextSnip_rb.html +5 -3
  280. data/doc/lib/RichTextSyntaxRules_rb.html +5 -3
  281. data/doc/lib/RichText_rb.html +5 -3
  282. data/doc/lib/RuntimeConfig_rb.html +5 -3
  283. data/doc/lib/ScenarioData_rb.html +5 -3
  284. data/doc/lib/Scenario_rb.html +5 -3
  285. data/doc/lib/Scoreboard_rb.html +7 -3
  286. data/doc/lib/SheetHandlerBase_rb.html +5 -3
  287. data/doc/lib/SheetReceiver_rb.html +5 -3
  288. data/doc/lib/SheetSender_rb.html +5 -3
  289. data/doc/lib/ShiftAssignments_rb.html +5 -3
  290. data/doc/lib/ShiftScenario_rb.html +5 -3
  291. data/doc/lib/Shift_rb.html +5 -3
  292. data/doc/lib/SimpleQueryExpander_rb.html +5 -3
  293. data/doc/lib/SourceFileInfo_rb.html +5 -3
  294. data/doc/lib/StatusSheetReceiver_rb.html +5 -3
  295. data/doc/lib/StatusSheetSender_rb.html +5 -3
  296. data/doc/lib/SyntaxReference_rb.html +5 -3
  297. data/doc/lib/TOCEntry_rb.html +5 -3
  298. data/doc/lib/TableColumnDefinition_rb.html +5 -3
  299. data/doc/lib/TableOfContents_rb.html +5 -3
  300. data/doc/lib/TaskDependency_rb.html +5 -3
  301. data/doc/lib/TaskJuggler_rb.html +5 -3
  302. data/doc/lib/TaskScenario_rb.html +5 -3
  303. data/doc/lib/Task_rb.html +5 -3
  304. data/doc/lib/TextFormatter_rb.html +6 -4
  305. data/doc/lib/TextParser/Pattern_rb.html +5 -3
  306. data/doc/lib/TextParser/Rule_rb.html +5 -3
  307. data/doc/lib/TextParser/StackElement_rb.html +5 -3
  308. data/doc/lib/TextParser/State_rb.html +6 -4
  309. data/doc/lib/TextParser/TokenDoc_rb.html +5 -3
  310. data/doc/lib/TextParser_rb.html +5 -3
  311. data/doc/lib/TextScanner_rb.html +5 -3
  312. data/doc/lib/TimeSheetReceiver_rb.html +5 -3
  313. data/doc/lib/TimeSheetSender_rb.html +5 -3
  314. data/doc/lib/TimeSheetSummary_rb.html +6 -4
  315. data/doc/lib/TimeSheets_rb.html +5 -3
  316. data/doc/lib/Tj3AppBase_rb.html +5 -3
  317. data/doc/lib/Tj3Config_rb.html +5 -3
  318. data/doc/lib/Tj3SheetAppBase_rb.html +5 -3
  319. data/doc/lib/TjException_rb.html +5 -3
  320. data/doc/lib/TjTime_rb.html +5 -3
  321. data/doc/lib/TjpExample_rb.html +5 -3
  322. data/doc/lib/TjpSyntaxRules_rb.html +5 -3
  323. data/doc/lib/URLParameter_rb.html +5 -3
  324. data/doc/lib/UTF8String_rb.html +5 -3
  325. data/doc/lib/UserManual_rb.html +5 -3
  326. data/doc/lib/VimSyntax_rb.html +6 -4
  327. data/doc/lib/WorkingHours_rb.html +5 -3
  328. data/doc/lib/XMLDocument_rb.html +5 -3
  329. data/doc/lib/XMLElement_rb.html +5 -3
  330. data/doc/lib/daemon/Daemon_rb.html +5 -3
  331. data/doc/lib/daemon/ProcessIntercom_rb.html +7 -3
  332. data/doc/lib/daemon/ProjectBroker_rb.html +5 -3
  333. data/doc/lib/daemon/ProjectServer_rb.html +5 -3
  334. data/doc/lib/daemon/ReportServer_rb.html +5 -3
  335. data/doc/lib/daemon/ReportServlet_rb.html +69 -0
  336. data/doc/lib/daemon/WebServer_rb.html +9 -3
  337. data/doc/lib/daemon/WelcomePage_rb.html +71 -0
  338. data/doc/lib/deep_copy_rb.html +5 -3
  339. data/doc/lib/reports/CSVFile_rb.html +5 -3
  340. data/doc/lib/reports/CollisionDetector_rb.html +5 -3
  341. data/doc/lib/reports/ColumnTable_rb.html +5 -3
  342. data/doc/lib/reports/GanttChart_rb.html +5 -3
  343. data/doc/lib/reports/GanttContainer_rb.html +5 -3
  344. data/doc/lib/reports/GanttHeaderScaleItem_rb.html +5 -3
  345. data/doc/lib/reports/GanttHeader_rb.html +5 -3
  346. data/doc/lib/reports/GanttLine_rb.html +5 -3
  347. data/doc/lib/reports/GanttLoadStack_rb.html +5 -3
  348. data/doc/lib/reports/GanttMilestone_rb.html +5 -3
  349. data/doc/lib/reports/GanttRouter_rb.html +5 -3
  350. data/doc/lib/reports/GanttTaskBar_rb.html +5 -3
  351. data/doc/lib/reports/HTMLGraphics_rb.html +5 -3
  352. data/doc/lib/reports/Navigator_rb.html +5 -3
  353. data/doc/lib/reports/NikuReport_rb.html +5 -3
  354. data/doc/lib/reports/ReportBase_rb.html +5 -3
  355. data/doc/lib/reports/ReportContext_rb.html +5 -3
  356. data/doc/lib/reports/ReportTableCell_rb.html +5 -3
  357. data/doc/lib/reports/ReportTableColumn_rb.html +5 -3
  358. data/doc/lib/reports/ReportTableLegend_rb.html +5 -3
  359. data/doc/lib/reports/ReportTableLine_rb.html +5 -3
  360. data/doc/lib/reports/ReportTable_rb.html +5 -3
  361. data/doc/lib/reports/Report_rb.html +5 -3
  362. data/doc/lib/reports/ResourceListRE_rb.html +5 -3
  363. data/doc/lib/reports/StatusSheetReport_rb.html +5 -3
  364. data/doc/lib/reports/TableReport_rb.html +5 -3
  365. data/doc/lib/reports/TaskListRE_rb.html +5 -3
  366. data/doc/lib/reports/TextReport_rb.html +5 -3
  367. data/doc/lib/reports/TimeSheetReport_rb.html +5 -3
  368. data/doc/lib/reports/TjpExportRE_rb.html +5 -3
  369. data/doc/lib/{taskjuggler3_rb.html → tj3_rb.html} +7 -5
  370. data/doc/lib/tj3client_rb.html +5 -3
  371. data/doc/lib/tj3d_rb.html +6 -4
  372. data/doc/lib/tj3man_rb.html +5 -3
  373. data/doc/lib/tj3ss_receiver_rb.html +5 -3
  374. data/doc/lib/tj3ss_sender_rb.html +5 -3
  375. data/doc/lib/tj3ts_receiver_rb.html +5 -3
  376. data/doc/lib/tj3ts_sender_rb.html +5 -3
  377. data/doc/lib/tj3ts_summary_rb.html +5 -3
  378. data/examples/tutorial.tjp +13 -5
  379. data/gem_spec.rb +3 -0
  380. data/lib/Account.rb +2 -1
  381. data/lib/AccountScenario.rb +2 -1
  382. data/lib/Allocation.rb +2 -1
  383. data/lib/AppConfig.rb +2 -1
  384. data/lib/AttributeBase.rb +19 -5
  385. data/lib/AttributeDefinition.rb +2 -1
  386. data/lib/Attributes.rb +49 -38
  387. data/lib/BatchProcessor.rb +2 -1
  388. data/lib/Booking.rb +2 -1
  389. data/lib/Charge.rb +2 -1
  390. data/lib/ChargeSet.rb +2 -1
  391. data/lib/DataCache.rb +15 -1
  392. data/lib/FileList.rb +2 -1
  393. data/lib/HTMLDocument.rb +2 -1
  394. data/lib/Interval.rb +2 -1
  395. data/lib/IntervalList.rb +100 -0
  396. data/lib/Journal.rb +8 -2
  397. data/lib/KeywordArray.rb +2 -1
  398. data/lib/KeywordDocumentation.rb +10 -6
  399. data/lib/Limits.rb +2 -1
  400. data/lib/Log.rb +3 -2
  401. data/lib/LogFile.rb +2 -1
  402. data/lib/LogicalExpression.rb +2 -1
  403. data/lib/LogicalFunction.rb +2 -1
  404. data/lib/LogicalOperation.rb +2 -1
  405. data/lib/MacroTable.rb +2 -1
  406. data/lib/MessageHandler.rb +2 -1
  407. data/lib/Project.rb +92 -25
  408. data/lib/ProjectFileParser.rb +7 -2
  409. data/lib/ProjectFileScanner.rb +2 -1
  410. data/lib/PropertyList.rb +2 -1
  411. data/lib/PropertySet.rb +2 -6
  412. data/lib/PropertyTreeNode.rb +22 -44
  413. data/lib/Query.rb +32 -13
  414. data/lib/RTFHandlers.rb +2 -1
  415. data/lib/RTFNavigator.rb +2 -1
  416. data/lib/RTFQuery.rb +3 -2
  417. data/lib/RTFReport.rb +2 -1
  418. data/lib/RTFReportLink.rb +2 -1
  419. data/lib/RTFWithQuerySupport.rb +2 -1
  420. data/lib/RealFormat.rb +2 -1
  421. data/lib/Resource.rb +2 -1
  422. data/lib/ResourceScenario.rb +35 -14
  423. data/lib/RichText.rb +2 -1
  424. data/lib/RichTextDocument.rb +2 -1
  425. data/lib/RichTextElement.rb +2 -1
  426. data/lib/RichTextFunctionExample.rb +2 -1
  427. data/lib/RichTextFunctionHandler.rb +2 -1
  428. data/lib/RichTextParser.rb +2 -1
  429. data/lib/RichTextScanner.rb +2 -1
  430. data/lib/RichTextSnip.rb +2 -1
  431. data/lib/RichTextSyntaxRules.rb +2 -1
  432. data/lib/RuntimeConfig.rb +2 -1
  433. data/lib/Scenario.rb +2 -1
  434. data/lib/ScenarioData.rb +2 -1
  435. data/lib/Scoreboard.rb +27 -8
  436. data/lib/SheetHandlerBase.rb +2 -1
  437. data/lib/SheetReceiver.rb +2 -1
  438. data/lib/SheetSender.rb +2 -1
  439. data/lib/Shift.rb +2 -1
  440. data/lib/ShiftAssignments.rb +2 -1
  441. data/lib/ShiftScenario.rb +2 -1
  442. data/lib/SimpleQueryExpander.rb +2 -1
  443. data/lib/SourceFileInfo.rb +2 -1
  444. data/lib/StatusSheetReceiver.rb +2 -1
  445. data/lib/StatusSheetSender.rb +2 -1
  446. data/lib/SyntaxReference.rb +2 -1
  447. data/lib/TOCEntry.rb +2 -1
  448. data/lib/TableColumnDefinition.rb +9 -2
  449. data/lib/TableOfContents.rb +2 -1
  450. data/lib/Task.rb +2 -1
  451. data/lib/TaskDependency.rb +2 -1
  452. data/lib/TaskJuggler.rb +8 -6
  453. data/lib/TaskScenario.rb +337 -153
  454. data/lib/TextFormatter.rb +3 -2
  455. data/lib/TextParser.rb +7 -2
  456. data/lib/TextParser/Pattern.rb +2 -1
  457. data/lib/TextParser/Rule.rb +2 -1
  458. data/lib/TextParser/StackElement.rb +2 -1
  459. data/lib/TextParser/State.rb +3 -2
  460. data/lib/TextParser/TokenDoc.rb +2 -1
  461. data/lib/TextScanner.rb +12 -5
  462. data/lib/TimeSheetReceiver.rb +2 -1
  463. data/lib/TimeSheetSender.rb +2 -1
  464. data/lib/TimeSheetSummary.rb +3 -2
  465. data/lib/TimeSheets.rb +2 -1
  466. data/lib/Tj3AppBase.rb +6 -5
  467. data/lib/Tj3Config.rb +5 -4
  468. data/lib/Tj3SheetAppBase.rb +2 -1
  469. data/lib/TjException.rb +2 -1
  470. data/lib/TjTime.rb +2 -1
  471. data/lib/TjpExample.rb +2 -1
  472. data/lib/TjpSyntaxRules.rb +264 -65
  473. data/lib/URLParameter.rb +2 -1
  474. data/lib/UTF8String.rb +2 -1
  475. data/lib/UserManual.rb +2 -1
  476. data/lib/VimSyntax.rb +3 -2
  477. data/lib/WorkingHours.rb +2 -1
  478. data/lib/XMLDocument.rb +2 -1
  479. data/lib/XMLElement.rb +2 -1
  480. data/lib/daemon/Daemon.rb +3 -1
  481. data/lib/daemon/ProcessIntercom.rb +3 -1
  482. data/lib/daemon/ProjectBroker.rb +84 -32
  483. data/lib/daemon/ProjectServer.rb +5 -3
  484. data/lib/daemon/ReportServer.rb +8 -5
  485. data/lib/daemon/ReportServlet.rb +166 -0
  486. data/lib/daemon/WebServer.rb +6 -150
  487. data/lib/daemon/WelcomePage.rb +80 -0
  488. data/lib/deep_copy.rb +2 -1
  489. data/lib/reports/CSVFile.rb +2 -1
  490. data/lib/reports/CollisionDetector.rb +2 -1
  491. data/lib/reports/ColumnTable.rb +2 -1
  492. data/lib/reports/GanttChart.rb +2 -1
  493. data/lib/reports/GanttContainer.rb +3 -4
  494. data/lib/reports/GanttHeader.rb +2 -1
  495. data/lib/reports/GanttHeaderScaleItem.rb +2 -1
  496. data/lib/reports/GanttLine.rb +12 -10
  497. data/lib/reports/GanttLoadStack.rb +2 -1
  498. data/lib/reports/GanttMilestone.rb +3 -3
  499. data/lib/reports/GanttRouter.rb +4 -1
  500. data/lib/reports/GanttTaskBar.rb +9 -7
  501. data/lib/reports/HTMLGraphics.rb +2 -1
  502. data/lib/reports/Navigator.rb +2 -1
  503. data/lib/reports/NikuReport.rb +79 -49
  504. data/lib/reports/Report.rb +42 -10
  505. data/lib/reports/ReportBase.rb +2 -1
  506. data/lib/reports/ReportContext.rb +2 -1
  507. data/lib/reports/ReportTable.rb +2 -1
  508. data/lib/reports/ReportTableCell.rb +63 -28
  509. data/lib/reports/ReportTableColumn.rb +2 -1
  510. data/lib/reports/ReportTableLegend.rb +5 -5
  511. data/lib/reports/ReportTableLine.rb +2 -1
  512. data/lib/reports/ResourceListRE.rb +2 -1
  513. data/lib/reports/StatusSheetReport.rb +4 -2
  514. data/lib/reports/TableReport.rb +42 -38
  515. data/lib/reports/TaskListRE.rb +4 -2
  516. data/lib/reports/TextReport.rb +2 -1
  517. data/lib/reports/TimeSheetReport.rb +4 -2
  518. data/lib/reports/TjpExportRE.rb +4 -2
  519. data/lib/{taskjuggler3.rb → tj3.rb} +6 -5
  520. data/lib/tj3client.rb +19 -36
  521. data/lib/tj3d.rb +6 -2
  522. data/lib/tj3man.rb +4 -3
  523. data/lib/tj3ss_receiver.rb +2 -1
  524. data/lib/tj3ss_sender.rb +2 -1
  525. data/lib/tj3ts_receiver.rb +2 -1
  526. data/lib/tj3ts_sender.rb +2 -1
  527. data/lib/tj3ts_summary.rb +2 -1
  528. data/manual/Day_To_Day_Juggling +36 -0
  529. data/manual/How_To_Contribute +9 -4
  530. data/manual/Installation +10 -3
  531. data/manual/TaskJuggler_Internals +0 -2
  532. data/manual/Tutorial +25 -3
  533. data/prj_cfg.rb +4 -2
  534. data/spec/IntervalList_spec.rb +138 -0
  535. data/spec/ProjectBroker_spec.rb +133 -0
  536. data/tasks/changelog.rake +41 -24
  537. data/tasks/csts.rake +1 -0
  538. data/tasks/gem.rake +1 -0
  539. data/tasks/rcov.rake +1 -1
  540. data/tasks/spec.rake +7 -0
  541. data/tasks/test.rake +1 -0
  542. data/test/MessageChecker.rb +2 -1
  543. data/test/TestSuite/CSV-Reports/niku.tjp +70 -0
  544. data/test/TestSuite/CSV-Reports/{celltext-Reference.csv → refs/celltext.csv} +0 -0
  545. data/test/TestSuite/CSV-Reports/refs/niku.csv +5 -0
  546. data/test/TestSuite/CSV-Reports/{resourcereport-Reference.csv → refs/resourcereport.csv} +0 -0
  547. data/test/TestSuite/CSV-Reports/{resourcereport_with_tasks-Reference.csv → refs/resourcereport_with_tasks.csv} +0 -0
  548. data/test/TestSuite/CSV-Reports/{sortByTree-Reference.csv → refs/sortByTree.csv} +0 -0
  549. data/test/TestSuite/CSV-Reports/{sortBy_duration.down-Reference.csv → refs/sortBy_duration.down.csv} +0 -0
  550. data/test/TestSuite/CSV-Reports/{sortBy_effort.up-Reference.csv → refs/sortBy_effort.up.csv} +0 -0
  551. data/test/TestSuite/CSV-Reports/{sortBy_plan.start.down-Reference.csv → refs/sortBy_plan.start.down.csv} +0 -0
  552. data/test/TestSuite/CSV-Reports/{taskreport-Reference.csv → refs/taskreport.csv} +0 -0
  553. data/test/TestSuite/CSV-Reports/{taskreport_with_resources-Reference.csv → refs/taskreport_with_resources.csv} +0 -0
  554. data/test/TestSuite/CSV-Reports/{weekly-Reference.csv → refs/weekly.csv} +0 -0
  555. data/test/TestSuite/HTML-Reports/Alerts.tjp +12 -0
  556. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +2 -2
  557. data/test/TestSuite/Scheduler/Correct/Container-2.tjp +1 -2
  558. data/test/TestSuite/Scheduler/Correct/InheritedAttributes.tjp +77 -0
  559. data/test/TestSuite/Scheduler/Correct/WeakDeps.tjp +40 -0
  560. data/test/TestSuite/Scheduler/Errors/loop_detected_12.tjp +2 -2
  561. data/test/TestSuite/Scheduler/Errors/loop_detected_13.tjp +3 -4
  562. data/test/TestSuite/Scheduler/Errors/loop_detected_3.tjp +2 -2
  563. data/test/TestSuite/Scheduler/Errors/loop_detected_6.tjp +8 -7
  564. data/test/TestSuite/Scheduler/Errors/onend_wrong_direction.tjp +19 -0
  565. data/test/TestSuite/Scheduler/Errors/onstart_wrong_direction.tjp +18 -0
  566. data/test/TestSuite/Scheduler/Errors/task_depend_multi.tjp +1 -2
  567. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/boss_2002-03-02.tji +46 -0
  568. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/dev2_2002-03-02.tji +22 -0
  569. data/test/TestSuite/StatusSheets/StatusSheetTemplates/2002-03-02/resources.yml +11 -0
  570. data/test/TestSuite/StatusSheets/StatusSheetTemplates/acceptable_intervals +1 -0
  571. data/test/TestSuite/StatusSheets/sender.log +256 -0
  572. data/test/TestSuite/StatusSheets/statussheets.log +9 -0
  573. data/test/TestSuite/StatusSheets/tj3d.log +395 -0
  574. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +2 -0
  575. data/test/TestSuite/Syntax/Correct/Niku.tjp +6 -1
  576. data/test/TestSuite/Syntax/Correct/Scenario.tjp +4 -1
  577. data/test/TestSuite/Syntax/Correct/Supplement.tjp +12 -5
  578. data/test/TestSuite/Syntax/Correct/TaskPrefix.tji +3 -0
  579. data/test/TestSuite/Syntax/Correct/TaskPrefix.tjp +24 -0
  580. data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -2
  581. data/test/TestSuite/Syntax/Correct/tutorial.tjp +15 -5
  582. data/test/all.rb +2 -4
  583. data/test/test_BatchProcessor.rb +2 -1
  584. data/test/test_CSV-Reports.rb +34 -23
  585. data/test/test_CSVFile.rb +2 -1
  586. data/test/test_CollisionDetector.rb +3 -2
  587. data/test/test_Journal.rb +2 -1
  588. data/test/test_Limits.rb +2 -1
  589. data/test/test_LogicalExpression.rb +2 -1
  590. data/test/test_MacroTable.rb +2 -1
  591. data/test/test_Project.rb +3 -2
  592. data/test/test_ProjectFileScanner.rb +2 -1
  593. data/test/test_PropertySet.rb +2 -1
  594. data/test/test_Query.rb +2 -1
  595. data/test/test_RealFormat.rb +2 -1
  596. data/test/test_ReportGenerator.rb +2 -1
  597. data/test/test_RichText.rb +2 -1
  598. data/test/test_Scheduler.rb +2 -1
  599. data/test/test_ShiftAssignments.rb +2 -1
  600. data/test/test_SimpleQueryExpander.rb +2 -1
  601. data/test/test_Syntax.rb +2 -1
  602. data/test/test_TextFormatter.rb +3 -2
  603. data/test/test_TjTime.rb +2 -1
  604. data/test/test_TjpExample.rb +2 -1
  605. data/test/test_URLParameter.rb +2 -1
  606. data/test/test_UTF8String.rb +2 -1
  607. data/test/test_WorkingHours.rb +2 -1
  608. data/test/test_deep_copy.rb +2 -1
  609. metadata +74 -20
  610. data/doc/StringIO.html +0 -595
  611. data/test/TestSuite/Scheduler/Errors/loop_detected_7.tjp +0 -46
  612. data/test/TestSuite/Scheduler/Errors/loop_detected_8.tjp +0 -51
  613. data/test/TestSuite/Scheduler/Errors/multiple_durations.tjp +0 -11
@@ -111,8 +111,6 @@
111
111
 
112
112
  <li><a href="#method-i-inheritAttributes">#inheritAttributes</a></li>
113
113
 
114
- <li><a href="#method-i-inheritAttributesFromScenario">#inheritAttributesFromScenario</a></li>
115
-
116
114
  <li><a href="#method-i-inherited">#inherited</a></li>
117
115
 
118
116
  <li><a href="#method-i-isChildOf%3F">#isChildOf?</a></li>
@@ -205,6 +203,8 @@
205
203
 
206
204
  <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
207
205
 
206
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
207
+
208
208
  <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
209
209
 
210
210
  <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
@@ -283,6 +283,8 @@
283
283
 
284
284
  <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
285
285
 
286
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
287
+
286
288
  <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
287
289
 
288
290
  <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
@@ -315,6 +317,8 @@
315
317
 
316
318
  <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
317
319
 
320
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
321
+
318
322
  <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
319
323
 
320
324
  <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
@@ -595,6 +599,8 @@
595
599
 
596
600
  <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
597
601
 
602
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
603
+
598
604
  <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
599
605
 
600
606
  <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
@@ -621,8 +627,6 @@
621
627
 
622
628
  <li><a href="../String.html">String</a></li>
623
629
 
624
- <li><a href="../StringIO.html">StringIO</a></li>
625
-
626
630
  </ul>
627
631
  <div id="no-class-search-results" style="display: none;">No matching classes.</div>
628
632
  </div>
@@ -846,53 +850,53 @@ be nil and specified by a hierachical <em>id</em> (e. g.
846
850
  <div class="method-source-code"
847
851
  id="new-source">
848
852
  <pre>
849
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 42</span>
850
- 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>)
851
- 43: <span class="ruby-ivar">@propertySet</span> = <span class="ruby-identifier">propertySet</span>
852
- 44: <span class="ruby-comment cmt"># If _id_ is still nil, we generate a unique id.</span>
853
- 45: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">id</span>
854
- 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>)
855
- 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>
856
- 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>
857
- 49: <span class="ruby-keyword kw">end</span>
858
- 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>)
859
- 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>)]
860
- 52: <span class="ruby-comment cmt"># Set parent to the parent property if it's still nil.</span>
861
- 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>
862
- 54: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
863
- 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>]
864
- 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>
865
- 57: <span class="ruby-keyword kw">end</span>
866
- 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>
867
- 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>
868
- 60: <span class="ruby-node">&quot;(#{parentId}) don't match&quot;</span>
869
- 61: <span class="ruby-keyword kw">end</span>
870
- 62: <span class="ruby-keyword kw">end</span>
871
- 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>]
872
- 64: <span class="ruby-keyword kw">else</span>
873
- 65: <span class="ruby-ivar">@id</span> = <span class="ruby-identifier">id</span>
874
- 66: <span class="ruby-keyword kw">end</span>
875
- 67: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
876
- 68: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">propertySet</span>.<span class="ruby-identifier">project</span>
877
- 69: <span class="ruby-ivar">@level</span> = <span class="ruby-value">1</span>
878
- 70: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>
879
- 71:
880
- 72: <span class="ruby-ivar">@parent</span> = <span class="ruby-identifier">parent</span>
881
- 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>
882
- 74: <span class="ruby-ivar">@children</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
883
- 75: <span class="ruby-comment cmt"># In case we have a parent object, we register this object as child of</span>
884
- 76: <span class="ruby-comment cmt"># the parent.</span>
885
- 77: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@parent</span>)
886
- 78: <span class="ruby-ivar">@parent</span>.<span class="ruby-identifier">addChild</span>(<span class="ruby-keyword kw">self</span>)
887
- 79: <span class="ruby-keyword kw">end</span>
888
- 80:
889
- 81: <span class="ruby-ivar">@attributes</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
890
- 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>)
891
- 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> }
892
- 84:
893
- 85: <span class="ruby-comment cmt"># Scenario specific data</span>
894
- 86: <span class="ruby-ivar">@data</span> = <span class="ruby-keyword kw">nil</span>
895
- 87: <span class="ruby-keyword kw">end</span></pre>
853
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 43</span>
854
+ 43: <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>)
855
+ 44: <span class="ruby-ivar">@propertySet</span> = <span class="ruby-identifier">propertySet</span>
856
+ 45: <span class="ruby-comment cmt"># If _id_ is still nil, we generate a unique id.</span>
857
+ 46: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">id</span>
858
+ 47: <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>)
859
+ 48: <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>
860
+ 49: <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>
861
+ 50: <span class="ruby-keyword kw">end</span>
862
+ 51: <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>)
863
+ 52: <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>)]
864
+ 53: <span class="ruby-comment cmt"># Set parent to the parent property if it's still nil.</span>
865
+ 54: <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>
866
+ 55: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
867
+ 56: <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>]
868
+ 57: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Fatal Error: parent must be member of same property set&quot;</span>
869
+ 58: <span class="ruby-keyword kw">end</span>
870
+ 59: <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>
871
+ 60: <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>
872
+ 61: <span class="ruby-node">&quot;(#{parentId}) don't match&quot;</span>
873
+ 62: <span class="ruby-keyword kw">end</span>
874
+ 63: <span class="ruby-keyword kw">end</span>
875
+ 64: <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>]
876
+ 65: <span class="ruby-keyword kw">else</span>
877
+ 66: <span class="ruby-ivar">@id</span> = <span class="ruby-identifier">id</span>
878
+ 67: <span class="ruby-keyword kw">end</span>
879
+ 68: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
880
+ 69: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">propertySet</span>.<span class="ruby-identifier">project</span>
881
+ 70: <span class="ruby-ivar">@level</span> = <span class="ruby-value">1</span>
882
+ 71: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>
883
+ 72:
884
+ 73: <span class="ruby-ivar">@parent</span> = <span class="ruby-identifier">parent</span>
885
+ 74: <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>
886
+ 75: <span class="ruby-ivar">@children</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>
887
+ 76: <span class="ruby-comment cmt"># In case we have a parent object, we register this object as child of</span>
888
+ 77: <span class="ruby-comment cmt"># the parent.</span>
889
+ 78: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@parent</span>)
890
+ 79: <span class="ruby-ivar">@parent</span>.<span class="ruby-identifier">addChild</span>(<span class="ruby-keyword kw">self</span>)
891
+ 80: <span class="ruby-keyword kw">end</span>
892
+ 81:
893
+ 82: <span class="ruby-ivar">@attributes</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span>
894
+ 83: <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>)
895
+ 84: <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> }
896
+ 85:
897
+ 86: <span class="ruby-comment cmt"># Scenario specific data</span>
898
+ 87: <span class="ruby-ivar">@data</span> = <span class="ruby-keyword kw">nil</span>
899
+ 88: <span class="ruby-keyword kw">end</span></pre>
896
900
  </div>
897
901
 
898
902
  </div>
@@ -933,14 +937,14 @@ the <a href="Scenario.html">Scenario</a>.
933
937
  <div class="method-source-code"
934
938
  id="--source">
935
939
  <pre>
936
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 431</span>
937
- 431: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenario</span>)
938
- 432: <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>)
939
- 433: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">get</span>
940
- 434: <span class="ruby-keyword kw">else</span>
941
- 435: <span class="ruby-identifier">get</span>(<span class="ruby-identifier">attributeId</span>);
942
- 436: <span class="ruby-keyword kw">end</span>
943
- 437: <span class="ruby-keyword kw">end</span></pre>
940
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 409</span>
941
+ 409: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenario</span>)
942
+ 410: <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>)
943
+ 411: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">get</span>
944
+ 412: <span class="ruby-keyword kw">else</span>
945
+ 413: <span class="ruby-identifier">get</span>(<span class="ruby-identifier">attributeId</span>);
946
+ 414: <span class="ruby-keyword kw">end</span>
947
+ 415: <span class="ruby-keyword kw">end</span></pre>
944
948
  </div>
945
949
 
946
950
  </div>
@@ -975,17 +979,35 @@ attribute does not exist, an exception is raised.
975
979
  <div class="method-source-code"
976
980
  id="--source">
977
981
  <pre>
978
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 417</span>
979
- 417: <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>)
980
- 418: <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>)
981
- 419: <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>)
982
- 420: <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>)
983
- 421: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
984
- 422: <span class="ruby-keyword kw">else</span>
985
- 423: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown attribute #{attributeId}&quot;</span>
986
- 424: <span class="ruby-keyword kw">end</span>
987
- 425: <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>)
988
- 426: <span class="ruby-keyword kw">end</span></pre>
982
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 377</span>
983
+ 377: <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>)
984
+ 378: <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>)
985
+ 379: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">AttributeBase</span>.<span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
986
+ 380: <span class="ruby-comment cmt"># If we get values in 'provided' mode, we copy them immedidately to</span>
987
+ 381: <span class="ruby-comment cmt"># all derived scenarios.</span>
988
+ 382: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">scenario</span>).<span class="ruby-identifier">all</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sc</span><span class="ruby-operator">|</span>
989
+ 383: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">sc</span>)
990
+ 384: <span class="ruby-identifier">overwrite</span> = <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span>
991
+ 385: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">scenario</span>
992
+ 386: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
993
+ 387: <span class="ruby-keyword kw">else</span>
994
+ 388: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherit</span>(<span class="ruby-identifier">value</span>)
995
+ 389: <span class="ruby-keyword kw">end</span>
996
+ 390: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">overwrite</span>
997
+ 391: <span class="ruby-identifier">raise</span> <span class="ruby-constant">AttributeOverwrite</span>,
998
+ 392: <span class="ruby-value str">&quot;Overwriting a previously provided value for attribute &quot;</span> <span class="ruby-operator">+</span>
999
+ 393: <span class="ruby-node">&quot;#{attributeId}&quot;</span>
1000
+ 394: <span class="ruby-keyword kw">end</span>
1001
+ 395: <span class="ruby-keyword kw">end</span>
1002
+ 396: <span class="ruby-keyword kw">else</span>
1003
+ 397: <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>)
1004
+ 398: <span class="ruby-keyword kw">end</span>
1005
+ 399: <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>)
1006
+ 400: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
1007
+ 401: <span class="ruby-keyword kw">else</span>
1008
+ 402: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown attribute #{attributeId}&quot;</span>
1009
+ 403: <span class="ruby-keyword kw">end</span>
1010
+ 404: <span class="ruby-keyword kw">end</span></pre>
989
1011
  </div>
990
1012
 
991
1013
  </div>
@@ -1018,13 +1040,13 @@ Add <em>child</em> node as child to this node.
1018
1040
  <div class="method-source-code"
1019
1041
  id="add-hild-source">
1020
1042
  <pre>
1021
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 295</span>
1022
- 295: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addChild</span>(<span class="ruby-identifier">child</span>)
1023
- 296: <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>
1024
- 297: <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>
1025
- 298: <span class="ruby-keyword kw">end</span>
1026
- 299: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">child</span>)
1027
- 300: <span class="ruby-keyword kw">end</span></pre>
1043
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 255</span>
1044
+ 255: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addChild</span>(<span class="ruby-identifier">child</span>)
1045
+ 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>
1046
+ 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>
1047
+ 258: <span class="ruby-keyword kw">end</span>
1048
+ 259: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">child</span>)
1049
+ 260: <span class="ruby-keyword kw">end</span></pre>
1028
1050
  </div>
1029
1051
 
1030
1052
  </div>
@@ -1057,14 +1079,14 @@ Returns a list of this node and all transient sub nodes.
1057
1079
  <div class="method-source-code"
1058
1080
  id="all-source">
1059
1081
  <pre>
1060
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 203</span>
1061
- 203: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">all</span>
1062
- 204: <span class="ruby-identifier">res</span> = [ <span class="ruby-keyword kw">self</span> ]
1063
- 205: <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>
1064
- 206: <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>)
1065
- 207: <span class="ruby-keyword kw">end</span>
1066
- 208: <span class="ruby-identifier">res</span>
1067
- 209: <span class="ruby-keyword kw">end</span></pre>
1082
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 163</span>
1083
+ 163: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">all</span>
1084
+ 164: <span class="ruby-identifier">res</span> = [ <span class="ruby-keyword kw">self</span> ]
1085
+ 165: <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>
1086
+ 166: <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>)
1087
+ 167: <span class="ruby-keyword kw">end</span>
1088
+ 168: <span class="ruby-identifier">res</span>
1089
+ 169: <span class="ruby-keyword kw">end</span></pre>
1068
1090
  </div>
1069
1091
 
1070
1092
  </div>
@@ -1097,18 +1119,18 @@ Return a list of all leaf nodes of this node.
1097
1119
  <div class="method-source-code"
1098
1120
  id="all-eaves-source">
1099
1121
  <pre>
1100
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 212</span>
1101
- 212: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">allLeaves</span>
1102
- 213: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">leaf?</span>
1103
- 214: <span class="ruby-identifier">res</span> = [ <span class="ruby-keyword kw">self</span> ]
1104
- 215: <span class="ruby-keyword kw">else</span>
1105
- 216: <span class="ruby-identifier">res</span> = []
1106
- 217: <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>
1107
- 218: <span class="ruby-identifier">res</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">allLeaves</span>
1108
- 219: <span class="ruby-keyword kw">end</span>
1109
- 220: <span class="ruby-keyword kw">end</span>
1110
- 221: <span class="ruby-identifier">res</span>
1111
- 222: <span class="ruby-keyword kw">end</span></pre>
1122
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 172</span>
1123
+ 172: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">allLeaves</span>
1124
+ 173: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">leaf?</span>
1125
+ 174: <span class="ruby-identifier">res</span> = [ <span class="ruby-keyword kw">self</span> ]
1126
+ 175: <span class="ruby-keyword kw">else</span>
1127
+ 176: <span class="ruby-identifier">res</span> = []
1128
+ 177: <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>
1129
+ 178: <span class="ruby-identifier">res</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">allLeaves</span>
1130
+ 179: <span class="ruby-keyword kw">end</span>
1131
+ 180: <span class="ruby-keyword kw">end</span>
1132
+ 181: <span class="ruby-identifier">res</span>
1133
+ 182: <span class="ruby-keyword kw">end</span></pre>
1112
1134
  </div>
1113
1135
 
1114
1136
  </div>
@@ -1141,10 +1163,10 @@ Return the type of the attribute with ID <em>attributeId</em>.
1141
1163
  <div class="method-source-code"
1142
1164
  id="attribute-efinition-source">
1143
1165
  <pre>
1144
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 345</span>
1145
- 345: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributeDefinition</span>(<span class="ruby-identifier">attributeId</span>)
1146
- 346: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">attributeDefinitions</span>[<span class="ruby-identifier">attributeId</span>]
1147
- 347: <span class="ruby-keyword kw">end</span></pre>
1166
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 305</span>
1167
+ 305: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributeDefinition</span>(<span class="ruby-identifier">attributeId</span>)
1168
+ 306: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">attributeDefinitions</span>[<span class="ruby-identifier">attributeId</span>]
1169
+ 307: <span class="ruby-keyword kw">end</span></pre>
1148
1170
  </div>
1149
1171
 
1150
1172
  </div>
@@ -1178,10 +1200,10 @@ Array that can be used with restoreAttributes().
1178
1200
  <div class="method-source-code"
1179
1201
  id="backup-ttributes-source">
1180
1202
  <pre>
1181
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 98</span>
1182
- 98: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backupAttributes</span>
1183
- 99: [ <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">clone</span>, <span class="ruby-ivar">@scenarioAttributes</span>.<span class="ruby-identifier">clone</span> ]
1184
- 100: <span class="ruby-keyword kw">end</span></pre>
1203
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 99</span>
1204
+ 99: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backupAttributes</span>
1205
+ 100: [ <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">clone</span>, <span class="ruby-ivar">@scenarioAttributes</span>.<span class="ruby-identifier">clone</span> ]
1206
+ 101: <span class="ruby-keyword kw">end</span></pre>
1185
1207
  </div>
1186
1208
 
1187
1209
  </div>
@@ -1214,10 +1236,10 @@ Return true if the node has children.
1214
1236
  <div class="method-source-code"
1215
1237
  id="container--source">
1216
1238
  <pre>
1217
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 317</span>
1218
- 317: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">container?</span>
1219
- 318: <span class="ruby-operator">!</span><span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>
1220
- 319: <span class="ruby-keyword kw">end</span></pre>
1239
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 277</span>
1240
+ 277: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">container?</span>
1241
+ 278: <span class="ruby-operator">!</span><span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>
1242
+ 279: <span class="ruby-keyword kw">end</span></pre>
1221
1243
  </div>
1222
1244
 
1223
1245
  </div>
@@ -1252,18 +1274,18 @@ for each scenario.
1252
1274
  <div class="method-source-code"
1253
1275
  id="declare-ttribute-source">
1254
1276
  <pre>
1255
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 332</span>
1256
- 332: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">declareAttribute</span>(<span class="ruby-identifier">attributeType</span>)
1257
- 333: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributeType</span>.<span class="ruby-identifier">scenarioSpecific</span>
1258
- 334: <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>
1259
- 335: <span class="ruby-identifier">attribute</span> = <span class="ruby-identifier">attributeType</span>.<span class="ruby-identifier">objClass</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">attributeType</span>)
1260
- 336: <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>
1261
- 337: <span class="ruby-keyword kw">end</span>
1262
- 338: <span class="ruby-keyword kw">else</span>
1263
- 339: <span class="ruby-identifier">attribute</span> = <span class="ruby-identifier">attributeType</span>.<span class="ruby-identifier">objClass</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">attributeType</span>)
1264
- 340: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attribute</span>.<span class="ruby-identifier">id</span>] = <span class="ruby-identifier">attribute</span>
1265
- 341: <span class="ruby-keyword kw">end</span>
1266
- 342: <span class="ruby-keyword kw">end</span></pre>
1277
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 292</span>
1278
+ 292: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">declareAttribute</span>(<span class="ruby-identifier">attributeType</span>)
1279
+ 293: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attributeType</span>.<span class="ruby-identifier">scenarioSpecific</span>
1280
+ 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>
1281
+ 295: <span class="ruby-identifier">attribute</span> = <span class="ruby-identifier">attributeType</span>.<span class="ruby-identifier">objClass</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">attributeType</span>)
1282
+ 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>
1283
+ 297: <span class="ruby-keyword kw">end</span>
1284
+ 298: <span class="ruby-keyword kw">else</span>
1285
+ 299: <span class="ruby-identifier">attribute</span> = <span class="ruby-identifier">attributeType</span>.<span class="ruby-identifier">objClass</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">attributeType</span>)
1286
+ 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>
1287
+ 301: <span class="ruby-keyword kw">end</span>
1288
+ 302: <span class="ruby-keyword kw">end</span></pre>
1267
1289
  </div>
1268
1290
 
1269
1291
  </div>
@@ -1299,10 +1321,10 @@ these references should remain references.
1299
1321
  <div class="method-source-code"
1300
1322
  id="deep-clone-source">
1301
1323
  <pre>
1302
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 92</span>
1303
- 92: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">deep_clone</span>
1304
- 93: <span class="ruby-keyword kw">self</span>
1305
- 94: <span class="ruby-keyword kw">end</span></pre>
1324
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 93</span>
1325
+ 93: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">deep_clone</span>
1326
+ 94: <span class="ruby-keyword kw">self</span>
1327
+ 95: <span class="ruby-keyword kw">end</span></pre>
1306
1328
  </div>
1307
1329
 
1308
1330
  </div>
@@ -1335,12 +1357,12 @@ Iterator over all non-scenario-specific attributes of this node.
1335
1357
  <div class="method-source-code"
1336
1358
  id="each-ttribute-source">
1337
1359
  <pre>
1338
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 225</span>
1339
- 225: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eachAttribute</span>
1340
- 226: <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>
1341
- 227: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">attr</span>
1342
- 228: <span class="ruby-keyword kw">end</span>
1343
- 229: <span class="ruby-keyword kw">end</span></pre>
1360
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 185</span>
1361
+ 185: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eachAttribute</span>
1362
+ 186: <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>
1363
+ 187: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">attr</span>
1364
+ 188: <span class="ruby-keyword kw">end</span>
1365
+ 189: <span class="ruby-keyword kw">end</span></pre>
1344
1366
  </div>
1345
1367
 
1346
1368
  </div>
@@ -1373,12 +1395,12 @@ Iterator over all scenario-specific attributes of this node.
1373
1395
  <div class="method-source-code"
1374
1396
  id="each-cenario-ttribute-source">
1375
1397
  <pre>
1376
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 232</span>
1377
- 232: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eachScenarioAttribute</span>(<span class="ruby-identifier">scenario</span>)
1378
- 233: <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>
1379
- 234: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">attr</span>
1380
- 235: <span class="ruby-keyword kw">end</span>
1381
- 236: <span class="ruby-keyword kw">end</span></pre>
1398
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 192</span>
1399
+ 192: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eachScenarioAttribute</span>(<span class="ruby-identifier">scenario</span>)
1400
+ 193: <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>
1401
+ 194: <span class="ruby-keyword kw">yield</span> <span class="ruby-identifier">attr</span>
1402
+ 195: <span class="ruby-keyword kw">end</span>
1403
+ 196: <span class="ruby-keyword kw">end</span></pre>
1382
1404
  </div>
1383
1405
 
1384
1406
  </div>
@@ -1414,17 +1436,17 @@ node to this node, separating the IDs by a dot.
1414
1436
  <div class="method-source-code"
1415
1437
  id="full-d-source">
1416
1438
  <pre>
1417
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 241</span>
1418
- 241: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fullId</span>
1419
- 242: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@id</span>
1420
- 243: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">flatNamespace</span>
1421
- 244: <span class="ruby-identifier">t</span> = <span class="ruby-keyword kw">self</span>
1422
- 245: <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>
1423
- 246: <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>
1424
- 247: <span class="ruby-keyword kw">end</span>
1425
- 248: <span class="ruby-keyword kw">end</span>
1426
- 249: <span class="ruby-identifier">res</span>
1427
- 250: <span class="ruby-keyword kw">end</span></pre>
1439
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 201</span>
1440
+ 201: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fullId</span>
1441
+ 202: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@id</span>
1442
+ 203: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">flatNamespace</span>
1443
+ 204: <span class="ruby-identifier">t</span> = <span class="ruby-keyword kw">self</span>
1444
+ 205: <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>
1445
+ 206: <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>
1446
+ 207: <span class="ruby-keyword kw">end</span>
1447
+ 208: <span class="ruby-keyword kw">end</span>
1448
+ 209: <span class="ruby-identifier">res</span>
1449
+ 210: <span class="ruby-keyword kw">end</span></pre>
1428
1450
  </div>
1429
1451
 
1430
1452
  </div>
@@ -1459,23 +1481,23 @@ raised.
1459
1481
  <div class="method-source-code"
1460
1482
  id="get-source">
1461
1483
  <pre>
1462
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 352</span>
1463
- 352: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">attributeId</span>)
1464
- 353: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">attributeId</span>
1465
- 354: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'id'</span>
1466
- 355: <span class="ruby-ivar">@id</span>
1467
- 356: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
1468
- 357: <span class="ruby-ivar">@name</span>
1469
- 358: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'seqno'</span>
1470
- 359: <span class="ruby-ivar">@sequenceNo</span>
1471
- 360: <span class="ruby-keyword kw">else</span>
1472
- 361: <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>)
1473
- 362: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown attribute '#{attributeId}' requested for &quot;</span> <span class="ruby-operator">+</span>
1474
- 363: <span class="ruby-node">&quot;#{self.class.to_s.sub(/TaskJuggler::/, '')} '#{fullId}'&quot;</span>
1475
- 364: <span class="ruby-keyword kw">end</span>
1476
- 365: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">get</span>
1477
- 366: <span class="ruby-keyword kw">end</span>
1478
- 367: <span class="ruby-keyword kw">end</span></pre>
1484
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 312</span>
1485
+ 312: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">attributeId</span>)
1486
+ 313: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">attributeId</span>
1487
+ 314: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'id'</span>
1488
+ 315: <span class="ruby-ivar">@id</span>
1489
+ 316: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
1490
+ 317: <span class="ruby-ivar">@name</span>
1491
+ 318: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'seqno'</span>
1492
+ 319: <span class="ruby-ivar">@sequenceNo</span>
1493
+ 320: <span class="ruby-keyword kw">else</span>
1494
+ 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>)
1495
+ 322: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown attribute '#{attributeId}' requested for &quot;</span> <span class="ruby-operator">+</span>
1496
+ 323: <span class="ruby-node">&quot;#{self.class.to_s.sub(/TaskJuggler::/, '')} '#{fullId}'&quot;</span>
1497
+ 324: <span class="ruby-keyword kw">end</span>
1498
+ 325: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">get</span>
1499
+ 326: <span class="ruby-keyword kw">end</span>
1500
+ 327: <span class="ruby-keyword kw">end</span></pre>
1479
1501
  </div>
1480
1502
 
1481
1503
  </div>
@@ -1510,23 +1532,23 @@ provided by <em>scenarioIdx</em>.
1510
1532
  <div class="method-source-code"
1511
1533
  id="get-ttr-source">
1512
1534
  <pre>
1513
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 372</span>
1514
- 372: <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>)
1515
- 373: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>.<span class="ruby-identifier">nil?</span>
1516
- 374: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">attributeId</span>
1517
- 375: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'id'</span>
1518
- 376: <span class="ruby-ivar">@id</span>
1519
- 377: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
1520
- 378: <span class="ruby-ivar">@name</span>
1521
- 379: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'seqno'</span>
1522
- 380: <span class="ruby-ivar">@sequenceNo</span>
1523
- 381: <span class="ruby-keyword kw">else</span>
1524
- 382: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>]
1525
- 383: <span class="ruby-keyword kw">end</span>
1526
- 384: <span class="ruby-keyword kw">else</span>
1527
- 385: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>]
1528
- 386: <span class="ruby-keyword kw">end</span>
1529
- 387: <span class="ruby-keyword kw">end</span></pre>
1535
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 332</span>
1536
+ 332: <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>)
1537
+ 333: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>.<span class="ruby-identifier">nil?</span>
1538
+ 334: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">attributeId</span>
1539
+ 335: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'id'</span>
1540
+ 336: <span class="ruby-ivar">@id</span>
1541
+ 337: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
1542
+ 338: <span class="ruby-ivar">@name</span>
1543
+ 339: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'seqno'</span>
1544
+ 340: <span class="ruby-ivar">@sequenceNo</span>
1545
+ 341: <span class="ruby-keyword kw">else</span>
1546
+ 342: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>]
1547
+ 343: <span class="ruby-keyword kw">end</span>
1548
+ 344: <span class="ruby-keyword kw">else</span>
1549
+ 345: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>]
1550
+ 346: <span class="ruby-keyword kw">end</span>
1551
+ 347: <span class="ruby-keyword kw">end</span></pre>
1530
1552
  </div>
1531
1553
 
1532
1554
  </div>
@@ -1560,20 +1582,20 @@ href="AttributeBase.html">AttributeBase</a> object.
1560
1582
  <div class="method-source-code"
1561
1583
  id="get-ttribute-source">
1562
1584
  <pre>
1563
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 391</span>
1564
- 391: <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>)
1565
- 392: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">attributeId</span>
1566
- 393: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'id'</span>
1567
- 394: <span class="ruby-constant">StringAttribute</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">fullId</span>)
1568
- 395: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
1569
- 396: <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>)
1570
- 397: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'seqno'</span>
1571
- 398: <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>)
1572
- 399: <span class="ruby-keyword kw">else</span>
1573
- 400: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>] <span class="ruby-operator">||</span>
1574
- 401: (<span class="ruby-identifier">scenarioIdx</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>])
1575
- 402: <span class="ruby-keyword kw">end</span>
1576
- 403: <span class="ruby-keyword kw">end</span></pre>
1585
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 351</span>
1586
+ 351: <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>)
1587
+ 352: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">attributeId</span>
1588
+ 353: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'id'</span>
1589
+ 354: <span class="ruby-constant">StringAttribute</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">fullId</span>)
1590
+ 355: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'name'</span>
1591
+ 356: <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>)
1592
+ 357: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'seqno'</span>
1593
+ 358: <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>)
1594
+ 359: <span class="ruby-keyword kw">else</span>
1595
+ 360: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>] <span class="ruby-operator">||</span>
1596
+ 361: (<span class="ruby-identifier">scenarioIdx</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>])
1597
+ 362: <span class="ruby-keyword kw">end</span>
1598
+ 363: <span class="ruby-keyword kw">end</span></pre>
1577
1599
  </div>
1578
1600
 
1579
1601
  </div>
@@ -1608,17 +1630,17 @@ of Fixnums.
1608
1630
  <div class="method-source-code"
1609
1631
  id="get-ndicies-source">
1610
1632
  <pre>
1611
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 283</span>
1612
- 283: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getIndicies</span>
1613
- 284: <span class="ruby-identifier">idcs</span> = []
1614
- 285: <span class="ruby-identifier">p</span> = <span class="ruby-keyword kw">self</span>
1615
- 286: <span class="ruby-keyword kw">begin</span>
1616
- 287: <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
1617
- 288: <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>))
1618
- 289: <span class="ruby-identifier">p</span> = <span class="ruby-identifier">parent</span>
1619
- 290: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">p</span>
1620
- 291: <span class="ruby-identifier">idcs</span>
1621
- 292: <span class="ruby-keyword kw">end</span></pre>
1633
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 243</span>
1634
+ 243: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getIndicies</span>
1635
+ 244: <span class="ruby-identifier">idcs</span> = []
1636
+ 245: <span class="ruby-identifier">p</span> = <span class="ruby-keyword kw">self</span>
1637
+ 246: <span class="ruby-keyword kw">begin</span>
1638
+ 247: <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
1639
+ 248: <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>))
1640
+ 249: <span class="ruby-identifier">p</span> = <span class="ruby-identifier">parent</span>
1641
+ 250: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">p</span>
1642
+ 251: <span class="ruby-identifier">idcs</span>
1643
+ 252: <span class="ruby-keyword kw">end</span></pre>
1622
1644
  </div>
1623
1645
 
1624
1646
  </div>
@@ -1653,18 +1675,18 @@ with an index for each level from the root to this node.
1653
1675
  <div class="method-source-code"
1654
1676
  id="get-ndicies-source">
1655
1677
  <pre>
1656
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 269</span>
1657
- 269: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getWBSIndicies</span>
1658
- 270: <span class="ruby-identifier">idcs</span> = []
1659
- 271: <span class="ruby-identifier">p</span> = <span class="ruby-keyword kw">self</span>
1660
- 272: <span class="ruby-keyword kw">begin</span>
1661
- 273: <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
1662
- 274: <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-operator">?</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">p</span>) <span class="ruby-operator">:</span>
1663
- 275: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">p</span>))
1664
- 276: <span class="ruby-identifier">p</span> = <span class="ruby-identifier">parent</span>
1665
- 277: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">p</span>
1666
- 278: <span class="ruby-identifier">idcs</span>
1667
- 279: <span class="ruby-keyword kw">end</span></pre>
1678
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 229</span>
1679
+ 229: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getWBSIndicies</span>
1680
+ 230: <span class="ruby-identifier">idcs</span> = []
1681
+ 231: <span class="ruby-identifier">p</span> = <span class="ruby-keyword kw">self</span>
1682
+ 232: <span class="ruby-keyword kw">begin</span>
1683
+ 233: <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
1684
+ 234: <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-operator">?</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">p</span>) <span class="ruby-operator">:</span>
1685
+ 235: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">p</span>))
1686
+ 236: <span class="ruby-identifier">p</span> = <span class="ruby-identifier">parent</span>
1687
+ 237: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">p</span>
1688
+ 238: <span class="ruby-identifier">idcs</span>
1689
+ 239: <span class="ruby-keyword kw">end</span></pre>
1668
1690
  </div>
1669
1691
 
1670
1692
  </div>
@@ -1698,125 +1720,53 @@ href="Project.html">Project</a>.
1698
1720
  <div class="method-source-code"
1699
1721
  id="inherit-ttributes-source">
1700
1722
  <pre>
1701
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 114</span>
1702
- 114: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inheritAttributes</span>
1703
- 115: <span class="ruby-comment cmt"># Inherit non-scenario-specific values</span>
1704
- 116: <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>
1705
- 117: <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>
1706
- 118:
1707
- 119: <span class="ruby-identifier">aId</span> = <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>
1708
- 120: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>
1709
- 121: <span class="ruby-comment cmt"># Inherit values from parent property</span>
1710
- 122: <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>)
1711
- 123: <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>))
1712
- 124: <span class="ruby-keyword kw">end</span>
1713
- 125: <span class="ruby-keyword kw">else</span>
1714
- 126: <span class="ruby-comment cmt"># Inherit selected values from project if top-level property</span>
1715
- 127: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">inheritedFromProject</span>
1716
- 128: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>[<span class="ruby-identifier">aId</span>]
1717
- 129: <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>])
1718
- 130: <span class="ruby-keyword kw">end</span>
1719
- 131: <span class="ruby-keyword kw">end</span>
1720
- 132: <span class="ruby-keyword kw">end</span>
1721
- 133: <span class="ruby-keyword kw">end</span>
1722
- 134:
1723
- 135: <span class="ruby-comment cmt"># Inherit scenario-specific values</span>
1724
- 136: <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>
1725
- 137: <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>
1726
- 138:
1727
- 139: <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>
1728
- 140: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>
1729
- 141: <span class="ruby-comment cmt"># Inherit scenario specific values from parent property</span>
1730
- 142: <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>
1731
- 143: <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>)
1732
- 144: <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>(
1733
- 145: <span class="ruby-identifier">parent</span>[<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>])
1734
- 146: <span class="ruby-keyword kw">end</span>
1735
- 147: <span class="ruby-keyword kw">else</span>
1736
- 148: <span class="ruby-comment cmt"># Inherit selected values from project if top-level property</span>
1737
- 149: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">inheritedFromProject</span>
1738
- 150: <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>
1739
- 151: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>]
1740
- 152: <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>(
1741
- 153: <span class="ruby-ivar">@project</span>[<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>])
1742
- 154: <span class="ruby-keyword kw">end</span>
1743
- 155: <span class="ruby-keyword kw">end</span>
1744
- 156: <span class="ruby-keyword kw">end</span>
1745
- 157: <span class="ruby-keyword kw">end</span>
1746
- 158: <span class="ruby-keyword kw">end</span>
1747
- 159: <span class="ruby-keyword kw">end</span></pre>
1748
- </div>
1749
-
1750
- </div>
1751
-
1752
-
1753
-
1754
-
1755
- </div>
1756
-
1757
-
1758
- <div id="inherit-ttributes-rom-cenario-method" class="method-detail ">
1759
- <a name="method-i-inheritAttributesFromScenario"></a>
1760
-
1761
- <div class="method-heading">
1762
-
1763
- <span class="method-name">inheritAttributesFromScenario</span><span
1764
- class="method-args">()</span>
1765
- <span class="method-click-advice">click to toggle source</span>
1766
-
1767
- </div>
1768
-
1769
- <div class="method-description">
1770
-
1771
- <p>
1772
- Inherit attribute values from the parent scenario. This is only being done
1773
- for attributes that don&#8217;t have a user-specified value already.
1774
- </p>
1775
-
1776
-
1777
-
1778
- <div class="method-source-code"
1779
- id="inherit-ttributes-rom-cenario-source">
1780
- <pre>
1781
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 163</span>
1782
- 163: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inheritAttributesFromScenario</span>
1783
- 164: <span class="ruby-comment cmt"># Inherit scenario-specific values</span>
1784
- 165: <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>
1785
- 166: <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>
1786
- 167:
1787
- 168: <span class="ruby-comment cmt"># We know that parent scenarios precede their children in the list. So</span>
1788
- 169: <span class="ruby-comment cmt"># it's safe to iterate over the list instead of recursively descend</span>
1789
- 170: <span class="ruby-comment cmt"># the tree.</span>
1790
- 171: <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>
1791
- 172: <span class="ruby-identifier">scenario</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">scenarioIdx</span>)
1792
- 173: <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>
1793
- 174: <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>
1794
- 175: <span class="ruby-comment cmt"># We copy only provided or inherited values from parent scenario when</span>
1795
- 176: <span class="ruby-comment cmt"># we don't have a provided value in this scenario. Inherited values</span>
1796
- 177: <span class="ruby-comment cmt"># will be overwritten</span>
1797
- 178: <span class="ruby-identifier">parPro</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>)
1798
- 179: <span class="ruby-identifier">parInh</span> = <span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">parentScenarioIdx</span>)
1799
- 180: <span class="ruby-identifier">chiPro</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>)
1800
- 181: <span class="ruby-identifier">chiInh</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>)
1801
- 182: <span class="ruby-comment cmt"># Parent/Child inheritance matrix</span>
1802
- 183: <span class="ruby-comment cmt"># P: Provided p: not provided</span>
1803
- 184: <span class="ruby-comment cmt"># I: Inherited i: not inherited</span>
1804
- 185: <span class="ruby-comment cmt"># -: Illegal N: Don't copy Y: Copy</span>
1805
- 186: <span class="ruby-comment cmt">#</span>
1806
- 187: <span class="ruby-comment cmt"># parent</span>
1807
- 188: <span class="ruby-comment cmt"># PI Pi pI pi</span>
1808
- 189: <span class="ruby-comment cmt"># child PI - - - -</span>
1809
- 190: <span class="ruby-comment cmt"># Pi - N N N</span>
1810
- 191: <span class="ruby-comment cmt"># pI - Y N N</span>
1811
- 192: <span class="ruby-comment cmt"># pi - Y Y N</span>
1812
- 193: <span class="ruby-keyword kw">if</span> ((<span class="ruby-identifier">parPro</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">parInh</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span>(<span class="ruby-identifier">chiPro</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">chiInh</span>)) <span class="ruby-operator">||</span>
1813
- 194: (<span class="ruby-identifier">parPro</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">chiPro</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">chiInh</span>)
1814
- 195: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>] =
1815
- 196: <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>
1816
- 197: <span class="ruby-keyword kw">end</span>
1817
- 198: <span class="ruby-keyword kw">end</span>
1818
- 199: <span class="ruby-keyword kw">end</span>
1819
- 200: <span class="ruby-keyword kw">end</span></pre>
1723
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 115</span>
1724
+ 115: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inheritAttributes</span>
1725
+ 116: <span class="ruby-comment cmt"># Inherit non-scenario-specific values</span>
1726
+ 117: <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>
1727
+ 118: <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>
1728
+ 119:
1729
+ 120: <span class="ruby-identifier">aId</span> = <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>
1730
+ 121: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>
1731
+ 122: <span class="ruby-comment cmt"># Inherit values from parent property</span>
1732
+ 123: <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>)
1733
+ 124: <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>))
1734
+ 125: <span class="ruby-keyword kw">end</span>
1735
+ 126: <span class="ruby-keyword kw">else</span>
1736
+ 127: <span class="ruby-comment cmt"># Inherit selected values from project if top-level property</span>
1737
+ 128: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">inheritedFromProject</span>
1738
+ 129: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>[<span class="ruby-identifier">aId</span>]
1739
+ 130: <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>])
1740
+ 131: <span class="ruby-keyword kw">end</span>
1741
+ 132: <span class="ruby-keyword kw">end</span>
1742
+ 133: <span class="ruby-keyword kw">end</span>
1743
+ 134: <span class="ruby-keyword kw">end</span>
1744
+ 135:
1745
+ 136: <span class="ruby-comment cmt"># Inherit scenario-specific values</span>
1746
+ 137: <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>
1747
+ 138: <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>
1748
+ 139:
1749
+ 140: <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>
1750
+ 141: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>
1751
+ 142: <span class="ruby-comment cmt"># Inherit scenario specific values from parent property</span>
1752
+ 143: <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>
1753
+ 144: <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>)
1754
+ 145: <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>(
1755
+ 146: <span class="ruby-identifier">parent</span>[<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>])
1756
+ 147: <span class="ruby-keyword kw">end</span>
1757
+ 148: <span class="ruby-keyword kw">else</span>
1758
+ 149: <span class="ruby-comment cmt"># Inherit selected values from project if top-level property</span>
1759
+ 150: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">inheritedFromProject</span>
1760
+ 151: <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>
1761
+ 152: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>]
1762
+ 153: <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>(
1763
+ 154: <span class="ruby-ivar">@project</span>[<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>])
1764
+ 155: <span class="ruby-keyword kw">end</span>
1765
+ 156: <span class="ruby-keyword kw">end</span>
1766
+ 157: <span class="ruby-keyword kw">end</span>
1767
+ 158: <span class="ruby-keyword kw">end</span>
1768
+ 159: <span class="ruby-keyword kw">end</span>
1769
+ 160: <span class="ruby-keyword kw">end</span></pre>
1820
1770
  </div>
1821
1771
 
1822
1772
  </div>
@@ -1851,16 +1801,16 @@ scenario.
1851
1801
  <div class="method-source-code"
1852
1802
  id="inherited-source">
1853
1803
  <pre>
1854
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 453</span>
1855
- 453: <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>)
1856
- 454: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
1857
- 455: <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>
1858
- 456: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
1859
- 457: <span class="ruby-keyword kw">else</span>
1860
- 458: <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>
1861
- 459: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
1862
- 460: <span class="ruby-keyword kw">end</span>
1863
- 461: <span class="ruby-keyword kw">end</span></pre>
1804
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 431</span>
1805
+ 431: <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>)
1806
+ 432: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
1807
+ 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">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">nil?</span>
1808
+ 434: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
1809
+ 435: <span class="ruby-keyword kw">else</span>
1810
+ 436: <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>
1811
+ 437: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
1812
+ 438: <span class="ruby-keyword kw">end</span>
1813
+ 439: <span class="ruby-keyword kw">end</span></pre>
1864
1814
  </div>
1865
1815
 
1866
1816
  </div>
@@ -1894,14 +1844,14 @@ Find out if this property is a direct or indirect child of
1894
1844
  <div class="method-source-code"
1895
1845
  id="is-hild-f--source">
1896
1846
  <pre>
1897
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 303</span>
1898
- 303: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isChildOf?</span>(<span class="ruby-identifier">ancestor</span>)
1899
- 304: <span class="ruby-identifier">parent</span> = <span class="ruby-keyword kw">self</span>
1900
- 305: <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>
1901
- 306: <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>)
1902
- 307: <span class="ruby-keyword kw">end</span>
1903
- 308: <span class="ruby-keyword kw">false</span>
1904
- 309: <span class="ruby-keyword kw">end</span></pre>
1847
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 263</span>
1848
+ 263: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isChildOf?</span>(<span class="ruby-identifier">ancestor</span>)
1849
+ 264: <span class="ruby-identifier">parent</span> = <span class="ruby-keyword kw">self</span>
1850
+ 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>
1851
+ 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>)
1852
+ 267: <span class="ruby-keyword kw">end</span>
1853
+ 268: <span class="ruby-keyword kw">false</span>
1854
+ 269: <span class="ruby-keyword kw">end</span></pre>
1905
1855
  </div>
1906
1856
 
1907
1857
  </div>
@@ -1934,10 +1884,10 @@ Return true if the node is a leaf node (has no children).
1934
1884
  <div class="method-source-code"
1935
1885
  id="leaf--source">
1936
1886
  <pre>
1937
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 312</span>
1938
- 312: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">leaf?</span>
1939
- 313: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>
1940
- 314: <span class="ruby-keyword kw">end</span></pre>
1887
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 272</span>
1888
+ 272: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">leaf?</span>
1889
+ 273: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span>
1890
+ 274: <span class="ruby-keyword kw">end</span></pre>
1941
1891
  </div>
1942
1892
 
1943
1893
  </div>
@@ -1972,17 +1922,17 @@ have to be calculated each time the function is called.
1972
1922
  <div class="method-source-code"
1973
1923
  id="level-source">
1974
1924
  <pre>
1975
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 255</span>
1976
- 255: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">level</span>
1977
- 256: <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>
1978
- 257:
1979
- 258: <span class="ruby-identifier">t</span> = <span class="ruby-keyword kw">self</span>
1980
- 259: <span class="ruby-ivar">@level</span> = <span class="ruby-value">0</span>
1981
- 260: <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>
1982
- 261: <span class="ruby-ivar">@level</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1983
- 262: <span class="ruby-keyword kw">end</span>
1984
- 263: <span class="ruby-ivar">@level</span>
1985
- 264: <span class="ruby-keyword kw">end</span></pre>
1925
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 215</span>
1926
+ 215: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">level</span>
1927
+ 216: <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>
1928
+ 217:
1929
+ 218: <span class="ruby-identifier">t</span> = <span class="ruby-keyword kw">self</span>
1930
+ 219: <span class="ruby-ivar">@level</span> = <span class="ruby-value">0</span>
1931
+ 220: <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>
1932
+ 221: <span class="ruby-ivar">@level</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
1933
+ 222: <span class="ruby-keyword kw">end</span>
1934
+ 223: <span class="ruby-ivar">@level</span>
1935
+ 224: <span class="ruby-keyword kw">end</span></pre>
1986
1936
  </div>
1987
1937
 
1988
1938
  </div>
@@ -2015,10 +1965,10 @@ Return the index of the child <em>node</em>.
2015
1965
  <div class="method-source-code"
2016
1966
  id="level-eq-o-source">
2017
1967
  <pre>
2018
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 109</span>
2019
- 109: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">node</span>)
2020
- 110: <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>
2021
- 111: <span class="ruby-keyword kw">end</span></pre>
1968
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 110</span>
1969
+ 110: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">node</span>)
1970
+ 111: <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>
1971
+ 112: <span class="ruby-keyword kw">end</span></pre>
2022
1972
  </div>
2023
1973
 
2024
1974
  </div>
@@ -2055,10 +2005,10 @@ href="Scenario.html">Scenario</a> class.
2055
2005
  <div class="method-source-code"
2056
2006
  id="method-missing-source">
2057
2007
  <pre>
2058
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 560</span>
2059
- 560: <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-identifier">args</span>)
2060
- 561: <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-identifier">args</span>)
2061
- 562: <span class="ruby-keyword kw">end</span></pre>
2008
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 538</span>
2009
+ 538: <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-identifier">args</span>)
2010
+ 539: <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-identifier">args</span>)
2011
+ 540: <span class="ruby-keyword kw">end</span></pre>
2062
2012
  </div>
2063
2013
 
2064
2014
  </div>
@@ -2089,17 +2039,17 @@ href="Scenario.html">Scenario</a> class.
2089
2039
  <div class="method-source-code"
2090
2040
  id="modified--source">
2091
2041
  <pre>
2092
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 463</span>
2093
- 463: <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>)
2094
- 464: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
2095
- 465: <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>
2096
- 466: <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>
2097
- 467: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
2098
- 468: <span class="ruby-keyword kw">else</span>
2099
- 469: <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>
2100
- 470: <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>
2101
- 471: <span class="ruby-keyword kw">end</span>
2102
- 472: <span class="ruby-keyword kw">end</span></pre>
2042
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 441</span>
2043
+ 441: <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>)
2044
+ 442: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
2045
+ 443: <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>
2046
+ 444: <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>
2047
+ 445: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
2048
+ 446: <span class="ruby-keyword kw">else</span>
2049
+ 447: <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>
2050
+ 448: <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>
2051
+ 449: <span class="ruby-keyword kw">end</span>
2052
+ 450: <span class="ruby-keyword kw">end</span></pre>
2103
2053
  </div>
2104
2054
 
2105
2055
  </div>
@@ -2133,16 +2083,16 @@ scenario <em>scenarioIdx</em>) has been provided by the user.
2133
2083
  <div class="method-source-code"
2134
2084
  id="provided-source">
2135
2085
  <pre>
2136
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 441</span>
2137
- 441: <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>)
2138
- 442: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
2139
- 443: <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>
2140
- 444: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span>
2141
- 445: <span class="ruby-keyword kw">else</span>
2142
- 446: <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>
2143
- 447: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span>
2144
- 448: <span class="ruby-keyword kw">end</span>
2145
- 449: <span class="ruby-keyword kw">end</span></pre>
2086
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 419</span>
2087
+ 419: <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>)
2088
+ 420: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
2089
+ 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">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">nil?</span>
2090
+ 422: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span>
2091
+ 423: <span class="ruby-keyword kw">else</span>
2092
+ 424: <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>
2093
+ 425: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span>
2094
+ 426: <span class="ruby-keyword kw">end</span>
2095
+ 427: <span class="ruby-keyword kw">end</span></pre>
2146
2096
  </div>
2147
2097
 
2148
2098
  </div>
@@ -2173,13 +2123,13 @@ scenario <em>scenarioIdx</em>) has been provided by the user.
2173
2123
  <div class="method-source-code"
2174
2124
  id="query-alert-source">
2175
2125
  <pre>
2176
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 474</span>
2177
- 474: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_alert</span>(<span class="ruby-identifier">query</span>)
2178
- 475: <span class="ruby-identifier">journal</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>]
2179
- 476: <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> =
2180
- 477: <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>)
2181
- 478: <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>)
2182
- 479: <span class="ruby-keyword kw">end</span></pre>
2126
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 452</span>
2127
+ 452: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_alert</span>(<span class="ruby-identifier">query</span>)
2128
+ 453: <span class="ruby-identifier">journal</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>]
2129
+ 454: <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> =
2130
+ 455: <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>)
2131
+ 456: <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>)
2132
+ 457: <span class="ruby-keyword kw">end</span></pre>
2183
2133
  </div>
2184
2134
 
2185
2135
  </div>
@@ -2210,12 +2160,12 @@ scenario <em>scenarioIdx</em>) has been provided by the user.
2210
2160
  <div class="method-source-code"
2211
2161
  id="query-alertmessages-source">
2212
2162
  <pre>
2213
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 481</span>
2214
- 481: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_alertmessages</span>(<span class="ruby-identifier">query</span>)
2215
- 482: <span class="ruby-identifier">journalMessages</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">alertEntries</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-value">1</span>,
2216
- 483: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>),
2217
- 484: <span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">true</span>)
2218
- 485: <span class="ruby-keyword kw">end</span></pre>
2163
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 459</span>
2164
+ 459: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_alertmessages</span>(<span class="ruby-identifier">query</span>)
2165
+ 460: <span class="ruby-identifier">journalMessages</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">alertEntries</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-value">1</span>,
2166
+ 461: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>),
2167
+ 462: <span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">true</span>)
2168
+ 463: <span class="ruby-keyword kw">end</span></pre>
2219
2169
  </div>
2220
2170
 
2221
2171
  </div>
@@ -2246,12 +2196,12 @@ scenario <em>scenarioIdx</em>) has been provided by the user.
2246
2196
  <div class="method-source-code"
2247
2197
  id="query-alertsummaries-source">
2248
2198
  <pre>
2249
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 487</span>
2250
- 487: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_alertsummaries</span>(<span class="ruby-identifier">query</span>)
2251
- 488: <span class="ruby-identifier">journalMessages</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">alertEntries</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-value">1</span>,
2252
- 489: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>),
2253
- 490: <span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">false</span>)
2254
- 491: <span class="ruby-keyword kw">end</span></pre>
2199
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 465</span>
2200
+ 465: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_alertsummaries</span>(<span class="ruby-identifier">query</span>)
2201
+ 466: <span class="ruby-identifier">journalMessages</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">alertEntries</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-value">1</span>,
2202
+ 467: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>),
2203
+ 468: <span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">false</span>)
2204
+ 469: <span class="ruby-keyword kw">end</span></pre>
2255
2205
  </div>
2256
2206
 
2257
2207
  </div>
@@ -2282,22 +2232,22 @@ scenario <em>scenarioIdx</em>) has been provided by the user.
2282
2232
  <div class="method-source-code"
2283
2233
  id="query-alerttrend-source">
2284
2234
  <pre>
2285
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 505</span>
2286
- 505: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_alerttrend</span>(<span class="ruby-identifier">query</span>)
2287
- 506: <span class="ruby-identifier">journal</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>]
2288
- 507: <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>)
2289
- 508: <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>)
2290
- 509: <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>
2291
- 510: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">sortable</span> = <span class="ruby-value">0</span>
2292
- 511: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">string</span> = <span class="ruby-value str">'Up'</span>
2293
- 512: <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>
2294
- 513: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">sortable</span> = <span class="ruby-value">2</span>
2295
- 514: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">string</span> = <span class="ruby-value str">'Down'</span>
2296
- 515: <span class="ruby-keyword kw">else</span>
2297
- 516: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">sortable</span> = <span class="ruby-value">1</span>
2298
- 517: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">string</span> = <span class="ruby-value str">'Flat'</span>
2299
- 518: <span class="ruby-keyword kw">end</span>
2300
- 519: <span class="ruby-keyword kw">end</span></pre>
2235
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 483</span>
2236
+ 483: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_alerttrend</span>(<span class="ruby-identifier">query</span>)
2237
+ 484: <span class="ruby-identifier">journal</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>]
2238
+ 485: <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>)
2239
+ 486: <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>)
2240
+ 487: <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>
2241
+ 488: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">sortable</span> = <span class="ruby-value">0</span>
2242
+ 489: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">string</span> = <span class="ruby-value str">'Up'</span>
2243
+ 490: <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>
2244
+ 491: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">sortable</span> = <span class="ruby-value">2</span>
2245
+ 492: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">string</span> = <span class="ruby-value str">'Down'</span>
2246
+ 493: <span class="ruby-keyword kw">else</span>
2247
+ 494: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">sortable</span> = <span class="ruby-value">1</span>
2248
+ 495: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">string</span> = <span class="ruby-value str">'Flat'</span>
2249
+ 496: <span class="ruby-keyword kw">end</span>
2250
+ 497: <span class="ruby-keyword kw">end</span></pre>
2301
2251
  </div>
2302
2252
 
2303
2253
  </div>
@@ -2328,12 +2278,12 @@ scenario <em>scenarioIdx</em>) has been provided by the user.
2328
2278
  <div class="method-source-code"
2329
2279
  id="query-journalmessages-source">
2330
2280
  <pre>
2331
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 493</span>
2332
- 493: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_journalmessages</span>(<span class="ruby-identifier">query</span>)
2333
- 494: <span class="ruby-identifier">journalMessages</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">currentEntries</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-value">0</span>,
2334
- 495: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>),
2335
- 496: <span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">true</span>)
2336
- 497: <span class="ruby-keyword kw">end</span></pre>
2281
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 471</span>
2282
+ 471: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_journalmessages</span>(<span class="ruby-identifier">query</span>)
2283
+ 472: <span class="ruby-identifier">journalMessages</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">currentEntries</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-value">0</span>,
2284
+ 473: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>),
2285
+ 474: <span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">true</span>)
2286
+ 475: <span class="ruby-keyword kw">end</span></pre>
2337
2287
  </div>
2338
2288
 
2339
2289
  </div>
@@ -2364,12 +2314,12 @@ scenario <em>scenarioIdx</em>) has been provided by the user.
2364
2314
  <div class="method-source-code"
2365
2315
  id="query-journalsummaries-source">
2366
2316
  <pre>
2367
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 499</span>
2368
- 499: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_journalsummaries</span>(<span class="ruby-identifier">query</span>)
2369
- 500: <span class="ruby-identifier">journalMessages</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">currentEntries</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-value">0</span>,
2370
- 501: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>),
2371
- 502: <span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">false</span>)
2372
- 503: <span class="ruby-keyword kw">end</span></pre>
2317
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 477</span>
2318
+ 477: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_journalsummaries</span>(<span class="ruby-identifier">query</span>)
2319
+ 478: <span class="ruby-identifier">journalMessages</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">currentEntries</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-value">0</span>,
2320
+ 479: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>),
2321
+ 480: <span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">false</span>)
2322
+ 481: <span class="ruby-keyword kw">end</span></pre>
2373
2323
  </div>
2374
2324
 
2375
2325
  </div>
@@ -2403,10 +2353,10 @@ Array generated by backupAttributes().
2403
2353
  <div class="method-source-code"
2404
2354
  id="restore-ttributes-source">
2405
2355
  <pre>
2406
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 104</span>
2407
- 104: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">restoreAttributes</span>(<span class="ruby-identifier">backup</span>)
2408
- 105: <span class="ruby-ivar">@attributes</span>, <span class="ruby-ivar">@scenarioAttributes</span> = <span class="ruby-identifier">backup</span>
2409
- 106: <span class="ruby-keyword kw">end</span></pre>
2356
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 105</span>
2357
+ 105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">restoreAttributes</span>(<span class="ruby-identifier">backup</span>)
2358
+ 106: <span class="ruby-ivar">@attributes</span>, <span class="ruby-ivar">@scenarioAttributes</span> = <span class="ruby-identifier">backup</span>
2359
+ 107: <span class="ruby-keyword kw">end</span></pre>
2410
2360
  </div>
2411
2361
 
2412
2362
  </div>
@@ -2439,14 +2389,14 @@ Return the top-level node for this node.
2439
2389
  <div class="method-source-code"
2440
2390
  id="root-source">
2441
2391
  <pre>
2442
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 322</span>
2443
- 322: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">root</span>
2444
- 323: <span class="ruby-identifier">n</span> = <span class="ruby-keyword kw">self</span>
2445
- 324: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">parent</span>
2446
- 325: <span class="ruby-identifier">n</span> = <span class="ruby-identifier">n</span>.<span class="ruby-identifier">parent</span>
2447
- 326: <span class="ruby-keyword kw">end</span>
2448
- 327: <span class="ruby-identifier">n</span>
2449
- 328: <span class="ruby-keyword kw">end</span></pre>
2392
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 282</span>
2393
+ 282: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">root</span>
2394
+ 283: <span class="ruby-identifier">n</span> = <span class="ruby-keyword kw">self</span>
2395
+ 284: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">parent</span>
2396
+ 285: <span class="ruby-identifier">n</span> = <span class="ruby-identifier">n</span>.<span class="ruby-identifier">parent</span>
2397
+ 286: <span class="ruby-keyword kw">end</span>
2398
+ 287: <span class="ruby-identifier">n</span>
2399
+ 288: <span class="ruby-keyword kw">end</span></pre>
2450
2400
  </div>
2451
2401
 
2452
2402
  </div>
@@ -2481,13 +2431,13 @@ raised.
2481
2431
  <div class="method-source-code"
2482
2432
  id="set-source">
2483
2433
  <pre>
2484
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 407</span>
2485
- 407: <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>)
2486
- 408: <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>)
2487
- 409: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown attribute #{attributeId}&quot;</span>
2488
- 410: <span class="ruby-keyword kw">end</span>
2489
- 411: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
2490
- 412: <span class="ruby-keyword kw">end</span></pre>
2434
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 367</span>
2435
+ 367: <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>)
2436
+ 368: <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>)
2437
+ 369: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown attribute #{attributeId}&quot;</span>
2438
+ 370: <span class="ruby-keyword kw">end</span>
2439
+ 371: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
2440
+ 372: <span class="ruby-keyword kw">end</span></pre>
2491
2441
  </div>
2492
2442
 
2493
2443
  </div>
@@ -2524,10 +2474,10 @@ raised.
2524
2474
  <div class="method-source-code"
2525
2475
  id="indent-source">
2526
2476
  <pre>
2527
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 602</span>
2528
- 602: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">str</span>)
2529
- 603: <span class="ruby-identifier">tag</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\n/</span>, <span class="ruby-node">&quot;\n#{' ' * tag.length}&quot;</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span>
2530
- 604: <span class="ruby-keyword kw">end</span></pre>
2477
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 580</span>
2478
+ 580: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">str</span>)
2479
+ 581: <span class="ruby-identifier">tag</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\n/</span>, <span class="ruby-node">&quot;\n#{' ' * tag.length}&quot;</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span>
2480
+ 582: <span class="ruby-keyword kw">end</span></pre>
2531
2481
  </div>
2532
2482
 
2533
2483
  </div>
@@ -2561,41 +2511,41 @@ href="Query.html">Query</a>.
2561
2511
  <div class="method-source-code"
2562
2512
  id="journal-essages-source">
2563
2513
  <pre>
2564
- <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 567</span>
2565
- 567: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">journalMessages</span>(<span class="ruby-identifier">entries</span>, <span class="ruby-identifier">query</span>, <span class="ruby-identifier">longVersion</span>)
2566
- 568: <span class="ruby-comment cmt"># The components of the message are either UTF-8 text or RichText. For</span>
2567
- 569: <span class="ruby-comment cmt"># the RichText components, we use the originally provided markup since</span>
2568
- 570: <span class="ruby-comment cmt"># we compose the result as RichText markup first.</span>
2569
- 571: <span class="ruby-identifier">rText</span> = <span class="ruby-value str">''</span>
2570
- 572: <span class="ruby-identifier">entries</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
2571
- 573: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;==== &lt;nowiki&gt;&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">headline</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;&lt;/nowiki&gt; ====\n&quot;</span>
2572
- 574: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;''Reported on #{entry.date.to_s(query.timeFormat)}'' &quot;</span>
2573
- 575: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">author</span>
2574
- 576: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;''by &lt;nowiki&gt;#{entry.author.name}&lt;/nowiki&gt;''&quot;</span>
2575
- 577: <span class="ruby-keyword kw">end</span>
2576
- 578: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
2577
- 579: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">summary</span>
2578
- 580: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">summary</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
2579
- 581: <span class="ruby-keyword kw">end</span>
2580
- 582: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">longVersion</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">details</span>
2581
- 583: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
2582
- 584: <span class="ruby-keyword kw">end</span>
2583
- 585: <span class="ruby-keyword kw">end</span>
2584
- 586: <span class="ruby-comment cmt"># Now convert the RichText markup String into RichTextIntermediate</span>
2585
- 587: <span class="ruby-comment cmt"># format.</span>
2586
- 588: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">rti</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rText</span>, <span class="ruby-constant">RTFHandlers</span>.<span class="ruby-identifier">create</span>(<span class="ruby-ivar">@project</span>),
2587
- 589: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>).
2588
- 590: <span class="ruby-identifier">generateIntermediateFormat</span>)
2589
- 591: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ptn_journal'</span>,
2590
- 592: <span class="ruby-value str">&quot;Syntax error in journal message&quot;</span>)
2591
- 593: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
2592
- 594: <span class="ruby-keyword kw">end</span>
2593
- 595: <span class="ruby-comment cmt"># No section numbers, please!</span>
2594
- 596: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
2595
- 597: <span class="ruby-comment cmt"># We use a special class to allow CSS formating.</span>
2596
- 598: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">cssClass</span> = <span class="ruby-value str">'tj_journal'</span>
2597
- 599: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">rti</span>
2598
- 600: <span class="ruby-keyword kw">end</span></pre>
2514
+ <span class="ruby-comment cmt"># File lib/PropertyTreeNode.rb, line 545</span>
2515
+ 545: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">journalMessages</span>(<span class="ruby-identifier">entries</span>, <span class="ruby-identifier">query</span>, <span class="ruby-identifier">longVersion</span>)
2516
+ 546: <span class="ruby-comment cmt"># The components of the message are either UTF-8 text or RichText. For</span>
2517
+ 547: <span class="ruby-comment cmt"># the RichText components, we use the originally provided markup since</span>
2518
+ 548: <span class="ruby-comment cmt"># we compose the result as RichText markup first.</span>
2519
+ 549: <span class="ruby-identifier">rText</span> = <span class="ruby-value str">''</span>
2520
+ 550: <span class="ruby-identifier">entries</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
2521
+ 551: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;==== &lt;nowiki&gt;&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">headline</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;&lt;/nowiki&gt; ====\n&quot;</span>
2522
+ 552: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;''Reported on #{entry.date.to_s(query.timeFormat)}'' &quot;</span>
2523
+ 553: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">author</span>
2524
+ 554: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;''by &lt;nowiki&gt;#{entry.author.name}&lt;/nowiki&gt;''&quot;</span>
2525
+ 555: <span class="ruby-keyword kw">end</span>
2526
+ 556: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
2527
+ 557: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">summary</span>
2528
+ 558: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">summary</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
2529
+ 559: <span class="ruby-keyword kw">end</span>
2530
+ 560: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">longVersion</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">details</span>
2531
+ 561: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
2532
+ 562: <span class="ruby-keyword kw">end</span>
2533
+ 563: <span class="ruby-keyword kw">end</span>
2534
+ 564: <span class="ruby-comment cmt"># Now convert the RichText markup String into RichTextIntermediate</span>
2535
+ 565: <span class="ruby-comment cmt"># format.</span>
2536
+ 566: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">rti</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rText</span>, <span class="ruby-constant">RTFHandlers</span>.<span class="ruby-identifier">create</span>(<span class="ruby-ivar">@project</span>),
2537
+ 567: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>).
2538
+ 568: <span class="ruby-identifier">generateIntermediateFormat</span>)
2539
+ 569: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ptn_journal'</span>,
2540
+ 570: <span class="ruby-value str">&quot;Syntax error in journal message&quot;</span>)
2541
+ 571: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
2542
+ 572: <span class="ruby-keyword kw">end</span>
2543
+ 573: <span class="ruby-comment cmt"># No section numbers, please!</span>
2544
+ 574: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
2545
+ 575: <span class="ruby-comment cmt"># We use a special class to allow CSS formating.</span>
2546
+ 576: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">cssClass</span> = <span class="ruby-value str">'tj_journal'</span>
2547
+ 577: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">rti</span>
2548
+ 578: <span class="ruby-keyword kw">end</span></pre>
2599
2549
  </div>
2600
2550
 
2601
2551
  </div>