doc/TaskJuggler/PropertyList.html in taskjuggler-0.0.6 vs doc/TaskJuggler/PropertyList.html in taskjuggler-0.0.7

- old
+ new

@@ -185,10 +185,14 @@ <li><a href="../TaskJuggler/DependencyListAttribute.html">TaskJuggler::DependencyListAttribute</a></li> <li><a href="../TaskJuggler/DurationAttribute.html">TaskJuggler::DurationAttribute</a></li> + <li><a href="../TaskJuggler/FileList.html">TaskJuggler::FileList</a></li> + + <li><a href="../TaskJuggler/FileRecord.html">TaskJuggler::FileRecord</a></li> + <li><a href="../TaskJuggler/FixnumAttribute.html">TaskJuggler::FixnumAttribute</a></li> <li><a href="../TaskJuggler/FlagListAttribute.html">TaskJuggler::FlagListAttribute</a></li> <li><a href="../TaskJuggler/FloatAttribute.html">TaskJuggler::FloatAttribute</a></li> @@ -257,12 +261,10 @@ <li><a href="../TaskJuggler/LogicalOperation.html">TaskJuggler::LogicalOperation</a></li> <li><a href="../TaskJuggler/Macro.html">TaskJuggler::Macro</a></li> - <li><a href="../TaskJuggler/MacroParser.html">TaskJuggler::MacroParser</a></li> - <li><a href="../TaskJuggler/MacroTable.html">TaskJuggler::MacroTable</a></li> <li><a href="../TaskJuggler/ManagerResponsibilities.html">TaskJuggler::ManagerResponsibilities</a></li> <li><a href="../TaskJuggler/ManagerStatusRecord.html">TaskJuggler::ManagerStatusRecord</a></li> @@ -323,10 +325,12 @@ <li><a href="../TaskJuggler/RTFReport.html">TaskJuggler::RTFReport</a></li> <li><a href="../TaskJuggler/RTFReportLink.html">TaskJuggler::RTFReportLink</a></li> + <li><a href="../TaskJuggler/RTFWithQuerySupport.html">TaskJuggler::RTFWithQuerySupport</a></li> + <li><a href="../TaskJuggler/RealFormat.html">TaskJuggler::RealFormat</a></li> <li><a href="../TaskJuggler/RealFormatAttribute.html">TaskJuggler::RealFormatAttribute</a></li> <li><a href="../TaskJuggler/ReferenceAttribute.html">TaskJuggler::ReferenceAttribute</a></li> @@ -369,12 +373,10 @@ <li><a href="../TaskJuggler/RichTextDocument.html">TaskJuggler::RichTextDocument</a></li> <li><a href="../TaskJuggler/RichTextElement.html">TaskJuggler::RichTextElement</a></li> - <li><a href="../TaskJuggler/RichTextException.html">TaskJuggler::RichTextException</a></li> - <li><a href="../TaskJuggler/RichTextFunctionExample.html">TaskJuggler::RichTextFunctionExample</a></li> <li><a href="../TaskJuggler/RichTextFunctionHandler.html">TaskJuggler::RichTextFunctionHandler</a></li> <li><a href="../TaskJuggler/RichTextImage.html">TaskJuggler::RichTextImage</a></li> @@ -411,10 +413,12 @@ <li><a href="../TaskJuggler/ShiftAssignmentsAttribute.html">TaskJuggler::ShiftAssignmentsAttribute</a></li> <li><a href="../TaskJuggler/ShiftScenario.html">TaskJuggler::ShiftScenario</a></li> + <li><a href="../TaskJuggler/SimpleQueryExpander.html">TaskJuggler::SimpleQueryExpander</a></li> + <li><a href="../TaskJuggler/SortListAttribute.html">TaskJuggler::SortListAttribute</a></li> <li><a href="../TaskJuggler/SourceFileInfo.html">TaskJuggler::SourceFileInfo</a></li> <li><a href="../TaskJuggler/StatusSheetReceiver.html">TaskJuggler::StatusSheetReceiver</a></li> @@ -521,10 +525,12 @@ <li><a href="../TaskJuggler/URLParameter.html">TaskJuggler::URLParameter</a></li> <li><a href="../TaskJuggler/UserManual.html">TaskJuggler::UserManual</a></li> + <li><a href="../TaskJuggler/VimSyntax.html">TaskJuggler::VimSyntax</a></li> + <li><a href="../TaskJuggler/WebServer.html">TaskJuggler::WebServer</a></li> <li><a href="../TaskJuggler/WorkingHours.html">TaskJuggler::WorkingHours</a></li> <li><a href="../TaskJuggler/WorkingHoursAttribute.html">TaskJuggler::WorkingHoursAttribute</a></li> @@ -766,68 +772,10 @@ <div id="public-instance-method-details" class="method-section section"> <h3 class="section-header">Public Instance Methods</h3> - <div id="add-orting-riteria-method" class="method-detail "> - <a name="method-i-addSortingCriteria"></a> - - <div class="method-heading"> - - <span class="method-name">addSortingCriteria</span><span - class="method-args">(criteria, up, scIdx)</span> - <span class="method-click-advice">click to toggle source</span> - - </div> - - <div class="method-description"> - - <p> -Append a new sorting level to the existing levels. -</p> - - - - <div class="method-source-code" - id="add-orting-riteria-source"> -<pre> - <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 98</span> - 98: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addSortingCriteria</span>(<span class="ruby-identifier">criteria</span>, <span class="ruby-identifier">up</span>, <span class="ruby-identifier">scIdx</span>) - 99: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">knownAttribute?</span>(<span class="ruby-identifier">criteria</span>) <span class="ruby-operator">||</span> -100: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">hasQuery?</span>(<span class="ruby-identifier">criteria</span>, <span class="ruby-identifier">scIdx</span>) -101: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Unknown attribute #{criteria} used for &quot;</span> <span class="ruby-operator">+</span> -102: <span class="ruby-value str">'sorting criterium'</span> -103: <span class="ruby-keyword kw">end</span> -104: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scIdx</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> -105: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">criteria</span>) -106: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Attribute #{criteria} is scenario specific.&quot;</span> <span class="ruby-operator">+</span> -107: <span class="ruby-value str">&quot;You must specify a scenario id.&quot;</span> -108: <span class="ruby-keyword kw">end</span> -109: <span class="ruby-keyword kw">else</span> -110: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">scIdx</span>).<span class="ruby-identifier">nil?</span> -111: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Unknown scenario index #{scIdx} used.&quot;</span> -112: <span class="ruby-keyword kw">end</span> -113: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">criteria</span>) -114: <span class="ruby-identifier">raise</span> <span class="ruby-constant">TjException</span>.<span class="ruby-identifier">new</span>, <span class="ruby-node">&quot;Attribute #{criteria} is not scenario &quot;</span> <span class="ruby-operator">+</span> -115: <span class="ruby-value str">&quot;specific&quot;</span> -116: <span class="ruby-keyword kw">end</span> -117: <span class="ruby-keyword kw">end</span> -118: <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">criteria</span>) -119: <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">up</span>) -120: <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">scIdx</span>) -121: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> -122: <span class="ruby-keyword kw">end</span></pre> - </div> - - </div> - - - - - </div> - - <div id="append-method" class="method-detail "> <a name="method-i-append"></a> <div class="method-heading"> @@ -894,17 +842,17 @@ <div class="method-source-code" id="index-source"> <pre> - <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 173</span> -173: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">index</span> -174: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span> -175: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> -176: <span class="ruby-identifier">p</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'index'</span>, <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>) -177: <span class="ruby-keyword kw">end</span> -178: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 146</span> +146: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">index</span> +147: <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span> +148: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">p</span><span class="ruby-operator">|</span> +149: <span class="ruby-identifier">p</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'index'</span>, <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>) +150: <span class="ruby-keyword kw">end</span> +151: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -933,14 +881,14 @@ <div class="method-source-code" id="item-ndex-source"> <pre> - <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 167</span> -167: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">itemIndex</span>(<span class="ruby-identifier">item</span>) -168: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">item</span>) -169: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 140</span> +140: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">itemIndex</span>(<span class="ruby-identifier">item</span>) +141: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">item</span>) +142: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1085,44 +1033,44 @@ <div class="method-source-code" id="sort--source"> <pre> - <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 132</span> -132: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sort!</span> -133: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">treeMode?</span> -134: <span class="ruby-comment cmt"># Tree sorting is somewhat complex. It will be based on the 'tree'</span> -135: <span class="ruby-comment cmt"># attribute of the PropertyTreeNodes but we have to update them first</span> -136: <span class="ruby-comment cmt"># based on the other sorting criteria.</span> -137: -138: <span class="ruby-comment cmt"># Remove the tree sorting mode first.</span> -139: <span class="ruby-identifier">sc</span> = <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-value">0</span>) -140: <span class="ruby-identifier">su</span> = <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-value">0</span>) -141: <span class="ruby-identifier">si</span> = <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-value">0</span>) -142: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span> -143: -144: <span class="ruby-comment cmt"># Sort the list based on the rest of the modes.</span> -145: <span class="ruby-identifier">sortInternal</span> -146: <span class="ruby-comment cmt"># The update the 'index' attributes of the PropertyTreeNodes.</span> -147: <span class="ruby-identifier">index</span> -148: <span class="ruby-comment cmt"># An then the 'tree' attributes.</span> -149: <span class="ruby-identifier">indexTree</span> -150: -151: <span class="ruby-comment cmt"># Restore the 'tree' sorting mode again.</span> -152: <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">sc</span>) -153: <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">su</span>) -154: <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">si</span>) -155: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> -156: -157: <span class="ruby-comment cmt"># Sort again, now based on the updated 'tree' attributes.</span> -158: <span class="ruby-identifier">sortInternal</span> -159: <span class="ruby-keyword kw">else</span> -160: <span class="ruby-identifier">sortInternal</span> -161: <span class="ruby-keyword kw">end</span> -162: <span class="ruby-comment cmt"># Update indexes.</span> -163: <span class="ruby-identifier">index</span> -164: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 105</span> +105: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sort!</span> +106: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">treeMode?</span> +107: <span class="ruby-comment cmt"># Tree sorting is somewhat complex. It will be based on the 'tree'</span> +108: <span class="ruby-comment cmt"># attribute of the PropertyTreeNodes but we have to update them first</span> +109: <span class="ruby-comment cmt"># based on the other sorting criteria.</span> +110: +111: <span class="ruby-comment cmt"># Remove the tree sorting mode first.</span> +112: <span class="ruby-identifier">sc</span> = <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-value">0</span>) +113: <span class="ruby-identifier">su</span> = <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-value">0</span>) +114: <span class="ruby-identifier">si</span> = <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">delete_at</span>(<span class="ruby-value">0</span>) +115: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span> +116: +117: <span class="ruby-comment cmt"># Sort the list based on the rest of the modes.</span> +118: <span class="ruby-identifier">sortInternal</span> +119: <span class="ruby-comment cmt"># The update the 'index' attributes of the PropertyTreeNodes.</span> +120: <span class="ruby-identifier">index</span> +121: <span class="ruby-comment cmt"># An then the 'tree' attributes.</span> +122: <span class="ruby-identifier">indexTree</span> +123: +124: <span class="ruby-comment cmt"># Restore the 'tree' sorting mode again.</span> +125: <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">sc</span>) +126: <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">su</span>) +127: <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">insert</span>(<span class="ruby-value">0</span>, <span class="ruby-identifier">si</span>) +128: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> +129: +130: <span class="ruby-comment cmt"># Sort again, now based on the updated 'tree' attributes.</span> +131: <span class="ruby-identifier">sortInternal</span> +132: <span class="ruby-keyword kw">else</span> +133: <span class="ruby-identifier">sortInternal</span> +134: <span class="ruby-keyword kw">end</span> +135: <span class="ruby-comment cmt"># Update indexes.</span> +136: <span class="ruby-identifier">index</span> +137: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1187,14 +1135,14 @@ <div class="method-source-code" id="tree-ode--source"> <pre> - <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 127</span> -127: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">treeMode?</span> -128: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'tree'</span> -129: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 100</span> +100: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">treeMode?</span> +101: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'tree'</span> +102: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1207,10 +1155,66 @@ <div id="private-instance-method-details" class="method-section section"> <h3 class="section-header">Private Instance Methods</h3> + <div id="add-orting-riteria-method" class="method-detail "> + <a name="method-i-addSortingCriteria"></a> + + <div class="method-heading"> + + <span class="method-name">addSortingCriteria</span><span + class="method-args">(criteria, up, scIdx)</span> + <span class="method-click-advice">click to toggle source</span> + + </div> + + <div class="method-description"> + + <p> +Append a new sorting level to the existing levels. +</p> + + + + <div class="method-source-code" + id="add-orting-riteria-source"> +<pre> + <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 168</span> +168: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">addSortingCriteria</span>(<span class="ruby-identifier">criteria</span>, <span class="ruby-identifier">up</span>, <span class="ruby-identifier">scIdx</span>) +169: <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">knownAttribute?</span>(<span class="ruby-identifier">criteria</span>) <span class="ruby-operator">||</span> +170: <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">hasQuery?</span>(<span class="ruby-identifier">criteria</span>, <span class="ruby-identifier">scIdx</span>) +171: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown attribute #{criteria} used for sorting criterium&quot;</span> +172: <span class="ruby-keyword kw">end</span> +173: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">scIdx</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> +174: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">criteria</span>) +175: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Attribute #{criteria} is scenario specific.&quot;</span> <span class="ruby-operator">+</span> +176: <span class="ruby-value str">&quot;You must specify a scenario id.&quot;</span> +177: <span class="ruby-keyword kw">end</span> +178: <span class="ruby-keyword kw">else</span> +179: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">project</span>.<span class="ruby-identifier">scenario</span>(<span class="ruby-identifier">scIdx</span>).<span class="ruby-identifier">nil?</span> +180: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Unknown scenario index #{scIdx} used.&quot;</span> +181: <span class="ruby-keyword kw">end</span> +182: <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span><span class="ruby-ivar">@propertySet</span>.<span class="ruby-identifier">scenarioSpecific?</span>(<span class="ruby-identifier">criteria</span>) +183: <span class="ruby-identifier">raise</span> <span class="ruby-node">&quot;Attribute #{criteria} is not scenario specific&quot;</span> +184: <span class="ruby-keyword kw">end</span> +185: <span class="ruby-keyword kw">end</span> +186: <span class="ruby-ivar">@sortingCriteria</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">criteria</span>) +187: <span class="ruby-ivar">@sortingUp</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">up</span>) +188: <span class="ruby-ivar">@scenarioIdx</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">scIdx</span>) +189: <span class="ruby-ivar">@sortingLevels</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span> +190: <span class="ruby-keyword kw">end</span></pre> + </div> + + </div> + + + + + </div> + + <div id="index-ree-method" class="method-detail "> <a name="method-i-indexTree"></a> <div class="method-heading"> @@ -1230,27 +1234,27 @@ <div class="method-source-code" id="index-ree-source"> <pre> - <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 195</span> -195: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indexTree</span> -196: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">property</span><span class="ruby-operator">|</span> -197: <span class="ruby-comment cmt"># The indicies are an Array if the 'index' attributes for this</span> -198: <span class="ruby-comment cmt"># property and all its parents.</span> -199: <span class="ruby-identifier">treeIdcs</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">getIndicies</span> -200: <span class="ruby-comment cmt"># Now convert them to a String.</span> -201: <span class="ruby-identifier">tree</span> = <span class="ruby-value str">''</span> -202: <span class="ruby-identifier">treeIdcs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">idx</span><span class="ruby-operator">|</span> -203: <span class="ruby-comment cmt"># Prefix the level index with zeros so that we always have a 6</span> -204: <span class="ruby-comment cmt"># digit long String. 6 digits should be large enough for all</span> -205: <span class="ruby-comment cmt"># real-world projects.</span> -206: <span class="ruby-identifier">tree</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">idx</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">rjust</span>(<span class="ruby-value">6</span>, <span class="ruby-value str">'0'</span>) -207: <span class="ruby-keyword kw">end</span> -208: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'tree'</span>, <span class="ruby-identifier">tree</span>) -209: <span class="ruby-keyword kw">end</span> -210: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 193</span> +193: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">indexTree</span> +194: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">property</span><span class="ruby-operator">|</span> +195: <span class="ruby-comment cmt"># The indicies are an Array if the 'index' attributes for this</span> +196: <span class="ruby-comment cmt"># property and all its parents.</span> +197: <span class="ruby-identifier">treeIdcs</span> = <span class="ruby-identifier">property</span>.<span class="ruby-identifier">getIndicies</span> +198: <span class="ruby-comment cmt"># Now convert them to a String.</span> +199: <span class="ruby-identifier">tree</span> = <span class="ruby-value str">''</span> +200: <span class="ruby-identifier">treeIdcs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">idx</span><span class="ruby-operator">|</span> +201: <span class="ruby-comment cmt"># Prefix the level index with zeros so that we always have a 6</span> +202: <span class="ruby-comment cmt"># digit long String. 6 digits should be large enough for all</span> +203: <span class="ruby-comment cmt"># real-world projects.</span> +204: <span class="ruby-identifier">tree</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">idx</span>.<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">rjust</span>(<span class="ruby-value">6</span>, <span class="ruby-value str">'0'</span>) +205: <span class="ruby-keyword kw">end</span> +206: <span class="ruby-identifier">property</span>.<span class="ruby-identifier">set</span>(<span class="ruby-value str">'tree'</span>, <span class="ruby-identifier">tree</span>) +207: <span class="ruby-keyword kw">end</span> +208: <span class="ruby-keyword kw">end</span></pre> </div> </div> @@ -1277,54 +1281,54 @@ <div class="method-source-code" id="sort-nternal-source"> <pre> - <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 212</span> -212: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sortInternal</span> -213: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">sort!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> -214: <span class="ruby-identifier">res</span> = <span class="ruby-value">0</span> -215: <span class="ruby-ivar">@sortingLevels</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> -216: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@query</span> -217: <span class="ruby-comment cmt"># In case we have a Query reference, we get the two values with this</span> -218: <span class="ruby-comment cmt"># query.</span> -219: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>] -220: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>] -221: -222: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">a</span> -223: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span> -224: <span class="ruby-identifier">aVal</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">to_sort</span> -225: -226: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">b</span> -227: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span> -228: <span class="ruby-identifier">bVal</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">to_sort</span> -229: <span class="ruby-keyword kw">else</span> -230: <span class="ruby-comment cmt"># In case we don't have a query, we use the static mechanism.</span> -231: <span class="ruby-comment cmt"># If the scenario index is negative we have a non-scenario-specific</span> -232: <span class="ruby-comment cmt"># attribute.</span> -233: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> -234: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'id'</span> -235: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">fullId</span> -236: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">fullId</span> -237: <span class="ruby-keyword kw">else</span> -238: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>]) -239: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>]) -240: <span class="ruby-keyword kw">end</span> -241: <span class="ruby-keyword kw">else</span> -242: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>[<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>], <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>]] -243: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>[<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>], <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>]] -244: <span class="ruby-keyword kw">end</span> -245: <span class="ruby-keyword kw">end</span> -246: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">aVal</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">bVal</span> -247: <span class="ruby-comment cmt"># Invert the result if we have to sort in decreasing order.</span> -248: <span class="ruby-identifier">res</span> = <span class="ruby-operator">-</span><span class="ruby-identifier">res</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@sortingUp</span>[<span class="ruby-identifier">i</span>] -249: <span class="ruby-comment cmt"># If the two elements are equal on this compare level we try the next</span> -250: <span class="ruby-comment cmt"># level.</span> -251: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> -252: <span class="ruby-keyword kw">end</span> -253: <span class="ruby-identifier">res</span> -254: <span class="ruby-keyword kw">end</span> -255: <span class="ruby-keyword kw">end</span></pre> + <span class="ruby-comment cmt"># File lib/PropertyList.rb, line 210</span> +210: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sortInternal</span> +211: <span class="ruby-ivar">@items</span>.<span class="ruby-identifier">sort!</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span> +212: <span class="ruby-identifier">res</span> = <span class="ruby-value">0</span> +213: <span class="ruby-ivar">@sortingLevels</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> +214: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@query</span> +215: <span class="ruby-comment cmt"># In case we have a Query reference, we get the two values with this</span> +216: <span class="ruby-comment cmt"># query.</span> +217: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">scenarioIdx</span> = <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> <span class="ruby-operator">?</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>] +218: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">attributeId</span> = <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>] +219: +220: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">a</span> +221: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span> +222: <span class="ruby-identifier">aVal</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">to_sort</span> +223: +224: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">property</span> = <span class="ruby-identifier">b</span> +225: <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">process</span> +226: <span class="ruby-identifier">bVal</span> = <span class="ruby-ivar">@query</span>.<span class="ruby-identifier">to_sort</span> +227: <span class="ruby-keyword kw">else</span> +228: <span class="ruby-comment cmt"># In case we don't have a query, we use the static mechanism.</span> +229: <span class="ruby-comment cmt"># If the scenario index is negative we have a non-scenario-specific</span> +230: <span class="ruby-comment cmt"># attribute.</span> +231: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span> +232: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'id'</span> +233: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">fullId</span> +234: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">fullId</span> +235: <span class="ruby-keyword kw">else</span> +236: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>]) +237: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>.<span class="ruby-identifier">get</span>(<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>]) +238: <span class="ruby-keyword kw">end</span> +239: <span class="ruby-keyword kw">else</span> +240: <span class="ruby-identifier">aVal</span> = <span class="ruby-identifier">a</span>[<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>], <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>]] +241: <span class="ruby-identifier">bVal</span> = <span class="ruby-identifier">b</span>[<span class="ruby-ivar">@sortingCriteria</span>[<span class="ruby-identifier">i</span>], <span class="ruby-ivar">@scenarioIdx</span>[<span class="ruby-identifier">i</span>]] +242: <span class="ruby-keyword kw">end</span> +243: <span class="ruby-keyword kw">end</span> +244: <span class="ruby-identifier">res</span> = <span class="ruby-identifier">aVal</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">bVal</span> +245: <span class="ruby-comment cmt"># Invert the result if we have to sort in decreasing order.</span> +246: <span class="ruby-identifier">res</span> = <span class="ruby-operator">-</span><span class="ruby-identifier">res</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@sortingUp</span>[<span class="ruby-identifier">i</span>] +247: <span class="ruby-comment cmt"># If the two elements are equal on this compare level we try the next</span> +248: <span class="ruby-comment cmt"># level.</span> +249: <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">res</span> <span class="ruby-operator">!=</span> <span class="ruby-value">0</span> +250: <span class="ruby-keyword kw">end</span> +251: <span class="ruby-identifier">res</span> +252: <span class="ruby-keyword kw">end</span> +253: <span class="ruby-keyword kw">end</span></pre> </div> </div>