taskjuggler 0.0.11 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (697) hide show
  1. data/CHANGELOG +6 -1550
  2. data/benchmarks/UTF-8-Strings.rb +58 -0
  3. data/benchmarks/profile.clt +36082 -0
  4. data/benchmarks/profile.html +58182 -0
  5. data/benchmarks/runbench.rb +2 -2
  6. data/data/css/tjmanual.css +0 -1
  7. data/doc/AppConfig.html +1491 -0
  8. data/doc/CHANGELOG.html +557 -0
  9. data/doc/COPYING.html +899 -0
  10. data/doc/Diff.html +1193 -0
  11. data/doc/Diff/Hunk.html +1026 -0
  12. data/doc/Diffable.html +684 -0
  13. data/doc/DiffableString.html +684 -0
  14. data/doc/Object.html +720 -0
  15. data/doc/README_rdoc.html +742 -0
  16. data/doc/RuntimeConfig.html +856 -0
  17. data/doc/String.html +1005 -0
  18. data/doc/TaskJuggler.html +2639 -0
  19. data/doc/TaskJuggler/Account.html +753 -0
  20. data/doc/TaskJuggler/AccountAttribute.html +769 -0
  21. data/doc/TaskJuggler/AccountScenario.html +712 -0
  22. data/doc/TaskJuggler/Allocation.html +963 -0
  23. data/doc/TaskJuggler/AllocationAttribute.html +799 -0
  24. data/doc/TaskJuggler/AttributeBase.html +1328 -0
  25. data/doc/TaskJuggler/AttributeDefinition.html +815 -0
  26. data/doc/TaskJuggler/AttributeOverwrite.html +606 -0
  27. data/doc/TaskJuggler/BatchProcessor.html +1178 -0
  28. data/doc/TaskJuggler/Booking.html +859 -0
  29. data/doc/TaskJuggler/BookingListAttribute.html +769 -0
  30. data/doc/TaskJuggler/BooleanAttribute.html +769 -0
  31. data/doc/TaskJuggler/CSVFile.html +1128 -0
  32. data/doc/TaskJuggler/CellSettingPattern.html +700 -0
  33. data/doc/TaskJuggler/CellSettingPatternList.html +749 -0
  34. data/doc/TaskJuggler/Charge.html +777 -0
  35. data/doc/TaskJuggler/ChargeListAttribute.html +733 -0
  36. data/doc/TaskJuggler/ChargeSet.html +949 -0
  37. data/doc/TaskJuggler/ChargeSetListAttribute.html +778 -0
  38. data/doc/TaskJuggler/CollisionDetector.html +1089 -0
  39. data/doc/TaskJuggler/ColumnListAttribute.html +733 -0
  40. data/doc/TaskJuggler/ColumnTable.html +763 -0
  41. data/doc/TaskJuggler/Daemon.html +819 -0
  42. data/doc/TaskJuggler/DataCache.html +1025 -0
  43. data/doc/TaskJuggler/DataCacheEntry.html +737 -0
  44. data/doc/TaskJuggler/DateAttribute.html +737 -0
  45. data/doc/TaskJuggler/DefinitionListAttribute.html +655 -0
  46. data/doc/TaskJuggler/DependencyListAttribute.html +773 -0
  47. data/doc/TaskJuggler/DurationAttribute.html +770 -0
  48. data/doc/TaskJuggler/FileList.html +793 -0
  49. data/doc/TaskJuggler/FileRecord.html +702 -0
  50. data/doc/TaskJuggler/FixnumAttribute.html +691 -0
  51. data/doc/TaskJuggler/FlagListAttribute.html +769 -0
  52. data/doc/TaskJuggler/FloatAttribute.html +733 -0
  53. data/doc/TaskJuggler/FormatListAttribute.html +697 -0
  54. data/doc/TaskJuggler/GanttChart.html +1487 -0
  55. data/doc/TaskJuggler/GanttContainer.html +945 -0
  56. data/doc/TaskJuggler/GanttHeader.html +948 -0
  57. data/doc/TaskJuggler/GanttHeaderScaleItem.html +762 -0
  58. data/doc/TaskJuggler/GanttLine.html +1325 -0
  59. data/doc/TaskJuggler/GanttLoadStack.html +828 -0
  60. data/doc/TaskJuggler/GanttMilestone.html +926 -0
  61. data/doc/TaskJuggler/GanttRouter.html +1136 -0
  62. data/doc/TaskJuggler/GanttTaskBar.html +948 -0
  63. data/doc/TaskJuggler/HTMLDocument.html +754 -0
  64. data/doc/TaskJuggler/HTMLElements.html +599 -0
  65. data/doc/TaskJuggler/HTMLGraphics.html +837 -0
  66. data/doc/TaskJuggler/Interval.html +1076 -0
  67. data/doc/TaskJuggler/IntervalList.html +797 -0
  68. data/doc/TaskJuggler/IntervalListAttribute.html +773 -0
  69. data/doc/TaskJuggler/JobInfo.html +943 -0
  70. data/doc/TaskJuggler/Journal.html +1248 -0
  71. data/doc/TaskJuggler/JournalEntry.html +860 -0
  72. data/doc/TaskJuggler/JournalEntryList.html +1229 -0
  73. data/doc/TaskJuggler/KeywordArray.html +696 -0
  74. data/doc/TaskJuggler/KeywordDocumentation.html +2250 -0
  75. data/doc/TaskJuggler/Limits.html +1036 -0
  76. data/doc/TaskJuggler/Limits/Limit.html +947 -0
  77. data/doc/TaskJuggler/LimitsAttribute.html +734 -0
  78. data/doc/TaskJuggler/ListAttributeBase.html +703 -0
  79. data/doc/TaskJuggler/Log.html +1163 -0
  80. data/doc/TaskJuggler/LogFile.html +980 -0
  81. data/doc/TaskJuggler/LogicalAttribute.html +760 -0
  82. data/doc/TaskJuggler/LogicalExpression.html +801 -0
  83. data/doc/TaskJuggler/LogicalExpressionAttribute.html +691 -0
  84. data/doc/TaskJuggler/LogicalExpressionListAttribute.html +691 -0
  85. data/doc/TaskJuggler/LogicalFlag.html +753 -0
  86. data/doc/TaskJuggler/LogicalFunction.html +1409 -0
  87. data/doc/TaskJuggler/LogicalOperation.html +1144 -0
  88. data/doc/TaskJuggler/ManagerResponsibilities.html +736 -0
  89. data/doc/TaskJuggler/ManagerStatusRecord.html +740 -0
  90. data/doc/TaskJuggler/Message.html +837 -0
  91. data/doc/TaskJuggler/MessageHandler.html +1056 -0
  92. data/doc/TaskJuggler/Navigator.html +943 -0
  93. data/doc/TaskJuggler/NavigatorElement.html +994 -0
  94. data/doc/TaskJuggler/NikuProject.html +724 -0
  95. data/doc/TaskJuggler/NikuReport.html +1470 -0
  96. data/doc/TaskJuggler/NikuResource.html +694 -0
  97. data/doc/TaskJuggler/NodeListAttribute.html +655 -0
  98. data/doc/TaskJuggler/PlaceHolderCell.html +748 -0
  99. data/doc/TaskJuggler/ProcessIntercom.html +1017 -0
  100. data/doc/TaskJuggler/ProcessIntercomIface.html +773 -0
  101. data/doc/TaskJuggler/Project.html +3478 -0
  102. data/doc/TaskJuggler/ProjectBroker.html +1676 -0
  103. data/doc/TaskJuggler/ProjectBrokerIface.html +851 -0
  104. data/doc/TaskJuggler/ProjectFileParser.html +2102 -0
  105. data/doc/TaskJuggler/ProjectFileScanner.html +1896 -0
  106. data/doc/TaskJuggler/ProjectRecord.html +978 -0
  107. data/doc/TaskJuggler/ProjectServer.html +1249 -0
  108. data/doc/TaskJuggler/ProjectServerIface.html +868 -0
  109. data/doc/TaskJuggler/PropertyAttribute.html +691 -0
  110. data/doc/TaskJuggler/PropertyList.html +1399 -0
  111. data/doc/TaskJuggler/PropertySet.html +1796 -0
  112. data/doc/TaskJuggler/PropertyTreeNode.html +2851 -0
  113. data/doc/TaskJuggler/Query.html +1756 -0
  114. data/doc/TaskJuggler/RTFHandlers.html +664 -0
  115. data/doc/TaskJuggler/RTFNavigator.html +792 -0
  116. data/doc/TaskJuggler/RTFQuery.html +1083 -0
  117. data/doc/TaskJuggler/RTFReport.html +820 -0
  118. data/doc/TaskJuggler/RTFReportLink.html +812 -0
  119. data/doc/TaskJuggler/RTFWithQuerySupport.html +702 -0
  120. data/doc/TaskJuggler/RealFormat.html +805 -0
  121. data/doc/TaskJuggler/RealFormatAttribute.html +655 -0
  122. data/doc/TaskJuggler/ReferenceAttribute.html +880 -0
  123. data/doc/TaskJuggler/Report.html +1501 -0
  124. data/doc/TaskJuggler/ReportBase.html +1266 -0
  125. data/doc/TaskJuggler/ReportContext.html +837 -0
  126. data/doc/TaskJuggler/ReportServer.html +1068 -0
  127. data/doc/TaskJuggler/ReportServerIface.html +902 -0
  128. data/doc/TaskJuggler/ReportServerRecord.html +781 -0
  129. data/doc/TaskJuggler/ReportServlet.html +1029 -0
  130. data/doc/TaskJuggler/ReportTable.html +1179 -0
  131. data/doc/TaskJuggler/ReportTableCell.html +1666 -0
  132. data/doc/TaskJuggler/ReportTableColumn.html +890 -0
  133. data/doc/TaskJuggler/ReportTableLegend.html +1060 -0
  134. data/doc/TaskJuggler/ReportTableLine.html +1067 -0
  135. data/doc/TaskJuggler/Resource.html +1004 -0
  136. data/doc/TaskJuggler/ResourceListAttribute.html +829 -0
  137. data/doc/TaskJuggler/ResourceListRE.html +737 -0
  138. data/doc/TaskJuggler/ResourceScenario.html +2549 -0
  139. data/doc/TaskJuggler/RichText.html +879 -0
  140. data/doc/TaskJuggler/RichTextAttribute.html +811 -0
  141. data/doc/TaskJuggler/RichTextDocument.html +1038 -0
  142. data/doc/TaskJuggler/RichTextElement.html +1780 -0
  143. data/doc/TaskJuggler/RichTextFunctionExample.html +799 -0
  144. data/doc/TaskJuggler/RichTextFunctionHandler.html +750 -0
  145. data/doc/TaskJuggler/RichTextImage.html +712 -0
  146. data/doc/TaskJuggler/RichTextIntermediate.html +1285 -0
  147. data/doc/TaskJuggler/RichTextParser.html +868 -0
  148. data/doc/TaskJuggler/RichTextScanner.html +1565 -0
  149. data/doc/TaskJuggler/RichTextSnip.html +1000 -0
  150. data/doc/TaskJuggler/RichTextSyntaxRules.html +2052 -0
  151. data/doc/TaskJuggler/Scenario.html +656 -0
  152. data/doc/TaskJuggler/ScenarioData.html +838 -0
  153. data/doc/TaskJuggler/ScenarioListAttribute.html +733 -0
  154. data/doc/TaskJuggler/Scoreboard.html +1201 -0
  155. data/doc/TaskJuggler/SheetHandlerBase.html +1297 -0
  156. data/doc/TaskJuggler/SheetReceiver.html +1398 -0
  157. data/doc/TaskJuggler/SheetSender.html +1168 -0
  158. data/doc/TaskJuggler/Shift.html +751 -0
  159. data/doc/TaskJuggler/ShiftAssignment.html +1008 -0
  160. data/doc/TaskJuggler/ShiftAssignments.html +1413 -0
  161. data/doc/TaskJuggler/ShiftAssignmentsAttribute.html +734 -0
  162. data/doc/TaskJuggler/ShiftScenario.html +782 -0
  163. data/doc/TaskJuggler/SimpleQueryExpander.html +732 -0
  164. data/doc/TaskJuggler/SortListAttribute.html +691 -0
  165. data/doc/TaskJuggler/StatusSheetReceiver.html +678 -0
  166. data/doc/TaskJuggler/StatusSheetReport.html +935 -0
  167. data/doc/TaskJuggler/StatusSheetSender.html +808 -0
  168. data/doc/TaskJuggler/StdIoWrapper.html +696 -0
  169. data/doc/TaskJuggler/StringAttribute.html +733 -0
  170. data/doc/TaskJuggler/SymbolAttribute.html +691 -0
  171. data/doc/TaskJuggler/SyntaxReference.html +1240 -0
  172. data/doc/TaskJuggler/TOCEntry.html +836 -0
  173. data/doc/TaskJuggler/TSResourceRecord.html +732 -0
  174. data/doc/TaskJuggler/TSTaskRecord.html +744 -0
  175. data/doc/TaskJuggler/TableColumnDefinition.html +949 -0
  176. data/doc/TaskJuggler/TableOfContents.html +790 -0
  177. data/doc/TaskJuggler/TableReport.html +2555 -0
  178. data/doc/TaskJuggler/Task.html +890 -0
  179. data/doc/TaskJuggler/TaskDepListAttribute.html +773 -0
  180. data/doc/TaskJuggler/TaskDependency.html +832 -0
  181. data/doc/TaskJuggler/TaskListAttribute.html +773 -0
  182. data/doc/TaskJuggler/TaskListRE.html +736 -0
  183. data/doc/TaskJuggler/TaskScenario.html +5180 -0
  184. data/doc/TaskJuggler/TernarySearchTree.html +1341 -0
  185. data/doc/TaskJuggler/TextFormatter.html +973 -0
  186. data/doc/TaskJuggler/TextParser.html +1862 -0
  187. data/doc/TaskJuggler/TextParser/Macro.html +708 -0
  188. data/doc/TaskJuggler/TextParser/MacroTable.html +832 -0
  189. data/doc/TaskJuggler/TextParser/Pattern.html +1743 -0
  190. data/doc/TaskJuggler/TextParser/Rule.html +1419 -0
  191. data/doc/TaskJuggler/TextParser/Scanner.html +1516 -0
  192. data/doc/TaskJuggler/TextParser/Scanner/BufferStreamHandle.html +661 -0
  193. data/doc/TaskJuggler/TextParser/Scanner/FileStreamHandle.html +727 -0
  194. data/doc/TaskJuggler/TextParser/Scanner/MacroStackEntry.html +724 -0
  195. data/doc/TaskJuggler/TextParser/Scanner/StreamHandle.html +1095 -0
  196. data/doc/TaskJuggler/TextParser/SourceFileInfo.html +760 -0
  197. data/doc/TaskJuggler/TextParser/StackElement.html +940 -0
  198. data/doc/TaskJuggler/TextParser/State.html +1015 -0
  199. data/doc/TaskJuggler/TextParser/StateTransition.html +808 -0
  200. data/doc/TaskJuggler/TextParser/TextParserResultArray.html +711 -0
  201. data/doc/TaskJuggler/TextParser/TokenDoc.html +742 -0
  202. data/doc/TaskJuggler/TextReport.html +921 -0
  203. data/doc/TaskJuggler/TimeSheet.html +1264 -0
  204. data/doc/TaskJuggler/TimeSheetReceiver.html +675 -0
  205. data/doc/TaskJuggler/TimeSheetRecord.html +1415 -0
  206. data/doc/TaskJuggler/TimeSheetReport.html +1013 -0
  207. data/doc/TaskJuggler/TimeSheetSender.html +700 -0
  208. data/doc/TaskJuggler/TimeSheetSummary.html +959 -0
  209. data/doc/TaskJuggler/TimeSheets.html +736 -0
  210. data/doc/TaskJuggler/Tj3.html +857 -0
  211. data/doc/TaskJuggler/Tj3AppBase.html +942 -0
  212. data/doc/TaskJuggler/Tj3Client.html +1510 -0
  213. data/doc/TaskJuggler/Tj3Daemon.html +870 -0
  214. data/doc/TaskJuggler/Tj3Man.html +768 -0
  215. data/doc/TaskJuggler/Tj3SheetAppBase.html +758 -0
  216. data/doc/TaskJuggler/Tj3SsReceiver.html +747 -0
  217. data/doc/TaskJuggler/Tj3SsSender.html +780 -0
  218. data/doc/TaskJuggler/Tj3TsReceiver.html +747 -0
  219. data/doc/TaskJuggler/Tj3TsSender.html +767 -0
  220. data/doc/TaskJuggler/Tj3TsSummary.html +775 -0
  221. data/doc/TaskJuggler/TjException.html +692 -0
  222. data/doc/TaskJuggler/TjRuntimeError.html +606 -0
  223. data/doc/TaskJuggler/TjTime.html +3117 -0
  224. data/doc/TaskJuggler/TjpExample.html +897 -0
  225. data/doc/TaskJuggler/TjpExportRE.html +1772 -0
  226. data/doc/TaskJuggler/TjpSyntaxRules.html +14329 -0
  227. data/doc/TaskJuggler/URLParameter.html +691 -0
  228. data/doc/TaskJuggler/UserManual.html +1224 -0
  229. data/doc/TaskJuggler/VimSyntax.html +1064 -0
  230. data/doc/TaskJuggler/WebServer.html +757 -0
  231. data/doc/TaskJuggler/WelcomePage.html +789 -0
  232. data/doc/TaskJuggler/WorkingHours.html +1218 -0
  233. data/doc/TaskJuggler/WorkingHoursAttribute.html +756 -0
  234. data/doc/TaskJuggler/XMLBlob.html +707 -0
  235. data/doc/TaskJuggler/XMLComment.html +702 -0
  236. data/doc/TaskJuggler/XMLDocument.html +803 -0
  237. data/doc/TaskJuggler/XMLElement.html +990 -0
  238. data/doc/TaskJuggler/XMLNamedText.html +663 -0
  239. data/doc/TaskJuggler/XMLText.html +717 -0
  240. data/doc/index.html +4518 -0
  241. data/doc/lib/taskjuggler/AccountScenario_rb.html +69 -0
  242. data/doc/lib/taskjuggler/Account_rb.html +71 -0
  243. data/doc/lib/taskjuggler/AlgorithmDiff_rb.html +67 -0
  244. data/doc/lib/taskjuggler/Allocation_rb.html +71 -0
  245. data/doc/lib/taskjuggler/AppConfig_rb.html +69 -0
  246. data/doc/lib/taskjuggler/AttributeBase_rb.html +69 -0
  247. data/doc/lib/taskjuggler/AttributeDefinition_rb.html +67 -0
  248. data/doc/lib/taskjuggler/Attributes_rb.html +83 -0
  249. data/doc/lib/taskjuggler/BatchProcessor_rb.html +71 -0
  250. data/doc/lib/taskjuggler/Booking_rb.html +67 -0
  251. data/doc/lib/taskjuggler/ChargeSet_rb.html +69 -0
  252. data/doc/lib/taskjuggler/Charge_rb.html +69 -0
  253. data/doc/lib/taskjuggler/DataCache_rb.html +71 -0
  254. data/doc/lib/taskjuggler/FileList_rb.html +67 -0
  255. data/doc/lib/taskjuggler/HTMLDocument_rb.html +71 -0
  256. data/doc/lib/taskjuggler/HTMLElements_rb.html +69 -0
  257. data/doc/lib/taskjuggler/IntervalList_rb.html +69 -0
  258. data/doc/lib/taskjuggler/Interval_rb.html +69 -0
  259. data/doc/lib/taskjuggler/Journal_rb.html +67 -0
  260. data/doc/lib/taskjuggler/KeywordArray_rb.html +67 -0
  261. data/doc/lib/taskjuggler/KeywordDocumentation_rb.html +77 -0
  262. data/doc/lib/taskjuggler/Limits_rb.html +69 -0
  263. data/doc/lib/taskjuggler/LogFile_rb.html +69 -0
  264. data/doc/lib/taskjuggler/Log_rb.html +71 -0
  265. data/doc/lib/taskjuggler/LogicalExpression_rb.html +73 -0
  266. data/doc/lib/taskjuggler/LogicalFunction_rb.html +69 -0
  267. data/doc/lib/taskjuggler/LogicalOperation_rb.html +69 -0
  268. data/doc/lib/taskjuggler/MessageHandler_rb.html +69 -0
  269. data/doc/lib/taskjuggler/ProjectFileParser_rb.html +77 -0
  270. data/doc/lib/taskjuggler/ProjectFileScanner_rb.html +69 -0
  271. data/doc/lib/taskjuggler/Project_rb.html +113 -0
  272. data/doc/lib/taskjuggler/PropertyList_rb.html +67 -0
  273. data/doc/lib/taskjuggler/PropertySet_rb.html +71 -0
  274. data/doc/lib/taskjuggler/PropertyTreeNode_rb.html +67 -0
  275. data/doc/lib/taskjuggler/Query_rb.html +69 -0
  276. data/doc/lib/taskjuggler/RealFormat_rb.html +67 -0
  277. data/doc/lib/taskjuggler/ResourceScenario_rb.html +69 -0
  278. data/doc/lib/taskjuggler/Resource_rb.html +71 -0
  279. data/doc/lib/taskjuggler/RichText/Document_rb.html +73 -0
  280. data/doc/lib/taskjuggler/RichText/Element_rb.html +75 -0
  281. data/doc/lib/taskjuggler/RichText/FunctionExample_rb.html +73 -0
  282. data/doc/lib/taskjuggler/RichText/FunctionHandler_rb.html +67 -0
  283. data/doc/lib/taskjuggler/RichText/Parser_rb.html +75 -0
  284. data/doc/lib/taskjuggler/RichText/RTFHandlers_rb.html +75 -0
  285. data/doc/lib/taskjuggler/RichText/RTFNavigator_rb.html +73 -0
  286. data/doc/lib/taskjuggler/RichText/RTFQuery_rb.html +73 -0
  287. data/doc/lib/taskjuggler/RichText/RTFReportLink_rb.html +75 -0
  288. data/doc/lib/taskjuggler/RichText/RTFReport_rb.html +71 -0
  289. data/doc/lib/taskjuggler/RichText/RTFWithQuerySupport_rb.html +69 -0
  290. data/doc/lib/taskjuggler/RichText/Scanner_rb.html +71 -0
  291. data/doc/lib/taskjuggler/RichText/Snip_rb.html +71 -0
  292. data/doc/lib/taskjuggler/RichText/SyntaxRules_rb.html +67 -0
  293. data/doc/lib/taskjuggler/RichText/TOCEntry_rb.html +71 -0
  294. data/doc/lib/taskjuggler/RichText/TableOfContents_rb.html +71 -0
  295. data/doc/lib/taskjuggler/RichText_rb.html +73 -0
  296. data/doc/lib/taskjuggler/RuntimeConfig_rb.html +69 -0
  297. data/doc/lib/taskjuggler/ScenarioData_rb.html +71 -0
  298. data/doc/lib/taskjuggler/Scenario_rb.html +69 -0
  299. data/doc/lib/taskjuggler/Scoreboard_rb.html +69 -0
  300. data/doc/lib/taskjuggler/SheetHandlerBase_rb.html +75 -0
  301. data/doc/lib/taskjuggler/SheetReceiver_rb.html +81 -0
  302. data/doc/lib/taskjuggler/SheetSender_rb.html +79 -0
  303. data/doc/lib/taskjuggler/ShiftAssignments_rb.html +71 -0
  304. data/doc/lib/taskjuggler/ShiftScenario_rb.html +69 -0
  305. data/doc/lib/taskjuggler/Shift_rb.html +71 -0
  306. data/doc/lib/taskjuggler/SimpleQueryExpander_rb.html +69 -0
  307. data/doc/lib/taskjuggler/StatusSheetReceiver_rb.html +69 -0
  308. data/doc/lib/taskjuggler/StatusSheetSender_rb.html +69 -0
  309. data/doc/lib/taskjuggler/StdIoWrapper_rb.html +67 -0
  310. data/doc/lib/taskjuggler/SyntaxReference_rb.html +75 -0
  311. data/doc/lib/taskjuggler/TableColumnDefinition_rb.html +67 -0
  312. data/doc/lib/taskjuggler/TaskDependency_rb.html +67 -0
  313. data/doc/lib/taskjuggler/TaskJuggler_rb.html +75 -0
  314. data/doc/lib/taskjuggler/TaskScenario_rb.html +71 -0
  315. data/doc/lib/taskjuggler/Task_rb.html +71 -0
  316. data/doc/lib/taskjuggler/TernarySearchTree_rb.html +69 -0
  317. data/doc/lib/taskjuggler/TextFormatter_rb.html +69 -0
  318. data/doc/lib/taskjuggler/TextParser/MacroTable_rb.html +67 -0
  319. data/doc/lib/taskjuggler/TextParser/Pattern_rb.html +71 -0
  320. data/doc/lib/taskjuggler/TextParser/Rule_rb.html +69 -0
  321. data/doc/lib/taskjuggler/TextParser/Scanner_rb.html +77 -0
  322. data/doc/lib/taskjuggler/TextParser/SourceFileInfo_rb.html +67 -0
  323. data/doc/lib/taskjuggler/TextParser/StackElement_rb.html +67 -0
  324. data/doc/lib/taskjuggler/TextParser/State_rb.html +67 -0
  325. data/doc/lib/taskjuggler/TextParser/TokenDoc_rb.html +67 -0
  326. data/doc/lib/taskjuggler/TextParser_rb.html +79 -0
  327. data/doc/lib/taskjuggler/TimeSheetReceiver_rb.html +69 -0
  328. data/doc/lib/taskjuggler/TimeSheetSender_rb.html +69 -0
  329. data/doc/lib/taskjuggler/TimeSheetSummary_rb.html +69 -0
  330. data/doc/lib/taskjuggler/TimeSheets_rb.html +67 -0
  331. data/doc/lib/taskjuggler/Tj3AppBase_rb.html +79 -0
  332. data/doc/lib/taskjuggler/Tj3Config_rb.html +71 -0
  333. data/doc/lib/taskjuggler/Tj3SheetAppBase_rb.html +69 -0
  334. data/doc/lib/taskjuggler/TjException_rb.html +67 -0
  335. data/doc/lib/taskjuggler/TjTime_rb.html +71 -0
  336. data/doc/lib/taskjuggler/TjpExample_rb.html +69 -0
  337. data/doc/lib/taskjuggler/TjpSyntaxRules_rb.html +67 -0
  338. data/doc/lib/taskjuggler/URLParameter_rb.html +69 -0
  339. data/doc/lib/taskjuggler/UTF8String_rb.html +69 -0
  340. data/doc/lib/taskjuggler/UserManual_rb.html +81 -0
  341. data/doc/lib/taskjuggler/VimSyntax_rb.html +69 -0
  342. data/doc/lib/taskjuggler/WorkingHours_rb.html +71 -0
  343. data/doc/lib/taskjuggler/XMLDocument_rb.html +69 -0
  344. data/doc/lib/taskjuggler/XMLElement_rb.html +69 -0
  345. data/doc/lib/taskjuggler/apps/Tj3Client_rb.html +75 -0
  346. data/doc/lib/taskjuggler/apps/Tj3Daemon_rb.html +75 -0
  347. data/doc/lib/taskjuggler/apps/Tj3Man_rb.html +75 -0
  348. data/doc/lib/taskjuggler/apps/Tj3SsReceiver_rb.html +71 -0
  349. data/doc/lib/taskjuggler/apps/Tj3SsSender_rb.html +71 -0
  350. data/doc/lib/taskjuggler/apps/Tj3TsReceiver_rb.html +71 -0
  351. data/doc/lib/taskjuggler/apps/Tj3TsSender_rb.html +71 -0
  352. data/doc/lib/taskjuggler/apps/Tj3TsSummary_rb.html +71 -0
  353. data/doc/lib/taskjuggler/apps/Tj3_rb.html +71 -0
  354. data/doc/lib/taskjuggler/daemon/Daemon_rb.html +69 -0
  355. data/doc/lib/taskjuggler/daemon/ProcessIntercom_rb.html +71 -0
  356. data/doc/lib/taskjuggler/daemon/ProjectBroker_rb.html +83 -0
  357. data/doc/lib/taskjuggler/daemon/ProjectServer_rb.html +85 -0
  358. data/doc/lib/taskjuggler/daemon/ReportServer_rb.html +73 -0
  359. data/doc/lib/taskjuggler/daemon/ReportServlet_rb.html +69 -0
  360. data/doc/lib/taskjuggler/daemon/WebServer_rb.html +81 -0
  361. data/doc/lib/taskjuggler/daemon/WelcomePage_rb.html +71 -0
  362. data/doc/lib/taskjuggler/deep_copy_rb.html +67 -0
  363. data/doc/lib/taskjuggler/reports/CSVFile_rb.html +69 -0
  364. data/doc/lib/taskjuggler/reports/CollisionDetector_rb.html +69 -0
  365. data/doc/lib/taskjuggler/reports/ColumnTable_rb.html +69 -0
  366. data/doc/lib/taskjuggler/reports/GanttChart_rb.html +75 -0
  367. data/doc/lib/taskjuggler/reports/GanttContainer_rb.html +69 -0
  368. data/doc/lib/taskjuggler/reports/GanttHeaderScaleItem_rb.html +67 -0
  369. data/doc/lib/taskjuggler/reports/GanttHeader_rb.html +69 -0
  370. data/doc/lib/taskjuggler/reports/GanttLine_rb.html +79 -0
  371. data/doc/lib/taskjuggler/reports/GanttLoadStack_rb.html +69 -0
  372. data/doc/lib/taskjuggler/reports/GanttMilestone_rb.html +69 -0
  373. data/doc/lib/taskjuggler/reports/GanttRouter_rb.html +69 -0
  374. data/doc/lib/taskjuggler/reports/GanttTaskBar_rb.html +69 -0
  375. data/doc/lib/taskjuggler/reports/HTMLGraphics_rb.html +67 -0
  376. data/doc/lib/taskjuggler/reports/Navigator_rb.html +69 -0
  377. data/doc/lib/taskjuggler/reports/NikuReport_rb.html +71 -0
  378. data/doc/lib/taskjuggler/reports/ReportBase_rb.html +67 -0
  379. data/doc/lib/taskjuggler/reports/ReportContext_rb.html +67 -0
  380. data/doc/lib/taskjuggler/reports/ReportTableCell_rb.html +67 -0
  381. data/doc/lib/taskjuggler/reports/ReportTableColumn_rb.html +67 -0
  382. data/doc/lib/taskjuggler/reports/ReportTableLegend_rb.html +67 -0
  383. data/doc/lib/taskjuggler/reports/ReportTableLine_rb.html +69 -0
  384. data/doc/lib/taskjuggler/reports/ReportTable_rb.html +71 -0
  385. data/doc/lib/taskjuggler/reports/Report_rb.html +93 -0
  386. data/doc/lib/taskjuggler/reports/ResourceListRE_rb.html +75 -0
  387. data/doc/lib/taskjuggler/reports/StatusSheetReport_rb.html +69 -0
  388. data/doc/lib/taskjuggler/reports/TableReport_rb.html +77 -0
  389. data/doc/lib/taskjuggler/reports/TaskListRE_rb.html +75 -0
  390. data/doc/lib/taskjuggler/reports/TextReport_rb.html +69 -0
  391. data/doc/lib/taskjuggler/reports/TimeSheetReport_rb.html +69 -0
  392. data/doc/lib/taskjuggler/reports/TjpExportRE_rb.html +69 -0
  393. data/doc/lib/tj3_rb.html +69 -0
  394. data/doc/lib/tj3client_rb.html +69 -0
  395. data/doc/lib/tj3d_rb.html +69 -0
  396. data/doc/lib/tj3man_rb.html +69 -0
  397. data/doc/lib/tj3ss_receiver_rb.html +69 -0
  398. data/doc/lib/tj3ss_sender_rb.html +69 -0
  399. data/doc/lib/tj3ts_receiver_rb.html +69 -0
  400. data/doc/lib/tj3ts_sender_rb.html +69 -0
  401. data/doc/lib/tj3ts_summary_rb.html +69 -0
  402. data/doc/rdoc.css +706 -0
  403. data/examples/tutorial.tjp +2 -1
  404. data/lib/taskjuggler/Attributes.rb +33 -12
  405. data/lib/taskjuggler/DataCache.rb +17 -0
  406. data/lib/taskjuggler/FileList.rb +9 -0
  407. data/lib/taskjuggler/HTMLDocument.rb +19 -21
  408. data/lib/taskjuggler/HTMLElements.rb +46 -0
  409. data/lib/taskjuggler/Journal.rb +95 -46
  410. data/lib/taskjuggler/KeywordDocumentation.rb +248 -185
  411. data/lib/taskjuggler/LogicalExpression.rb +2 -2
  412. data/lib/taskjuggler/LogicalFunction.rb +22 -1
  413. data/lib/taskjuggler/LogicalOperation.rb +15 -5
  414. data/lib/taskjuggler/Project.rb +73 -16
  415. data/lib/taskjuggler/ProjectFileParser.rb +1 -1
  416. data/lib/taskjuggler/ProjectFileScanner.rb +27 -0
  417. data/lib/taskjuggler/PropertySet.rb +22 -45
  418. data/lib/taskjuggler/PropertyTreeNode.rb +99 -128
  419. data/lib/taskjuggler/Query.rb +39 -8
  420. data/lib/taskjuggler/Resource.rb +15 -6
  421. data/lib/taskjuggler/RichText/Document.rb +3 -3
  422. data/lib/taskjuggler/RichText/RTFQuery.rb +4 -4
  423. data/lib/taskjuggler/SheetHandlerBase.rb +14 -12
  424. data/lib/taskjuggler/SheetReceiver.rb +17 -15
  425. data/lib/taskjuggler/SheetSender.rb +16 -10
  426. data/{spec/support → lib/taskjuggler}/StdIoWrapper.rb +17 -0
  427. data/lib/taskjuggler/SyntaxReference.rb +2 -2
  428. data/lib/taskjuggler/TableColumnDefinition.rb +4 -3
  429. data/lib/taskjuggler/Task.rb +7 -2
  430. data/lib/taskjuggler/TaskJuggler.rb +74 -0
  431. data/lib/taskjuggler/TaskScenario.rb +62 -83
  432. data/lib/taskjuggler/TextParser.rb +20 -13
  433. data/lib/taskjuggler/TextParser/Scanner.rb +17 -1
  434. data/lib/taskjuggler/TimeSheetSummary.rb +9 -5
  435. data/lib/taskjuggler/TimeSheets.rb +6 -1
  436. data/lib/taskjuggler/Tj3AppBase.rb +41 -18
  437. data/lib/taskjuggler/Tj3Config.rb +1 -1
  438. data/lib/taskjuggler/TjTime.rb +6 -1
  439. data/lib/taskjuggler/TjpSyntaxRules.rb +408 -227
  440. data/lib/taskjuggler/UTF8String.rb +10 -0
  441. data/lib/taskjuggler/UserManual.rb +89 -81
  442. data/lib/taskjuggler/WorkingHours.rb +2 -3
  443. data/lib/taskjuggler/XMLDocument.rb +13 -4
  444. data/lib/taskjuggler/XMLElement.rb +31 -3
  445. data/lib/taskjuggler/apps/Tj3.rb +53 -21
  446. data/lib/taskjuggler/apps/Tj3Client.rb +19 -17
  447. data/lib/taskjuggler/apps/Tj3Daemon.rb +24 -21
  448. data/lib/taskjuggler/{Tj3Man.rb → apps/Tj3Man.rb} +2 -2
  449. data/lib/taskjuggler/apps/Tj3SsReceiver.rb +14 -11
  450. data/lib/taskjuggler/apps/Tj3SsSender.rb +17 -14
  451. data/lib/taskjuggler/apps/Tj3TsReceiver.rb +14 -11
  452. data/lib/taskjuggler/apps/Tj3TsSender.rb +16 -13
  453. data/lib/taskjuggler/apps/Tj3TsSummary.rb +16 -13
  454. data/lib/taskjuggler/reports/GanttChart.rb +1 -1
  455. data/lib/taskjuggler/reports/GanttRouter.rb +0 -2
  456. data/lib/taskjuggler/reports/GanttTaskBar.rb +2 -1
  457. data/lib/taskjuggler/reports/Navigator.rb +2 -1
  458. data/lib/taskjuggler/reports/NikuReport.rb +11 -7
  459. data/lib/taskjuggler/reports/ReportContext.rb +1 -0
  460. data/lib/taskjuggler/reports/StatusSheetReport.rb +7 -2
  461. data/lib/taskjuggler/reports/TableReport.rb +6 -4
  462. data/lib/taskjuggler/reports/TimeSheetReport.rb +3 -0
  463. data/lib/taskjuggler/reports/TjpExportRE.rb +4 -4
  464. data/lib/tj3man.rb +1 -1
  465. data/manual/Day_To_Day_Juggling +134 -137
  466. data/manual/TaskJuggler_2x_Migration +39 -32
  467. data/manual/The_TaskJuggler_Syntax +6 -0
  468. data/prj_cfg.rb +2 -3
  469. data/spec/StatusSheets_spec.rb +314 -0
  470. data/spec/TimeSheets_spec.rb +237 -16
  471. data/spec/Tj3_spec.rb +1 -1
  472. data/spec/support/DaemonControl.rb +1 -1
  473. data/tasks/changelog.rake +13 -3
  474. data/tasks/manual.rake +1 -1
  475. data/test/TestSuite/CSV-Reports/refs/celltext.csv +1 -1
  476. data/test/TestSuite/CSV-Reports/refs/resourcereport.csv +1 -1
  477. data/test/TestSuite/CSV-Reports/refs/resourcereport_with_tasks.csv +1 -1
  478. data/test/TestSuite/CSV-Reports/refs/sortByTree.csv +1 -1
  479. data/test/TestSuite/CSV-Reports/refs/sortBy_effort.up.csv +1 -1
  480. data/test/TestSuite/CSV-Reports/refs/sortBy_plan.start.down.csv +1 -1
  481. data/test/TestSuite/CSV-Reports/refs/taskreport.csv +1 -1
  482. data/test/TestSuite/CSV-Reports/refs/taskreport_with_resources.csv +1 -1
  483. data/test/TestSuite/CSV-Reports/sortByTree.tjp +3 -1
  484. data/test/TestSuite/CSV-Reports/sortBy_duration.down.tjp +4 -1
  485. data/test/TestSuite/CSV-Reports/sortBy_effort.up.tjp +1 -1
  486. data/test/TestSuite/CSV-Reports/sortBy_plan.start.down.tjp +4 -1
  487. data/test/TestSuite/CSV-Reports/taskreport.tjp +3 -1
  488. data/test/TestSuite/CSV-Reports/taskreport_with_resources.tjp +3 -1
  489. data/test/TestSuite/CSV-Reports/weekly.tjp +1 -0
  490. data/test/TestSuite/Export-Reports/refs/Account.tjp +25 -30
  491. data/test/TestSuite/Export-Reports/refs/AdoptedTasks.tjp +1 -0
  492. data/test/TestSuite/Export-Reports/refs/Allocate-1.tjp +43 -72
  493. data/test/TestSuite/Export-Reports/refs/Alternative.tjp +17 -22
  494. data/test/TestSuite/Export-Reports/refs/AutoID.tjp +11 -10
  495. data/test/TestSuite/Export-Reports/refs/AutoMacros.tjp +1 -0
  496. data/test/TestSuite/Export-Reports/refs/Booking.tjp +16 -23
  497. data/test/TestSuite/Export-Reports/refs/Caption.tjp +13 -16
  498. data/test/TestSuite/Export-Reports/refs/Celltext.tjp +12 -16
  499. data/test/TestSuite/Export-Reports/refs/Comments.tjp +15 -19
  500. data/test/TestSuite/Export-Reports/refs/Complete.tjp +17 -26
  501. data/test/TestSuite/Export-Reports/refs/CompletedWork.tji.tjp +40 -0
  502. data/test/TestSuite/Export-Reports/refs/Currencyformat.tjp +1 -0
  503. data/test/TestSuite/Export-Reports/refs/CustomAttributes.tjp +1 -0
  504. data/test/TestSuite/Export-Reports/refs/Depends1.tjp +5 -4
  505. data/test/TestSuite/Export-Reports/refs/Durations.tjp +18 -27
  506. data/test/TestSuite/Export-Reports/refs/Efficiency.tjp +21 -20
  507. data/test/TestSuite/Export-Reports/refs/EnvVar.tjp +21 -0
  508. data/test/TestSuite/Export-Reports/refs/Flags.tjp +6 -5
  509. data/test/TestSuite/Export-Reports/refs/Gap.tjp +2 -1
  510. data/test/TestSuite/Export-Reports/refs/HtmlTaskReport.tjp +15 -19
  511. data/test/TestSuite/Export-Reports/refs/Include.tjp +21 -20
  512. data/test/TestSuite/Export-Reports/refs/Journal.tjp +6 -5
  513. data/test/TestSuite/Export-Reports/refs/Limits-1.tjp +92 -140
  514. data/test/TestSuite/Export-Reports/refs/LoadUnits.tjp +293 -566
  515. data/test/TestSuite/Export-Reports/refs/LogicalExpression.tjp +1 -0
  516. data/test/TestSuite/Export-Reports/refs/LogicalFunction.tjp +17 -22
  517. data/test/TestSuite/Export-Reports/refs/Macro-1.tjp +32 -53
  518. data/test/TestSuite/Export-Reports/refs/Macro-2.tjp +1 -0
  519. data/test/TestSuite/Export-Reports/refs/Macro-3.tjp +1 -0
  520. data/test/TestSuite/Export-Reports/refs/Manager.tjp +51 -50
  521. data/test/TestSuite/Export-Reports/refs/Mandatory.tjp +22 -31
  522. data/test/TestSuite/Export-Reports/refs/Milestone.tjp +1 -0
  523. data/test/TestSuite/Export-Reports/refs/MinMax.tjp +2 -1
  524. data/test/TestSuite/Export-Reports/refs/Niku.tjp +80 -139
  525. data/test/TestSuite/Export-Reports/refs/Numberformat.tjp +1 -0
  526. data/test/TestSuite/Export-Reports/refs/Period.tjp +1 -0
  527. data/test/TestSuite/Export-Reports/refs/Persistent.tjp +17 -21
  528. data/test/TestSuite/Export-Reports/refs/Precedes1.tjp +1 -0
  529. data/test/TestSuite/Export-Reports/refs/Priority.tjp +121 -107
  530. data/test/TestSuite/Export-Reports/refs/Project.tjp +1 -0
  531. data/test/TestSuite/Export-Reports/refs/ProjectIDs.tjp +1 -0
  532. data/test/TestSuite/Export-Reports/refs/Query.tjp +17 -26
  533. data/test/TestSuite/Export-Reports/refs/Reports.tjp +42 -61
  534. data/test/TestSuite/Export-Reports/refs/Resource.tjp +21 -20
  535. data/test/TestSuite/Export-Reports/refs/ResourcePrefix.tjp +16 -20
  536. data/test/TestSuite/Export-Reports/refs/ResourceRoot.tjp +36 -35
  537. data/test/TestSuite/Export-Reports/refs/Responsible.tjp +17 -21
  538. data/test/TestSuite/Export-Reports/refs/RollupResource.tjp +36 -35
  539. data/test/TestSuite/Export-Reports/refs/Scenario.tjp +3 -1
  540. data/test/TestSuite/Export-Reports/refs/Scheduling.tjp +1 -0
  541. data/test/TestSuite/Export-Reports/refs/Select.tjp +29 -43
  542. data/test/TestSuite/Export-Reports/refs/Shift.tjp +12 -11
  543. data/test/TestSuite/Export-Reports/refs/Simple.tjp +15 -19
  544. data/test/TestSuite/Export-Reports/refs/StatusSheet.tjp +33 -47
  545. data/test/TestSuite/Export-Reports/refs/String.tjp +9 -10
  546. data/test/TestSuite/Export-Reports/refs/Supplement.tjp +7 -8
  547. data/test/TestSuite/Export-Reports/refs/TaskPrefix.tjp +10 -11
  548. data/test/TestSuite/Export-Reports/refs/TaskRoot.tjp +10 -9
  549. data/test/TestSuite/Export-Reports/refs/TimeFrame.tjp +9 -9
  550. data/test/TestSuite/Export-Reports/refs/TimeSheet1.tjp +25 -37
  551. data/test/TestSuite/Export-Reports/refs/Timezone.tjp +1 -0
  552. data/test/TestSuite/Export-Reports/refs/Vacation.tjp +26 -25
  553. data/test/TestSuite/Export-Reports/refs/tutorial.tjp +453 -821
  554. data/test/TestSuite/HTML-Reports/Alerts.html +160 -412
  555. data/test/TestSuite/HTML-Reports/CellText.html +758 -0
  556. data/test/TestSuite/HTML-Reports/ColumnPeriods.html +156 -0
  557. data/test/TestSuite/HTML-Reports/IsOngoing.html +172 -0
  558. data/test/TestSuite/HTML-Reports/LogicalFunctions.html +245 -0
  559. data/test/TestSuite/HTML-Reports/Query.html +31 -0
  560. data/test/TestSuite/HTML-Reports/css/tjmanual.css +0 -20
  561. data/test/TestSuite/HTML-Reports/css/tjreport.css +6 -7
  562. data/test/TestSuite/HTML-Reports/depArrows.html +851 -0
  563. data/test/TestSuite/HTML-Reports/profile.html +37581 -0
  564. data/test/TestSuite/{ReportGenerator/Correct → HTML-Reports/scripts}/scripts/wz_tooltip.js +20 -20
  565. data/test/TestSuite/ReportGenerator/Correct/Journal.tjp +27 -3
  566. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions3.tjp +20 -0
  567. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions4.tjp +16 -0
  568. data/test/TestSuite/ReportGenerator/Correct/refs/DependencyList-1.csv +4 -0
  569. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-1.csv +2 -0
  570. data/test/TestSuite/ReportGenerator/Correct/refs/Journal-2.csv +8 -0
  571. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions3-1.csv +4 -0
  572. data/test/TestSuite/ReportGenerator/Correct/refs/LogicalFunctions4-1.csv +2 -0
  573. data/test/TestSuite/Scheduler/Correct/Allocate.tjp +3 -1
  574. data/test/TestSuite/Scheduler/Correct/Booking.tjp +8 -7
  575. data/test/TestSuite/Scheduler/Correct/Booking2.tjp +16 -9
  576. data/test/TestSuite/Scheduler/Correct/Booking3.tjp +28 -0
  577. data/test/TestSuite/Scheduler/Correct/Container.tjp +2 -2
  578. data/test/TestSuite/Scheduler/Correct/Depends.tjp +3 -3
  579. data/test/TestSuite/Scheduler/Correct/InheritStartEnd.tjp +4 -4
  580. data/test/TestSuite/Scheduler/Correct/Limits.tjp +3 -1
  581. data/test/TestSuite/Scheduler/Correct/Mandatory.tjp +2 -2
  582. data/test/TestSuite/Scheduler/Correct/MultipleMandatories.tjp +2 -2
  583. data/test/TestSuite/Scheduler/Correct/Optimize-1.tjp +2 -2
  584. data/test/TestSuite/Scheduler/Correct/Optimize-2.tjp +3 -3
  585. data/test/TestSuite/Scheduler/Correct/Optimize-3.tjp +3 -3
  586. data/test/TestSuite/Scheduler/Correct/Optimize-4.tjp +3 -3
  587. data/test/TestSuite/Scheduler/Correct/Optimize-5.tjp +7 -7
  588. data/test/TestSuite/Scheduler/Correct/Scenarios.tjp +2 -2
  589. data/test/TestSuite/Scheduler/Correct/Shift.tjp +7 -5
  590. data/test/TestSuite/Scheduler/Correct/Shift2.tjp +1 -1
  591. data/test/TestSuite/Scheduler/Correct/TimeSheet2.tjp +5 -2
  592. data/test/TestSuite/Scheduler/Errors/booking_no_duty.tjp +1 -1
  593. data/test/TestSuite/Scheduler/Errors/ts_alert1_more_details.tjp +4 -2
  594. data/test/TestSuite/Scheduler/Errors/ts_alert2_more_details.tjp +4 -2
  595. data/test/TestSuite/Scheduler/Errors/ts_no_expected_end.tjp +4 -2
  596. data/test/TestSuite/Scheduler/Errors/ts_no_headline1.tjp +4 -2
  597. data/test/TestSuite/Scheduler/Errors/ts_no_rem_or_end.tjp +4 -2
  598. data/test/TestSuite/Scheduler/Errors/ts_no_remaining.tjp +4 -2
  599. data/test/TestSuite/Scheduler/Errors/ts_no_status_work.tjp +4 -2
  600. data/test/TestSuite/Scheduler/Errors/ts_no_work.tjp +4 -2
  601. data/test/TestSuite/Scheduler/Errors/ts_res_new_task.tjp +5 -2
  602. data/test/TestSuite/Scheduler/Errors/ts_work_too_high.tjp +4 -2
  603. data/test/TestSuite/Scheduler/Errors/ts_work_too_low.tjp +4 -2
  604. data/test/TestSuite/StatusSheets/dev2.tji +22 -0
  605. data/test/TestSuite/StatusSheets/run +1 -1
  606. data/test/TestSuite/Syntax/Correct/Booking.tjp +0 -5
  607. data/test/TestSuite/Syntax/Correct/CompletedWork.tji.tjp +38 -0
  608. data/test/TestSuite/Syntax/Correct/EnvVar.tjp +12 -0
  609. data/test/TestSuite/Syntax/Correct/Freeze.tjp +1 -3
  610. data/test/TestSuite/Syntax/Correct/Limits-1.tjp +9 -5
  611. data/test/TestSuite/Syntax/Correct/Priority.tjp +22 -11
  612. data/test/TestSuite/Syntax/Correct/Scenario.tjp +1 -1
  613. data/test/TestSuite/Syntax/Correct/StatusSheet.tjp +2 -0
  614. data/test/TestSuite/Syntax/Correct/TimeSheet1.tjp +4 -4
  615. data/test/TestSuite/Syntax/Correct/css/tjmanual.css +20 -0
  616. data/test/TestSuite/Syntax/Correct/css/tjreport.css +7 -6
  617. data/test/TestSuite/Syntax/Correct/tutorial.tjp +2 -1
  618. data/test/TestSuite/Syntax/Errors/no_own_resource_booking.tjp +16 -0
  619. data/test/TestSuite/Syntax/Errors/no_own_task_booking.tjp +16 -0
  620. data/test/TestSuite/Syntax/Errors/resourceroot_leaf.tjp +10 -0
  621. data/test/TestSuite/Syntax/Errors/runaway_token.tjp +8 -0
  622. data/test/TestSuite/Syntax/Errors/sorting_bsi.tjp +11 -0
  623. data/test/TestSuite/Syntax/Errors/ss_no_tracking_scenario.tjp +14 -0
  624. data/test/TestSuite/Syntax/Errors/taskroot_leaf.tjp +8 -0
  625. data/test/TestSuite/Syntax/Errors/ts_bad_priority.tjp +4 -2
  626. data/test/TestSuite/Syntax/Errors/ts_default_details.tjp +4 -2
  627. data/test/TestSuite/Syntax/Errors/ts_default_summary.tjp +4 -2
  628. data/test/TestSuite/Syntax/Errors/ts_duplicate_task.tjp +4 -2
  629. data/test/TestSuite/Syntax/Errors/ts_end_too_early.tjp +4 -2
  630. data/test/TestSuite/Syntax/Errors/ts_headline_too_long.tjp +4 -2
  631. data/test/TestSuite/Syntax/Errors/ts_no_headline2.tjp +4 -2
  632. data/test/TestSuite/Syntax/Errors/ts_no_tracking_scenario.tjp +14 -0
  633. data/test/TestSuite/Syntax/Errors/ts_summary_too_long.tjp +4 -2
  634. data/test/TestSuite/Syntax/Errors/unknown_env_var.tjp +7 -0
  635. data/test/TestSuite/TimeSheets/resrep.tji +7 -0
  636. data/test/TestSuite/TimeSheets/ts.tji +351 -0
  637. data/test/TestSuite/TimeSheets/tsdef.tji +2 -0
  638. data/test/test_Export-Reports.rb +3 -0
  639. data/test/test_Journal.rb +4 -4
  640. data/test/test_PropertySet.rb +5 -5
  641. data/test/test_Syntax.rb +3 -0
  642. data/test/test_WorkingHours.rb +11 -18
  643. metadata +1012 -649
  644. data/lib/exchangebug.rb +0 -42
  645. data/lib/ruby-signal-bug.rb +0 -55
  646. data/spec/tj3client.log +0 -23
  647. data/test/TestSuite/CSV-Reports/alert.tjp +0 -9
  648. data/test/TestSuite/CSV-Reports/refs/alert.csv +0 -15
  649. data/test/TestSuite/Export-Reports/refs/CriticalPath.tjp +0 -41
  650. data/test/TestSuite/Export-Reports/refs/DST.tjp +0 -89
  651. data/test/TestSuite/Export-Reports/refs/ReleasePlan.tjp +0 -79
  652. data/test/TestSuite/HTML-Reports/TimeSheet.html +0 -79
  653. data/test/TestSuite/HTML-Reports/reference.html +0 -51
  654. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.csv +0 -1
  655. data/test/TestSuite/ReportGenerator/Correct/Alerts-1.html +0 -78
  656. data/test/TestSuite/ReportGenerator/Correct/Journal-1.csv +0 -6
  657. data/test/TestSuite/ReportGenerator/Correct/LogicalFunctions2.csv +0 -3
  658. data/test/TestSuite/ReportGenerator/Correct/css/tjmanual.css +0 -66
  659. data/test/TestSuite/ReportGenerator/Correct/css/tjreport.css +0 -413
  660. data/test/TestSuite/ReportGenerator/Correct/icons/details.png +0 -0
  661. data/test/TestSuite/ReportGenerator/Correct/icons/flag-green.png +0 -0
  662. data/test/TestSuite/ReportGenerator/Correct/icons/flag-red.png +0 -0
  663. data/test/TestSuite/ReportGenerator/Correct/icons/flag-yellow.png +0 -0
  664. data/test/TestSuite/ReportGenerator/Correct/icons/resource.png +0 -0
  665. data/test/TestSuite/ReportGenerator/Correct/icons/resourcegroup.png +0 -0
  666. data/test/TestSuite/ReportGenerator/Correct/icons/task.png +0 -0
  667. data/test/TestSuite/ReportGenerator/Correct/icons/taskgroup.png +0 -0
  668. data/test/TestSuite/ReportGenerator/Correct/icons/trend-down.png +0 -0
  669. data/test/TestSuite/ReportGenerator/Correct/icons/trend-flat.png +0 -0
  670. data/test/TestSuite/ReportGenerator/Correct/icons/trend-up.png +0 -0
  671. data/test/TestSuite/ReportGenerator/Correct/opennodes-1.csv +0 -2
  672. data/test/TestSuite/ReportGenerator/Correct/opennodes.csv +0 -2
  673. data/test/TestSuite/ReportGenerator/Correct/opennodes.tjp +0 -26
  674. data/test/TestSuite/ReportGenerator/Correct/refs/opennodes-1.csv +0 -2
  675. data/test/TestSuite/Scheduler/Correct/css/tjmanual.css +0 -86
  676. data/test/TestSuite/Scheduler/Correct/css/tjreport.css +0 -413
  677. data/test/TestSuite/Scheduler/Correct/icons/details.png +0 -0
  678. data/test/TestSuite/Scheduler/Correct/icons/flag-green.png +0 -0
  679. data/test/TestSuite/Scheduler/Correct/icons/flag-red.png +0 -0
  680. data/test/TestSuite/Scheduler/Correct/icons/flag-yellow.png +0 -0
  681. data/test/TestSuite/Scheduler/Correct/icons/resource.png +0 -0
  682. data/test/TestSuite/Scheduler/Correct/icons/resourcegroup.png +0 -0
  683. data/test/TestSuite/Scheduler/Correct/icons/task.png +0 -0
  684. data/test/TestSuite/Scheduler/Correct/icons/taskgroup.png +0 -0
  685. data/test/TestSuite/Scheduler/Correct/icons/trend-down.png +0 -0
  686. data/test/TestSuite/Scheduler/Correct/icons/trend-flat.png +0 -0
  687. data/test/TestSuite/Scheduler/Correct/icons/trend-up.png +0 -0
  688. data/test/TestSuite/Scheduler/Correct/scripts/wz_tooltip.js +0 -1301
  689. data/test/TestSuite/StatusSheetTemplates/project.tji +0 -35
  690. data/test/TestSuite/StatusSheetTemplates/project.tjp +0 -56
  691. data/test/TestSuite/StatusSheets/TimeSheets/2002-03-01/resource1_2002-03-01.tji +0 -0
  692. data/test/TestSuite/Syntax/Correct/CriticalPath.tjp +0 -33
  693. data/test/TestSuite/Syntax/Correct/DST.tjp +0 -11
  694. data/test/TestSuite/Syntax/Correct/ReleasePlan.tjp +0 -32
  695. data/test/TestSuite/Syntax/Correct/niku.xml +0 -30
  696. data/test/TestSuite/Syntax/Errors/sorting_wbs.tjp +0 -11
  697. data/test/TestSuite/TimeSheets/uu.txt +0 -29
@@ -0,0 +1,2851 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: TaskJuggler::PropertyTreeNode</title>
9
+
10
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="../js/jquery.js" type="text/javascript"
13
+ charset="utf-8"></script>
14
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
15
+ charset="utf-8"></script>
16
+ <script src="../js/quicksearch.js" type="text/javascript"
17
+ charset="utf-8"></script>
18
+ <script src="../js/darkfish.js" type="text/javascript"
19
+ charset="utf-8"></script>
20
+
21
+ </head>
22
+ <body class="class">
23
+
24
+ <div id="metadata">
25
+ <div id="home-metadata">
26
+ <div id="home-section" class="section">
27
+ <h3 class="section-header">
28
+ <a href="../index.html">Home</a>
29
+ <a href="../index.html#classes">Classes</a>
30
+ <a href="../index.html#methods">Methods</a>
31
+ </h3>
32
+ </div>
33
+ </div>
34
+
35
+ <div id="file-metadata">
36
+ <div id="file-list-section" class="section">
37
+ <h3 class="section-header">In Files</h3>
38
+ <div class="section-body">
39
+ <ul>
40
+
41
+ <li><a href="../lib/taskjuggler/PropertyTreeNode_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
+ class="thickbox" title="lib/taskjuggler/PropertyTreeNode.rb">lib/taskjuggler/PropertyTreeNode.rb</a></li>
43
+
44
+ </ul>
45
+ </div>
46
+ </div>
47
+
48
+
49
+ </div>
50
+
51
+ <div id="class-metadata">
52
+
53
+ <!-- Parent Class -->
54
+
55
+ <div id="parent-class-section" class="section">
56
+ <h3 class="section-header">Parent</h3>
57
+
58
+ <p class="link"><a href="../Object.html">Object</a></p>
59
+
60
+ </div>
61
+
62
+
63
+ <!-- Namespace Contents -->
64
+
65
+
66
+ <!-- Method Quickref -->
67
+
68
+ <div id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+ <ul class="link-list">
71
+
72
+ <li><a href="#method-c-new">::new</a></li>
73
+
74
+ <li><a href="#method-i-%5B%5D">#[]</a></li>
75
+
76
+ <li><a href="#method-i-%5B%5D%3D">#[]=</a></li>
77
+
78
+ <li><a href="#method-i-addChild">#addChild</a></li>
79
+
80
+ <li><a href="#method-i-adopt">#adopt</a></li>
81
+
82
+ <li><a href="#method-i-all">#all</a></li>
83
+
84
+ <li><a href="#method-i-allLeaves">#allLeaves</a></li>
85
+
86
+ <li><a href="#method-i-ancestors">#ancestors</a></li>
87
+
88
+ <li><a href="#method-i-attributeDefinition">#attributeDefinition</a></li>
89
+
90
+ <li><a href="#method-i-backupAttributes">#backupAttributes</a></li>
91
+
92
+ <li><a href="#method-i-checkFailsAndWarnings">#checkFailsAndWarnings</a></li>
93
+
94
+ <li><a href="#method-i-container%3F">#container?</a></li>
95
+
96
+ <li><a href="#method-i-deep_clone">#deep_clone</a></li>
97
+
98
+ <li><a href="#method-i-error">#error</a></li>
99
+
100
+ <li><a href="#method-i-fullId">#fullId</a></li>
101
+
102
+ <li><a href="#method-i-get">#get</a></li>
103
+
104
+ <li><a href="#method-i-getAttribute">#getAttribute</a></li>
105
+
106
+ <li><a href="#method-i-getBSIndicies">#getBSIndicies</a></li>
107
+
108
+ <li><a href="#method-i-getIndicies">#getIndicies</a></li>
109
+
110
+ <li><a href="#method-i-indent">#indent</a></li>
111
+
112
+ <li><a href="#method-i-info">#info</a></li>
113
+
114
+ <li><a href="#method-i-inheritAttributes">#inheritAttributes</a></li>
115
+
116
+ <li><a href="#method-i-inherited">#inherited</a></li>
117
+
118
+ <li><a href="#method-i-isChildOf%3F">#isChildOf?</a></li>
119
+
120
+ <li><a href="#method-i-journalMessages">#journalMessages</a></li>
121
+
122
+ <li><a href="#method-i-kids">#kids</a></li>
123
+
124
+ <li><a href="#method-i-leaf%3F">#leaf?</a></li>
125
+
126
+ <li><a href="#method-i-level">#level</a></li>
127
+
128
+ <li><a href="#method-i-levelSeqNo">#levelSeqNo</a></li>
129
+
130
+ <li><a href="#method-i-method_missing">#method_missing</a></li>
131
+
132
+ <li><a href="#method-i-modified%3F">#modified?</a></li>
133
+
134
+ <li><a href="#method-i-parents">#parents</a></li>
135
+
136
+ <li><a href="#method-i-provided">#provided</a></li>
137
+
138
+ <li><a href="#method-i-query_alert">#query_alert</a></li>
139
+
140
+ <li><a href="#method-i-query_alertmessages">#query_alertmessages</a></li>
141
+
142
+ <li><a href="#method-i-query_alertsummaries">#query_alertsummaries</a></li>
143
+
144
+ <li><a href="#method-i-query_alerttrend">#query_alerttrend</a></li>
145
+
146
+ <li><a href="#method-i-query_journalmessages">#query_journalmessages</a></li>
147
+
148
+ <li><a href="#method-i-query_journalsummaries">#query_journalsummaries</a></li>
149
+
150
+ <li><a href="#method-i-restoreAttributes">#restoreAttributes</a></li>
151
+
152
+ <li><a href="#method-i-root">#root</a></li>
153
+
154
+ <li><a href="#method-i-set">#set</a></li>
155
+
156
+ <li><a href="#method-i-warning">#warning</a></li>
157
+
158
+ </ul>
159
+ </div>
160
+
161
+
162
+ <!-- Included Modules -->
163
+
164
+ </div>
165
+
166
+ <div id="project-metadata">
167
+
168
+
169
+ <div id="fileindex-section" class="section project-section">
170
+ <h3 class="section-header">Files</h3>
171
+ <ul>
172
+
173
+ <li class="file"><a href="../CHANGELOG.html">CHANGELOG</a></li>
174
+
175
+ <li class="file"><a href="../COPYING.html">COPYING</a></li>
176
+
177
+ <li class="file"><a href="../README_rdoc.html">README.rdoc</a></li>
178
+
179
+ </ul>
180
+ </div>
181
+
182
+
183
+ <div id="classindex-section" class="section project-section">
184
+ <h3 class="section-header">Class Index
185
+ <span class="search-toggle"><img src="../images/find.png"
186
+ height="16" width="16" alt="[+]"
187
+ title="show/hide quicksearch" /></span></h3>
188
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
189
+ <fieldset>
190
+ <legend>Quicksearch</legend>
191
+ <input type="text" name="quicksearch" value=""
192
+ class="quicksearch-field" />
193
+ </fieldset>
194
+ </form>
195
+
196
+ <ul class="link-list">
197
+
198
+ <li><a href="../TaskJuggler.html">TaskJuggler</a></li>
199
+
200
+ <li><a href="../TaskJuggler/Account.html">TaskJuggler::Account</a></li>
201
+
202
+ <li><a href="../TaskJuggler/AccountAttribute.html">TaskJuggler::AccountAttribute</a></li>
203
+
204
+ <li><a href="../TaskJuggler/AccountScenario.html">TaskJuggler::AccountScenario</a></li>
205
+
206
+ <li><a href="../TaskJuggler/Allocation.html">TaskJuggler::Allocation</a></li>
207
+
208
+ <li><a href="../TaskJuggler/AllocationAttribute.html">TaskJuggler::AllocationAttribute</a></li>
209
+
210
+ <li><a href="../TaskJuggler/AttributeBase.html">TaskJuggler::AttributeBase</a></li>
211
+
212
+ <li><a href="../TaskJuggler/AttributeDefinition.html">TaskJuggler::AttributeDefinition</a></li>
213
+
214
+ <li><a href="../TaskJuggler/AttributeOverwrite.html">TaskJuggler::AttributeOverwrite</a></li>
215
+
216
+ <li><a href="../TaskJuggler/BatchProcessor.html">TaskJuggler::BatchProcessor</a></li>
217
+
218
+ <li><a href="../TaskJuggler/Booking.html">TaskJuggler::Booking</a></li>
219
+
220
+ <li><a href="../TaskJuggler/BookingListAttribute.html">TaskJuggler::BookingListAttribute</a></li>
221
+
222
+ <li><a href="../TaskJuggler/BooleanAttribute.html">TaskJuggler::BooleanAttribute</a></li>
223
+
224
+ <li><a href="../TaskJuggler/CSVFile.html">TaskJuggler::CSVFile</a></li>
225
+
226
+ <li><a href="../TaskJuggler/CellSettingPattern.html">TaskJuggler::CellSettingPattern</a></li>
227
+
228
+ <li><a href="../TaskJuggler/CellSettingPatternList.html">TaskJuggler::CellSettingPatternList</a></li>
229
+
230
+ <li><a href="../TaskJuggler/Charge.html">TaskJuggler::Charge</a></li>
231
+
232
+ <li><a href="../TaskJuggler/ChargeListAttribute.html">TaskJuggler::ChargeListAttribute</a></li>
233
+
234
+ <li><a href="../TaskJuggler/ChargeSet.html">TaskJuggler::ChargeSet</a></li>
235
+
236
+ <li><a href="../TaskJuggler/ChargeSetListAttribute.html">TaskJuggler::ChargeSetListAttribute</a></li>
237
+
238
+ <li><a href="../TaskJuggler/CollisionDetector.html">TaskJuggler::CollisionDetector</a></li>
239
+
240
+ <li><a href="../TaskJuggler/ColumnListAttribute.html">TaskJuggler::ColumnListAttribute</a></li>
241
+
242
+ <li><a href="../TaskJuggler/ColumnTable.html">TaskJuggler::ColumnTable</a></li>
243
+
244
+ <li><a href="../TaskJuggler/Daemon.html">TaskJuggler::Daemon</a></li>
245
+
246
+ <li><a href="../TaskJuggler/DataCache.html">TaskJuggler::DataCache</a></li>
247
+
248
+ <li><a href="../TaskJuggler/DataCacheEntry.html">TaskJuggler::DataCacheEntry</a></li>
249
+
250
+ <li><a href="../TaskJuggler/DateAttribute.html">TaskJuggler::DateAttribute</a></li>
251
+
252
+ <li><a href="../TaskJuggler/DefinitionListAttribute.html">TaskJuggler::DefinitionListAttribute</a></li>
253
+
254
+ <li><a href="../TaskJuggler/DependencyListAttribute.html">TaskJuggler::DependencyListAttribute</a></li>
255
+
256
+ <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li>
257
+
258
+ <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li>
259
+
260
+ <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li>
261
+
262
+ <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li>
263
+
264
+ <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li>
265
+
266
+ <li><a href="../TaskJuggler/FloatAttribute.html">TaskJuggler::FloatAttribute</a></li>
267
+
268
+ <li><a href="../TaskJuggler/FormatListAttribute.html">TaskJuggler::FormatListAttribute</a></li>
269
+
270
+ <li><a href="../TaskJuggler/GanttChart.html">TaskJuggler::GanttChart</a></li>
271
+
272
+ <li><a href="../TaskJuggler/GanttContainer.html">TaskJuggler::GanttContainer</a></li>
273
+
274
+ <li><a href="../TaskJuggler/GanttHeader.html">TaskJuggler::GanttHeader</a></li>
275
+
276
+ <li><a href="../TaskJuggler/GanttHeaderScaleItem.html">TaskJuggler::GanttHeaderScaleItem</a></li>
277
+
278
+ <li><a href="../TaskJuggler/GanttLine.html">TaskJuggler::GanttLine</a></li>
279
+
280
+ <li><a href="../TaskJuggler/GanttLoadStack.html">TaskJuggler::GanttLoadStack</a></li>
281
+
282
+ <li><a href="../TaskJuggler/GanttMilestone.html">TaskJuggler::GanttMilestone</a></li>
283
+
284
+ <li><a href="../TaskJuggler/GanttRouter.html">TaskJuggler::GanttRouter</a></li>
285
+
286
+ <li><a href="../TaskJuggler/GanttTaskBar.html">TaskJuggler::GanttTaskBar</a></li>
287
+
288
+ <li><a href="../TaskJuggler/HTMLDocument.html">TaskJuggler::HTMLDocument</a></li>
289
+
290
+ <li><a href="../TaskJuggler/HTMLElements.html">TaskJuggler::HTMLElements</a></li>
291
+
292
+ <li><a href="../TaskJuggler/HTMLGraphics.html">TaskJuggler::HTMLGraphics</a></li>
293
+
294
+ <li><a href="../TaskJuggler/Interval.html">TaskJuggler::Interval</a></li>
295
+
296
+ <li><a href="../TaskJuggler/IntervalList.html">TaskJuggler::IntervalList</a></li>
297
+
298
+ <li><a href="../TaskJuggler/IntervalListAttribute.html">TaskJuggler::IntervalListAttribute</a></li>
299
+
300
+ <li><a href="../TaskJuggler/JobInfo.html">TaskJuggler::JobInfo</a></li>
301
+
302
+ <li><a href="../TaskJuggler/Journal.html">TaskJuggler::Journal</a></li>
303
+
304
+ <li><a href="../TaskJuggler/JournalEntry.html">TaskJuggler::JournalEntry</a></li>
305
+
306
+ <li><a href="../TaskJuggler/JournalEntryList.html">TaskJuggler::JournalEntryList</a></li>
307
+
308
+ <li><a href="../TaskJuggler/KeywordArray.html">TaskJuggler::KeywordArray</a></li>
309
+
310
+ <li><a href="../TaskJuggler/KeywordDocumentation.html">TaskJuggler::KeywordDocumentation</a></li>
311
+
312
+ <li><a href="../TaskJuggler/Limits.html">TaskJuggler::Limits</a></li>
313
+
314
+ <li><a href="../TaskJuggler/Limits/Limit.html">TaskJuggler::Limits::Limit</a></li>
315
+
316
+ <li><a href="../TaskJuggler/LimitsAttribute.html">TaskJuggler::LimitsAttribute</a></li>
317
+
318
+ <li><a href="../TaskJuggler/ListAttributeBase.html">TaskJuggler::ListAttributeBase</a></li>
319
+
320
+ <li><a href="../TaskJuggler/Log.html">TaskJuggler::Log</a></li>
321
+
322
+ <li><a href="../TaskJuggler/LogFile.html">TaskJuggler::LogFile</a></li>
323
+
324
+ <li><a href="../TaskJuggler/LogicalAttribute.html">TaskJuggler::LogicalAttribute</a></li>
325
+
326
+ <li><a href="../TaskJuggler/LogicalExpression.html">TaskJuggler::LogicalExpression</a></li>
327
+
328
+ <li><a href="../TaskJuggler/LogicalExpressionAttribute.html">TaskJuggler::LogicalExpressionAttribute</a></li>
329
+
330
+ <li><a href="../TaskJuggler/LogicalExpressionListAttribute.html">TaskJuggler::LogicalExpressionListAttribute</a></li>
331
+
332
+ <li><a href="../TaskJuggler/LogicalFlag.html">TaskJuggler::LogicalFlag</a></li>
333
+
334
+ <li><a href="../TaskJuggler/LogicalFunction.html">TaskJuggler::LogicalFunction</a></li>
335
+
336
+ <li><a href="../TaskJuggler/LogicalOperation.html">TaskJuggler::LogicalOperation</a></li>
337
+
338
+ <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li>
339
+
340
+ <li><a href="../TaskJuggler/ManagerStatusRecord.html">TaskJuggler::ManagerStatusRecord</a></li>
341
+
342
+ <li><a href="../TaskJuggler/Message.html">TaskJuggler::Message</a></li>
343
+
344
+ <li><a href="../TaskJuggler/MessageHandler.html">TaskJuggler::MessageHandler</a></li>
345
+
346
+ <li><a href="../TaskJuggler/Navigator.html">TaskJuggler::Navigator</a></li>
347
+
348
+ <li><a href="../TaskJuggler/NavigatorElement.html">TaskJuggler::NavigatorElement</a></li>
349
+
350
+ <li><a href="../TaskJuggler/NikuProject.html">TaskJuggler::NikuProject</a></li>
351
+
352
+ <li><a href="../TaskJuggler/NikuReport.html">TaskJuggler::NikuReport</a></li>
353
+
354
+ <li><a href="../TaskJuggler/NikuResource.html">TaskJuggler::NikuResource</a></li>
355
+
356
+ <li><a href="../TaskJuggler/NodeListAttribute.html">TaskJuggler::NodeListAttribute</a></li>
357
+
358
+ <li><a href="../TaskJuggler/PlaceHolderCell.html">TaskJuggler::PlaceHolderCell</a></li>
359
+
360
+ <li><a href="../TaskJuggler/ProcessIntercom.html">TaskJuggler::ProcessIntercom</a></li>
361
+
362
+ <li><a href="../TaskJuggler/ProcessIntercomIface.html">TaskJuggler::ProcessIntercomIface</a></li>
363
+
364
+ <li><a href="../TaskJuggler/Project.html">TaskJuggler::Project</a></li>
365
+
366
+ <li><a href="../TaskJuggler/ProjectBroker.html">TaskJuggler::ProjectBroker</a></li>
367
+
368
+ <li><a href="../TaskJuggler/ProjectBrokerIface.html">TaskJuggler::ProjectBrokerIface</a></li>
369
+
370
+ <li><a href="../TaskJuggler/ProjectFileParser.html">TaskJuggler::ProjectFileParser</a></li>
371
+
372
+ <li><a href="../TaskJuggler/ProjectFileScanner.html">TaskJuggler::ProjectFileScanner</a></li>
373
+
374
+ <li><a href="../TaskJuggler/ProjectRecord.html">TaskJuggler::ProjectRecord</a></li>
375
+
376
+ <li><a href="../TaskJuggler/ProjectServer.html">TaskJuggler::ProjectServer</a></li>
377
+
378
+ <li><a href="../TaskJuggler/ProjectServerIface.html">TaskJuggler::ProjectServerIface</a></li>
379
+
380
+ <li><a href="../TaskJuggler/PropertyAttribute.html">TaskJuggler::PropertyAttribute</a></li>
381
+
382
+ <li><a href="../TaskJuggler/PropertyList.html">TaskJuggler::PropertyList</a></li>
383
+
384
+ <li><a href="../TaskJuggler/PropertySet.html">TaskJuggler::PropertySet</a></li>
385
+
386
+ <li><a href="../TaskJuggler/PropertyTreeNode.html">TaskJuggler::PropertyTreeNode</a></li>
387
+
388
+ <li><a href="../TaskJuggler/Query.html">TaskJuggler::Query</a></li>
389
+
390
+ <li><a href="../TaskJuggler/RTFHandlers.html">TaskJuggler::RTFHandlers</a></li>
391
+
392
+ <li><a href="../TaskJuggler/RTFNavigator.html">TaskJuggler::RTFNavigator</a></li>
393
+
394
+ <li><a href="../TaskJuggler/RTFQuery.html">TaskJuggler::RTFQuery</a></li>
395
+
396
+ <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li>
397
+
398
+ <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li>
399
+
400
+ <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li>
401
+
402
+ <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li>
403
+
404
+ <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li>
405
+
406
+ <li><a href="../TaskJuggler/ReferenceAttribute.html">TaskJuggler::ReferenceAttribute</a></li>
407
+
408
+ <li><a href="../TaskJuggler/Report.html">TaskJuggler::Report</a></li>
409
+
410
+ <li><a href="../TaskJuggler/ReportBase.html">TaskJuggler::ReportBase</a></li>
411
+
412
+ <li><a href="../TaskJuggler/ReportContext.html">TaskJuggler::ReportContext</a></li>
413
+
414
+ <li><a href="../TaskJuggler/ReportServer.html">TaskJuggler::ReportServer</a></li>
415
+
416
+ <li><a href="../TaskJuggler/ReportServerIface.html">TaskJuggler::ReportServerIface</a></li>
417
+
418
+ <li><a href="../TaskJuggler/ReportServerRecord.html">TaskJuggler::ReportServerRecord</a></li>
419
+
420
+ <li><a href="../TaskJuggler/ReportServlet.html">TaskJuggler::ReportServlet</a></li>
421
+
422
+ <li><a href="../TaskJuggler/ReportTable.html">TaskJuggler::ReportTable</a></li>
423
+
424
+ <li><a href="../TaskJuggler/ReportTableCell.html">TaskJuggler::ReportTableCell</a></li>
425
+
426
+ <li><a href="../TaskJuggler/ReportTableColumn.html">TaskJuggler::ReportTableColumn</a></li>
427
+
428
+ <li><a href="../TaskJuggler/ReportTableLegend.html">TaskJuggler::ReportTableLegend</a></li>
429
+
430
+ <li><a href="../TaskJuggler/ReportTableLine.html">TaskJuggler::ReportTableLine</a></li>
431
+
432
+ <li><a href="../TaskJuggler/Resource.html">TaskJuggler::Resource</a></li>
433
+
434
+ <li><a href="../TaskJuggler/ResourceListAttribute.html">TaskJuggler::ResourceListAttribute</a></li>
435
+
436
+ <li><a href="../TaskJuggler/ResourceListRE.html">TaskJuggler::ResourceListRE</a></li>
437
+
438
+ <li><a href="../TaskJuggler/ResourceScenario.html">TaskJuggler::ResourceScenario</a></li>
439
+
440
+ <li><a href="../TaskJuggler/RichText.html">TaskJuggler::RichText</a></li>
441
+
442
+ <li><a href="../TaskJuggler/RichTextAttribute.html">TaskJuggler::RichTextAttribute</a></li>
443
+
444
+ <li><a href="../TaskJuggler/RichTextDocument.html">TaskJuggler::RichTextDocument</a></li>
445
+
446
+ <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li>
447
+
448
+ <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li>
449
+
450
+ <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li>
451
+
452
+ <li><a href="../TaskJuggler/RichTextImage.html">TaskJuggler::RichTextImage</a></li>
453
+
454
+ <li><a href="../TaskJuggler/RichTextIntermediate.html">TaskJuggler::RichTextIntermediate</a></li>
455
+
456
+ <li><a href="../TaskJuggler/RichTextParser.html">TaskJuggler::RichTextParser</a></li>
457
+
458
+ <li><a href="../TaskJuggler/RichTextScanner.html">TaskJuggler::RichTextScanner</a></li>
459
+
460
+ <li><a href="../TaskJuggler/RichTextSnip.html">TaskJuggler::RichTextSnip</a></li>
461
+
462
+ <li><a href="../TaskJuggler/RichTextSyntaxRules.html">TaskJuggler::RichTextSyntaxRules</a></li>
463
+
464
+ <li><a href="../TaskJuggler/Scenario.html">TaskJuggler::Scenario</a></li>
465
+
466
+ <li><a href="../TaskJuggler/ScenarioData.html">TaskJuggler::ScenarioData</a></li>
467
+
468
+ <li><a href="../TaskJuggler/ScenarioListAttribute.html">TaskJuggler::ScenarioListAttribute</a></li>
469
+
470
+ <li><a href="../TaskJuggler/Scoreboard.html">TaskJuggler::Scoreboard</a></li>
471
+
472
+ <li><a href="../TaskJuggler/SheetHandlerBase.html">TaskJuggler::SheetHandlerBase</a></li>
473
+
474
+ <li><a href="../TaskJuggler/SheetReceiver.html">TaskJuggler::SheetReceiver</a></li>
475
+
476
+ <li><a href="../TaskJuggler/SheetSender.html">TaskJuggler::SheetSender</a></li>
477
+
478
+ <li><a href="../TaskJuggler/Shift.html">TaskJuggler::Shift</a></li>
479
+
480
+ <li><a href="../TaskJuggler/ShiftAssignment.html">TaskJuggler::ShiftAssignment</a></li>
481
+
482
+ <li><a href="../TaskJuggler/ShiftAssignments.html">TaskJuggler::ShiftAssignments</a></li>
483
+
484
+ <li><a href="../TaskJuggler/ShiftAssignmentsAttribute.html">TaskJuggler::ShiftAssignmentsAttribute</a></li>
485
+
486
+ <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li>
487
+
488
+ <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li>
489
+
490
+ <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li>
491
+
492
+ <li><a href="../TaskJuggler/StatusSheetReceiver.html">TaskJuggler::StatusSheetReceiver</a></li>
493
+
494
+ <li><a href="../TaskJuggler/StatusSheetReport.html">TaskJuggler::StatusSheetReport</a></li>
495
+
496
+ <li><a href="../TaskJuggler/StatusSheetSender.html">TaskJuggler::StatusSheetSender</a></li>
497
+
498
+ <li><a href="../TaskJuggler/StdIoWrapper.html">TaskJuggler::StdIoWrapper</a></li>
499
+
500
+ <li><a href="../TaskJuggler/StringAttribute.html">TaskJuggler::StringAttribute</a></li>
501
+
502
+ <li><a href="../TaskJuggler/SymbolAttribute.html">TaskJuggler::SymbolAttribute</a></li>
503
+
504
+ <li><a href="../TaskJuggler/SyntaxReference.html">TaskJuggler::SyntaxReference</a></li>
505
+
506
+ <li><a href="../TaskJuggler/TOCEntry.html">TaskJuggler::TOCEntry</a></li>
507
+
508
+ <li><a href="../TaskJuggler/TSResourceRecord.html">TaskJuggler::TSResourceRecord</a></li>
509
+
510
+ <li><a href="../TaskJuggler/TSTaskRecord.html">TaskJuggler::TSTaskRecord</a></li>
511
+
512
+ <li><a href="../TaskJuggler/TableColumnDefinition.html">TaskJuggler::TableColumnDefinition</a></li>
513
+
514
+ <li><a href="../TaskJuggler/TableOfContents.html">TaskJuggler::TableOfContents</a></li>
515
+
516
+ <li><a href="../TaskJuggler/TableReport.html">TaskJuggler::TableReport</a></li>
517
+
518
+ <li><a href="../TaskJuggler/Task.html">TaskJuggler::Task</a></li>
519
+
520
+ <li><a href="../TaskJuggler/TaskDepListAttribute.html">TaskJuggler::TaskDepListAttribute</a></li>
521
+
522
+ <li><a href="../TaskJuggler/TaskDependency.html">TaskJuggler::TaskDependency</a></li>
523
+
524
+ <li><a href="../TaskJuggler/TaskListAttribute.html">TaskJuggler::TaskListAttribute</a></li>
525
+
526
+ <li><a href="../TaskJuggler/TaskListRE.html">TaskJuggler::TaskListRE</a></li>
527
+
528
+ <li><a href="../TaskJuggler/TaskScenario.html">TaskJuggler::TaskScenario</a></li>
529
+
530
+ <li><a href="../TaskJuggler/TernarySearchTree.html">TaskJuggler::TernarySearchTree</a></li>
531
+
532
+ <li><a href="../TaskJuggler/TextFormatter.html">TaskJuggler::TextFormatter</a></li>
533
+
534
+ <li><a href="../TaskJuggler/TextParser.html">TaskJuggler::TextParser</a></li>
535
+
536
+ <li><a href="../TaskJuggler/TextParser/Macro.html">TaskJuggler::TextParser::Macro</a></li>
537
+
538
+ <li><a href="../TaskJuggler/TextParser/MacroTable.html">TaskJuggler::TextParser::MacroTable</a></li>
539
+
540
+ <li><a href="../TaskJuggler/TextParser/Pattern.html">TaskJuggler::TextParser::Pattern</a></li>
541
+
542
+ <li><a href="../TaskJuggler/TextParser/Rule.html">TaskJuggler::TextParser::Rule</a></li>
543
+
544
+ <li><a href="../TaskJuggler/TextParser/Scanner.html">TaskJuggler::TextParser::Scanner</a></li>
545
+
546
+ <li><a href="../TaskJuggler/TextParser/Scanner/BufferStreamHandle.html">TaskJuggler::TextParser::Scanner::BufferStreamHandle</a></li>
547
+
548
+ <li><a href="../TaskJuggler/TextParser/Scanner/FileStreamHandle.html">TaskJuggler::TextParser::Scanner::FileStreamHandle</a></li>
549
+
550
+ <li><a href="../TaskJuggler/TextParser/Scanner/MacroStackEntry.html">TaskJuggler::TextParser::Scanner::MacroStackEntry</a></li>
551
+
552
+ <li><a href="../TaskJuggler/TextParser/Scanner/StreamHandle.html">TaskJuggler::TextParser::Scanner::StreamHandle</a></li>
553
+
554
+ <li><a href="../TaskJuggler/TextParser/SourceFileInfo.html">TaskJuggler::TextParser::SourceFileInfo</a></li>
555
+
556
+ <li><a href="../TaskJuggler/TextParser/StackElement.html">TaskJuggler::TextParser::StackElement</a></li>
557
+
558
+ <li><a href="../TaskJuggler/TextParser/State.html">TaskJuggler::TextParser::State</a></li>
559
+
560
+ <li><a href="../TaskJuggler/TextParser/StateTransition.html">TaskJuggler::TextParser::StateTransition</a></li>
561
+
562
+ <li><a href="../TaskJuggler/TextParser/TextParserResultArray.html">TaskJuggler::TextParser::TextParserResultArray</a></li>
563
+
564
+ <li><a href="../TaskJuggler/TextParser/TokenDoc.html">TaskJuggler::TextParser::TokenDoc</a></li>
565
+
566
+ <li><a href="../TaskJuggler/TextReport.html">TaskJuggler::TextReport</a></li>
567
+
568
+ <li><a href="../TaskJuggler/TimeSheet.html">TaskJuggler::TimeSheet</a></li>
569
+
570
+ <li><a href="../TaskJuggler/TimeSheetReceiver.html">TaskJuggler::TimeSheetReceiver</a></li>
571
+
572
+ <li><a href="../TaskJuggler/TimeSheetRecord.html">TaskJuggler::TimeSheetRecord</a></li>
573
+
574
+ <li><a href="../TaskJuggler/TimeSheetReport.html">TaskJuggler::TimeSheetReport</a></li>
575
+
576
+ <li><a href="../TaskJuggler/TimeSheetSender.html">TaskJuggler::TimeSheetSender</a></li>
577
+
578
+ <li><a href="../TaskJuggler/TimeSheetSummary.html">TaskJuggler::TimeSheetSummary</a></li>
579
+
580
+ <li><a href="../TaskJuggler/TimeSheets.html">TaskJuggler::TimeSheets</a></li>
581
+
582
+ <li><a href="../TaskJuggler/Tj3.html">TaskJuggler::Tj3</a></li>
583
+
584
+ <li><a href="../TaskJuggler/Tj3AppBase.html">TaskJuggler::Tj3AppBase</a></li>
585
+
586
+ <li><a href="../TaskJuggler/Tj3Client.html">TaskJuggler::Tj3Client</a></li>
587
+
588
+ <li><a href="../TaskJuggler/Tj3Daemon.html">TaskJuggler::Tj3Daemon</a></li>
589
+
590
+ <li><a href="../TaskJuggler/Tj3Man.html">TaskJuggler::Tj3Man</a></li>
591
+
592
+ <li><a href="../TaskJuggler/Tj3SheetAppBase.html">TaskJuggler::Tj3SheetAppBase</a></li>
593
+
594
+ <li><a href="../TaskJuggler/Tj3SsReceiver.html">TaskJuggler::Tj3SsReceiver</a></li>
595
+
596
+ <li><a href="../TaskJuggler/Tj3SsSender.html">TaskJuggler::Tj3SsSender</a></li>
597
+
598
+ <li><a href="../TaskJuggler/Tj3TsReceiver.html">TaskJuggler::Tj3TsReceiver</a></li>
599
+
600
+ <li><a href="../TaskJuggler/Tj3TsSender.html">TaskJuggler::Tj3TsSender</a></li>
601
+
602
+ <li><a href="../TaskJuggler/Tj3TsSummary.html">TaskJuggler::Tj3TsSummary</a></li>
603
+
604
+ <li><a href="../TaskJuggler/TjException.html">TaskJuggler::TjException</a></li>
605
+
606
+ <li><a href="../TaskJuggler/TjRuntimeError.html">TaskJuggler::TjRuntimeError</a></li>
607
+
608
+ <li><a href="../TaskJuggler/TjTime.html">TaskJuggler::TjTime</a></li>
609
+
610
+ <li><a href="../TaskJuggler/TjpExample.html">TaskJuggler::TjpExample</a></li>
611
+
612
+ <li><a href="../TaskJuggler/TjpExportRE.html">TaskJuggler::TjpExportRE</a></li>
613
+
614
+ <li><a href="../TaskJuggler/TjpSyntaxRules.html">TaskJuggler::TjpSyntaxRules</a></li>
615
+
616
+ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li>
617
+
618
+ <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li>
619
+
620
+ <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li>
621
+
622
+ <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li>
623
+
624
+ <li><a href="../TaskJuggler/WelcomePage.html">TaskJuggler::WelcomePage</a></li>
625
+
626
+ <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li>
627
+
628
+ <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li>
629
+
630
+ <li><a href="../TaskJuggler/XMLBlob.html">TaskJuggler::XMLBlob</a></li>
631
+
632
+ <li><a href="../TaskJuggler/XMLComment.html">TaskJuggler::XMLComment</a></li>
633
+
634
+ <li><a href="../TaskJuggler/XMLDocument.html">TaskJuggler::XMLDocument</a></li>
635
+
636
+ <li><a href="../TaskJuggler/XMLElement.html">TaskJuggler::XMLElement</a></li>
637
+
638
+ <li><a href="../TaskJuggler/XMLNamedText.html">TaskJuggler::XMLNamedText</a></li>
639
+
640
+ <li><a href="../TaskJuggler/XMLText.html">TaskJuggler::XMLText</a></li>
641
+
642
+ <li><a href="../Diff.html">Diff</a></li>
643
+
644
+ <li><a href="../Diff/Hunk.html">Diff::Hunk</a></li>
645
+
646
+ <li><a href="../AppConfig.html">AppConfig</a></li>
647
+
648
+ <li><a href="../Diffable.html">Diffable</a></li>
649
+
650
+ <li><a href="../DiffableString.html">DiffableString</a></li>
651
+
652
+ <li><a href="../Object.html">Object</a></li>
653
+
654
+ <li><a href="../RuntimeConfig.html">RuntimeConfig</a></li>
655
+
656
+ <li><a href="../String.html">String</a></li>
657
+
658
+ </ul>
659
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
660
+ </div>
661
+
662
+
663
+ </div>
664
+ </div>
665
+
666
+ <div id="documentation">
667
+ <h1 class="class">TaskJuggler::PropertyTreeNode</h1>
668
+
669
+ <div id="description">
670
+ <p>
671
+ This class is the base object for all <a href="Project.html">Project</a>
672
+ properties. A <a href="Project.html">Project</a> property is a e. g. a <a
673
+ href="Task.html">Task</a>, a <a href="Resource.html">Resource</a> or other
674
+ objects. Such properties can be arranged in tree form by assigning child
675
+ properties to an existing property. The parent object needs to exist at
676
+ object creation time. The <a
677
+ href="PropertyTreeNode.html">PropertyTreeNode</a> class holds all data and
678
+ methods that are common to the different types of properties. Each property
679
+ can have a set of predifined attributes. The <a
680
+ href="PropertySet.html">PropertySet</a> class holds collections of the same
681
+ <a href="PropertyTreeNode.html">PropertyTreeNode</a> objects and the
682
+ defined attributes. Each <a href="PropertySet.html">PropertySet</a> has a
683
+ predefined set of attributes, but the attribute set can be extended by the
684
+ user. E.g. a task has the predefined attribute &#8216;start&#8217; and
685
+ &#8216;end&#8217; date. The user can extend tasks with a user defined
686
+ attribute like an URL that contains more details about the task.
687
+ </p>
688
+
689
+ </div>
690
+
691
+ <!-- Constants -->
692
+
693
+
694
+ <!-- Attributes -->
695
+
696
+ <div id="attribute-method-details" class="method-section section">
697
+ <h3 class="section-header">Attributes</h3>
698
+
699
+
700
+ <div id="property-et-attribute-method" class="method-detail">
701
+ <a name="propertySet"></a>
702
+
703
+ <div class="method-heading attribute-method-heading">
704
+ <span class="method-name">propertySet</span><span
705
+ class="attribute-access-type">[R]</span>
706
+ </div>
707
+
708
+ <div class="method-description">
709
+
710
+
711
+
712
+ </div>
713
+ </div>
714
+
715
+ <div id="id-attribute-method" class="method-detail">
716
+ <a name="id"></a>
717
+
718
+ <div class="method-heading attribute-method-heading">
719
+ <span class="method-name">id</span><span
720
+ class="attribute-access-type">[R]</span>
721
+ </div>
722
+
723
+ <div class="method-description">
724
+
725
+
726
+
727
+ </div>
728
+ </div>
729
+
730
+ <div id="parent-attribute-method" class="method-detail">
731
+ <a name="parent"></a>
732
+
733
+ <div class="method-heading attribute-method-heading">
734
+ <span class="method-name">parent</span><span
735
+ class="attribute-access-type">[R]</span>
736
+ </div>
737
+
738
+ <div class="method-description">
739
+
740
+
741
+
742
+ </div>
743
+ </div>
744
+
745
+ <div id="project-attribute-method" class="method-detail">
746
+ <a name="project"></a>
747
+
748
+ <div class="method-heading attribute-method-heading">
749
+ <span class="method-name">project</span><span
750
+ class="attribute-access-type">[R]</span>
751
+ </div>
752
+
753
+ <div class="method-description">
754
+
755
+
756
+
757
+ </div>
758
+ </div>
759
+
760
+ <div id="sequence-o-attribute-method" class="method-detail">
761
+ <a name="sequenceNo"></a>
762
+
763
+ <div class="method-heading attribute-method-heading">
764
+ <span class="method-name">sequenceNo</span><span
765
+ class="attribute-access-type">[R]</span>
766
+ </div>
767
+
768
+ <div class="method-description">
769
+
770
+
771
+
772
+ </div>
773
+ </div>
774
+
775
+ <div id="children-attribute-method" class="method-detail">
776
+ <a name="children"></a>
777
+
778
+ <div class="method-heading attribute-method-heading">
779
+ <span class="method-name">children</span><span
780
+ class="attribute-access-type">[R]</span>
781
+ </div>
782
+
783
+ <div class="method-description">
784
+
785
+
786
+
787
+ </div>
788
+ </div>
789
+
790
+ <div id="adoptees-attribute-method" class="method-detail">
791
+ <a name="adoptees"></a>
792
+
793
+ <div class="method-heading attribute-method-heading">
794
+ <span class="method-name">adoptees</span><span
795
+ class="attribute-access-type">[R]</span>
796
+ </div>
797
+
798
+ <div class="method-description">
799
+
800
+
801
+
802
+ </div>
803
+ </div>
804
+
805
+ <div id="name-attribute-method" class="method-detail">
806
+ <a name="name"></a>
807
+
808
+ <a name="name="></a>
809
+
810
+ <div class="method-heading attribute-method-heading">
811
+ <span class="method-name">name</span><span
812
+ class="attribute-access-type">[RW]</span>
813
+ </div>
814
+
815
+ <div class="method-description">
816
+
817
+
818
+
819
+ </div>
820
+ </div>
821
+
822
+ <div id="source-ile-nfo-attribute-method" class="method-detail">
823
+ <a name="sourceFileInfo"></a>
824
+
825
+ <a name="sourceFileInfo="></a>
826
+
827
+ <div class="method-heading attribute-method-heading">
828
+ <span class="method-name">sourceFileInfo</span><span
829
+ class="attribute-access-type">[RW]</span>
830
+ </div>
831
+
832
+ <div class="method-description">
833
+
834
+
835
+
836
+ </div>
837
+ </div>
838
+
839
+ <div id="data-attribute-method" class="method-detail">
840
+ <a name="data"></a>
841
+
842
+ <div class="method-heading attribute-method-heading">
843
+ <span class="method-name">data</span><span
844
+ class="attribute-access-type">[R]</span>
845
+ </div>
846
+
847
+ <div class="method-description">
848
+
849
+
850
+
851
+ </div>
852
+ </div>
853
+
854
+ </div>
855
+
856
+
857
+ <!-- Methods -->
858
+
859
+ <div id="public-class-method-details" class="method-section section">
860
+ <h3 class="section-header">Public Class Methods</h3>
861
+
862
+
863
+ <div id="new-method" class="method-detail ">
864
+ <a name="method-c-new"></a>
865
+
866
+ <div class="method-heading">
867
+
868
+ <span class="method-name">new</span><span
869
+ class="method-args">(propertySet, id, name, parent)</span>
870
+ <span class="method-click-advice">click to toggle source</span>
871
+
872
+ </div>
873
+
874
+ <div class="method-description">
875
+
876
+ <p>
877
+ Create a new <a href="PropertyTreeNode.html">PropertyTreeNode</a> object.
878
+ <em>propertySet</em> is the <a href="PropertySet.html">PropertySet</a> that
879
+ this <a href="PropertyTreeNode.html">PropertyTreeNode</a> object belongs
880
+ to. The <a href="PropertySet.html">PropertySet</a> determines the
881
+ attributes that are common to all Nodes in the set. <em>id</em> is a <a
882
+ href="../String.html">String</a> that is unique in the namespace of the
883
+ set. <em>name</em> is a user readable, short description of the object.
884
+ <em>parent</em> is the <a href="PropertyTreeNode.html">PropertyTreeNode</a>
885
+ that sits above this node in the object hierachy. A root object has a
886
+ <em>parent</em> of nil. For sets with hierachical name spaces, parent can
887
+ be nil and specified by a hierachical <em>id</em> (e. g.
888
+ &#8216;father.son&#8217;).
889
+ </p>
890
+
891
+
892
+
893
+ <div class="method-source-code"
894
+ id="new-source">
895
+ <pre>
896
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 43</span>
897
+ 43: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">propertySet</span>, <span class="ruby-identifier">id</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">parent</span>)
898
+ 44: <span class="ruby-ivar">@propertySet</span> = <span class="ruby-identifier">propertySet</span>
899
+ 45: <span class="ruby-ivar">@project</span> = <span class="ruby-identifier">propertySet</span>.<span class="ruby-identifier">project</span>
900
+ 46: <span class="ruby-ivar">@parent</span> = <span class="ruby-identifier">parent</span>
901
+ 47: <span class="ruby-comment cmt"># Attributes are created on-demand. We need to be careful that a pure</span>
902
+ 48: <span class="ruby-comment cmt"># check for existance does not create them unecessarily.</span>
903
+ 49: <span class="ruby-ivar">@attributes</span> = <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hash</span>, <span class="ruby-identifier">attributeId</span><span class="ruby-operator">|</span>
904
+ 50: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">aType</span> = <span class="ruby-identifier">attributeDefinition</span>(<span class="ruby-identifier">attributeId</span>))
905
+ 51: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>,
906
+ 52: <span class="ruby-node">&quot;Unknown attribute '#{attributeId}' requested for &quot;</span> <span class="ruby-operator">+</span>
907
+ 53: <span class="ruby-node">&quot;#{self.class.to_s.sub(/TaskJuggler::/, '')} '#{fullId}'&quot;</span>
908
+ 54: <span class="ruby-keyword kw">end</span>
909
+ 55: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">aType</span>.<span class="ruby-identifier">scenarioSpecific</span>
910
+ 56: <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">attributeId</span>] = <span class="ruby-identifier">aType</span>.<span class="ruby-identifier">objClass</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@propertySet</span>, <span class="ruby-identifier">aType</span>)
911
+ 57: <span class="ruby-keyword kw">else</span>
912
+ 58: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>, <span class="ruby-node">&quot;Attribute '#{attributeId}' is scenario specific&quot;</span>
913
+ 59: <span class="ruby-keyword kw">end</span>
914
+ 60: <span class="ruby-keyword kw">end</span>
915
+ 61: <span class="ruby-ivar">@scenarioAttributes</span> = <span class="ruby-constant">Array</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioCount</span>) <span class="ruby-keyword kw">do</span>
916
+ 62: <span class="ruby-constant">Hash</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">hash</span>, <span class="ruby-identifier">attributeId</span><span class="ruby-operator">|</span>
917
+ 63: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">aType</span> = <span class="ruby-identifier">attributeDefinition</span>(<span class="ruby-identifier">attributeId</span>))
918
+ 64: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>,
919
+ 65: <span class="ruby-node">&quot;Unknown attribute '#{attributeId}' requested for &quot;</span> <span class="ruby-operator">+</span>
920
+ 66: <span class="ruby-node">&quot;#{self.class.to_s.sub(/TaskJuggler::/, '')} '#{fullId}'&quot;</span>
921
+ 67: <span class="ruby-keyword kw">end</span>
922
+ 68: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">aType</span>.<span class="ruby-identifier">scenarioSpecific</span>
923
+ 69: <span class="ruby-identifier">hash</span>[<span class="ruby-identifier">attributeId</span>] = <span class="ruby-identifier">aType</span>.<span class="ruby-identifier">objClass</span>.<span class="ruby-identifier">new</span>(<span class="ruby-ivar">@propertySet</span>, <span class="ruby-identifier">aType</span>)
924
+ 70: <span class="ruby-keyword kw">else</span>
925
+ 71: <span class="ruby-identifier">raise</span> <span class="ruby-constant">ArgumentError</span>,
926
+ 72: <span class="ruby-node">&quot;Attribute '#{attributeId}' is not scenario specific&quot;</span>
927
+ 73: <span class="ruby-keyword kw">end</span>
928
+ 74: <span class="ruby-keyword kw">end</span>
929
+ 75: <span class="ruby-keyword kw">end</span>
930
+ 76:
931
+ 77: <span class="ruby-comment cmt"># If _id_ is still nil, we generate a unique id.</span>
932
+ 78: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">id</span>
933
+ 79: <span class="ruby-identifier">tag</span> = <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/TaskJuggler::/</span>, <span class="ruby-value str">''</span>)
934
+ 80: <span class="ruby-identifier">id</span> = <span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">tag</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'_'</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">propertySet</span>.<span class="ruby-identifier">items</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>).<span class="ruby-identifier">to_s</span>
935
+ 81: <span class="ruby-identifier">id</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">fullId</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'.'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">id</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">flatNamespace</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">parent</span>
936
+ 82: <span class="ruby-keyword kw">end</span>
937
+ 83: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">flatNamespace</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">id</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-value str">'.'</span>)
938
+ 84: <span class="ruby-identifier">parentId</span> = <span class="ruby-identifier">id</span>[<span class="ruby-value">0</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">id</span>.<span class="ruby-identifier">rindex</span>(<span class="ruby-value str">'.'</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span>)]
939
+ 85: <span class="ruby-comment cmt"># Set parent to the parent property if it's still nil.</span>
940
+ 86: <span class="ruby-ivar">@parent</span> = <span class="ruby-ivar">@propertySet</span>[<span class="ruby-identifier">parentId</span>] <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@parent</span>
941
+ 87: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span>
942
+ 88: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@parent</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertySet</span>[<span class="ruby-ivar">@parent</span>.<span class="ruby-identifier">fullId</span>]
943
+ 89: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Fatal Error: parent must be member of same property set&quot;</span>
944
+ 90: <span class="ruby-keyword kw">end</span>
945
+ 91: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parentId</span> <span class="ruby-operator">!=</span> <span class="ruby-ivar">@parent</span>.<span class="ruby-identifier">fullId</span>
946
+ 92: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Fatal Error: parent (#{@parent.fullId}) and parent ID &quot;</span> <span class="ruby-operator">+</span>
947
+ 93: <span class="ruby-node">&quot;(#{@parentId}) don't match&quot;</span>
948
+ 94: <span class="ruby-keyword kw">end</span>
949
+ 95: <span class="ruby-keyword kw">end</span>
950
+ 96: <span class="ruby-ivar">@id</span> = <span class="ruby-identifier">id</span>[(<span class="ruby-identifier">id</span>.<span class="ruby-identifier">rindex</span>(<span class="ruby-value str">'.'</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)<span class="ruby-operator">..</span> <span class="ruby-value">1</span>]
951
+ 97: <span class="ruby-keyword kw">else</span>
952
+ 98: <span class="ruby-ivar">@id</span> = <span class="ruby-identifier">id</span>
953
+ 99: <span class="ruby-keyword kw">end</span>
954
+ 100: <span class="ruby-comment cmt"># The attribute 'id' is either the short ID or the full hierarchical ID.</span>
955
+ 101: <span class="ruby-identifier">set</span>(<span class="ruby-value str">'id'</span>, <span class="ruby-identifier">fullId</span>)
956
+ 102:
957
+ 103: <span class="ruby-comment cmt"># The name of the property.</span>
958
+ 104: <span class="ruby-ivar">@name</span> = <span class="ruby-identifier">name</span>
959
+ 105: <span class="ruby-identifier">set</span>(<span class="ruby-value str">'name'</span>, <span class="ruby-identifier">name</span>)
960
+ 106:
961
+ 107: <span class="ruby-ivar">@level</span> = <span class="ruby-value">1</span>
962
+ 108: <span class="ruby-ivar">@sourceFileInfo</span> = <span class="ruby-keyword kw">nil</span>
963
+ 109:
964
+ 110: <span class="ruby-ivar">@sequenceNo</span> = <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">items</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
965
+ 111: <span class="ruby-identifier">set</span>(<span class="ruby-value str">'seqno'</span>, <span class="ruby-ivar">@sequenceNo</span>)
966
+ 112: <span class="ruby-comment cmt"># This is a list of the real sub nodes of this PropertyTreeNode.</span>
967
+ 113: <span class="ruby-ivar">@children</span> = []
968
+ 114: <span class="ruby-comment cmt"># This is a list of the adopted sub nodes of this PropertyTreeNode.</span>
969
+ 115: <span class="ruby-ivar">@adoptees</span> = []
970
+ 116: <span class="ruby-comment cmt"># In case we have a parent object, we register this object as child of</span>
971
+ 117: <span class="ruby-comment cmt"># the parent.</span>
972
+ 118: <span class="ruby-keyword kw">if</span> (<span class="ruby-ivar">@parent</span>)
973
+ 119: <span class="ruby-ivar">@parent</span>.<span class="ruby-identifier">addChild</span>(<span class="ruby-keyword kw">self</span>)
974
+ 120: <span class="ruby-keyword kw">end</span>
975
+ 121: <span class="ruby-comment cmt"># This is a list of the PropertyTreeNode objects that have adopted this</span>
976
+ 122: <span class="ruby-comment cmt"># node.</span>
977
+ 123: <span class="ruby-ivar">@stepParents</span> = []
978
+ 124:
979
+ 125: <span class="ruby-comment cmt"># Scenario specific data</span>
980
+ 126: <span class="ruby-ivar">@data</span> = <span class="ruby-keyword kw">nil</span>
981
+ 127: <span class="ruby-keyword kw">end</span></pre>
982
+ </div>
983
+
984
+ </div>
985
+
986
+
987
+
988
+
989
+ </div>
990
+
991
+
992
+ </div>
993
+
994
+ <div id="public-instance-method-details" class="method-section section">
995
+ <h3 class="section-header">Public Instance Methods</h3>
996
+
997
+
998
+ <div id="--method" class="method-detail ">
999
+ <a name="method-i-%5B%5D"></a>
1000
+
1001
+ <div class="method-heading">
1002
+
1003
+ <span class="method-name">[]</span><span
1004
+ class="method-args">(attributeId, scenario)</span>
1005
+ <span class="method-click-advice">click to toggle source</span>
1006
+
1007
+ </div>
1008
+
1009
+ <div class="method-description">
1010
+
1011
+ <p>
1012
+ Return the value of the attribute with ID <em>attributeId</em>. For
1013
+ scenario-specific attributes, <em>scenario</em> must indicate the index of
1014
+ the <a href="Scenario.html">Scenario</a>.
1015
+ </p>
1016
+
1017
+
1018
+
1019
+ <div class="method-source-code"
1020
+ id="--source">
1021
+ <pre>
1022
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 452</span>
1023
+ 452: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenario</span>)
1024
+ 453: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">get</span>
1025
+ 454: <span class="ruby-keyword kw">end</span></pre>
1026
+ </div>
1027
+
1028
+ </div>
1029
+
1030
+
1031
+
1032
+
1033
+ </div>
1034
+
1035
+
1036
+ <div id="--method" class="method-detail ">
1037
+ <a name="method-i-%5B%5D%3D"></a>
1038
+
1039
+ <div class="method-heading">
1040
+
1041
+ <span class="method-name">[]=</span><span
1042
+ class="method-args">(attributeId, scenario, value)</span>
1043
+ <span class="method-click-advice">click to toggle source</span>
1044
+
1045
+ </div>
1046
+
1047
+ <div class="method-description">
1048
+
1049
+ <p>
1050
+ Set the scenario specific attribute with ID <em>attributeId</em> for the
1051
+ scenario with index <em>scenario</em> to <em>value</em>. If
1052
+ <em>scenario</em> is nil, the attribute must not be scenario specific. In
1053
+ case the attribute does not exist, an exception is raised.
1054
+ </p>
1055
+
1056
+
1057
+
1058
+ <div class="method-source-code"
1059
+ id="--source">
1060
+ <pre>
1061
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 415</span>
1062
+ 415: <span class="ruby-keyword kw">def</span> <span class="ruby-operator">[]=</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenario</span>, <span class="ruby-identifier">value</span>)
1063
+ 416: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenario</span>
1064
+ 417: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">AttributeBase</span>.<span class="ruby-identifier">mode</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
1065
+ 418: <span class="ruby-comment cmt"># If we get values in 'provided' mode, we copy them immedidately to</span>
1066
+ 419: <span class="ruby-comment cmt"># all derived scenarios.</span>
1067
+ 420: <span class="ruby-identifier">overwrite</span> = <span class="ruby-keyword kw">false</span>
1068
+ 421: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">scenario</span>).<span class="ruby-identifier">all</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">sc</span><span class="ruby-operator">|</span>
1069
+ 422: <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioIdx</span>(<span class="ruby-identifier">sc</span>)
1070
+ 423:
1071
+ 424: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span>
1072
+ 425: <span class="ruby-identifier">overwrite</span> = <span class="ruby-keyword kw">true</span>
1073
+ 426: <span class="ruby-keyword kw">end</span>
1074
+ 427:
1075
+ 428: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">scenario</span>
1076
+ 429: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
1077
+ 430: <span class="ruby-keyword kw">else</span>
1078
+ 431: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherit</span>(<span class="ruby-identifier">value</span>)
1079
+ 432: <span class="ruby-keyword kw">end</span>
1080
+ 433: <span class="ruby-keyword kw">end</span>
1081
+ 434: <span class="ruby-comment cmt"># We only raise the overwrite error after all scenarios have been</span>
1082
+ 435: <span class="ruby-comment cmt"># set. For some attributes the overwrite is actually allowed.</span>
1083
+ 436: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">overwrite</span>
1084
+ 437: <span class="ruby-identifier">raise</span> <span class="ruby-constant">AttributeOverwrite</span>,
1085
+ 438: <span class="ruby-value str">&quot;Overwriting a previously provided value for attribute &quot;</span> <span class="ruby-operator">+</span>
1086
+ 439: <span class="ruby-node">&quot;#{attributeId}&quot;</span>
1087
+ 440: <span class="ruby-keyword kw">end</span>
1088
+ 441: <span class="ruby-keyword kw">else</span>
1089
+ 442: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenario</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
1090
+ 443: <span class="ruby-keyword kw">end</span>
1091
+ 444: <span class="ruby-keyword kw">else</span>
1092
+ 445: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
1093
+ 446: <span class="ruby-keyword kw">end</span>
1094
+ 447: <span class="ruby-keyword kw">end</span></pre>
1095
+ </div>
1096
+
1097
+ </div>
1098
+
1099
+
1100
+
1101
+
1102
+ </div>
1103
+
1104
+
1105
+ <div id="add-hild-method" class="method-detail ">
1106
+ <a name="method-i-addChild"></a>
1107
+
1108
+ <div class="method-heading">
1109
+
1110
+ <span class="method-name">addChild</span><span
1111
+ class="method-args">(child)</span>
1112
+ <span class="method-click-advice">click to toggle source</span>
1113
+
1114
+ </div>
1115
+
1116
+ <div class="method-description">
1117
+
1118
+ <p>
1119
+ Add <em>child</em> node as child to this node.
1120
+ </p>
1121
+
1122
+
1123
+
1124
+ <div class="method-source-code"
1125
+ id="add-hild-source">
1126
+ <pre>
1127
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 335</span>
1128
+ 335: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addChild</span>(<span class="ruby-identifier">child</span>)
1129
+ 336: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">$DEBUG</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">child</span>.<span class="ruby-identifier">propertySet</span> <span class="ruby-operator">!=</span> <span class="ruby-ivar">@propertySet</span>
1130
+ 337: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Child nodes must belong to the same property set as the parent&quot;</span>
1131
+ 338: <span class="ruby-keyword kw">end</span>
1132
+ 339: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">child</span>)
1133
+ 340: <span class="ruby-keyword kw">end</span></pre>
1134
+ </div>
1135
+
1136
+ </div>
1137
+
1138
+
1139
+
1140
+
1141
+ </div>
1142
+
1143
+
1144
+ <div id="adopt-method" class="method-detail ">
1145
+ <a name="method-i-adopt"></a>
1146
+
1147
+ <div class="method-heading">
1148
+
1149
+ <span class="method-name">adopt</span><span
1150
+ class="method-args">(property)</span>
1151
+ <span class="method-click-advice">click to toggle source</span>
1152
+
1153
+ </div>
1154
+
1155
+ <div class="method-description">
1156
+
1157
+ <p>
1158
+ Adopt <em>property</em> as a step child. Also register the new relationship
1159
+ with the child.
1160
+ </p>
1161
+
1162
+
1163
+
1164
+ <div class="method-source-code"
1165
+ id="adopt-source">
1166
+ <pre>
1167
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 138</span>
1168
+ 138: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">adopt</span>(<span class="ruby-identifier">property</span>)
1169
+ 139: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@adoptees</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">property</span>)
1170
+ 140:
1171
+ 141: <span class="ruby-comment cmt"># The adopted node and the adopting node must not have any common</span>
1172
+ 142: <span class="ruby-comment cmt"># ancestors.</span>
1173
+ 143: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">root</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">root</span>
1174
+ 144: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'adopt_common_root'</span>,
1175
+ 145: <span class="ruby-node">&quot;The adoptee #{property.fullId} and the parent #{fullId} &quot;</span> <span class="ruby-operator">+</span>
1176
+ 146: <span class="ruby-value str">&quot;may not share common ancestors.&quot;</span>)
1177
+ 147: <span class="ruby-keyword kw">end</span>
1178
+ 148:
1179
+ 149: <span class="ruby-comment cmt"># The adopted trees for this node must not overlap.</span>
1180
+ 150: <span class="ruby-ivar">@adoptees</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">adoptee</span><span class="ruby-operator">|</span>
1181
+ 151: <span class="ruby-comment cmt"># Check if the to be adopted node is an ancestor of an already adopted</span>
1182
+ 152: <span class="ruby-comment cmt"># node.</span>
1183
+ 153: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">adoptee</span>.<span class="ruby-identifier">ancestors</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">property</span>)
1184
+ 154: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'adopt_duplicate_child'</span>,
1185
+ 155: <span class="ruby-node">&quot;The child #{adoptee.fullId} of #{property.fullId} &quot;</span> <span class="ruby-operator">+</span>
1186
+ 156: <span class="ruby-node">&quot;has already been adopted by #{fullId}.&quot;</span>)
1187
+ 157: <span class="ruby-keyword kw">end</span>
1188
+ 158: <span class="ruby-comment cmt"># Check if the already adopted nodes are an ancestor of the to be</span>
1189
+ 159: <span class="ruby-comment cmt"># adopted node.</span>
1190
+ 160: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">property</span>.<span class="ruby-identifier">ancestors</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">adoptee</span>)
1191
+ 161: <span class="ruby-identifier">error</span>(<span class="ruby-value str">'adopt_duplicate_parent'</span>,
1192
+ 162: <span class="ruby-node">&quot;The parent #{adoptee.fullId} of #{property.fullId} &quot;</span> <span class="ruby-operator">+</span>
1193
+ 163: <span class="ruby-node">&quot;has already been adopted by #{fullId}.&quot;</span>)
1194
+ 164: <span class="ruby-keyword kw">end</span>
1195
+ 165: <span class="ruby-keyword kw">end</span>
1196
+ 166:
1197
+ 167: <span class="ruby-ivar">@adoptees</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">property</span>
1198
+ 168: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">getAdopted</span>(<span class="ruby-keyword kw">self</span>)
1199
+ 169: <span class="ruby-keyword kw">end</span></pre>
1200
+ </div>
1201
+
1202
+ </div>
1203
+
1204
+
1205
+
1206
+
1207
+ </div>
1208
+
1209
+
1210
+ <div id="all-method" class="method-detail ">
1211
+ <a name="method-i-all"></a>
1212
+
1213
+ <div class="method-heading">
1214
+
1215
+ <span class="method-name">all</span><span
1216
+ class="method-args">()</span>
1217
+ <span class="method-click-advice">click to toggle source</span>
1218
+
1219
+ </div>
1220
+
1221
+ <div class="method-description">
1222
+
1223
+ <p>
1224
+ Returns a list of this node and all transient sub nodes.
1225
+ </p>
1226
+
1227
+
1228
+
1229
+ <div class="method-source-code"
1230
+ id="all-source">
1231
+ <pre>
1232
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 257</span>
1233
+ 257: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">all</span>
1234
+ 258: <span class="ruby-identifier">res</span> = [ <span class="ruby-keyword kw">self</span> ]
1235
+ 259: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
1236
+ 260: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">res</span>.<span class="ruby-identifier">concat</span>(<span class="ruby-identifier">c</span>.<span class="ruby-identifier">all</span>)
1237
+ 261: <span class="ruby-keyword kw">end</span>
1238
+ 262: <span class="ruby-identifier">res</span>
1239
+ 263: <span class="ruby-keyword kw">end</span></pre>
1240
+ </div>
1241
+
1242
+ </div>
1243
+
1244
+
1245
+
1246
+
1247
+ </div>
1248
+
1249
+
1250
+ <div id="all-eaves-method" class="method-detail ">
1251
+ <a name="method-i-allLeaves"></a>
1252
+
1253
+ <div class="method-heading">
1254
+
1255
+ <span class="method-name">allLeaves</span><span
1256
+ class="method-args">(withoutSelf = false)</span>
1257
+ <span class="method-click-advice">click to toggle source</span>
1258
+
1259
+ </div>
1260
+
1261
+ <div class="method-description">
1262
+
1263
+ <p>
1264
+ Return a list of all leaf nodes of this node.
1265
+ </p>
1266
+
1267
+
1268
+
1269
+ <div class="method-source-code"
1270
+ id="all-eaves-source">
1271
+ <pre>
1272
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 266</span>
1273
+ 266: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">allLeaves</span>(<span class="ruby-identifier">withoutSelf</span> = <span class="ruby-keyword kw">false</span>)
1274
+ 267: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">leaf?</span>
1275
+ 268: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">withoutSelf</span> <span class="ruby-operator">?</span> [] <span class="ruby-operator">:</span> [ <span class="ruby-keyword kw">self</span> ]
1276
+ 269: <span class="ruby-keyword kw">else</span>
1277
+ 270: <span class="ruby-identifier">res</span> = []
1278
+ 271: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">c</span><span class="ruby-operator">|</span>
1279
+ 272: <span class="ruby-identifier">res</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">c</span>.<span class="ruby-identifier">allLeaves</span>
1280
+ 273: <span class="ruby-keyword kw">end</span>
1281
+ 274: <span class="ruby-keyword kw">end</span>
1282
+ 275: <span class="ruby-identifier">res</span>
1283
+ 276: <span class="ruby-keyword kw">end</span></pre>
1284
+ </div>
1285
+
1286
+ </div>
1287
+
1288
+
1289
+
1290
+
1291
+ </div>
1292
+
1293
+
1294
+ <div id="ancestors-method" class="method-detail ">
1295
+ <a name="method-i-ancestors"></a>
1296
+
1297
+ <div class="method-heading">
1298
+
1299
+ <span class="method-name">ancestors</span><span
1300
+ class="method-args">()</span>
1301
+ <span class="method-click-advice">click to toggle source</span>
1302
+
1303
+ </div>
1304
+
1305
+ <div class="method-description">
1306
+
1307
+ <p>
1308
+ Return a list with all parent nodes of this node.
1309
+ </p>
1310
+
1311
+
1312
+
1313
+ <div class="method-source-code"
1314
+ id="ancestors-source">
1315
+ <pre>
1316
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 362</span>
1317
+ 362: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ancestors</span>
1318
+ 363: <span class="ruby-identifier">nodes</span> = []
1319
+ 364: <span class="ruby-identifier">n</span> = <span class="ruby-keyword kw">self</span>
1320
+ 365: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">parent</span>
1321
+ 366: <span class="ruby-identifier">nodes</span> <span class="ruby-operator">&lt;&lt;</span> (<span class="ruby-identifier">n</span> = <span class="ruby-identifier">n</span>.<span class="ruby-identifier">parent</span>)
1322
+ 367: <span class="ruby-keyword kw">end</span>
1323
+ 368: <span class="ruby-identifier">nodes</span>
1324
+ 369: <span class="ruby-keyword kw">end</span></pre>
1325
+ </div>
1326
+
1327
+ </div>
1328
+
1329
+
1330
+
1331
+
1332
+ </div>
1333
+
1334
+
1335
+ <div id="attribute-efinition-method" class="method-detail ">
1336
+ <a name="method-i-attributeDefinition"></a>
1337
+
1338
+ <div class="method-heading">
1339
+
1340
+ <span class="method-name">attributeDefinition</span><span
1341
+ class="method-args">(attributeId)</span>
1342
+ <span class="method-click-advice">click to toggle source</span>
1343
+
1344
+ </div>
1345
+
1346
+ <div class="method-description">
1347
+
1348
+ <p>
1349
+ Return the type of the attribute with ID <em>attributeId</em>.
1350
+ </p>
1351
+
1352
+
1353
+
1354
+ <div class="method-source-code"
1355
+ id="attribute-efinition-source">
1356
+ <pre>
1357
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 381</span>
1358
+ 381: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">attributeDefinition</span>(<span class="ruby-identifier">attributeId</span>)
1359
+ 382: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">attributeDefinitions</span>[<span class="ruby-identifier">attributeId</span>]
1360
+ 383: <span class="ruby-keyword kw">end</span></pre>
1361
+ </div>
1362
+
1363
+ </div>
1364
+
1365
+
1366
+
1367
+
1368
+ </div>
1369
+
1370
+
1371
+ <div id="backup-ttributes-method" class="method-detail ">
1372
+ <a name="method-i-backupAttributes"></a>
1373
+
1374
+ <div class="method-heading">
1375
+
1376
+ <span class="method-name">backupAttributes</span><span
1377
+ class="method-args">()</span>
1378
+ <span class="method-click-advice">click to toggle source</span>
1379
+
1380
+ </div>
1381
+
1382
+ <div class="method-description">
1383
+
1384
+ <p>
1385
+ This method creates a shallow copy of all attributes and returns them as an
1386
+ Array that can be used with restoreAttributes().
1387
+ </p>
1388
+
1389
+
1390
+
1391
+ <div class="method-source-code"
1392
+ id="backup-ttributes-source">
1393
+ <pre>
1394
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 193</span>
1395
+ 193: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">backupAttributes</span>
1396
+ 194: [ <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">clone</span>, <span class="ruby-ivar">@scenarioAttributes</span>.<span class="ruby-identifier">clone</span> ]
1397
+ 195: <span class="ruby-keyword kw">end</span></pre>
1398
+ </div>
1399
+
1400
+ </div>
1401
+
1402
+
1403
+
1404
+
1405
+ </div>
1406
+
1407
+
1408
+ <div id="check-ails-nd-arnings-method" class="method-detail ">
1409
+ <a name="method-i-checkFailsAndWarnings"></a>
1410
+
1411
+ <div class="method-heading">
1412
+
1413
+ <span class="method-name">checkFailsAndWarnings</span><span
1414
+ class="method-args">()</span>
1415
+ <span class="method-click-advice">click to toggle source</span>
1416
+
1417
+ </div>
1418
+
1419
+ <div class="method-description">
1420
+
1421
+
1422
+
1423
+
1424
+
1425
+ <div class="method-source-code"
1426
+ id="check-ails-nd-arnings-source">
1427
+ <pre>
1428
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 498</span>
1429
+ 498: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">checkFailsAndWarnings</span>
1430
+ 499: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-value str">'fail'</span>) <span class="ruby-operator">||</span> <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-value str">'warn'</span>)
1431
+ 500: <span class="ruby-identifier">propertyType</span> = <span class="ruby-keyword kw">case</span> <span class="ruby-keyword kw">self</span>
1432
+ 501: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Task</span>
1433
+ 502: <span class="ruby-value str">'task'</span>
1434
+ 503: <span class="ruby-keyword kw">when</span> <span class="ruby-constant">Resource</span>
1435
+ 504: <span class="ruby-value str">'resource'</span>
1436
+ 505: <span class="ruby-keyword kw">else</span>
1437
+ 506: <span class="ruby-value str">'unknown'</span>
1438
+ 507: <span class="ruby-keyword kw">end</span>
1439
+ 508: <span class="ruby-identifier">queryAttrs</span> = { <span class="ruby-value str">'project'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>,
1440
+ 509: <span class="ruby-value str">'property'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">self</span>,
1441
+ 510: <span class="ruby-value str">'scopeProperty'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>,
1442
+ 511: <span class="ruby-value str">'start'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'start'</span>],
1443
+ 512: <span class="ruby-value str">'end'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'end'</span>],
1444
+ 513: <span class="ruby-value str">'loadUnit'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:days</span>,
1445
+ 514: <span class="ruby-value str">'numberFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'numberFormat'</span>],
1446
+ 515: <span class="ruby-value str">'timeFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword kw">nil</span>,
1447
+ 516: <span class="ruby-value str">'currencyFormat'</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'currencyFormat'</span>] }
1448
+ 517: <span class="ruby-identifier">query</span> = <span class="ruby-constant">Query</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">queryAttrs</span>)
1449
+ 518: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'fail'</span>]
1450
+ 519: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'fail'</span>].<span class="ruby-identifier">get</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">expr</span><span class="ruby-operator">|</span>
1451
+ 520: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">query</span>)
1452
+ 521: <span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;#{propertyType}_fail_check&quot;</span>,
1453
+ 522: <span class="ruby-node">&quot;User defined check failed for #{propertyType} &quot;</span> <span class="ruby-operator">+</span>
1454
+ 523: <span class="ruby-node">&quot;#{fullId} \n&quot;</span> <span class="ruby-operator">+</span>
1455
+ 524: <span class="ruby-node">&quot;Condition: #{expr.to_s}\n&quot;</span> <span class="ruby-operator">+</span>
1456
+ 525: <span class="ruby-node">&quot;Result: #{expr.to_s(query)}&quot;</span>)
1457
+ 526: <span class="ruby-keyword kw">end</span>
1458
+ 527: <span class="ruby-keyword kw">end</span>
1459
+ 528: <span class="ruby-keyword kw">end</span>
1460
+ 529: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'warn'</span>]
1461
+ 530: <span class="ruby-ivar">@attributes</span>[<span class="ruby-value str">'warn'</span>].<span class="ruby-identifier">get</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">expr</span><span class="ruby-operator">|</span>
1462
+ 531: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">expr</span>.<span class="ruby-identifier">eval</span>(<span class="ruby-identifier">query</span>)
1463
+ 532: <span class="ruby-identifier">warning</span>(<span class="ruby-node">&quot;#{propertyType}_warn_check&quot;</span>,
1464
+ 533: <span class="ruby-node">&quot;User defined warning triggered for #{propertyType} &quot;</span> <span class="ruby-operator">+</span>
1465
+ 534: <span class="ruby-node">&quot;#{fullId} \n&quot;</span> <span class="ruby-operator">+</span>
1466
+ 535: <span class="ruby-node">&quot;Condition: #{expr.to_s}\n&quot;</span> <span class="ruby-operator">+</span>
1467
+ 536: <span class="ruby-node">&quot;Result: #{expr.to_s(query)}&quot;</span>)
1468
+ 537: <span class="ruby-keyword kw">end</span>
1469
+ 538: <span class="ruby-keyword kw">end</span>
1470
+ 539: <span class="ruby-keyword kw">end</span>
1471
+ 540: <span class="ruby-keyword kw">end</span>
1472
+ 541: <span class="ruby-keyword kw">end</span></pre>
1473
+ </div>
1474
+
1475
+ </div>
1476
+
1477
+
1478
+
1479
+
1480
+ </div>
1481
+
1482
+
1483
+ <div id="container--method" class="method-detail ">
1484
+ <a name="method-i-container%3F"></a>
1485
+
1486
+ <div class="method-heading">
1487
+
1488
+ <span class="method-name">container?</span><span
1489
+ class="method-args">()</span>
1490
+ <span class="method-click-advice">click to toggle source</span>
1491
+
1492
+ </div>
1493
+
1494
+ <div class="method-description">
1495
+
1496
+ <p>
1497
+ Return true if the node has children.
1498
+ </p>
1499
+
1500
+
1501
+
1502
+ <div class="method-source-code"
1503
+ id="container--source">
1504
+ <pre>
1505
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 357</span>
1506
+ 357: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">container?</span>
1507
+ 358: <span class="ruby-operator">!</span><span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@adoptees</span>.<span class="ruby-identifier">empty?</span>
1508
+ 359: <span class="ruby-keyword kw">end</span></pre>
1509
+ </div>
1510
+
1511
+ </div>
1512
+
1513
+
1514
+
1515
+
1516
+ </div>
1517
+
1518
+
1519
+ <div id="deep-clone-method" class="method-detail ">
1520
+ <a name="method-i-deep_clone"></a>
1521
+
1522
+ <div class="method-heading">
1523
+
1524
+ <span class="method-name">deep_clone</span><span
1525
+ class="method-args">()</span>
1526
+ <span class="method-click-advice">click to toggle source</span>
1527
+
1528
+ </div>
1529
+
1530
+ <div class="method-description">
1531
+
1532
+ <p>
1533
+ We only use <a
1534
+ href="PropertyTreeNode.html#method-i-deep_clone">deep_clone</a> for
1535
+ attributes, never for properties. Since attributes may reference properties
1536
+ these references should remain references.
1537
+ </p>
1538
+
1539
+
1540
+
1541
+ <div class="method-source-code"
1542
+ id="deep-clone-source">
1543
+ <pre>
1544
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 132</span>
1545
+ 132: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">deep_clone</span>
1546
+ 133: <span class="ruby-keyword kw">self</span>
1547
+ 134: <span class="ruby-keyword kw">end</span></pre>
1548
+ </div>
1549
+
1550
+ </div>
1551
+
1552
+
1553
+
1554
+
1555
+ </div>
1556
+
1557
+
1558
+ <div id="error-method" class="method-detail ">
1559
+ <a name="method-i-error"></a>
1560
+
1561
+ <div class="method-heading">
1562
+
1563
+ <span class="method-name">error</span><span
1564
+ class="method-args">(id, text)</span>
1565
+ <span class="method-click-advice">click to toggle source</span>
1566
+
1567
+ </div>
1568
+
1569
+ <div class="method-description">
1570
+
1571
+
1572
+
1573
+
1574
+
1575
+ <div class="method-source-code"
1576
+ id="error-source">
1577
+ <pre>
1578
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 643</span>
1579
+ 643: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>)
1580
+ 644: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-keyword kw">nil</span>)
1581
+ 645: <span class="ruby-keyword kw">end</span></pre>
1582
+ </div>
1583
+
1584
+ </div>
1585
+
1586
+
1587
+
1588
+
1589
+ </div>
1590
+
1591
+
1592
+ <div id="full-d-method" class="method-detail ">
1593
+ <a name="method-i-fullId"></a>
1594
+
1595
+ <div class="method-heading">
1596
+
1597
+ <span class="method-name">fullId</span><span
1598
+ class="method-args">()</span>
1599
+ <span class="method-click-advice">click to toggle source</span>
1600
+
1601
+ </div>
1602
+
1603
+ <div class="method-description">
1604
+
1605
+ <p>
1606
+ Return the full id of this node. For <a
1607
+ href="PropertySet.html">PropertySet</a> objects with a flat namespace, this
1608
+ is just the ID. Otherwise, the full ID is composed of all IDs from the root
1609
+ node to this node, separating the IDs by a dot.
1610
+ </p>
1611
+
1612
+
1613
+
1614
+ <div class="method-source-code"
1615
+ id="full-d-source">
1616
+ <pre>
1617
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 281</span>
1618
+ 281: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">fullId</span>
1619
+ 282: <span class="ruby-identifier">res</span> = <span class="ruby-ivar">@id</span>
1620
+ 283: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">flatNamespace</span>
1621
+ 284: <span class="ruby-identifier">t</span> = <span class="ruby-keyword kw">self</span>
1622
+ 285: <span class="ruby-keyword kw">until</span> (<span class="ruby-identifier">t</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">parent</span>).<span class="ruby-identifier">nil?</span>
1623
+ 286: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">id</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;.&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">res</span>
1624
+ 287: <span class="ruby-keyword kw">end</span>
1625
+ 288: <span class="ruby-keyword kw">end</span>
1626
+ 289: <span class="ruby-identifier">res</span>
1627
+ 290: <span class="ruby-keyword kw">end</span></pre>
1628
+ </div>
1629
+
1630
+ </div>
1631
+
1632
+
1633
+
1634
+
1635
+ </div>
1636
+
1637
+
1638
+ <div id="get-method" class="method-detail ">
1639
+ <a name="method-i-get"></a>
1640
+
1641
+ <div class="method-heading">
1642
+
1643
+ <span class="method-name">get</span><span
1644
+ class="method-args">(attributeId)</span>
1645
+ <span class="method-click-advice">click to toggle source</span>
1646
+
1647
+ </div>
1648
+
1649
+ <div class="method-description">
1650
+
1651
+ <p>
1652
+ Return the value of the non-scenario-specific attribute with ID
1653
+ <em>attributeId</em>. This method works for built-in attributes as well. In
1654
+ case the attribute does not exist, an exception is raised.
1655
+ </p>
1656
+
1657
+
1658
+
1659
+ <div class="method-source-code"
1660
+ id="get-source">
1661
+ <pre>
1662
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 388</span>
1663
+ 388: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">attributeId</span>)
1664
+ 389: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">get</span>
1665
+ 390: <span class="ruby-keyword kw">end</span></pre>
1666
+ </div>
1667
+
1668
+ </div>
1669
+
1670
+
1671
+
1672
+
1673
+ </div>
1674
+
1675
+
1676
+ <div id="get-ttribute-method" class="method-detail ">
1677
+ <a name="method-i-getAttribute"></a>
1678
+
1679
+ <div class="method-heading">
1680
+
1681
+ <span class="method-name">getAttribute</span><span
1682
+ class="method-args">(attributeId, scenarioIdx = nil)</span>
1683
+ <span class="method-click-advice">click to toggle source</span>
1684
+
1685
+ </div>
1686
+
1687
+ <div class="method-description">
1688
+
1689
+ <p>
1690
+ Return the value of the attribute with ID <em>attributeId</em>. This method
1691
+ works for built-in attributes as well. In case this is a scenario-specific
1692
+ attribute, the scenario index needs to be provided by <em>scenarioIdx</em>,
1693
+ otherwise it must be nil. In case the attribute does not exist, an
1694
+ exception is raised.
1695
+ </p>
1696
+
1697
+
1698
+
1699
+ <div class="method-source-code"
1700
+ id="get-ttribute-source">
1701
+ <pre>
1702
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 397</span>
1703
+ 397: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getAttribute</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
1704
+ 398: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
1705
+ 399: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>]
1706
+ 400: <span class="ruby-keyword kw">else</span>
1707
+ 401: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>]
1708
+ 402: <span class="ruby-keyword kw">end</span>
1709
+ 403: <span class="ruby-keyword kw">end</span></pre>
1710
+ </div>
1711
+
1712
+ </div>
1713
+
1714
+
1715
+
1716
+
1717
+ </div>
1718
+
1719
+
1720
+ <div id="get-ndicies-method" class="method-detail ">
1721
+ <a name="method-i-getBSIndicies"></a>
1722
+
1723
+ <div class="method-heading">
1724
+
1725
+ <span class="method-name">getBSIndicies</span><span
1726
+ class="method-args">()</span>
1727
+ <span class="method-click-advice">click to toggle source</span>
1728
+
1729
+ </div>
1730
+
1731
+ <div class="method-description">
1732
+
1733
+ <p>
1734
+ Return the hierarchical index of this node. In project management lingo
1735
+ this is called the Breakdown Structure Index (BSI). The result is an Array
1736
+ with an index for each level from the root to this node.
1737
+ </p>
1738
+
1739
+
1740
+
1741
+ <div class="method-source-code"
1742
+ id="get-ndicies-source">
1743
+ <pre>
1744
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 309</span>
1745
+ 309: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getBSIndicies</span>
1746
+ 310: <span class="ruby-identifier">idcs</span> = []
1747
+ 311: <span class="ruby-identifier">p</span> = <span class="ruby-keyword kw">self</span>
1748
+ 312: <span class="ruby-keyword kw">begin</span>
1749
+ 313: <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
1750
+ 314: <span class="ruby-identifier">idcs</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">parent</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">p</span>) <span class="ruby-operator">:</span>
1751
+ 315: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">p</span>))
1752
+ 316: <span class="ruby-identifier">p</span> = <span class="ruby-identifier">parent</span>
1753
+ 317: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">p</span>
1754
+ 318: <span class="ruby-identifier">idcs</span>
1755
+ 319: <span class="ruby-keyword kw">end</span></pre>
1756
+ </div>
1757
+
1758
+ </div>
1759
+
1760
+
1761
+
1762
+
1763
+ </div>
1764
+
1765
+
1766
+ <div id="get-ndicies-method" class="method-detail ">
1767
+ <a name="method-i-getIndicies"></a>
1768
+
1769
+ <div class="method-heading">
1770
+
1771
+ <span class="method-name">getIndicies</span><span
1772
+ class="method-args">()</span>
1773
+ <span class="method-click-advice">click to toggle source</span>
1774
+
1775
+ </div>
1776
+
1777
+ <div class="method-description">
1778
+
1779
+ <p>
1780
+ Return the &#8216;index&#8217; attributes of this property, prefixed by the
1781
+ &#8216;index&#8217; attributes of all its parents. The result is an Array
1782
+ of Fixnums.
1783
+ </p>
1784
+
1785
+
1786
+
1787
+ <div class="method-source-code"
1788
+ id="get-ndicies-source">
1789
+ <pre>
1790
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 323</span>
1791
+ 323: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">getIndicies</span>
1792
+ 324: <span class="ruby-identifier">idcs</span> = []
1793
+ 325: <span class="ruby-identifier">p</span> = <span class="ruby-keyword kw">self</span>
1794
+ 326: <span class="ruby-keyword kw">begin</span>
1795
+ 327: <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">p</span>.<span class="ruby-identifier">parent</span>
1796
+ 328: <span class="ruby-identifier">idcs</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">p</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value str">'index'</span>))
1797
+ 329: <span class="ruby-identifier">p</span> = <span class="ruby-identifier">parent</span>
1798
+ 330: <span class="ruby-keyword kw">end</span> <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">p</span>
1799
+ 331: <span class="ruby-identifier">idcs</span>
1800
+ 332: <span class="ruby-keyword kw">end</span></pre>
1801
+ </div>
1802
+
1803
+ </div>
1804
+
1805
+
1806
+
1807
+
1808
+ </div>
1809
+
1810
+
1811
+ <div id="info-method" class="method-detail ">
1812
+ <a name="method-i-info"></a>
1813
+
1814
+ <div class="method-heading">
1815
+
1816
+ <span class="method-name">info</span><span
1817
+ class="method-args">(id, text)</span>
1818
+ <span class="method-click-advice">click to toggle source</span>
1819
+
1820
+ </div>
1821
+
1822
+ <div class="method-description">
1823
+
1824
+
1825
+
1826
+
1827
+
1828
+ <div class="method-source-code"
1829
+ id="info-source">
1830
+ <pre>
1831
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 651</span>
1832
+ 651: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">info</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>)
1833
+ 652: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">info</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-keyword kw">nil</span>)
1834
+ 653: <span class="ruby-keyword kw">end</span></pre>
1835
+ </div>
1836
+
1837
+ </div>
1838
+
1839
+
1840
+
1841
+
1842
+ </div>
1843
+
1844
+
1845
+ <div id="inherit-ttributes-method" class="method-detail ">
1846
+ <a name="method-i-inheritAttributes"></a>
1847
+
1848
+ <div class="method-heading">
1849
+
1850
+ <span class="method-name">inheritAttributes</span><span
1851
+ class="method-args">()</span>
1852
+ <span class="method-click-advice">click to toggle source</span>
1853
+
1854
+ </div>
1855
+
1856
+ <div class="method-description">
1857
+
1858
+ <p>
1859
+ Inherit values for the attributes from the parent node or the <a
1860
+ href="Project.html">Project</a>.
1861
+ </p>
1862
+
1863
+
1864
+
1865
+ <div class="method-source-code"
1866
+ id="inherit-ttributes-source">
1867
+ <pre>
1868
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 209</span>
1869
+ 209: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inheritAttributes</span>
1870
+ 210: <span class="ruby-comment cmt"># Inherit non-scenario-specific values</span>
1871
+ 211: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">eachAttributeDefinition</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attrDef</span><span class="ruby-operator">|</span>
1872
+ 212: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">scenarioSpecific</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">inheritedFromParent</span>
1873
+ 213:
1874
+ 214: <span class="ruby-identifier">aId</span> = <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>
1875
+ 215: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>
1876
+ 216: <span class="ruby-comment cmt"># Inherit values from parent property</span>
1877
+ 217: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">provided</span>(<span class="ruby-identifier">aId</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">aId</span>)
1878
+ 218: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">aId</span>].<span class="ruby-identifier">inherit</span>(<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">aId</span>))
1879
+ 219: <span class="ruby-keyword kw">end</span>
1880
+ 220: <span class="ruby-keyword kw">else</span>
1881
+ 221: <span class="ruby-comment cmt"># Inherit selected values from project if top-level property</span>
1882
+ 222: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">inheritedFromProject</span>
1883
+ 223: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>[<span class="ruby-identifier">aId</span>]
1884
+ 224: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">aId</span>].<span class="ruby-identifier">inherit</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-identifier">aId</span>])
1885
+ 225: <span class="ruby-keyword kw">end</span>
1886
+ 226: <span class="ruby-keyword kw">end</span>
1887
+ 227: <span class="ruby-keyword kw">end</span>
1888
+ 228: <span class="ruby-keyword kw">end</span>
1889
+ 229:
1890
+ 230: <span class="ruby-comment cmt"># Inherit scenario-specific values</span>
1891
+ 231: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">eachAttributeDefinition</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">attrDef</span><span class="ruby-operator">|</span>
1892
+ 232: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">scenarioSpecific</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">inheritedFromParent</span>
1893
+ 233:
1894
+ 234: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">scenarioCount</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">scenarioIdx</span><span class="ruby-operator">|</span>
1895
+ 235: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>
1896
+ 236: <span class="ruby-comment cmt"># Inherit scenario specific values from parent property</span>
1897
+ 237: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">provided</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>) <span class="ruby-operator">||</span>
1898
+ 238: <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>)
1899
+ 239: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>].<span class="ruby-identifier">inherit</span>(
1900
+ 240: <span class="ruby-identifier">parent</span>[<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>, <span class="ruby-identifier">scenarioIdx</span>])
1901
+ 241: <span class="ruby-keyword kw">end</span>
1902
+ 242: <span class="ruby-keyword kw">else</span>
1903
+ 243: <span class="ruby-comment cmt"># Inherit selected values from project if top-level property</span>
1904
+ 244: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">inheritedFromProject</span>
1905
+ 245: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@project</span>[<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>] <span class="ruby-operator">&amp;&amp;</span>
1906
+ 246: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>]
1907
+ 247: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>].<span class="ruby-identifier">inherit</span>(
1908
+ 248: <span class="ruby-ivar">@project</span>[<span class="ruby-identifier">attrDef</span>.<span class="ruby-identifier">id</span>])
1909
+ 249: <span class="ruby-keyword kw">end</span>
1910
+ 250: <span class="ruby-keyword kw">end</span>
1911
+ 251: <span class="ruby-keyword kw">end</span>
1912
+ 252: <span class="ruby-keyword kw">end</span>
1913
+ 253: <span class="ruby-keyword kw">end</span>
1914
+ 254: <span class="ruby-keyword kw">end</span></pre>
1915
+ </div>
1916
+
1917
+ </div>
1918
+
1919
+
1920
+
1921
+
1922
+ </div>
1923
+
1924
+
1925
+ <div id="inherited-method" class="method-detail ">
1926
+ <a name="method-i-inherited"></a>
1927
+
1928
+ <div class="method-heading">
1929
+
1930
+ <span class="method-name">inherited</span><span
1931
+ class="method-args">(attributeId, scenarioIdx = nil)</span>
1932
+ <span class="method-click-advice">click to toggle source</span>
1933
+
1934
+ </div>
1935
+
1936
+ <div class="method-description">
1937
+
1938
+ <p>
1939
+ Returns true if the value of the attribute <em>attributeId</em> (in
1940
+ scenario <em>scenarioIdx</em>) has been inherited from a parent node or
1941
+ scenario.
1942
+ </p>
1943
+
1944
+
1945
+
1946
+ <div class="method-source-code"
1947
+ id="inherited-source">
1948
+ <pre>
1949
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 472</span>
1950
+ 472: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">inherited</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
1951
+ 473: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
1952
+ 474: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attributeId</span>)
1953
+ 475: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
1954
+ 476: <span class="ruby-keyword kw">end</span>
1955
+ 477: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
1956
+ 478: <span class="ruby-keyword kw">else</span>
1957
+ 479: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attributeId</span>)
1958
+ 480: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
1959
+ 481: <span class="ruby-keyword kw">end</span>
1960
+ 482: <span class="ruby-keyword kw">end</span></pre>
1961
+ </div>
1962
+
1963
+ </div>
1964
+
1965
+
1966
+
1967
+
1968
+ </div>
1969
+
1970
+
1971
+ <div id="is-hild-f--method" class="method-detail ">
1972
+ <a name="method-i-isChildOf%3F"></a>
1973
+
1974
+ <div class="method-heading">
1975
+
1976
+ <span class="method-name">isChildOf?</span><span
1977
+ class="method-args">(ancestor)</span>
1978
+ <span class="method-click-advice">click to toggle source</span>
1979
+
1980
+ </div>
1981
+
1982
+ <div class="method-description">
1983
+
1984
+ <p>
1985
+ Find out if this property is a direct or indirect child of
1986
+ <em>ancestor</em>.
1987
+ </p>
1988
+
1989
+
1990
+
1991
+ <div class="method-source-code"
1992
+ id="is-hild-f--source">
1993
+ <pre>
1994
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 343</span>
1995
+ 343: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">isChildOf?</span>(<span class="ruby-identifier">ancestor</span>)
1996
+ 344: <span class="ruby-identifier">parent</span> = <span class="ruby-keyword kw">self</span>
1997
+ 345: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">parent</span> = <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">parent</span>
1998
+ 346: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">true</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">parent</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">ancestor</span>)
1999
+ 347: <span class="ruby-keyword kw">end</span>
2000
+ 348: <span class="ruby-keyword kw">false</span>
2001
+ 349: <span class="ruby-keyword kw">end</span></pre>
2002
+ </div>
2003
+
2004
+ </div>
2005
+
2006
+
2007
+
2008
+
2009
+ </div>
2010
+
2011
+
2012
+ <div id="kids-method" class="method-detail ">
2013
+ <a name="method-i-kids"></a>
2014
+
2015
+ <div class="method-heading">
2016
+
2017
+ <span class="method-name">kids</span><span
2018
+ class="method-args">()</span>
2019
+ <span class="method-click-advice">click to toggle source</span>
2020
+
2021
+ </div>
2022
+
2023
+ <div class="method-description">
2024
+
2025
+ <p>
2026
+ Return a list of all children including adopted kids.
2027
+ </p>
2028
+
2029
+
2030
+
2031
+ <div class="method-source-code"
2032
+ id="kids-source">
2033
+ <pre>
2034
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 182</span>
2035
+ 182: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">kids</span>
2036
+ 183: <span class="ruby-ivar">@children</span> <span class="ruby-operator">+</span> <span class="ruby-ivar">@adoptees</span>
2037
+ 184: <span class="ruby-keyword kw">end</span></pre>
2038
+ </div>
2039
+
2040
+ </div>
2041
+
2042
+
2043
+
2044
+
2045
+ </div>
2046
+
2047
+
2048
+ <div id="leaf--method" class="method-detail ">
2049
+ <a name="method-i-leaf%3F"></a>
2050
+
2051
+ <div class="method-heading">
2052
+
2053
+ <span class="method-name">leaf?</span><span
2054
+ class="method-args">()</span>
2055
+ <span class="method-click-advice">click to toggle source</span>
2056
+
2057
+ </div>
2058
+
2059
+ <div class="method-description">
2060
+
2061
+ <p>
2062
+ Return true if the node is a leaf node (has no children).
2063
+ </p>
2064
+
2065
+
2066
+
2067
+ <div class="method-source-code"
2068
+ id="leaf--source">
2069
+ <pre>
2070
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 352</span>
2071
+ 352: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">leaf?</span>
2072
+ 353: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@adoptees</span>.<span class="ruby-identifier">empty?</span>
2073
+ 354: <span class="ruby-keyword kw">end</span></pre>
2074
+ </div>
2075
+
2076
+ </div>
2077
+
2078
+
2079
+
2080
+
2081
+ </div>
2082
+
2083
+
2084
+ <div id="level-method" class="method-detail ">
2085
+ <a name="method-i-level"></a>
2086
+
2087
+ <div class="method-heading">
2088
+
2089
+ <span class="method-name">level</span><span
2090
+ class="method-args">()</span>
2091
+ <span class="method-click-advice">click to toggle source</span>
2092
+
2093
+ </div>
2094
+
2095
+ <div class="method-description">
2096
+
2097
+ <p>
2098
+ Returns the level that this property is on. Top-level properties return 0,
2099
+ their children 1 and so on. This value is cached internally, so it does not
2100
+ have to be calculated each time the function is called.
2101
+ </p>
2102
+
2103
+
2104
+
2105
+ <div class="method-source-code"
2106
+ id="level-source">
2107
+ <pre>
2108
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 295</span>
2109
+ 295: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">level</span>
2110
+ 296: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@level</span> <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@level</span> <span class="ruby-operator">&gt;=</span> <span class="ruby-value">0</span>
2111
+ 297:
2112
+ 298: <span class="ruby-identifier">t</span> = <span class="ruby-keyword kw">self</span>
2113
+ 299: <span class="ruby-ivar">@level</span> = <span class="ruby-value">0</span>
2114
+ 300: <span class="ruby-keyword kw">until</span> (<span class="ruby-identifier">t</span> = <span class="ruby-identifier">t</span>.<span class="ruby-identifier">parent</span>).<span class="ruby-identifier">nil?</span>
2115
+ 301: <span class="ruby-ivar">@level</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
2116
+ 302: <span class="ruby-keyword kw">end</span>
2117
+ 303: <span class="ruby-ivar">@level</span>
2118
+ 304: <span class="ruby-keyword kw">end</span></pre>
2119
+ </div>
2120
+
2121
+ </div>
2122
+
2123
+
2124
+
2125
+
2126
+ </div>
2127
+
2128
+
2129
+ <div id="level-eq-o-method" class="method-detail ">
2130
+ <a name="method-i-levelSeqNo"></a>
2131
+
2132
+ <div class="method-heading">
2133
+
2134
+ <span class="method-name">levelSeqNo</span><span
2135
+ class="method-args">(node)</span>
2136
+ <span class="method-click-advice">click to toggle source</span>
2137
+
2138
+ </div>
2139
+
2140
+ <div class="method-description">
2141
+
2142
+ <p>
2143
+ Return the index of the child <em>node</em>.
2144
+ </p>
2145
+
2146
+
2147
+
2148
+ <div class="method-source-code"
2149
+ id="level-eq-o-source">
2150
+ <pre>
2151
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 204</span>
2152
+ 204: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">levelSeqNo</span>(<span class="ruby-identifier">node</span>)
2153
+ 205: <span class="ruby-ivar">@children</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">node</span>) <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
2154
+ 206: <span class="ruby-keyword kw">end</span></pre>
2155
+ </div>
2156
+
2157
+ </div>
2158
+
2159
+
2160
+
2161
+
2162
+ </div>
2163
+
2164
+
2165
+ <div id="method-missing-method" class="method-detail ">
2166
+ <a name="method-i-method_missing"></a>
2167
+
2168
+ <div class="method-heading">
2169
+
2170
+ <span class="method-name">method_missing</span><span
2171
+ class="method-args">(func, scenarioIdx, *args)</span>
2172
+ <span class="method-click-advice">click to toggle source</span>
2173
+
2174
+ </div>
2175
+
2176
+ <div class="method-description">
2177
+
2178
+ <p>
2179
+ Many <a href="PropertyTreeNode.html">PropertyTreeNode</a> functions are
2180
+ scenario specific. These functions are provided by the class *<a
2181
+ href="Scenario.html">Scenario</a> classes. In case we can&#8217;t find a
2182
+ function called for the base class we try to find it in corresponding *<a
2183
+ href="Scenario.html">Scenario</a> class.
2184
+ </p>
2185
+
2186
+
2187
+
2188
+ <div class="method-source-code"
2189
+ id="method-missing-source">
2190
+ <pre>
2191
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 639</span>
2192
+ 639: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">method_missing</span>(<span class="ruby-identifier">func</span>, <span class="ruby-identifier">scenarioIdx</span>, *<span class="ruby-identifier">args</span>)
2193
+ 640: <span class="ruby-ivar">@data</span>[<span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">method</span>(<span class="ruby-identifier">func</span>).<span class="ruby-identifier">call</span>(*<span class="ruby-identifier">args</span>)
2194
+ 641: <span class="ruby-keyword kw">end</span></pre>
2195
+ </div>
2196
+
2197
+ </div>
2198
+
2199
+
2200
+
2201
+
2202
+ </div>
2203
+
2204
+
2205
+ <div id="modified--method" class="method-detail ">
2206
+ <a name="method-i-modified%3F"></a>
2207
+
2208
+ <div class="method-heading">
2209
+
2210
+ <span class="method-name">modified?</span><span
2211
+ class="method-args">(attributeId, scenarioIdx = nil)</span>
2212
+ <span class="method-click-advice">click to toggle source</span>
2213
+
2214
+ </div>
2215
+
2216
+ <div class="method-description">
2217
+
2218
+
2219
+
2220
+
2221
+
2222
+ <div class="method-source-code"
2223
+ id="modified--source">
2224
+ <pre>
2225
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 484</span>
2226
+ 484: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">modified?</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
2227
+ 485: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
2228
+ 486: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attributeId</span>)
2229
+ 487: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2230
+ 488: <span class="ruby-keyword kw">end</span>
2231
+ 489:
2232
+ 490: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span> <span class="ruby-operator">||</span>
2233
+ 491: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
2234
+ 492: <span class="ruby-keyword kw">else</span>
2235
+ 493: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attributeId</span>)
2236
+ 494: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span> <span class="ruby-operator">||</span> <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">inherited</span>
2237
+ 495: <span class="ruby-keyword kw">end</span>
2238
+ 496: <span class="ruby-keyword kw">end</span></pre>
2239
+ </div>
2240
+
2241
+ </div>
2242
+
2243
+
2244
+
2245
+
2246
+ </div>
2247
+
2248
+
2249
+ <div id="parents-method" class="method-detail ">
2250
+ <a name="method-i-parents"></a>
2251
+
2252
+ <div class="method-heading">
2253
+
2254
+ <span class="method-name">parents</span><span
2255
+ class="method-args">()</span>
2256
+ <span class="method-click-advice">click to toggle source</span>
2257
+
2258
+ </div>
2259
+
2260
+ <div class="method-description">
2261
+
2262
+ <p>
2263
+ Return a list of all parents including step parents.
2264
+ </p>
2265
+
2266
+
2267
+
2268
+ <div class="method-source-code"
2269
+ id="parents-source">
2270
+ <pre>
2271
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 187</span>
2272
+ 187: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parents</span>
2273
+ 188: (<span class="ruby-ivar">@parent</span> <span class="ruby-operator">?</span> [ <span class="ruby-ivar">@parent</span> ] <span class="ruby-operator">:</span> []) <span class="ruby-operator">+</span> <span class="ruby-ivar">@stepParents</span>
2274
+ 189: <span class="ruby-keyword kw">end</span></pre>
2275
+ </div>
2276
+
2277
+ </div>
2278
+
2279
+
2280
+
2281
+
2282
+ </div>
2283
+
2284
+
2285
+ <div id="provided-method" class="method-detail ">
2286
+ <a name="method-i-provided"></a>
2287
+
2288
+ <div class="method-heading">
2289
+
2290
+ <span class="method-name">provided</span><span
2291
+ class="method-args">(attributeId, scenarioIdx = nil)</span>
2292
+ <span class="method-click-advice">click to toggle source</span>
2293
+
2294
+ </div>
2295
+
2296
+ <div class="method-description">
2297
+
2298
+ <p>
2299
+ Returns true if the value of the attribute <em>attributeId</em> (in
2300
+ scenario <em>scenarioIdx</em>) has been provided by the user.
2301
+ </p>
2302
+
2303
+
2304
+
2305
+ <div class="method-source-code"
2306
+ id="provided-source">
2307
+ <pre>
2308
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 458</span>
2309
+ 458: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">provided</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-keyword kw">nil</span>)
2310
+ 459: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scenarioIdx</span>
2311
+ 460: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>].<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attributeId</span>)
2312
+ 461: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span>
2313
+ 462: <span class="ruby-keyword kw">end</span>
2314
+ 463: <span class="ruby-ivar">@scenarioAttributes</span>[<span class="ruby-identifier">scenarioIdx</span>][<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span>
2315
+ 464: <span class="ruby-keyword kw">else</span>
2316
+ 465: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">false</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@attributes</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">attributeId</span>)
2317
+ 466: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">provided</span>
2318
+ 467: <span class="ruby-keyword kw">end</span>
2319
+ 468: <span class="ruby-keyword kw">end</span></pre>
2320
+ </div>
2321
+
2322
+ </div>
2323
+
2324
+
2325
+
2326
+
2327
+ </div>
2328
+
2329
+
2330
+ <div id="query-alert-method" class="method-detail ">
2331
+ <a name="method-i-query_alert"></a>
2332
+
2333
+ <div class="method-heading">
2334
+
2335
+ <span class="method-name">query_alert</span><span
2336
+ class="method-args">(query)</span>
2337
+ <span class="method-click-advice">click to toggle source</span>
2338
+
2339
+ </div>
2340
+
2341
+ <div class="method-description">
2342
+
2343
+
2344
+
2345
+
2346
+
2347
+ <div class="method-source-code"
2348
+ id="query-alert-source">
2349
+ <pre>
2350
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 543</span>
2351
+ 543: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_alert</span>(<span class="ruby-identifier">query</span>)
2352
+ 544: <span class="ruby-identifier">journal</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>]
2353
+ 545: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">sortable</span> = <span class="ruby-identifier">query</span>.<span class="ruby-identifier">numerical</span> = <span class="ruby-identifier">alert</span> =
2354
+ 546: <span class="ruby-identifier">journal</span>.<span class="ruby-identifier">alertLevel</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">hideJournalEntry</span>)
2355
+ 547: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">string</span> = <span class="ruby-identifier">colorName</span> = <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">alertLevelName</span>(<span class="ruby-identifier">alert</span>)
2356
+ 548: <span class="ruby-identifier">rText</span> = <span class="ruby-node">&quot;&lt;fcol:#{colorName.downcase}&gt;#{colorName}&lt;/fcol&gt;&quot;</span>
2357
+ 549: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">rti</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rText</span>, <span class="ruby-constant">RTFHandlers</span>.<span class="ruby-identifier">create</span>(<span class="ruby-ivar">@project</span>),
2358
+ 550: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>).
2359
+ 551: <span class="ruby-identifier">generateIntermediateFormat</span>)
2360
+ 552: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ptn_journal'</span>,
2361
+ 553: <span class="ruby-value str">&quot;Syntax error in journal message&quot;</span>)
2362
+ 554: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
2363
+ 555: <span class="ruby-keyword kw">end</span>
2364
+ 556: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">blockMode</span> = <span class="ruby-keyword kw">false</span>
2365
+ 557: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">rti</span>
2366
+ 558: <span class="ruby-keyword kw">end</span></pre>
2367
+ </div>
2368
+
2369
+ </div>
2370
+
2371
+
2372
+
2373
+
2374
+ </div>
2375
+
2376
+
2377
+ <div id="query-alertmessages-method" class="method-detail ">
2378
+ <a name="method-i-query_alertmessages"></a>
2379
+
2380
+ <div class="method-heading">
2381
+
2382
+ <span class="method-name">query_alertmessages</span><span
2383
+ class="method-args">(query)</span>
2384
+ <span class="method-click-advice">click to toggle source</span>
2385
+
2386
+ </div>
2387
+
2388
+ <div class="method-description">
2389
+
2390
+
2391
+
2392
+
2393
+
2394
+ <div class="method-source-code"
2395
+ id="query-alertmessages-source">
2396
+ <pre>
2397
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 560</span>
2398
+ 560: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_alertmessages</span>(<span class="ruby-identifier">query</span>)
2399
+ 561: <span class="ruby-identifier">journalMessages</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">alertEntries</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-value">1</span>,
2400
+ 562: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>,
2401
+ 563: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">hideJournalEntry</span>),
2402
+ 564: <span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">true</span>)
2403
+ 565: <span class="ruby-keyword kw">end</span></pre>
2404
+ </div>
2405
+
2406
+ </div>
2407
+
2408
+
2409
+
2410
+
2411
+ </div>
2412
+
2413
+
2414
+ <div id="query-alertsummaries-method" class="method-detail ">
2415
+ <a name="method-i-query_alertsummaries"></a>
2416
+
2417
+ <div class="method-heading">
2418
+
2419
+ <span class="method-name">query_alertsummaries</span><span
2420
+ class="method-args">(query)</span>
2421
+ <span class="method-click-advice">click to toggle source</span>
2422
+
2423
+ </div>
2424
+
2425
+ <div class="method-description">
2426
+
2427
+
2428
+
2429
+
2430
+
2431
+ <div class="method-source-code"
2432
+ id="query-alertsummaries-source">
2433
+ <pre>
2434
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 567</span>
2435
+ 567: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_alertsummaries</span>(<span class="ruby-identifier">query</span>)
2436
+ 568: <span class="ruby-identifier">journalMessages</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">alertEntries</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-value">1</span>,
2437
+ 569: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>,
2438
+ 570: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">hideJournalEntry</span>),
2439
+ 571: <span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">false</span>)
2440
+ 572: <span class="ruby-keyword kw">end</span></pre>
2441
+ </div>
2442
+
2443
+ </div>
2444
+
2445
+
2446
+
2447
+
2448
+ </div>
2449
+
2450
+
2451
+ <div id="query-alerttrend-method" class="method-detail ">
2452
+ <a name="method-i-query_alerttrend"></a>
2453
+
2454
+ <div class="method-heading">
2455
+
2456
+ <span class="method-name">query_alerttrend</span><span
2457
+ class="method-args">(query)</span>
2458
+ <span class="method-click-advice">click to toggle source</span>
2459
+
2460
+ </div>
2461
+
2462
+ <div class="method-description">
2463
+
2464
+
2465
+
2466
+
2467
+
2468
+ <div class="method-source-code"
2469
+ id="query-alerttrend-source">
2470
+ <pre>
2471
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 588</span>
2472
+ 588: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_alerttrend</span>(<span class="ruby-identifier">query</span>)
2473
+ 589: <span class="ruby-identifier">journal</span> = <span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>]
2474
+ 590: <span class="ruby-identifier">startAlert</span> = <span class="ruby-identifier">journal</span>.<span class="ruby-identifier">alertLevel</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">hideJournalEntry</span>)
2475
+ 591: <span class="ruby-identifier">endAlert</span> = <span class="ruby-identifier">journal</span>.<span class="ruby-identifier">alertLevel</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-identifier">query</span>.<span class="ruby-identifier">hideJournalEntry</span>)
2476
+ 592: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">startAlert</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">endAlert</span>
2477
+ 593: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">sortable</span> = <span class="ruby-value">0</span>
2478
+ 594: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">string</span> = <span class="ruby-value str">'Up'</span>
2479
+ 595: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">startAlert</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">endAlert</span>
2480
+ 596: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">sortable</span> = <span class="ruby-value">2</span>
2481
+ 597: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">string</span> = <span class="ruby-value str">'Down'</span>
2482
+ 598: <span class="ruby-keyword kw">else</span>
2483
+ 599: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">sortable</span> = <span class="ruby-value">1</span>
2484
+ 600: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">string</span> = <span class="ruby-value str">'Flat'</span>
2485
+ 601: <span class="ruby-keyword kw">end</span>
2486
+ 602: <span class="ruby-keyword kw">end</span></pre>
2487
+ </div>
2488
+
2489
+ </div>
2490
+
2491
+
2492
+
2493
+
2494
+ </div>
2495
+
2496
+
2497
+ <div id="query-journalmessages-method" class="method-detail ">
2498
+ <a name="method-i-query_journalmessages"></a>
2499
+
2500
+ <div class="method-heading">
2501
+
2502
+ <span class="method-name">query_journalmessages</span><span
2503
+ class="method-args">(query)</span>
2504
+ <span class="method-click-advice">click to toggle source</span>
2505
+
2506
+ </div>
2507
+
2508
+ <div class="method-description">
2509
+
2510
+
2511
+
2512
+
2513
+
2514
+ <div class="method-source-code"
2515
+ id="query-journalmessages-source">
2516
+ <pre>
2517
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 574</span>
2518
+ 574: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_journalmessages</span>(<span class="ruby-identifier">query</span>)
2519
+ 575: <span class="ruby-identifier">journalMessages</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">currentEntries</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-value">0</span>,
2520
+ 576: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>,
2521
+ 577: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">hideJournalEntry</span>),
2522
+ 578: <span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">true</span>)
2523
+ 579: <span class="ruby-keyword kw">end</span></pre>
2524
+ </div>
2525
+
2526
+ </div>
2527
+
2528
+
2529
+
2530
+
2531
+ </div>
2532
+
2533
+
2534
+ <div id="query-journalsummaries-method" class="method-detail ">
2535
+ <a name="method-i-query_journalsummaries"></a>
2536
+
2537
+ <div class="method-heading">
2538
+
2539
+ <span class="method-name">query_journalsummaries</span><span
2540
+ class="method-args">(query)</span>
2541
+ <span class="method-click-advice">click to toggle source</span>
2542
+
2543
+ </div>
2544
+
2545
+ <div class="method-description">
2546
+
2547
+
2548
+
2549
+
2550
+
2551
+ <div class="method-source-code"
2552
+ id="query-journalsummaries-source">
2553
+ <pre>
2554
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 581</span>
2555
+ 581: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">query_journalsummaries</span>(<span class="ruby-identifier">query</span>)
2556
+ 582: <span class="ruby-identifier">journalMessages</span>(<span class="ruby-ivar">@project</span>[<span class="ruby-value str">'journal'</span>].<span class="ruby-identifier">currentEntries</span>(<span class="ruby-identifier">query</span>.<span class="ruby-identifier">end</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-value">0</span>,
2557
+ 583: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">start</span>,
2558
+ 584: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">hideJournalEntry</span>),
2559
+ 585: <span class="ruby-identifier">query</span>, <span class="ruby-keyword kw">false</span>)
2560
+ 586: <span class="ruby-keyword kw">end</span></pre>
2561
+ </div>
2562
+
2563
+ </div>
2564
+
2565
+
2566
+
2567
+
2568
+ </div>
2569
+
2570
+
2571
+ <div id="restore-ttributes-method" class="method-detail ">
2572
+ <a name="method-i-restoreAttributes"></a>
2573
+
2574
+ <div class="method-heading">
2575
+
2576
+ <span class="method-name">restoreAttributes</span><span
2577
+ class="method-args">(backup)</span>
2578
+ <span class="method-click-advice">click to toggle source</span>
2579
+
2580
+ </div>
2581
+
2582
+ <div class="method-description">
2583
+
2584
+ <p>
2585
+ Restore the attributes to a previously saved state. <em>backup</em> is an
2586
+ Array generated by backupAttributes().
2587
+ </p>
2588
+
2589
+
2590
+
2591
+ <div class="method-source-code"
2592
+ id="restore-ttributes-source">
2593
+ <pre>
2594
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 199</span>
2595
+ 199: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">restoreAttributes</span>(<span class="ruby-identifier">backup</span>)
2596
+ 200: <span class="ruby-ivar">@attributes</span>, <span class="ruby-ivar">@scenarioAttributes</span> = <span class="ruby-identifier">backup</span>
2597
+ 201: <span class="ruby-keyword kw">end</span></pre>
2598
+ </div>
2599
+
2600
+ </div>
2601
+
2602
+
2603
+
2604
+
2605
+ </div>
2606
+
2607
+
2608
+ <div id="root-method" class="method-detail ">
2609
+ <a name="method-i-root"></a>
2610
+
2611
+ <div class="method-heading">
2612
+
2613
+ <span class="method-name">root</span><span
2614
+ class="method-args">()</span>
2615
+ <span class="method-click-advice">click to toggle source</span>
2616
+
2617
+ </div>
2618
+
2619
+ <div class="method-description">
2620
+
2621
+ <p>
2622
+ Return the top-level node for this node.
2623
+ </p>
2624
+
2625
+
2626
+
2627
+ <div class="method-source-code"
2628
+ id="root-source">
2629
+ <pre>
2630
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 372</span>
2631
+ 372: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">root</span>
2632
+ 373: <span class="ruby-identifier">n</span> = <span class="ruby-keyword kw">self</span>
2633
+ 374: <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">n</span>.<span class="ruby-identifier">parent</span>
2634
+ 375: <span class="ruby-identifier">n</span> = <span class="ruby-identifier">n</span>.<span class="ruby-identifier">parent</span>
2635
+ 376: <span class="ruby-keyword kw">end</span>
2636
+ 377: <span class="ruby-identifier">n</span>
2637
+ 378: <span class="ruby-keyword kw">end</span></pre>
2638
+ </div>
2639
+
2640
+ </div>
2641
+
2642
+
2643
+
2644
+
2645
+ </div>
2646
+
2647
+
2648
+ <div id="set-method" class="method-detail ">
2649
+ <a name="method-i-set"></a>
2650
+
2651
+ <div class="method-heading">
2652
+
2653
+ <span class="method-name">set</span><span
2654
+ class="method-args">(attributeId, value)</span>
2655
+ <span class="method-click-advice">click to toggle source</span>
2656
+
2657
+ </div>
2658
+
2659
+ <div class="method-description">
2660
+
2661
+ <p>
2662
+ Set the non-scenario-specific attribute with ID <em>attributeId</em> to
2663
+ <em>value</em>. In case the attribute does not exist, an exception is
2664
+ raised.
2665
+ </p>
2666
+
2667
+
2668
+
2669
+ <div class="method-source-code"
2670
+ id="set-source">
2671
+ <pre>
2672
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 407</span>
2673
+ 407: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">set</span>(<span class="ruby-identifier">attributeId</span>, <span class="ruby-identifier">value</span>)
2674
+ 408: <span class="ruby-ivar">@attributes</span>[<span class="ruby-identifier">attributeId</span>].<span class="ruby-identifier">set</span>(<span class="ruby-identifier">value</span>)
2675
+ 409: <span class="ruby-keyword kw">end</span></pre>
2676
+ </div>
2677
+
2678
+ </div>
2679
+
2680
+
2681
+
2682
+
2683
+ </div>
2684
+
2685
+
2686
+ <div id="warning-method" class="method-detail ">
2687
+ <a name="method-i-warning"></a>
2688
+
2689
+ <div class="method-heading">
2690
+
2691
+ <span class="method-name">warning</span><span
2692
+ class="method-args">(id, text)</span>
2693
+ <span class="method-click-advice">click to toggle source</span>
2694
+
2695
+ </div>
2696
+
2697
+ <div class="method-description">
2698
+
2699
+
2700
+
2701
+
2702
+
2703
+ <div class="method-source-code"
2704
+ id="warning-source">
2705
+ <pre>
2706
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 647</span>
2707
+ 647: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>)
2708
+ 648: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-identifier">id</span>, <span class="ruby-identifier">text</span>, <span class="ruby-identifier">sourceFileInfo</span>, <span class="ruby-keyword kw">nil</span>, <span class="ruby-keyword kw">self</span>, <span class="ruby-keyword kw">nil</span>)
2709
+ 649: <span class="ruby-keyword kw">end</span></pre>
2710
+ </div>
2711
+
2712
+ </div>
2713
+
2714
+
2715
+
2716
+
2717
+ </div>
2718
+
2719
+
2720
+ </div>
2721
+
2722
+ <div id="private-instance-method-details" class="method-section section">
2723
+ <h3 class="section-header">Private Instance Methods</h3>
2724
+
2725
+
2726
+ <div id="indent-method" class="method-detail ">
2727
+ <a name="method-i-indent"></a>
2728
+
2729
+ <div class="method-heading">
2730
+
2731
+ <span class="method-name">indent</span><span
2732
+ class="method-args">(tag, str)</span>
2733
+ <span class="method-click-advice">click to toggle source</span>
2734
+
2735
+ </div>
2736
+
2737
+ <div class="method-description">
2738
+
2739
+
2740
+
2741
+
2742
+
2743
+ <div class="method-source-code"
2744
+ id="indent-source">
2745
+ <pre>
2746
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 697</span>
2747
+ 697: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indent</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">str</span>)
2748
+ 698: <span class="ruby-identifier">tag</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">str</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/\n/</span>, <span class="ruby-node">&quot;\n#{' ' * tag.length}&quot;</span>) <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n&quot;</span>
2749
+ 699: <span class="ruby-keyword kw">end</span></pre>
2750
+ </div>
2751
+
2752
+ </div>
2753
+
2754
+
2755
+
2756
+
2757
+ </div>
2758
+
2759
+
2760
+ <div id="journal-essages-method" class="method-detail ">
2761
+ <a name="method-i-journalMessages"></a>
2762
+
2763
+ <div class="method-heading">
2764
+
2765
+ <span class="method-name">journalMessages</span><span
2766
+ class="method-args">(entries, query, longVersion)</span>
2767
+ <span class="method-click-advice">click to toggle source</span>
2768
+
2769
+ </div>
2770
+
2771
+ <div class="method-description">
2772
+
2773
+ <p>
2774
+ Create a blog-style list of all alert messages that match the <a
2775
+ href="Query.html">Query</a>.
2776
+ </p>
2777
+
2778
+
2779
+
2780
+ <div class="method-source-code"
2781
+ id="journal-essages-source">
2782
+ <pre>
2783
+ <span class="ruby-comment cmt"># File lib/taskjuggler/PropertyTreeNode.rb, line 659</span>
2784
+ 659: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">journalMessages</span>(<span class="ruby-identifier">entries</span>, <span class="ruby-identifier">query</span>, <span class="ruby-identifier">longVersion</span>)
2785
+ 660: <span class="ruby-comment cmt"># The components of the message are either UTF-8 text or RichText. For</span>
2786
+ 661: <span class="ruby-comment cmt"># the RichText components, we use the originally provided markup since</span>
2787
+ 662: <span class="ruby-comment cmt"># we compose the result as RichText markup first.</span>
2788
+ 663: <span class="ruby-identifier">rText</span> = <span class="ruby-value str">''</span>
2789
+ 664: <span class="ruby-identifier">entries</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
2790
+ 665: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;==== &lt;nowiki&gt;&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">headline</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;&lt;/nowiki&gt; ====\n&quot;</span>
2791
+ 666: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;''Reported on #{entry.date.to_s(query.timeFormat)}'' &quot;</span>
2792
+ 667: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">author</span>
2793
+ 668: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;''by &lt;nowiki&gt;#{entry.author.name}&lt;/nowiki&gt;''&quot;</span>
2794
+ 669: <span class="ruby-keyword kw">end</span>
2795
+ 670: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
2796
+ 671: <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">flags</span>.<span class="ruby-identifier">empty?</span>
2797
+ 672: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-node">&quot;''Flags:'' #{entry.flags.join(', ')}\n\n&quot;</span>
2798
+ 673: <span class="ruby-keyword kw">end</span>
2799
+ 674: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">summary</span>
2800
+ 675: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">summary</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
2801
+ 676: <span class="ruby-keyword kw">end</span>
2802
+ 677: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">longVersion</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">details</span>
2803
+ 678: <span class="ruby-identifier">rText</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">details</span>.<span class="ruby-identifier">richText</span>.<span class="ruby-identifier">inputText</span> <span class="ruby-operator">+</span> <span class="ruby-value str">&quot;\n\n&quot;</span>
2804
+ 679: <span class="ruby-keyword kw">end</span>
2805
+ 680: <span class="ruby-keyword kw">end</span>
2806
+ 681: <span class="ruby-comment cmt"># Now convert the RichText markup String into RichTextIntermediate</span>
2807
+ 682: <span class="ruby-comment cmt"># format.</span>
2808
+ 683: <span class="ruby-keyword kw">unless</span> (<span class="ruby-identifier">rti</span> = <span class="ruby-constant">RichText</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">rText</span>, <span class="ruby-constant">RTFHandlers</span>.<span class="ruby-identifier">create</span>(<span class="ruby-ivar">@project</span>),
2809
+ 684: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>).
2810
+ 685: <span class="ruby-identifier">generateIntermediateFormat</span>)
2811
+ 686: <span class="ruby-ivar">@project</span>.<span class="ruby-identifier">messageHandler</span>.<span class="ruby-identifier">warning</span>(<span class="ruby-value str">'ptn_journal'</span>,
2812
+ 687: <span class="ruby-value str">&quot;Syntax error in journal message&quot;</span>)
2813
+ 688: <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span>
2814
+ 689: <span class="ruby-keyword kw">end</span>
2815
+ 690: <span class="ruby-comment cmt"># No section numbers, please!</span>
2816
+ 691: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">sectionNumbers</span> = <span class="ruby-keyword kw">false</span>
2817
+ 692: <span class="ruby-comment cmt"># We use a special class to allow CSS formating.</span>
2818
+ 693: <span class="ruby-identifier">rti</span>.<span class="ruby-identifier">cssClass</span> = <span class="ruby-value str">'tj_journal'</span>
2819
+ 694: <span class="ruby-identifier">query</span>.<span class="ruby-identifier">rti</span> = <span class="ruby-identifier">rti</span>
2820
+ 695: <span class="ruby-keyword kw">end</span></pre>
2821
+ </div>
2822
+
2823
+ </div>
2824
+
2825
+
2826
+
2827
+
2828
+ </div>
2829
+
2830
+
2831
+ </div>
2832
+
2833
+
2834
+ </div>
2835
+
2836
+
2837
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
2838
+
2839
+ <p>Disabled; run with --debug to generate this.</p>
2840
+
2841
+ </div>
2842
+
2843
+ <div id="validator-badges">
2844
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
2845
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
2846
+ Rdoc Generator</a> 1.1.6</small>.</p>
2847
+ </div>
2848
+
2849
+ </body>
2850
+ </html>
2851
+