taskjuggler 0.0.3 → 0.0.4

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