taskjuggler 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (495) hide show
  1. data/benchmarks/UTF-8-Strings.rb +58 -0
  2. data/data/css/tjmanual.css +52 -0
  3. data/data/css/tjreport.css +195 -0
  4. data/data/icons/details.png +0 -0
  5. data/data/icons/flag-green.png +0 -0
  6. data/data/icons/flag-red.png +0 -0
  7. data/data/icons/flag-yellow.png +0 -0
  8. data/data/icons/resource.png +0 -0
  9. data/data/icons/resourcegroup.png +0 -0
  10. data/data/icons/task.png +0 -0
  11. data/data/icons/taskgroup.png +0 -0
  12. data/data/icons/trend-down.png +0 -0
  13. data/data/icons/trend-flat.png +0 -0
  14. data/data/icons/trend-up.png +0 -0
  15. data/data/scripts/wz_tooltip.js +1301 -0
  16. data/doc/classes/AppConfig.html +298 -230
  17. data/doc/classes/Arguments.html +8 -8
  18. data/doc/classes/Object.html +7 -7
  19. data/doc/classes/String.html +89 -89
  20. data/doc/classes/TaskJuggler.html +396 -264
  21. data/doc/classes/TaskJuggler/Account.html +18 -18
  22. data/doc/classes/TaskJuggler/AccountAttribute.html +26 -26
  23. data/doc/classes/TaskJuggler/AccountScenario.html +12 -12
  24. data/doc/classes/TaskJuggler/Allocation.html +30 -30
  25. data/doc/classes/TaskJuggler/AllocationAttribute.html +26 -26
  26. data/doc/classes/TaskJuggler/AttributeBase.html +227 -115
  27. data/doc/classes/TaskJuggler/AttributeDefinition.html +6 -6
  28. data/doc/classes/TaskJuggler/BatchProcessor.html +117 -83
  29. data/doc/classes/TaskJuggler/Booking.html +18 -18
  30. data/doc/classes/TaskJuggler/BookingListAttribute.html +26 -26
  31. data/doc/classes/TaskJuggler/BooleanAttribute.html +26 -26
  32. data/doc/classes/TaskJuggler/CSVFile.html +24 -24
  33. data/doc/classes/TaskJuggler/CellSettingPattern.html +201 -0
  34. data/doc/classes/TaskJuggler/CellSettingPatternList.html +253 -0
  35. data/doc/classes/TaskJuggler/Charge.html +18 -18
  36. data/doc/classes/TaskJuggler/ChargeListAttribute.html +20 -20
  37. data/doc/classes/TaskJuggler/ChargeSet.html +37 -37
  38. data/doc/classes/TaskJuggler/ChargeSetListAttribute.html +26 -26
  39. data/doc/classes/TaskJuggler/ColumnListAttribute.html +20 -20
  40. data/doc/classes/TaskJuggler/ColumnTable.html +40 -40
  41. data/doc/classes/TaskJuggler/DateAttribute.html +54 -15
  42. data/doc/classes/TaskJuggler/DefinitionListAttribute.html +10 -10
  43. data/doc/classes/TaskJuggler/DependencyListAttribute.html +47 -47
  44. data/doc/classes/TaskJuggler/DurationAttribute.html +30 -30
  45. data/doc/classes/TaskJuggler/FixnumAttribute.html +20 -20
  46. data/doc/classes/TaskJuggler/FlagListAttribute.html +43 -43
  47. data/doc/classes/TaskJuggler/FloatAttribute.html +30 -30
  48. data/doc/classes/TaskJuggler/FormatListAttribute.html +21 -21
  49. data/doc/classes/TaskJuggler/GanttChart.html +48 -48
  50. data/doc/classes/TaskJuggler/GanttContainer.html +42 -42
  51. data/doc/classes/TaskJuggler/GanttHeader.html +12 -12
  52. data/doc/classes/TaskJuggler/GanttHeaderScaleItem.html +12 -12
  53. data/doc/classes/TaskJuggler/GanttLine.html +24 -24
  54. data/doc/classes/TaskJuggler/GanttLoadStack.html +18 -18
  55. data/doc/classes/TaskJuggler/GanttMilestone.html +42 -42
  56. data/doc/classes/TaskJuggler/GanttRouter.html +24 -24
  57. data/doc/classes/TaskJuggler/GanttTaskBar.html +42 -42
  58. data/doc/classes/TaskJuggler/HTMLDocument.html +13 -13
  59. data/doc/classes/TaskJuggler/HTMLGraphics.html +12 -12
  60. data/doc/classes/TaskJuggler/Interval.html +57 -57
  61. data/doc/classes/TaskJuggler/IntervalListAttribute.html +47 -47
  62. data/doc/classes/TaskJuggler/JobInfo.html +68 -12
  63. data/doc/classes/TaskJuggler/Journal.html +266 -20
  64. data/doc/classes/TaskJuggler/JournalEntry.html +79 -23
  65. data/doc/classes/TaskJuggler/JournalEntryList.html +454 -0
  66. data/doc/classes/TaskJuggler/KeywordArray.html +10 -10
  67. data/doc/classes/TaskJuggler/KeywordDocumentation.html +171 -170
  68. data/doc/classes/TaskJuggler/Limits.html +36 -36
  69. data/doc/classes/TaskJuggler/Limits/Limit.html +30 -30
  70. data/doc/classes/TaskJuggler/LimitsAttribute.html +40 -40
  71. data/doc/classes/TaskJuggler/ListAttributeBase.html +20 -20
  72. data/doc/classes/TaskJuggler/Log.html +145 -107
  73. data/doc/classes/TaskJuggler/LogicalAttribute.html +65 -36
  74. data/doc/classes/TaskJuggler/LogicalExpression.html +61 -24
  75. data/doc/classes/TaskJuggler/LogicalExpressionAttribute.html +20 -20
  76. data/doc/classes/TaskJuggler/LogicalFlag.html +31 -51
  77. data/doc/classes/TaskJuggler/LogicalFunction.html +64 -53
  78. data/doc/classes/TaskJuggler/LogicalOperation.html +103 -55
  79. data/doc/classes/TaskJuggler/Macro.html +6 -6
  80. data/doc/classes/TaskJuggler/MacroParser.html +36 -36
  81. data/doc/classes/TaskJuggler/MacroTable.html +37 -37
  82. data/doc/classes/TaskJuggler/Message.html +12 -12
  83. data/doc/classes/TaskJuggler/MessageHandler.html +32 -20
  84. data/doc/classes/TaskJuggler/Navigator.html +110 -46
  85. data/doc/classes/TaskJuggler/NavigatorElement.html +449 -0
  86. data/doc/classes/TaskJuggler/OnShiftCache.html +24 -24
  87. data/doc/classes/TaskJuggler/Project.html +1158 -893
  88. data/doc/classes/TaskJuggler/ProjectFileParser.html +94 -91
  89. data/doc/classes/TaskJuggler/PropertyAttribute.html +20 -20
  90. data/doc/classes/TaskJuggler/PropertyList.html +225 -155
  91. data/doc/classes/TaskJuggler/PropertySet.html +375 -332
  92. data/doc/classes/TaskJuggler/PropertyTreeNode.html +750 -510
  93. data/doc/classes/TaskJuggler/Query.html +404 -139
  94. data/doc/classes/TaskJuggler/{RTPNavigator.html → RTFNavigator.html} +57 -56
  95. data/doc/classes/TaskJuggler/RTFQuery.html +343 -0
  96. data/doc/classes/TaskJuggler/{RTPReport.html → RTFReport.html} +70 -67
  97. data/doc/classes/TaskJuggler/RealFormat.html +18 -18
  98. data/doc/classes/TaskJuggler/RealFormatAttribute.html +10 -10
  99. data/doc/classes/TaskJuggler/ReferenceAttribute.html +107 -40
  100. data/doc/classes/TaskJuggler/RemoteServiceManager.html +335 -0
  101. data/doc/classes/TaskJuggler/Report.html +66 -64
  102. data/doc/classes/TaskJuggler/ReportBase.html +112 -123
  103. data/doc/classes/TaskJuggler/ReportContext.html +43 -38
  104. data/doc/classes/TaskJuggler/ReportServer.html +320 -0
  105. data/doc/classes/TaskJuggler/ReportTable.html +42 -42
  106. data/doc/classes/TaskJuggler/ReportTableCell.html +221 -129
  107. data/doc/classes/TaskJuggler/ReportTableColumn.html +27 -27
  108. data/doc/classes/TaskJuggler/ReportTableLegend.html +24 -24
  109. data/doc/classes/TaskJuggler/ReportTableLine.html +126 -80
  110. data/doc/classes/TaskJuggler/Resource.html +12 -12
  111. data/doc/classes/TaskJuggler/ResourceListAttribute.html +82 -47
  112. data/doc/classes/TaskJuggler/ResourceListRE.html +43 -39
  113. data/doc/classes/TaskJuggler/ResourceScenario.html +413 -321
  114. data/doc/classes/TaskJuggler/RichText.html +64 -248
  115. data/doc/classes/TaskJuggler/RichTextAttribute.html +94 -30
  116. data/doc/classes/TaskJuggler/RichTextDocument.html +87 -85
  117. data/doc/classes/TaskJuggler/RichTextElement.html +456 -363
  118. data/doc/classes/TaskJuggler/RichTextException.html +13 -13
  119. data/doc/classes/TaskJuggler/{RichTextProtocolExample.html → RichTextFunctionExample.html} +64 -63
  120. data/doc/classes/TaskJuggler/{RichTextProtocolHandler.html → RichTextFunctionHandler.html} +42 -36
  121. data/doc/classes/TaskJuggler/RichTextIntermediate.html +563 -0
  122. data/doc/classes/TaskJuggler/RichTextParser.html +54 -51
  123. data/doc/classes/TaskJuggler/RichTextScanner.html +94 -92
  124. data/doc/classes/TaskJuggler/RichTextSnip.html +96 -60
  125. data/doc/classes/TaskJuggler/RichTextSyntaxRules.html +369 -227
  126. data/doc/classes/TaskJuggler/Scenario.html +6 -6
  127. data/doc/classes/TaskJuggler/ScenarioData.html +37 -37
  128. data/doc/classes/TaskJuggler/ScenarioListAttribute.html +31 -31
  129. data/doc/classes/TaskJuggler/Scoreboard.html +66 -66
  130. data/doc/classes/TaskJuggler/Shift.html +18 -18
  131. data/doc/classes/TaskJuggler/ShiftAssignment.html +54 -54
  132. data/doc/classes/TaskJuggler/ShiftAssignments.html +78 -78
  133. data/doc/classes/TaskJuggler/ShiftAssignmentsAttribute.html +40 -40
  134. data/doc/classes/TaskJuggler/ShiftScenario.html +24 -24
  135. data/doc/classes/TaskJuggler/SortListAttribute.html +22 -22
  136. data/doc/classes/TaskJuggler/SourceFileInfo.html +12 -12
  137. data/doc/classes/TaskJuggler/StringAttribute.html +30 -30
  138. data/doc/classes/TaskJuggler/SymbolAttribute.html +20 -20
  139. data/doc/classes/TaskJuggler/SyntaxReference.html +42 -42
  140. data/doc/classes/TaskJuggler/TOCEntry.html +12 -12
  141. data/doc/classes/TaskJuggler/TSResourceRecord.html +197 -0
  142. data/doc/classes/TaskJuggler/TSTaskRecord.html +215 -0
  143. data/doc/classes/TaskJuggler/TableColumnDefinition.html +64 -43
  144. data/doc/classes/TaskJuggler/TableOfContents.html +18 -18
  145. data/doc/classes/TaskJuggler/TableReport.html +447 -468
  146. data/doc/classes/TaskJuggler/Task.html +12 -12
  147. data/doc/classes/TaskJuggler/TaskDependency.html +12 -12
  148. data/doc/classes/TaskJuggler/TaskListAttribute.html +47 -47
  149. data/doc/classes/TaskJuggler/TaskListRE.html +43 -39
  150. data/doc/classes/TaskJuggler/TaskScenario.html +529 -282
  151. data/doc/classes/TaskJuggler/TextParser.html +215 -194
  152. data/doc/classes/TaskJuggler/TextParser/Pattern.html +97 -97
  153. data/doc/classes/TaskJuggler/TextParser/Rule.html +84 -84
  154. data/doc/classes/TaskJuggler/TextParser/StackElement.html +16 -15
  155. data/doc/classes/TaskJuggler/TextParser/TextParserResultArray.html +12 -12
  156. data/doc/classes/TaskJuggler/TextParser/TokenDoc.html +6 -6
  157. data/doc/classes/TaskJuggler/TextReport.html +77 -74
  158. data/doc/classes/TaskJuggler/TextScanner.html +294 -281
  159. data/doc/classes/TaskJuggler/TextScanner/BufferStreamHandle.html +70 -70
  160. data/doc/classes/TaskJuggler/TextScanner/FileStreamHandle.html +59 -60
  161. data/doc/classes/TaskJuggler/TextScanner/StreamHandle.html +12 -12
  162. data/doc/classes/TaskJuggler/TimeSheetReport.html +406 -0
  163. data/doc/classes/TaskJuggler/TjException.html +6 -6
  164. data/doc/classes/TaskJuggler/TjTime.html +522 -513
  165. data/doc/classes/TaskJuggler/TjpExample.html +25 -25
  166. data/doc/classes/TaskJuggler/TjpExportRE.html +21 -24
  167. data/doc/classes/TaskJuggler/TjpSyntaxRules.html +6177 -4318
  168. data/doc/classes/TaskJuggler/UserManual.html +212 -213
  169. data/doc/classes/TaskJuggler/WorkingHours.html +49 -49
  170. data/doc/classes/TaskJuggler/WorkingHoursAttribute.html +53 -53
  171. data/doc/classes/TaskJuggler/XMLBlob.html +21 -21
  172. data/doc/classes/TaskJuggler/XMLComment.html +21 -21
  173. data/doc/classes/TaskJuggler/XMLDocument.html +27 -26
  174. data/doc/classes/TaskJuggler/XMLElement.html +86 -50
  175. data/doc/classes/TaskJuggler/XMLNamedText.html +11 -11
  176. data/doc/classes/TaskJuggler/XMLText.html +36 -36
  177. data/doc/files/COPYING.html +1 -1
  178. data/doc/files/README.html +1 -1
  179. data/doc/files/lib/AccountScenario_rb.html +3 -2
  180. data/doc/files/lib/Account_rb.html +3 -2
  181. data/doc/files/lib/Allocation_rb.html +3 -2
  182. data/doc/files/lib/AppConfig_rb.html +5 -2
  183. data/doc/files/lib/AttributeBase_rb.html +3 -2
  184. data/doc/files/lib/AttributeDefinition_rb.html +3 -2
  185. data/doc/files/lib/Attributes_rb.html +3 -2
  186. data/doc/files/lib/BatchProcessor_rb.html +4 -3
  187. data/doc/files/lib/Booking_rb.html +3 -2
  188. data/doc/files/lib/ChargeSet_rb.html +3 -2
  189. data/doc/files/lib/Charge_rb.html +3 -2
  190. data/doc/files/lib/HTMLDocument_rb.html +3 -2
  191. data/doc/files/lib/Interval_rb.html +3 -2
  192. data/doc/files/lib/Journal_rb.html +4 -3
  193. data/doc/files/lib/KeywordArray_rb.html +3 -2
  194. data/doc/files/lib/KeywordDocumentation_rb.html +3 -2
  195. data/doc/files/lib/Limits_rb.html +3 -2
  196. data/doc/files/lib/Log_rb.html +3 -2
  197. data/doc/files/lib/LogicalExpression_rb.html +3 -2
  198. data/doc/files/lib/LogicalFunction_rb.html +3 -2
  199. data/doc/files/lib/LogicalOperation_rb.html +3 -2
  200. data/doc/files/lib/MacroParser_rb.html +3 -2
  201. data/doc/files/lib/MacroTable_rb.html +3 -2
  202. data/doc/files/lib/MessageHandler_rb.html +3 -2
  203. data/doc/files/lib/Message_rb.html +3 -2
  204. data/doc/files/lib/ProjectFileParser_rb.html +7 -4
  205. data/doc/files/lib/Project_rb.html +3 -2
  206. data/doc/files/lib/PropertyList_rb.html +3 -2
  207. data/doc/files/lib/PropertySet_rb.html +3 -2
  208. data/doc/files/lib/PropertyTreeNode_rb.html +3 -2
  209. data/doc/files/lib/Query_rb.html +3 -2
  210. data/doc/files/lib/{RTPNavigator_rb.html → RTFNavigator_rb.html} +8 -7
  211. data/doc/files/lib/RTFQuery_rb.html +121 -0
  212. data/doc/files/lib/{RTPReport_rb.html → RTFReport_rb.html} +8 -7
  213. data/doc/files/lib/RealFormat_rb.html +3 -2
  214. data/doc/files/lib/RemoteServiceManager_rb.html +117 -0
  215. data/doc/files/lib/ReportServer_rb.html +107 -0
  216. data/doc/files/lib/ResourceScenario_rb.html +3 -2
  217. data/doc/files/lib/Resource_rb.html +3 -2
  218. data/doc/files/lib/RichTextDocument_rb.html +4 -3
  219. data/doc/files/lib/RichTextElement_rb.html +3 -2
  220. data/doc/files/lib/{RichTextProtocolExample_rb.html → RichTextFunctionExample_rb.html} +8 -7
  221. data/doc/files/lib/{RichTextProtocolHandler_rb.html → RichTextFunctionHandler_rb.html} +7 -6
  222. data/doc/files/lib/RichTextParser_rb.html +3 -2
  223. data/doc/files/lib/RichTextScanner_rb.html +3 -2
  224. data/doc/files/lib/RichTextSnip_rb.html +3 -2
  225. data/doc/files/lib/RichTextSyntaxRules_rb.html +3 -2
  226. data/doc/files/lib/RichText_rb.html +3 -2
  227. data/doc/files/lib/ScenarioData_rb.html +3 -2
  228. data/doc/files/lib/Scenario_rb.html +3 -2
  229. data/doc/files/lib/Scoreboard_rb.html +3 -2
  230. data/doc/files/lib/ShiftAssignments_rb.html +3 -2
  231. data/doc/files/lib/ShiftScenario_rb.html +3 -2
  232. data/doc/files/lib/Shift_rb.html +3 -2
  233. data/doc/files/lib/SourceFileInfo_rb.html +3 -2
  234. data/doc/files/lib/SyntaxReference_rb.html +3 -2
  235. data/doc/files/lib/TOCEntry_rb.html +3 -2
  236. data/doc/files/lib/TableColumnDefinition_rb.html +3 -2
  237. data/doc/files/lib/TableOfContents_rb.html +3 -2
  238. data/doc/files/lib/TaskDependency_rb.html +3 -2
  239. data/doc/files/lib/TaskJuggler_rb.html +7 -2
  240. data/doc/files/lib/TaskScenario_rb.html +3 -2
  241. data/doc/files/lib/Task_rb.html +3 -2
  242. data/doc/files/lib/TextParser/Pattern_rb.html +4 -3
  243. data/doc/files/lib/TextParser/Rule_rb.html +4 -3
  244. data/doc/files/lib/TextParser/StackElement_rb.html +4 -3
  245. data/doc/files/lib/TextParser/TokenDoc_rb.html +4 -3
  246. data/doc/files/lib/TextParser_rb.html +3 -2
  247. data/doc/files/lib/TextScanner_rb.html +3 -2
  248. data/doc/files/lib/Tj3Config_rb.html +3 -2
  249. data/doc/files/lib/TjException_rb.html +3 -2
  250. data/doc/files/lib/TjTime_rb.html +3 -2
  251. data/doc/files/lib/TjpExample_rb.html +3 -2
  252. data/doc/files/lib/TjpSyntaxRules_rb.html +3 -2
  253. data/doc/files/lib/UTF8String_rb.html +14 -6
  254. data/doc/files/lib/UserManual_rb.html +6 -3
  255. data/doc/files/lib/WorkingHours_rb.html +3 -2
  256. data/doc/files/lib/XMLDocument_rb.html +3 -2
  257. data/doc/files/lib/XMLElement_rb.html +3 -2
  258. data/doc/files/lib/deep_copy_rb.html +3 -2
  259. data/doc/files/lib/reports/CSVFile_rb.html +3 -2
  260. data/doc/files/lib/reports/ColumnTable_rb.html +3 -2
  261. data/doc/files/lib/reports/GanttChart_rb.html +3 -2
  262. data/doc/files/lib/reports/GanttContainer_rb.html +3 -2
  263. data/doc/files/lib/reports/GanttHeaderScaleItem_rb.html +3 -2
  264. data/doc/files/lib/reports/GanttHeader_rb.html +3 -2
  265. data/doc/files/lib/reports/GanttLine_rb.html +3 -2
  266. data/doc/files/lib/reports/GanttLoadStack_rb.html +3 -2
  267. data/doc/files/lib/reports/GanttMilestone_rb.html +3 -2
  268. data/doc/files/lib/reports/GanttRouter_rb.html +3 -2
  269. data/doc/files/lib/reports/GanttTaskBar_rb.html +3 -2
  270. data/doc/files/lib/reports/HTMLGraphics_rb.html +3 -2
  271. data/doc/files/lib/reports/Navigator_rb.html +3 -2
  272. data/doc/files/lib/reports/ReportBase_rb.html +3 -2
  273. data/doc/files/lib/reports/ReportContext_rb.html +3 -2
  274. data/doc/files/lib/reports/ReportTableCell_rb.html +3 -2
  275. data/doc/files/lib/reports/ReportTableColumn_rb.html +3 -2
  276. data/doc/files/lib/reports/ReportTableLegend_rb.html +3 -2
  277. data/doc/files/lib/reports/ReportTableLine_rb.html +3 -2
  278. data/doc/files/lib/reports/ReportTable_rb.html +3 -2
  279. data/doc/files/lib/reports/Report_rb.html +7 -2
  280. data/doc/files/lib/reports/ResourceListRE_rb.html +3 -2
  281. data/doc/files/lib/reports/TableReport_rb.html +3 -2
  282. data/doc/files/lib/reports/TaskListRE_rb.html +3 -2
  283. data/doc/files/lib/reports/TextReport_rb.html +4 -3
  284. data/doc/files/lib/reports/TimeSheetReport_rb.html +117 -0
  285. data/doc/files/lib/reports/TjpExportRE_rb.html +3 -2
  286. data/doc/files/lib/taskjuggler3_rb.html +94 -77
  287. data/doc/files/lib/tj3client_rb.html +280 -0
  288. data/doc/files/lib/tj3man_rb.html +10 -9
  289. data/doc/fr_class_index.html +27 -5
  290. data/doc/fr_file_index.html +15 -7
  291. data/doc/fr_method_index.html +1312 -1020
  292. data/examples/tutorial.tjp +113 -14
  293. data/gem_spec.rb +2 -1
  294. data/lib/Account.rb +1 -1
  295. data/lib/AccountScenario.rb +1 -1
  296. data/lib/Allocation.rb +1 -1
  297. data/lib/AppConfig.rb +23 -10
  298. data/lib/AttributeBase.rb +34 -6
  299. data/lib/AttributeDefinition.rb +1 -1
  300. data/lib/Attributes.rb +51 -16
  301. data/lib/BatchProcessor.rb +204 -77
  302. data/lib/Booking.rb +1 -1
  303. data/lib/Charge.rb +1 -1
  304. data/lib/ChargeSet.rb +1 -1
  305. data/lib/HTMLDocument.rb +2 -2
  306. data/lib/Interval.rb +1 -1
  307. data/lib/Journal.rb +231 -9
  308. data/lib/KeywordArray.rb +1 -1
  309. data/lib/KeywordDocumentation.rb +6 -4
  310. data/lib/Limits.rb +1 -1
  311. data/lib/Log.rb +8 -1
  312. data/lib/LogicalExpression.rb +14 -13
  313. data/lib/LogicalFunction.rb +88 -14
  314. data/lib/LogicalOperation.rb +124 -53
  315. data/lib/MacroParser.rb +1 -1
  316. data/lib/MacroTable.rb +2 -2
  317. data/lib/Message.rb +1 -1
  318. data/lib/MessageHandler.rb +7 -3
  319. data/lib/Project.rb +93 -14
  320. data/lib/ProjectFileParser.rb +30 -15
  321. data/lib/PropertyList.rb +103 -36
  322. data/lib/PropertySet.rb +22 -10
  323. data/lib/PropertyTreeNode.rb +120 -15
  324. data/lib/Query.rb +119 -48
  325. data/lib/{RTPNavigator.rb → RTFNavigator.rb} +11 -10
  326. data/lib/RTFQuery.rb +166 -0
  327. data/lib/{RTPReport.rb → RTFReport.rb} +11 -8
  328. data/lib/RealFormat.rb +1 -1
  329. data/lib/RemoteServiceManager.rb +80 -0
  330. data/lib/ReportServer.rb +66 -0
  331. data/lib/Resource.rb +1 -1
  332. data/lib/ResourceScenario.rb +48 -19
  333. data/lib/RichText.rb +98 -41
  334. data/lib/RichTextDocument.rb +10 -8
  335. data/lib/RichTextElement.rb +72 -28
  336. data/lib/{RichTextProtocolExample.rb → RichTextFunctionExample.rb} +8 -7
  337. data/lib/{RichTextProtocolHandler.rb → RichTextFunctionHandler.rb} +12 -14
  338. data/lib/RichTextParser.rb +6 -3
  339. data/lib/RichTextScanner.rb +91 -19
  340. data/lib/RichTextSnip.rb +8 -3
  341. data/lib/RichTextSyntaxRules.rb +103 -45
  342. data/lib/Scenario.rb +1 -1
  343. data/lib/ScenarioData.rb +2 -2
  344. data/lib/Scoreboard.rb +1 -1
  345. data/lib/Shift.rb +1 -1
  346. data/lib/ShiftAssignments.rb +1 -1
  347. data/lib/ShiftScenario.rb +1 -1
  348. data/lib/SourceFileInfo.rb +1 -1
  349. data/lib/SyntaxReference.rb +2 -2
  350. data/lib/TOCEntry.rb +1 -1
  351. data/lib/TableColumnDefinition.rb +59 -16
  352. data/lib/TableOfContents.rb +1 -1
  353. data/lib/Task.rb +1 -1
  354. data/lib/TaskDependency.rb +1 -1
  355. data/lib/TaskJuggler.rb +31 -8
  356. data/lib/TaskScenario.rb +165 -16
  357. data/lib/TextParser.rb +36 -22
  358. data/lib/TextParser/Pattern.rb +3 -3
  359. data/lib/TextParser/Rule.rb +2 -2
  360. data/lib/TextParser/StackElement.rb +4 -3
  361. data/lib/TextParser/TokenDoc.rb +2 -2
  362. data/lib/TextScanner.rb +52 -37
  363. data/lib/Tj3Config.rb +6 -5
  364. data/lib/TjException.rb +1 -1
  365. data/lib/TjTime.rb +12 -3
  366. data/lib/TjpExample.rb +1 -1
  367. data/lib/TjpSyntaxRules.rb +1044 -150
  368. data/lib/UTF8String.rb +2 -1
  369. data/lib/UserManual.rb +18 -70
  370. data/lib/WorkingHours.rb +3 -3
  371. data/lib/XMLDocument.rb +3 -2
  372. data/lib/XMLElement.rb +6 -1
  373. data/lib/deep_copy.rb +1 -1
  374. data/lib/reports/CSVFile.rb +1 -1
  375. data/lib/reports/ColumnTable.rb +9 -9
  376. data/lib/reports/GanttChart.rb +1 -1
  377. data/lib/reports/GanttContainer.rb +1 -1
  378. data/lib/reports/GanttHeader.rb +1 -1
  379. data/lib/reports/GanttHeaderScaleItem.rb +1 -1
  380. data/lib/reports/GanttLine.rb +40 -40
  381. data/lib/reports/GanttLoadStack.rb +1 -1
  382. data/lib/reports/GanttMilestone.rb +1 -1
  383. data/lib/reports/GanttRouter.rb +1 -1
  384. data/lib/reports/GanttTaskBar.rb +1 -1
  385. data/lib/reports/HTMLGraphics.rb +1 -1
  386. data/lib/reports/Navigator.rb +149 -22
  387. data/lib/reports/Report.rb +115 -172
  388. data/lib/reports/ReportBase.rb +22 -27
  389. data/lib/reports/ReportContext.rb +29 -15
  390. data/lib/reports/ReportTable.rb +1 -1
  391. data/lib/reports/ReportTableCell.rb +120 -27
  392. data/lib/reports/ReportTableColumn.rb +3 -3
  393. data/lib/reports/ReportTableLegend.rb +1 -1
  394. data/lib/reports/ReportTableLine.rb +10 -2
  395. data/lib/reports/ResourceListRE.rb +5 -1
  396. data/lib/reports/TableReport.rb +237 -287
  397. data/lib/reports/TaskListRE.rb +5 -1
  398. data/lib/reports/TextReport.rb +7 -4
  399. data/lib/reports/TimeSheetReport.rb +233 -0
  400. data/lib/reports/TjpExportRE.rb +2 -2
  401. data/lib/taskjuggler3.rb +27 -11
  402. data/lib/tj3client.rb +110 -0
  403. data/lib/tj3man.rb +4 -4
  404. data/manual/Getting_Started +0 -50
  405. data/manual/How_To_Contribute +6 -13
  406. data/manual/Installation +102 -28
  407. data/manual/Intro +11 -1
  408. data/manual/Reporting_Bugs +23 -7
  409. data/manual/Rich_Text_Attributes +59 -6
  410. data/manual/TaskJuggler_2x_Migration +27 -0
  411. data/manual/The_TaskJuggler_Syntax +104 -0
  412. data/manual/Tutorial +10 -9
  413. data/prj_cfg.rb +8 -2
  414. data/tasks/csts.rake +1 -1
  415. data/tasks/manual.rake +5 -3
  416. data/test/MessageChecker.rb +1 -1
  417. data/test/TestSuite/HTML-Reports/Alerts.html +172 -0
  418. data/test/TestSuite/HTML-Reports/Alerts.tjp +77 -0
  419. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  420. data/test/TestSuite/HTML-Reports/CellText.tjp +75 -0
  421. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  422. data/test/TestSuite/HTML-Reports/ColumnPeriods.tjp +44 -0
  423. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  424. data/test/TestSuite/HTML-Reports/IsOngoing.tjp +34 -0
  425. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +80 -0
  426. data/test/TestSuite/HTML-Reports/LogicalFunctions.tjp +20 -0
  427. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  428. data/test/TestSuite/HTML-Reports/Query.tjp +28 -0
  429. data/test/TestSuite/HTML-Reports/Sorting.tjp +68 -0
  430. data/test/TestSuite/HTML-Reports/TimeSheet.tjp +69 -0
  431. data/test/TestSuite/HTML-Reports/UDAQuery.tjp +27 -0
  432. data/test/TestSuite/HTML-Reports/css/tjmanual.css +52 -0
  433. data/test/TestSuite/HTML-Reports/css/tjreport.css +195 -0
  434. data/test/TestSuite/HTML-Reports/depArrows.html +842 -0
  435. data/test/TestSuite/HTML-Reports/icons/details.png +0 -0
  436. data/test/TestSuite/HTML-Reports/icons/flag-green.png +0 -0
  437. data/test/TestSuite/HTML-Reports/icons/flag-red.png +0 -0
  438. data/test/TestSuite/HTML-Reports/icons/flag-yellow.png +0 -0
  439. data/test/TestSuite/HTML-Reports/icons/resource.png +0 -0
  440. data/test/TestSuite/HTML-Reports/icons/resourcegroup.png +0 -0
  441. data/test/TestSuite/HTML-Reports/icons/task.png +0 -0
  442. data/test/TestSuite/HTML-Reports/icons/taskgroup.png +0 -0
  443. data/test/TestSuite/HTML-Reports/reference.tjp +7 -8
  444. data/test/TestSuite/HTML-Reports/scripts/scripts/wz_tooltip.js +1301 -0
  445. data/test/TestSuite/HTML-Reports/scripts/wz_tooltip.js +1301 -0
  446. data/test/TestSuite/Scheduler/Correct/Mandatory.tjp +34 -0
  447. data/test/TestSuite/Syntax/Correct/Celltext.tjp +2 -1
  448. data/test/TestSuite/Syntax/Correct/Journal.tjp +2 -2
  449. data/test/TestSuite/Syntax/Correct/LogicalExpression.tjp +2 -1
  450. data/test/TestSuite/Syntax/Correct/LogicalFunction.tjp +20 -0
  451. data/test/TestSuite/Syntax/Correct/Query.tjp +18 -0
  452. data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +45 -0
  453. data/test/TestSuite/Syntax/Correct/TimeSheet.tjp +49 -0
  454. data/test/TestSuite/Syntax/Correct/icons/details.png +0 -0
  455. data/test/TestSuite/Syntax/Correct/icons/flag-green.png +0 -0
  456. data/test/TestSuite/Syntax/Correct/icons/flag-red.png +0 -0
  457. data/test/TestSuite/Syntax/Correct/icons/flag-yellow.png +0 -0
  458. data/test/TestSuite/Syntax/Correct/icons/resource.png +0 -0
  459. data/test/TestSuite/Syntax/Correct/icons/resourcegroup.png +0 -0
  460. data/test/TestSuite/Syntax/Correct/icons/task.png +0 -0
  461. data/test/TestSuite/Syntax/Correct/icons/taskgroup.png +0 -0
  462. data/test/TestSuite/Syntax/Correct/scripts/wz_tooltip.js +1301 -0
  463. data/test/TestSuite/Syntax/Correct/tutorial.tjp +113 -14
  464. data/test/TestSuite/Syntax/Errors/macro_stack_overflow.tjp +28 -0
  465. data/test/TestSuite/Syntax/Errors/unsupported_token.tjp +12 -0
  466. data/test/all.rb +2 -2
  467. data/test/test_BatchProcessor.rb +42 -13
  468. data/test/test_CSV-Reports.rb +1 -1
  469. data/test/test_Journal.rb +176 -0
  470. data/test/test_Limits.rb +1 -1
  471. data/test/test_LogicalExpression.rb +14 -5
  472. data/test/test_MacroTable.rb +1 -1
  473. data/test/test_Project.rb +1 -1
  474. data/test/test_PropertySet.rb +1 -1
  475. data/test/test_Query.rb +1 -1
  476. data/test/test_RealFormat.rb +1 -1
  477. data/test/test_RichText.rb +30 -20
  478. data/test/test_Scheduler.rb +1 -1
  479. data/test/test_ShiftAssignments.rb +2 -2
  480. data/test/test_Syntax.rb +1 -1
  481. data/test/test_TextScanner.rb +1 -1
  482. data/test/test_TjTime.rb +1 -1
  483. data/test/test_TjpExample.rb +1 -1
  484. data/test/test_UTF8String.rb +1 -1
  485. data/test/test_WorkingHours.rb +1 -1
  486. data/test/test_deep_copy.rb +2 -2
  487. metadata +610 -532
  488. data/doc/files/lib/ms_test_rb.html +0 -90
  489. data/examples/ContactList.html +0 -1467
  490. data/examples/Deliveries.html +0 -485
  491. data/examples/Development.html +0 -2525
  492. data/examples/Overview.html +0 -747
  493. data/examples/Resource Graph.html +0 -616
  494. data/lib/ms_test.rb +0 -27
  495. data/test/TestSuite/HTML-Reports/reference-export.html +0 -187
@@ -110,55 +110,57 @@ attributes. All Properties of the set will have a set of these attributes.
110
110
 
111
111
  <div class="name-list">
112
112
 
113
- <a href="#M000852">[]</a>&nbsp;&nbsp;
113
+ <a href="#M001021">[]</a>&nbsp;&nbsp;
114
114
 
115
- <a href="#M000839">addAttributeType</a>&nbsp;&nbsp;
115
+ <a href="#M001007">addAttributeType</a>&nbsp;&nbsp;
116
116
 
117
- <a href="#M000849">addProperty</a>&nbsp;&nbsp;
117
+ <a href="#M001018">addProperty</a>&nbsp;&nbsp;
118
118
 
119
- <a href="#M000847">attributeName</a>&nbsp;&nbsp;
119
+ <a href="#M001016">attributeName</a>&nbsp;&nbsp;
120
120
 
121
- <a href="#M000848">attributeType</a>&nbsp;&nbsp;
121
+ <a href="#M001017">attributeType</a>&nbsp;&nbsp;
122
122
 
123
- <a href="#M000851">clearProperties</a>&nbsp;&nbsp;
123
+ <a href="#M001020">clearProperties</a>&nbsp;&nbsp;
124
124
 
125
- <a href="#M000846">defaultValue</a>&nbsp;&nbsp;
125
+ <a href="#M001015">defaultValue</a>&nbsp;&nbsp;
126
126
 
127
- <a href="#M000859">each</a>&nbsp;&nbsp;
127
+ <a href="#M001028">each</a>&nbsp;&nbsp;
128
128
 
129
- <a href="#M000840">eachAttributeDefinition</a>&nbsp;&nbsp;
129
+ <a href="#M001008">eachAttributeDefinition</a>&nbsp;&nbsp;
130
130
 
131
- <a href="#M000857">empty?</a>&nbsp;&nbsp;
131
+ <a href="#M001026">empty?</a>&nbsp;&nbsp;
132
132
 
133
- <a href="#M000853">index</a>&nbsp;&nbsp;
133
+ <a href="#M001010">hasQuery?</a>&nbsp;&nbsp;
134
134
 
135
- <a href="#M000838">inheritAttributesFromScenario</a>&nbsp;&nbsp;
135
+ <a href="#M001022">index</a>&nbsp;&nbsp;
136
136
 
137
- <a href="#M000844">inheritedFromParent?</a>&nbsp;&nbsp;
137
+ <a href="#M001006">inheritAttributesFromScenario</a>&nbsp;&nbsp;
138
138
 
139
- <a href="#M000843">inheritedFromProject?</a>&nbsp;&nbsp;
139
+ <a href="#M001013">inheritedFromParent?</a>&nbsp;&nbsp;
140
140
 
141
- <a href="#M000856">items</a>&nbsp;&nbsp;
141
+ <a href="#M001012">inheritedFromProject?</a>&nbsp;&nbsp;
142
142
 
143
- <a href="#M000841">knownAttribute?</a>&nbsp;&nbsp;
143
+ <a href="#M001025">items</a>&nbsp;&nbsp;
144
144
 
145
- <a href="#M000854">levelSeqNo</a>&nbsp;&nbsp;
145
+ <a href="#M001009">knownAttribute?</a>&nbsp;&nbsp;
146
146
 
147
- <a href="#M000855">maxDepth</a>&nbsp;&nbsp;
147
+ <a href="#M001023">levelSeqNo</a>&nbsp;&nbsp;
148
148
 
149
- <a href="#M000837">new</a>&nbsp;&nbsp;
149
+ <a href="#M001024">maxDepth</a>&nbsp;&nbsp;
150
150
 
151
- <a href="#M000850">removeProperty</a>&nbsp;&nbsp;
151
+ <a href="#M001005">new</a>&nbsp;&nbsp;
152
152
 
153
- <a href="#M000842">scenarioSpecific?</a>&nbsp;&nbsp;
153
+ <a href="#M001019">removeProperty</a>&nbsp;&nbsp;
154
154
 
155
- <a href="#M000860">to_ary</a>&nbsp;&nbsp;
155
+ <a href="#M001011">scenarioSpecific?</a>&nbsp;&nbsp;
156
156
 
157
- <a href="#M000861">to_s</a>&nbsp;&nbsp;
157
+ <a href="#M001029">to_ary</a>&nbsp;&nbsp;
158
158
 
159
- <a href="#M000858">topLevelItems</a>&nbsp;&nbsp;
159
+ <a href="#M001030">to_s</a>&nbsp;&nbsp;
160
160
 
161
- <a href="#M000845">userDefined?</a>&nbsp;&nbsp;
161
+ <a href="#M001027">topLevelItems</a>&nbsp;&nbsp;
162
+
163
+ <a href="#M001014">userDefined?</a>&nbsp;&nbsp;
162
164
 
163
165
  </div>
164
166
  </div>
@@ -213,12 +215,12 @@ attributes. All Properties of the set will have a set of these attributes.
213
215
  <h3 class="section-bar">Public Class methods</h3>
214
216
 
215
217
 
216
- <div id="method-M000837" class="method-detail">
217
- <a name="M000837"></a>
218
+ <div id="method-M001005" class="method-detail">
219
+ <a name="M001005"></a>
218
220
 
219
221
  <div class="method-heading">
220
222
 
221
- <a href="#M000837" class="method-signature">
223
+ <a href="#M001005" class="method-signature">
222
224
 
223
225
  <span class="method-name">new</span><span class="method-args">(project, flatNamespace)</span>
224
226
 
@@ -229,8 +231,8 @@ attributes. All Properties of the set will have a set of these attributes.
229
231
  <div class="method-description">
230
232
 
231
233
  <p><a class="source-toggle" href="#"
232
- onclick="toggleCode('M000837-source');return false;">[Source]</a></p>
233
- <div class="method-source-code" id="M000837-source">
234
+ onclick="toggleCode('M001005-source');return false;">[Source]</a></p>
235
+ <div class="method-source-code" id="M001005-source">
234
236
  <pre>
235
237
  <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 29</span>
236
238
  29: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">project</span>, <span class="ruby-identifier">flatNamespace</span>)
@@ -279,12 +281,12 @@ attributes. All Properties of the set will have a set of these attributes.
279
281
  <h3 class="section-bar">Public Instance methods</h3>
280
282
 
281
283
 
282
- <div id="method-M000852" class="method-detail">
283
- <a name="M000852"></a>
284
+ <div id="method-M001021" class="method-detail">
285
+ <a name="M001021"></a>
284
286
 
285
287
  <div class="method-heading">
286
288
 
287
- <a href="#M000852" class="method-signature">
289
+ <a href="#M001021" class="method-signature">
288
290
 
289
291
  <span class="method-name">[]</span><span class="method-args">(id)</span>
290
292
 
@@ -300,13 +302,13 @@ ID <em>id</em> from the set or nil if not present.
300
302
  </p>
301
303
 
302
304
  <p><a class="source-toggle" href="#"
303
- onclick="toggleCode('M000852-source');return false;">[Source]</a></p>
304
- <div class="method-source-code" id="M000852-source">
305
+ onclick="toggleCode('M001021-source');return false;">[Source]</a></p>
306
+ <div class="method-source-code" id="M001021-source">
305
307
  <pre>
306
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 223</span>
307
- 223: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">id</span>)
308
- 224: <span class="ruby-ivar">@propertyMap</span>[<span class="ruby-identifier">id</span>]
309
- 225: <span class="ruby-keyword kw">end</span>
308
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 241</span>
309
+ 241: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">id</span>)
310
+ 242: <span class="ruby-ivar">@propertyMap</span>[<span class="ruby-identifier">id</span>]
311
+ 243: <span class="ruby-keyword kw">end</span>
310
312
  </pre>
311
313
  </div>
312
314
 
@@ -314,12 +316,12 @@ ID <em>id</em> from the set or nil if not present.
314
316
  </div>
315
317
 
316
318
 
317
- <div id="method-M000839" class="method-detail">
318
- <a name="M000839"></a>
319
+ <div id="method-M001007" class="method-detail">
320
+ <a name="M001007"></a>
319
321
 
320
322
  <div class="method-heading">
321
323
 
322
- <a href="#M000839" class="method-signature">
324
+ <a href="#M001007" class="method-signature">
323
325
 
324
326
  <span class="method-name">addAttributeType</span><span class="method-args">(attributeType)</span>
325
327
 
@@ -336,8 +338,8 @@ declared before the first property is added to the set.
336
338
  </p>
337
339
 
338
340
  <p><a class="source-toggle" href="#"
339
- onclick="toggleCode('M000839-source');return false;">[Source]</a></p>
340
- <div class="method-source-code" id="M000839-source">
341
+ onclick="toggleCode('M001007-source');return false;">[Source]</a></p>
342
+ <div class="method-source-code" id="M001007-source">
341
343
  <pre>
342
344
  <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 74</span>
343
345
  74: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addAttributeType</span>(<span class="ruby-identifier">attributeType</span>)
@@ -355,12 +357,12 @@ declared before the first property is added to the set.
355
357
  </div>
356
358
 
357
359
 
358
- <div id="method-M000849" class="method-detail">
359
- <a name="M000849"></a>
360
+ <div id="method-M001018" class="method-detail">
361
+ <a name="M001018"></a>
360
362
 
361
363
  <div class="method-heading">
362
364
 
363
- <a href="#M000849" class="method-signature">
365
+ <a href="#M001018" class="method-signature">
364
366
 
365
367
  <span class="method-name">addProperty</span><span class="method-args">(property)</span>
366
368
 
@@ -382,26 +384,26 @@ You must call index() before using these attributes.
382
384
  </p>
383
385
 
384
386
  <p><a class="source-toggle" href="#"
385
- onclick="toggleCode('M000849-source');return false;">[Source]</a></p>
386
- <div class="method-source-code" id="M000849-source">
387
+ onclick="toggleCode('M001018-source');return false;">[Source]</a></p>
388
+ <div class="method-source-code" id="M001018-source">
387
389
  <pre>
388
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 172</span>
389
- 172: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addProperty</span>(<span class="ruby-identifier">property</span>)
390
- 173: <span class="ruby-comment cmt"># The PropertySet defines the set of attribute that each PropertyTreeNode</span>
391
- 174: <span class="ruby-comment cmt"># in this set has. Create these attributes with their default values.</span>
392
- 175: <span class="ruby-ivar">@attributeDefinitions</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">id</span>, <span class="ruby-identifier">attributeType</span><span class="ruby-operator">|</span>
393
- 176: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">declareAttribute</span>(<span class="ruby-identifier">attributeType</span>)
394
- 177: <span class="ruby-keyword kw">end</span>
395
- 178:
396
- 179: <span class="ruby-comment cmt"># The PropertyTreeNode objects are indexed by ID or hierachical ID</span>
397
- 180: <span class="ruby-comment cmt"># depending on the name space setting of this set.</span>
398
- 181: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@flatNamespace</span>
399
- 182: <span class="ruby-ivar">@propertyMap</span>[<span class="ruby-identifier">property</span>.<span class="ruby-identifier">id</span>] = <span class="ruby-identifier">property</span>
400
- 183: <span class="ruby-keyword kw">else</span>
401
- 184: <span class="ruby-ivar">@propertyMap</span>[<span class="ruby-identifier">property</span>.<span class="ruby-identifier">fullId</span>] = <span class="ruby-identifier">property</span>
402
- 185: <span class="ruby-keyword kw">end</span>
403
- 186: <span class="ruby-ivar">@properties</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">property</span>
404
- 187: <span class="ruby-keyword kw">end</span>
390
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 190</span>
391
+ 190: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addProperty</span>(<span class="ruby-identifier">property</span>)
392
+ 191: <span class="ruby-comment cmt"># The PropertySet defines the set of attribute that each PropertyTreeNode</span>
393
+ 192: <span class="ruby-comment cmt"># in this set has. Create these attributes with their default values.</span>
394
+ 193: <span class="ruby-ivar">@attributeDefinitions</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">id</span>, <span class="ruby-identifier">attributeType</span><span class="ruby-operator">|</span>
395
+ 194: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">declareAttribute</span>(<span class="ruby-identifier">attributeType</span>)
396
+ 195: <span class="ruby-keyword kw">end</span>
397
+ 196:
398
+ 197: <span class="ruby-comment cmt"># The PropertyTreeNode objects are indexed by ID or hierachical ID</span>
399
+ 198: <span class="ruby-comment cmt"># depending on the name space setting of this set.</span>
400
+ 199: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@flatNamespace</span>
401
+ 200: <span class="ruby-ivar">@propertyMap</span>[<span class="ruby-identifier">property</span>.<span class="ruby-identifier">id</span>] = <span class="ruby-identifier">property</span>
402
+ 201: <span class="ruby-keyword kw">else</span>
403
+ 202: <span class="ruby-ivar">@propertyMap</span>[<span class="ruby-identifier">property</span>.<span class="ruby-identifier">fullId</span>] = <span class="ruby-identifier">property</span>
404
+ 203: <span class="ruby-keyword kw">end</span>
405
+ 204: <span class="ruby-ivar">@properties</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">property</span>
406
+ 205: <span class="ruby-keyword kw">end</span>
405
407
  </pre>
406
408
  </div>
407
409
 
@@ -409,12 +411,12 @@ You must call index() before using these attributes.
409
411
  </div>
410
412
 
411
413
 
412
- <div id="method-M000847" class="method-detail">
413
- <a name="M000847"></a>
414
+ <div id="method-M001016" class="method-detail">
415
+ <a name="M001016"></a>
414
416
 
415
417
  <div class="method-heading">
416
418
 
417
- <a href="#M000847" class="method-signature">
419
+ <a href="#M001016" class="method-signature">
418
420
 
419
421
  <span class="method-name">attributeName</span><span class="method-args">(attrId)</span>
420
422
 
@@ -430,23 +432,23 @@ specified by <em>attrId</em>.
430
432
  </p>
431
433
 
432
434
  <p><a class="source-toggle" href="#"
433
- onclick="toggleCode('M000847-source');return false;">[Source]</a></p>
434
- <div class="method-source-code" id="M000847-source">
435
+ onclick="toggleCode('M001016-source');return false;">[Source]</a></p>
436
+ <div class="method-source-code" id="M001016-source">
435
437
  <pre>
436
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 137</span>
437
- 137: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributeName</span>(<span class="ruby-identifier">attrId</span>)
438
- 138: <span class="ruby-comment cmt"># Some attributes are hardwired into the properties. These need to be</span>
439
- 139: <span class="ruby-comment cmt"># treated separately.</span>
440
- 140: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@@fixedAttributeNames</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">nil?</span>
441
- 141: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attributeDefinitions</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">attrId</span>)
442
- 142: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">name</span>
443
- 143: <span class="ruby-keyword kw">end</span>
444
- 144: <span class="ruby-keyword kw">else</span>
445
- 145: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@@fixedAttributeNames</span>[<span class="ruby-identifier">attrId</span>]
446
- 146: <span class="ruby-keyword kw">end</span>
447
- 147:
448
- 148: <span class="ruby-keyword kw">nil</span>
449
- 149: <span class="ruby-keyword kw">end</span>
438
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 155</span>
439
+ 155: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributeName</span>(<span class="ruby-identifier">attrId</span>)
440
+ 156: <span class="ruby-comment cmt"># Some attributes are hardwired into the properties. These need to be</span>
441
+ 157: <span class="ruby-comment cmt"># treated separately.</span>
442
+ 158: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@@fixedAttributeNames</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">nil?</span>
443
+ 159: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attributeDefinitions</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">attrId</span>)
444
+ 160: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">name</span>
445
+ 161: <span class="ruby-keyword kw">end</span>
446
+ 162: <span class="ruby-keyword kw">else</span>
447
+ 163: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@@fixedAttributeNames</span>[<span class="ruby-identifier">attrId</span>]
448
+ 164: <span class="ruby-keyword kw">end</span>
449
+ 165:
450
+ 166: <span class="ruby-keyword kw">nil</span>
451
+ 167: <span class="ruby-keyword kw">end</span>
450
452
  </pre>
451
453
  </div>
452
454
 
@@ -454,12 +456,12 @@ specified by <em>attrId</em>.
454
456
  </div>
455
457
 
456
458
 
457
- <div id="method-M000848" class="method-detail">
458
- <a name="M000848"></a>
459
+ <div id="method-M001017" class="method-detail">
460
+ <a name="M001017"></a>
459
461
 
460
462
  <div class="method-heading">
461
463
 
462
- <a href="#M000848" class="method-signature">
464
+ <a href="#M001017" class="method-signature">
463
465
 
464
466
  <span class="method-name">attributeType</span><span class="method-args">(attrId)</span>
465
467
 
@@ -474,22 +476,22 @@ Return the type of the attribute with the Id specified by <em>attrId</em>.
474
476
  </p>
475
477
 
476
478
  <p><a class="source-toggle" href="#"
477
- onclick="toggleCode('M000848-source');return false;">[Source]</a></p>
478
- <div class="method-source-code" id="M000848-source">
479
+ onclick="toggleCode('M001017-source');return false;">[Source]</a></p>
480
+ <div class="method-source-code" id="M001017-source">
479
481
  <pre>
480
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 152</span>
481
- 152: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributeType</span>(<span class="ruby-identifier">attrId</span>)
482
- 153: <span class="ruby-comment cmt"># Hardwired attributes need special treatment.</span>
483
- 154: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@@fixedAttributesTypes</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">nil?</span>
484
- 155: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attributeDefinitions</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attrId</span>)
485
- 156: <span class="ruby-ivar">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">objClass</span>
486
- 157: <span class="ruby-keyword kw">else</span>
487
- 158: <span class="ruby-keyword kw">nil</span>
488
- 159: <span class="ruby-keyword kw">end</span>
489
- 160: <span class="ruby-keyword kw">else</span>
490
- 161: <span class="ruby-ivar">@@fixedAttributesTypes</span>[<span class="ruby-identifier">attrId</span>]
491
- 162: <span class="ruby-keyword kw">end</span>
492
- 163: <span class="ruby-keyword kw">end</span>
482
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 170</span>
483
+ 170: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributeType</span>(<span class="ruby-identifier">attrId</span>)
484
+ 171: <span class="ruby-comment cmt"># Hardwired attributes need special treatment.</span>
485
+ 172: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@@fixedAttributesTypes</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">nil?</span>
486
+ 173: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attributeDefinitions</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attrId</span>)
487
+ 174: <span class="ruby-ivar">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">objClass</span>
488
+ 175: <span class="ruby-keyword kw">else</span>
489
+ 176: <span class="ruby-keyword kw">nil</span>
490
+ 177: <span class="ruby-keyword kw">end</span>
491
+ 178: <span class="ruby-keyword kw">else</span>
492
+ 179: <span class="ruby-ivar">@@fixedAttributesTypes</span>[<span class="ruby-identifier">attrId</span>]
493
+ 180: <span class="ruby-keyword kw">end</span>
494
+ 181: <span class="ruby-keyword kw">end</span>
493
495
  </pre>
494
496
  </div>
495
497
 
@@ -497,12 +499,12 @@ Return the type of the attribute with the Id specified by <em>attrId</em>.
497
499
  </div>
498
500
 
499
501
 
500
- <div id="method-M000851" class="method-detail">
501
- <a name="M000851"></a>
502
+ <div id="method-M001020" class="method-detail">
503
+ <a name="M001020"></a>
502
504
 
503
505
  <div class="method-heading">
504
506
 
505
- <a href="#M000851" class="method-signature">
507
+ <a href="#M001020" class="method-signature">
506
508
 
507
509
  <span class="method-name">clearProperties</span><span class="method-args">()</span>
508
510
 
@@ -517,14 +519,14 @@ Call this function to delete all registered properties.
517
519
  </p>
518
520
 
519
521
  <p><a class="source-toggle" href="#"
520
- onclick="toggleCode('M000851-source');return false;">[Source]</a></p>
521
- <div class="method-source-code" id="M000851-source">
522
+ onclick="toggleCode('M001020-source');return false;">[Source]</a></p>
523
+ <div class="method-source-code" id="M001020-source">
522
524
  <pre>
523
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 216</span>
524
- 216: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clearProperties</span>
525
- 217: <span class="ruby-ivar">@properties</span>.<span class="ruby-identifier">clear</span>
526
- 218: <span class="ruby-ivar">@propertyMap</span>.<span class="ruby-identifier">clear</span>
527
- 219: <span class="ruby-keyword kw">end</span>
525
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 234</span>
526
+ 234: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">clearProperties</span>
527
+ 235: <span class="ruby-ivar">@properties</span>.<span class="ruby-identifier">clear</span>
528
+ 236: <span class="ruby-ivar">@propertyMap</span>.<span class="ruby-identifier">clear</span>
529
+ 237: <span class="ruby-keyword kw">end</span>
528
530
  </pre>
529
531
  </div>
530
532
 
@@ -532,12 +534,12 @@ Call this function to delete all registered properties.
532
534
  </div>
533
535
 
534
536
 
535
- <div id="method-M000846" class="method-detail">
536
- <a name="M000846"></a>
537
+ <div id="method-M001015" class="method-detail">
538
+ <a name="M001015"></a>
537
539
 
538
540
  <div class="method-heading">
539
541
 
540
- <a href="#M000846" class="method-signature">
542
+ <a href="#M001015" class="method-signature">
541
543
 
542
544
  <span class="method-name">defaultValue</span><span class="method-args">(attrId)</span>
543
545
 
@@ -552,15 +554,15 @@ Return the default value of the attribute.
552
554
  </p>
553
555
 
554
556
  <p><a class="source-toggle" href="#"
555
- onclick="toggleCode('M000846-source');return false;">[Source]</a></p>
556
- <div class="method-source-code" id="M000846-source">
557
+ onclick="toggleCode('M001015-source');return false;">[Source]</a></p>
558
+ <div class="method-source-code" id="M001015-source">
557
559
  <pre>
558
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 129</span>
559
- 129: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">defaultValue</span>(<span class="ruby-identifier">attrId</span>)
560
- 130: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">nil?</span>
561
- 131:
562
- 132: <span class="ruby-ivar">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">default</span>
563
- 133: <span class="ruby-keyword kw">end</span>
560
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 147</span>
561
+ 147: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">defaultValue</span>(<span class="ruby-identifier">attrId</span>)
562
+ 148: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">nil?</span>
563
+ 149:
564
+ 150: <span class="ruby-ivar">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">default</span>
565
+ 151: <span class="ruby-keyword kw">end</span>
564
566
  </pre>
565
567
  </div>
566
568
 
@@ -568,12 +570,12 @@ Return the default value of the attribute.
568
570
  </div>
569
571
 
570
572
 
571
- <div id="method-M000859" class="method-detail">
572
- <a name="M000859"></a>
573
+ <div id="method-M001028" class="method-detail">
574
+ <a name="M001028"></a>
573
575
 
574
576
  <div class="method-heading">
575
577
 
576
- <a href="#M000859" class="method-signature">
578
+ <a href="#M001028" class="method-signature">
577
579
 
578
580
  <span class="method-name">each</span><span class="method-args">() {|value| ...}</span>
579
581
 
@@ -589,15 +591,15 @@ objects in this set.
589
591
  </p>
590
592
 
591
593
  <p><a class="source-toggle" href="#"
592
- onclick="toggleCode('M000859-source');return false;">[Source]</a></p>
593
- <div class="method-source-code" id="M000859-source">
594
+ onclick="toggleCode('M001028-source');return false;">[Source]</a></p>
595
+ <div class="method-source-code" id="M001028-source">
594
596
  <pre>
595
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 295</span>
596
- 295: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
597
- 296: <span class="ruby-ivar">@properties</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
598
- 297: <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">value</span>)
599
- 298: <span class="ruby-keyword kw">end</span>
600
- 299: <span class="ruby-keyword kw">end</span>
597
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 307</span>
598
+ 307: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">each</span>
599
+ 308: <span class="ruby-ivar">@properties</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
600
+ 309: <span class="ruby-keyword kw">yield</span>(<span class="ruby-identifier">value</span>)
601
+ 310: <span class="ruby-keyword kw">end</span>
602
+ 311: <span class="ruby-keyword kw">end</span>
601
603
  </pre>
602
604
  </div>
603
605
 
@@ -605,12 +607,12 @@ objects in this set.
605
607
  </div>
606
608
 
607
609
 
608
- <div id="method-M000840" class="method-detail">
609
- <a name="M000840"></a>
610
+ <div id="method-M001008" class="method-detail">
611
+ <a name="M001008"></a>
610
612
 
611
613
  <div class="method-heading">
612
614
 
613
- <a href="#M000840" class="method-signature">
615
+ <a href="#M001008" class="method-signature">
614
616
 
615
617
  <span class="method-name">eachAttributeDefinition</span><span class="method-args">() {|value| ...}</span>
616
618
 
@@ -625,8 +627,8 @@ Iterate over all attribute definitions.
625
627
  </p>
626
628
 
627
629
  <p><a class="source-toggle" href="#"
628
- onclick="toggleCode('M000840-source');return false;">[Source]</a></p>
629
- <div class="method-source-code" id="M000840-source">
630
+ onclick="toggleCode('M001008-source');return false;">[Source]</a></p>
631
+ <div class="method-source-code" id="M001008-source">
630
632
  <pre>
631
633
  <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 84</span>
632
634
  84: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">eachAttributeDefinition</span>
@@ -641,12 +643,12 @@ Iterate over all attribute definitions.
641
643
  </div>
642
644
 
643
645
 
644
- <div id="method-M000857" class="method-detail">
645
- <a name="M000857"></a>
646
+ <div id="method-M001026" class="method-detail">
647
+ <a name="M001026"></a>
646
648
 
647
649
  <div class="method-heading">
648
650
 
649
- <a href="#M000857" class="method-signature">
651
+ <a href="#M001026" class="method-signature">
650
652
 
651
653
  <span class="method-name">empty?</span><span class="method-args">()</span>
652
654
 
@@ -661,13 +663,60 @@ Return true if the set is empty.
661
663
  </p>
662
664
 
663
665
  <p><a class="source-toggle" href="#"
664
- onclick="toggleCode('M000857-source');return false;">[Source]</a></p>
665
- <div class="method-source-code" id="M000857-source">
666
+ onclick="toggleCode('M001026-source');return false;">[Source]</a></p>
667
+ <div class="method-source-code" id="M001026-source">
668
+ <pre>
669
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 292</span>
670
+ 292: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">empty?</span>
671
+ 293: <span class="ruby-ivar">@properties</span>.<span class="ruby-identifier">empty?</span>
672
+ 294: <span class="ruby-keyword kw">end</span>
673
+ </pre>
674
+ </div>
675
+
676
+ </div>
677
+ </div>
678
+
679
+
680
+ <div id="method-M001010" class="method-detail">
681
+ <a name="M001010"></a>
682
+
683
+ <div class="method-heading">
684
+
685
+ <a href="#M001010" class="method-signature">
686
+
687
+ <span class="method-name">hasQuery?</span><span class="method-args">(attrId, scenarioIdx = nil)</span>
688
+
689
+ </a>
690
+
691
+ </div>
692
+
693
+ <div class="method-description">
694
+
695
+ <p>
696
+ Check whether the <a href="PropertyTreeNode.html">PropertyTreeNode</a> has
697
+ a calculated attribute with the ID <em>attrId</em>. For scenarioSpecific
698
+ attributes <em>scenarioIdx</em> needs to be provided.
699
+ </p>
700
+
701
+ <p><a class="source-toggle" href="#"
702
+ onclick="toggleCode('M001010-source');return false;">[Source]</a></p>
703
+ <div class="method-source-code" id="M001010-source">
666
704
  <pre>
667
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 280</span>
668
- 280: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">empty?</span>
669
- 281: <span class="ruby-ivar">@properties</span>.<span class="ruby-identifier">empty?</span>
670
- 282: <span class="ruby-keyword kw">end</span>
705
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 99</span>
706
+ 99: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">hasQuery?</span>(<span class="ruby-identifier">attrId</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
707
+ 100: <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">@properties</span>.<span class="ruby-identifier">empty?</span>
708
+ 101:
709
+ 102: <span class="ruby-identifier">property</span> = <span class="ruby-ivar">@properties</span>.<span class="ruby-identifier">first</span>
710
+ 103: <span class="ruby-identifier">methodName</span> = <span class="ruby-value str">'query_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">attrId</span>
711
+ 104: <span class="ruby-comment cmt"># First we check for non-scenario-specific query functions.</span>
712
+ 105: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">methodName</span>)
713
+ 106: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span>
714
+ 107: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">scenarioIdx</span>
715
+ 108: <span class="ruby-comment cmt"># Then we check for scenario-specific ones via the @data member.</span>
716
+ 109: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">data</span>[<span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">methodName</span>)
717
+ 110: <span class="ruby-keyword kw">end</span>
718
+ 111: <span class="ruby-keyword kw">false</span>
719
+ 112: <span class="ruby-keyword kw">end</span>
671
720
  </pre>
672
721
  </div>
673
722
 
@@ -675,12 +724,12 @@ Return true if the set is empty.
675
724
  </div>
676
725
 
677
726
 
678
- <div id="method-M000853" class="method-detail">
679
- <a name="M000853"></a>
727
+ <div id="method-M001022" class="method-detail">
728
+ <a name="M001022"></a>
680
729
 
681
730
  <div class="method-heading">
682
731
 
683
- <a href="#M000853" class="method-signature">
732
+ <a href="#M001022" class="method-signature">
684
733
 
685
734
  <span class="method-name">index</span><span class="method-args">()</span>
686
735
 
@@ -691,37 +740,31 @@ Return true if the set is empty.
691
740
  <div class="method-description">
692
741
 
693
742
  <p>
694
- Update the WBS and tree indicies. This method needs to be called whenever
695
- the set has been modified.
743
+ Update the work-breakdown-structure (wbs) indicies. This method needs to be
744
+ called whenever the set has been modified.
696
745
  </p>
697
746
 
698
747
  <p><a class="source-toggle" href="#"
699
- onclick="toggleCode('M000853-source');return false;">[Source]</a></p>
700
- <div class="method-source-code" id="M000853-source">
748
+ onclick="toggleCode('M001022-source');return false;">[Source]</a></p>
749
+ <div class="method-source-code" id="M001022-source">
701
750
  <pre>
702
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 229</span>
703
- 229: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">index</span>
704
- 230: <span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
705
- 231: <span class="ruby-identifier">wbsIdcs</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">getWBSIndicies</span>
706
- 232: <span class="ruby-identifier">tree</span> = <span class="ruby-value str">&quot;&quot;</span>
707
- 233: <span class="ruby-identifier">wbs</span> = <span class="ruby-value str">&quot;&quot;</span>
708
- 234: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
709
- 235: <span class="ruby-identifier">wbsIdcs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">idx</span><span class="ruby-operator">|</span>
710
- 236: <span class="ruby-comment cmt"># Prefix the level index with zeros so that we always have a 5 digit</span>
711
- 237: <span class="ruby-comment cmt"># long String. 5 digits should be large enough for all real-world</span>
712
- 238: <span class="ruby-comment cmt"># projects.</span>
713
- 239: <span class="ruby-identifier">tree</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">idx</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">rjust</span>(<span class="ruby-value">5</span>, <span class="ruby-value str">'0'</span>)
714
- 240: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span>
715
- 241: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
716
- 242: <span class="ruby-keyword kw">else</span>
717
- 243: <span class="ruby-identifier">wbs</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'.'</span>
718
- 244: <span class="ruby-keyword kw">end</span>
719
- 245: <span class="ruby-identifier">wbs</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">idx</span>.<span class="ruby-identifier">to_s</span>
720
- 246: <span class="ruby-keyword kw">end</span>
721
- 247: <span class="ruby-identifier">p</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'wbs'</span>, <span class="ruby-identifier">wbs</span>)
722
- 248: <span class="ruby-identifier">p</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'tree'</span>, <span class="ruby-identifier">tree</span>)
723
- 249: <span class="ruby-keyword kw">end</span>
724
- 250: <span class="ruby-keyword kw">end</span>
751
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 247</span>
752
+ 247: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">index</span>
753
+ 248: <span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
754
+ 249: <span class="ruby-identifier">wbsIdcs</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">getWBSIndicies</span>
755
+ 250: <span class="ruby-identifier">wbs</span> = <span class="ruby-value str">&quot;&quot;</span>
756
+ 251: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">true</span>
757
+ 252: <span class="ruby-identifier">wbsIdcs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">idx</span><span class="ruby-operator">|</span>
758
+ 253: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">first</span>
759
+ 254: <span class="ruby-identifier">first</span> = <span class="ruby-keyword kw">false</span>
760
+ 255: <span class="ruby-keyword kw">else</span>
761
+ 256: <span class="ruby-identifier">wbs</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">'.'</span>
762
+ 257: <span class="ruby-keyword kw">end</span>
763
+ 258: <span class="ruby-identifier">wbs</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">idx</span>.<span class="ruby-identifier">to_s</span>
764
+ 259: <span class="ruby-keyword kw">end</span>
765
+ 260: <span class="ruby-identifier">p</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'wbs'</span>, <span class="ruby-identifier">wbs</span>)
766
+ 261: <span class="ruby-keyword kw">end</span>
767
+ 262: <span class="ruby-keyword kw">end</span>
725
768
  </pre>
726
769
  </div>
727
770
 
@@ -729,12 +772,12 @@ the set has been modified.
729
772
  </div>
730
773
 
731
774
 
732
- <div id="method-M000838" class="method-detail">
733
- <a name="M000838"></a>
775
+ <div id="method-M001006" class="method-detail">
776
+ <a name="M001006"></a>
734
777
 
735
778
  <div class="method-heading">
736
779
 
737
- <a href="#M000838" class="method-signature">
780
+ <a href="#M001006" class="method-signature">
738
781
 
739
782
  <span class="method-name">inheritAttributesFromScenario</span><span class="method-args">()</span>
740
783
 
@@ -749,8 +792,8 @@ Inherit all attributes of each property from the parent scenario.
749
792
  </p>
750
793
 
751
794
  <p><a class="source-toggle" href="#"
752
- onclick="toggleCode('M000838-source');return false;">[Source]</a></p>
753
- <div class="method-source-code" id="M000838-source">
795
+ onclick="toggleCode('M001006-source');return false;">[Source]</a></p>
796
+ <div class="method-source-code" id="M001006-source">
754
797
  <pre>
755
798
  <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 67</span>
756
799
  67: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inheritAttributesFromScenario</span>
@@ -763,12 +806,12 @@ Inherit all attributes of each property from the parent scenario.
763
806
  </div>
764
807
 
765
808
 
766
- <div id="method-M000844" class="method-detail">
767
- <a name="M000844"></a>
809
+ <div id="method-M001013" class="method-detail">
810
+ <a name="M001013"></a>
768
811
 
769
812
  <div class="method-heading">
770
813
 
771
- <a href="#M000844" class="method-signature">
814
+ <a href="#M001013" class="method-signature">
772
815
 
773
816
  <span class="method-name">inheritedFromParent?</span><span class="method-args">(attrId)</span>
774
817
 
@@ -783,16 +826,16 @@ Return whether the attribute with <em>attrId</em> is inherited from parent.
783
826
  </p>
784
827
 
785
828
  <p><a class="source-toggle" href="#"
786
- onclick="toggleCode('M000844-source');return false;">[Source]</a></p>
787
- <div class="method-source-code" id="M000844-source">
829
+ onclick="toggleCode('M001013-source');return false;">[Source]</a></p>
830
+ <div class="method-source-code" id="M001013-source">
788
831
  <pre>
789
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 114</span>
790
- 114: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inheritedFromParent?</span>(<span class="ruby-identifier">attrId</span>)
791
- 115: <span class="ruby-comment cmt"># All hardwired attributes are not inherited.</span>
792
- 116: <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">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">nil?</span>
793
- 117:
794
- 118: <span class="ruby-ivar">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">inheritedFromParent</span>
795
- 119: <span class="ruby-keyword kw">end</span>
832
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 132</span>
833
+ 132: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inheritedFromParent?</span>(<span class="ruby-identifier">attrId</span>)
834
+ 133: <span class="ruby-comment cmt"># All hardwired attributes are not inherited.</span>
835
+ 134: <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">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">nil?</span>
836
+ 135:
837
+ 136: <span class="ruby-ivar">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">inheritedFromParent</span>
838
+ 137: <span class="ruby-keyword kw">end</span>
796
839
  </pre>
797
840
  </div>
798
841
 
@@ -800,12 +843,12 @@ Return whether the attribute with <em>attrId</em> is inherited from parent.
800
843
  </div>
801
844
 
802
845
 
803
- <div id="method-M000843" class="method-detail">
804
- <a name="M000843"></a>
846
+ <div id="method-M001012" class="method-detail">
847
+ <a name="M001012"></a>
805
848
 
806
849
  <div class="method-heading">
807
850
 
808
- <a href="#M000843" class="method-signature">
851
+ <a href="#M001012" class="method-signature">
809
852
 
810
853
  <span class="method-name">inheritedFromProject?</span><span class="method-args">(attrId)</span>
811
854
 
@@ -821,16 +864,16 @@ global scope.
821
864
  </p>
822
865
 
823
866
  <p><a class="source-toggle" href="#"
824
- onclick="toggleCode('M000843-source');return false;">[Source]</a></p>
825
- <div class="method-source-code" id="M000843-source">
867
+ onclick="toggleCode('M001012-source');return false;">[Source]</a></p>
868
+ <div class="method-source-code" id="M001012-source">
826
869
  <pre>
827
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 106</span>
828
- 106: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inheritedFromProject?</span>(<span class="ruby-identifier">attrId</span>)
829
- 107: <span class="ruby-comment cmt"># All hardwired attributes are not inherited.</span>
830
- 108: <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">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">nil?</span>
831
- 109:
832
- 110: <span class="ruby-ivar">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">inheritedFromProject</span>
833
- 111: <span class="ruby-keyword kw">end</span>
870
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 124</span>
871
+ 124: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inheritedFromProject?</span>(<span class="ruby-identifier">attrId</span>)
872
+ 125: <span class="ruby-comment cmt"># All hardwired attributes are not inherited.</span>
873
+ 126: <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">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">nil?</span>
874
+ 127:
875
+ 128: <span class="ruby-ivar">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">inheritedFromProject</span>
876
+ 129: <span class="ruby-keyword kw">end</span>
834
877
  </pre>
835
878
  </div>
836
879
 
@@ -838,12 +881,12 @@ global scope.
838
881
  </div>
839
882
 
840
883
 
841
- <div id="method-M000856" class="method-detail">
842
- <a name="M000856"></a>
884
+ <div id="method-M001025" class="method-detail">
885
+ <a name="M001025"></a>
843
886
 
844
887
  <div class="method-heading">
845
888
 
846
- <a href="#M000856" class="method-signature">
889
+ <a href="#M001025" class="method-signature">
847
890
 
848
891
  <span class="method-name">items</span><span class="method-args">()</span>
849
892
 
@@ -859,13 +902,13 @@ objects in this set.
859
902
  </p>
860
903
 
861
904
  <p><a class="source-toggle" href="#"
862
- onclick="toggleCode('M000856-source');return false;">[Source]</a></p>
863
- <div class="method-source-code" id="M000856-source">
905
+ onclick="toggleCode('M001025-source');return false;">[Source]</a></p>
906
+ <div class="method-source-code" id="M001025-source">
864
907
  <pre>
865
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 275</span>
866
- 275: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">items</span>
867
- 276: <span class="ruby-ivar">@properties</span>.<span class="ruby-identifier">length</span>
868
- 277: <span class="ruby-keyword kw">end</span>
908
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 287</span>
909
+ 287: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">items</span>
910
+ 288: <span class="ruby-ivar">@properties</span>.<span class="ruby-identifier">length</span>
911
+ 289: <span class="ruby-keyword kw">end</span>
869
912
  </pre>
870
913
  </div>
871
914
 
@@ -873,12 +916,12 @@ objects in this set.
873
916
  </div>
874
917
 
875
918
 
876
- <div id="method-M000841" class="method-detail">
877
- <a name="M000841"></a>
919
+ <div id="method-M001009" class="method-detail">
920
+ <a name="M001009"></a>
878
921
 
879
922
  <div class="method-heading">
880
923
 
881
- <a href="#M000841" class="method-signature">
924
+ <a href="#M001009" class="method-signature">
882
925
 
883
926
  <span class="method-name">knownAttribute?</span><span class="method-args">(attrId)</span>
884
927
 
@@ -895,8 +938,8 @@ href="AttributeDefinition.html">AttributeDefinition</a> for
895
938
  </p>
896
939
 
897
940
  <p><a class="source-toggle" href="#"
898
- onclick="toggleCode('M000841-source');return false;">[Source]</a></p>
899
- <div class="method-source-code" id="M000841-source">
941
+ onclick="toggleCode('M001009-source');return false;">[Source]</a></p>
942
+ <div class="method-source-code" id="M001009-source">
900
943
  <pre>
901
944
  <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 91</span>
902
945
  91: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">knownAttribute?</span>(<span class="ruby-identifier">attrId</span>)
@@ -910,12 +953,12 @@ href="AttributeDefinition.html">AttributeDefinition</a> for
910
953
  </div>
911
954
 
912
955
 
913
- <div id="method-M000854" class="method-detail">
914
- <a name="M000854"></a>
956
+ <div id="method-M001023" class="method-detail">
957
+ <a name="M001023"></a>
915
958
 
916
959
  <div class="method-heading">
917
960
 
918
- <a href="#M000854" class="method-signature">
961
+ <a href="#M001023" class="method-signature">
919
962
 
920
963
  <span class="method-name">levelSeqNo</span><span class="method-args">(property)</span>
921
964
 
@@ -930,20 +973,20 @@ Return the index of the top-level <em>property</em> in the set.
930
973
  </p>
931
974
 
932
975
  <p><a class="source-toggle" href="#"
933
- onclick="toggleCode('M000854-source');return false;">[Source]</a></p>
934
- <div class="method-source-code" id="M000854-source">
976
+ onclick="toggleCode('M001023-source');return false;">[Source]</a></p>
977
+ <div class="method-source-code" id="M001023-source">
935
978
  <pre>
936
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 253</span>
937
- 253: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">property</span>)
938
- 254: <span class="ruby-identifier">seqNo</span> = <span class="ruby-value">1</span>
939
- 255: <span class="ruby-ivar">@properties</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
940
- 256: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
941
- 257: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">seqNo</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">p</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">property</span>
942
- 258: <span class="ruby-identifier">seqNo</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
943
- 259: <span class="ruby-keyword kw">end</span>
944
- 260: <span class="ruby-keyword kw">end</span>
945
- 261: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Fatal Error: Unknow property #{property}&quot;</span>
946
- 262: <span class="ruby-keyword kw">end</span>
979
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 265</span>
980
+ 265: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">property</span>)
981
+ 266: <span class="ruby-identifier">seqNo</span> = <span class="ruby-value">1</span>
982
+ 267: <span class="ruby-ivar">@properties</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
983
+ 268: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
984
+ 269: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">seqNo</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">p</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">property</span>
985
+ 270: <span class="ruby-identifier">seqNo</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
986
+ 271: <span class="ruby-keyword kw">end</span>
987
+ 272: <span class="ruby-keyword kw">end</span>
988
+ 273: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Fatal Error: Unknow property #{property}&quot;</span>
989
+ 274: <span class="ruby-keyword kw">end</span>
947
990
  </pre>
948
991
  </div>
949
992
 
@@ -951,12 +994,12 @@ Return the index of the top-level <em>property</em> in the set.
951
994
  </div>
952
995
 
953
996
 
954
- <div id="method-M000855" class="method-detail">
955
- <a name="M000855"></a>
997
+ <div id="method-M001024" class="method-detail">
998
+ <a name="M001024"></a>
956
999
 
957
1000
  <div class="method-heading">
958
1001
 
959
- <a href="#M000855" class="method-signature">
1002
+ <a href="#M001024" class="method-signature">
960
1003
 
961
1004
  <span class="method-name">maxDepth</span><span class="method-args">()</span>
962
1005
 
@@ -972,17 +1015,17 @@ maxDepth of 1. A list with one sub level has a maxDepth of 2 and so on.
972
1015
  </p>
973
1016
 
974
1017
  <p><a class="source-toggle" href="#"
975
- onclick="toggleCode('M000855-source');return false;">[Source]</a></p>
976
- <div class="method-source-code" id="M000855-source">
1018
+ onclick="toggleCode('M001024-source');return false;">[Source]</a></p>
1019
+ <div class="method-source-code" id="M001024-source">
977
1020
  <pre>
978
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 266</span>
979
- 266: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">maxDepth</span>
980
- 267: <span class="ruby-identifier">md</span> = <span class="ruby-value">0</span>
981
- 268: <span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
982
- 269: <span class="ruby-identifier">md</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">level</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">level</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">md</span>
983
- 270: <span class="ruby-keyword kw">end</span>
984
- 271: <span class="ruby-identifier">md</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
985
- 272: <span class="ruby-keyword kw">end</span>
1021
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 278</span>
1022
+ 278: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">maxDepth</span>
1023
+ 279: <span class="ruby-identifier">md</span> = <span class="ruby-value">0</span>
1024
+ 280: <span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
1025
+ 281: <span class="ruby-identifier">md</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">level</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">level</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">md</span>
1026
+ 282: <span class="ruby-keyword kw">end</span>
1027
+ 283: <span class="ruby-identifier">md</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
1028
+ 284: <span class="ruby-keyword kw">end</span>
986
1029
  </pre>
987
1030
  </div>
988
1031
 
@@ -990,12 +1033,12 @@ maxDepth of 1. A list with one sub level has a maxDepth of 2 and so on.
990
1033
  </div>
991
1034
 
992
1035
 
993
- <div id="method-M000850" class="method-detail">
994
- <a name="M000850"></a>
1036
+ <div id="method-M001019" class="method-detail">
1037
+ <a name="M001019"></a>
995
1038
 
996
1039
  <div class="method-heading">
997
1040
 
998
- <a href="#M000850" class="method-signature">
1041
+ <a href="#M001019" class="method-signature">
999
1042
 
1000
1043
  <span class="method-name">removeProperty</span><span class="method-args">(prop)</span>
1001
1044
 
@@ -1016,31 +1059,31 @@ TODO: This function does not take care of references to this PTN!
1016
1059
  </p>
1017
1060
 
1018
1061
  <p><a class="source-toggle" href="#"
1019
- onclick="toggleCode('M000850-source');return false;">[Source]</a></p>
1020
- <div class="method-source-code" id="M000850-source">
1062
+ onclick="toggleCode('M001019-source');return false;">[Source]</a></p>
1063
+ <div class="method-source-code" id="M001019-source">
1021
1064
  <pre>
1022
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 193</span>
1023
- 193: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">removeProperty</span>(<span class="ruby-identifier">prop</span>)
1024
- 194: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
1025
- 195: <span class="ruby-identifier">property</span> = <span class="ruby-ivar">@propertyMap</span>[<span class="ruby-identifier">prop</span>]
1026
- 196: <span class="ruby-keyword kw">else</span>
1027
- 197: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">prop</span>
1028
- 198: <span class="ruby-keyword kw">end</span>
1029
- 199:
1030
- 200: <span class="ruby-comment cmt"># Recursively remove all sub-nodes. The children list is modified during</span>
1031
- 201: <span class="ruby-comment cmt"># the call, so we can't use an iterator here.</span>
1032
- 202: <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-keyword kw">do</span>
1033
- 203: <span class="ruby-identifier">removeProperty</span>(<span class="ruby-identifier">property</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">first</span>)
1034
- 204: <span class="ruby-keyword kw">end</span>
1035
- 205:
1036
- 206: <span class="ruby-ivar">@properties</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">property</span>)
1037
- 207: <span class="ruby-ivar">@propertyMap</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">property</span>.<span class="ruby-identifier">fullId</span>)
1038
- 208:
1039
- 209: <span class="ruby-comment cmt"># Remove this node from the child list of the parent node.</span>
1040
- 210: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">property</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">parent</span>
1041
- 211:
1042
- 212: <span class="ruby-identifier">property</span>
1043
- 213: <span class="ruby-keyword kw">end</span>
1065
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 211</span>
1066
+ 211: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">removeProperty</span>(<span class="ruby-identifier">prop</span>)
1067
+ 212: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">prop</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
1068
+ 213: <span class="ruby-identifier">property</span> = <span class="ruby-ivar">@propertyMap</span>[<span class="ruby-identifier">prop</span>]
1069
+ 214: <span class="ruby-keyword kw">else</span>
1070
+ 215: <span class="ruby-identifier">property</span> = <span class="ruby-identifier">prop</span>
1071
+ 216: <span class="ruby-keyword kw">end</span>
1072
+ 217:
1073
+ 218: <span class="ruby-comment cmt"># Recursively remove all sub-nodes. The children list is modified during</span>
1074
+ 219: <span class="ruby-comment cmt"># the call, so we can't use an iterator here.</span>
1075
+ 220: <span class="ruby-keyword kw">until</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-keyword kw">do</span>
1076
+ 221: <span class="ruby-identifier">removeProperty</span>(<span class="ruby-identifier">property</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">first</span>)
1077
+ 222: <span class="ruby-keyword kw">end</span>
1078
+ 223:
1079
+ 224: <span class="ruby-ivar">@properties</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">property</span>)
1080
+ 225: <span class="ruby-ivar">@propertyMap</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">property</span>.<span class="ruby-identifier">fullId</span>)
1081
+ 226:
1082
+ 227: <span class="ruby-comment cmt"># Remove this node from the child list of the parent node.</span>
1083
+ 228: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">children</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">property</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">parent</span>
1084
+ 229:
1085
+ 230: <span class="ruby-identifier">property</span>
1086
+ 231: <span class="ruby-keyword kw">end</span>
1044
1087
  </pre>
1045
1088
  </div>
1046
1089
 
@@ -1048,12 +1091,12 @@ TODO: This function does not take care of references to this PTN!
1048
1091
  </div>
1049
1092
 
1050
1093
 
1051
- <div id="method-M000842" class="method-detail">
1052
- <a name="M000842"></a>
1094
+ <div id="method-M001011" class="method-detail">
1095
+ <a name="M001011"></a>
1053
1096
 
1054
1097
  <div class="method-heading">
1055
1098
 
1056
- <a href="#M000842" class="method-signature">
1099
+ <a href="#M001011" class="method-signature">
1057
1100
 
1058
1101
  <span class="method-name">scenarioSpecific?</span><span class="method-args">(attrId)</span>
1059
1102
 
@@ -1069,16 +1112,16 @@ not.
1069
1112
  </p>
1070
1113
 
1071
1114
  <p><a class="source-toggle" href="#"
1072
- onclick="toggleCode('M000842-source');return false;">[Source]</a></p>
1073
- <div class="method-source-code" id="M000842-source">
1115
+ onclick="toggleCode('M001011-source');return false;">[Source]</a></p>
1116
+ <div class="method-source-code" id="M001011-source">
1074
1117
  <pre>
1075
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 97</span>
1076
- 97: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">attrId</span>)
1077
- 98: <span class="ruby-comment cmt"># All hardwired attributes are not scenario specific.</span>
1078
- 99: <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">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">nil?</span>
1079
- 100:
1080
- 101: <span class="ruby-ivar">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">scenarioSpecific</span>
1081
- 102: <span class="ruby-keyword kw">end</span>
1118
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 115</span>
1119
+ 115: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">attrId</span>)
1120
+ 116: <span class="ruby-comment cmt"># All hardwired attributes are not scenario specific.</span>
1121
+ 117: <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">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">nil?</span>
1122
+ 118:
1123
+ 119: <span class="ruby-ivar">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">scenarioSpecific</span>
1124
+ 120: <span class="ruby-keyword kw">end</span>
1082
1125
  </pre>
1083
1126
  </div>
1084
1127
 
@@ -1086,12 +1129,12 @@ not.
1086
1129
  </div>
1087
1130
 
1088
1131
 
1089
- <div id="method-M000860" class="method-detail">
1090
- <a name="M000860"></a>
1132
+ <div id="method-M001029" class="method-detail">
1133
+ <a name="M001029"></a>
1091
1134
 
1092
1135
  <div class="method-heading">
1093
1136
 
1094
- <a href="#M000860" class="method-signature">
1137
+ <a href="#M001029" class="method-signature">
1095
1138
 
1096
1139
  <span class="method-name">to_ary</span><span class="method-args">()</span>
1097
1140
 
@@ -1107,13 +1150,13 @@ objects as flat Array.
1107
1150
  </p>
1108
1151
 
1109
1152
  <p><a class="source-toggle" href="#"
1110
- onclick="toggleCode('M000860-source');return false;">[Source]</a></p>
1111
- <div class="method-source-code" id="M000860-source">
1153
+ onclick="toggleCode('M001029-source');return false;">[Source]</a></p>
1154
+ <div class="method-source-code" id="M001029-source">
1112
1155
  <pre>
1113
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 302</span>
1114
- 302: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ary</span>
1115
- 303: <span class="ruby-ivar">@properties</span>
1116
- 304: <span class="ruby-keyword kw">end</span>
1156
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 314</span>
1157
+ 314: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_ary</span>
1158
+ 315: <span class="ruby-ivar">@properties</span>.<span class="ruby-identifier">dup</span>
1159
+ 316: <span class="ruby-keyword kw">end</span>
1117
1160
  </pre>
1118
1161
  </div>
1119
1162
 
@@ -1121,12 +1164,12 @@ objects as flat Array.
1121
1164
  </div>
1122
1165
 
1123
1166
 
1124
- <div id="method-M000861" class="method-detail">
1125
- <a name="M000861"></a>
1167
+ <div id="method-M001030" class="method-detail">
1168
+ <a name="M001030"></a>
1126
1169
 
1127
1170
  <div class="method-heading">
1128
1171
 
1129
- <a href="#M000861" class="method-signature">
1172
+ <a href="#M001030" class="method-signature">
1130
1173
 
1131
1174
  <span class="method-name">to_s</span><span class="method-args">()</span>
1132
1175
 
@@ -1137,13 +1180,13 @@ objects as flat Array.
1137
1180
  <div class="method-description">
1138
1181
 
1139
1182
  <p><a class="source-toggle" href="#"
1140
- onclick="toggleCode('M000861-source');return false;">[Source]</a></p>
1141
- <div class="method-source-code" id="M000861-source">
1183
+ onclick="toggleCode('M001030-source');return false;">[Source]</a></p>
1184
+ <div class="method-source-code" id="M001030-source">
1142
1185
  <pre>
1143
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 306</span>
1144
- 306: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
1145
- 307: <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>).<span class="ruby-identifier">to_s</span>
1146
- 308: <span class="ruby-keyword kw">end</span>
1186
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 318</span>
1187
+ 318: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_s</span>
1188
+ 319: <span class="ruby-constant">PropertyList</span>.<span class="ruby-identifier">new</span>(<span class="ruby-keyword kw">self</span>).<span class="ruby-identifier">to_s</span>
1189
+ 320: <span class="ruby-keyword kw">end</span>
1147
1190
  </pre>
1148
1191
  </div>
1149
1192
 
@@ -1151,12 +1194,12 @@ objects as flat Array.
1151
1194
  </div>
1152
1195
 
1153
1196
 
1154
- <div id="method-M000858" class="method-detail">
1155
- <a name="M000858"></a>
1197
+ <div id="method-M001027" class="method-detail">
1198
+ <a name="M001027"></a>
1156
1199
 
1157
1200
  <div class="method-heading">
1158
1201
 
1159
- <a href="#M000858" class="method-signature">
1202
+ <a href="#M001027" class="method-signature">
1160
1203
 
1161
1204
  <span class="method-name">topLevelItems</span><span class="method-args">()</span>
1162
1205
 
@@ -1173,17 +1216,17 @@ are no children.
1173
1216
  </p>
1174
1217
 
1175
1218
  <p><a class="source-toggle" href="#"
1176
- onclick="toggleCode('M000858-source');return false;">[Source]</a></p>
1177
- <div class="method-source-code" id="M000858-source">
1219
+ onclick="toggleCode('M001027-source');return false;">[Source]</a></p>
1220
+ <div class="method-source-code" id="M001027-source">
1178
1221
  <pre>
1179
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 286</span>
1180
- 286: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">topLevelItems</span>
1181
- 287: <span class="ruby-identifier">items</span> = <span class="ruby-value">0</span>
1182
- 288: <span class="ruby-ivar">@properties</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
1183
- 289: <span class="ruby-identifier">items</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
1184
- 290: <span class="ruby-keyword kw">end</span>
1185
- 291: <span class="ruby-identifier">items</span>
1186
- 292: <span class="ruby-keyword kw">end</span>
1222
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 298</span>
1223
+ 298: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">topLevelItems</span>
1224
+ 299: <span class="ruby-identifier">items</span> = <span class="ruby-value">0</span>
1225
+ 300: <span class="ruby-ivar">@properties</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span>
1226
+ 301: <span class="ruby-identifier">items</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
1227
+ 302: <span class="ruby-keyword kw">end</span>
1228
+ 303: <span class="ruby-identifier">items</span>
1229
+ 304: <span class="ruby-keyword kw">end</span>
1187
1230
  </pre>
1188
1231
  </div>
1189
1232
 
@@ -1191,12 +1234,12 @@ are no children.
1191
1234
  </div>
1192
1235
 
1193
1236
 
1194
- <div id="method-M000845" class="method-detail">
1195
- <a name="M000845"></a>
1237
+ <div id="method-M001014" class="method-detail">
1238
+ <a name="M001014"></a>
1196
1239
 
1197
1240
  <div class="method-heading">
1198
1241
 
1199
- <a href="#M000845" class="method-signature">
1242
+ <a href="#M001014" class="method-signature">
1200
1243
 
1201
1244
  <span class="method-name">userDefined?</span><span class="method-args">(attrId)</span>
1202
1245
 
@@ -1211,15 +1254,15 @@ Return whether or not the attribute was user defined.
1211
1254
  </p>
1212
1255
 
1213
1256
  <p><a class="source-toggle" href="#"
1214
- onclick="toggleCode('M000845-source');return false;">[Source]</a></p>
1215
- <div class="method-source-code" id="M000845-source">
1257
+ onclick="toggleCode('M001014-source');return false;">[Source]</a></p>
1258
+ <div class="method-source-code" id="M001014-source">
1216
1259
  <pre>
1217
- <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 122</span>
1218
- 122: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">userDefined?</span>(<span class="ruby-identifier">attrId</span>)
1219
- 123: <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">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">nil?</span>
1220
- 124:
1221
- 125: <span class="ruby-ivar">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">userDefined</span>
1222
- 126: <span class="ruby-keyword kw">end</span>
1260
+ <span class="ruby-comment cmt"># File lib/PropertySet.rb, line 140</span>
1261
+ 140: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">userDefined?</span>(<span class="ruby-identifier">attrId</span>)
1262
+ 141: <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">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">nil?</span>
1263
+ 142:
1264
+ 143: <span class="ruby-ivar">@attributeDefinitions</span>[<span class="ruby-identifier">attrId</span>].<span class="ruby-identifier">userDefined</span>
1265
+ 144: <span class="ruby-keyword kw">end</span>
1223
1266
  </pre>
1224
1267
  </div>
1225
1268