blob: 2f32b681a07c018be9f5015437f0b089800fe592 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.3"/>
<title>Lucene.Net: core/Search/FieldCacheRangeFilter.cs Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="lucene-net-icon-128x128.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">Lucene.Net
&#160;<span id="projectnumber">3.0.3</span>
</div>
<div id="projectbrief">Lucene.Net is a .NET port of the Java Lucene Indexing Library</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.3 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="Index.html"><span>Main&#160;Page</span></a></li>
<li><a href="namespaces.html"><span>Packages</span></a></li>
<li><a href="annotated.html"><span>Classes</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File&#160;List</span></a></li>
<li><a href="globals.html"><span>File&#160;Members</span></a></li>
</ul>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Properties</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_1efe588324fc547683bba4a3f1bac847.html">core</a></li><li class="navelem"><a class="el" href="dir_56f9b3c34a852b92179da152ee78b823.html">Search</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">FieldCacheRangeFilter.cs</div> </div>
</div><!--header-->
<div class="contents">
<a href="_field_cache_range_filter_8cs.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/* </span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * contributor license agreements. See the NOTICE file distributed with</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * this work for additional information regarding copyright ownership.</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * (the &quot;License&quot;); you may not use this file except in compliance with</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * the License. You may obtain a copy of the License at</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * </span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * </span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * See the License for the specific language governing permissions and</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * limitations under the License.</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">using</span> System;</div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keyword">using</span> Lucene.Net.Index;</div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">using</span> Lucene.Net.Support;</div>
<div class="line"><a name="l00021"></a><span class="lineno"><a class="code" href="_field_cache_range_filter_8cs.html#a0548f0e7e5187d877d964eab1119b8dd"> 21</a></span>&#160;<span class="keyword">using</span> <a class="code" href="_numeric_token_stream_8cs.html#a0548f0e7e5187d877d964eab1119b8dd">NumericField</a> = Lucene.Net.Documents.NumericField;</div>
<div class="line"><a name="l00022"></a><span class="lineno"><a class="code" href="_field_cache_range_filter_8cs.html#a2a6914ea10bbe06764856e29e5674e66"> 22</a></span>&#160;<span class="keyword">using</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> = Lucene.Net.Index.IndexReader;</div>
<div class="line"><a name="l00023"></a><span class="lineno"><a class="code" href="_field_cache_range_filter_8cs.html#a058de2d1c801e53325f35357f213391f"> 23</a></span>&#160;<span class="keyword">using</span> <a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_term_docs.html" title="TermDocs provides an interface for enumerating &lt;document, frequency&gt; pairs for a term. The document portion names each document containing the term. Documents are indicated by number. The frequency portion gives the number of times the term occurred in each document. The pairs are ordered by document number. ">TermDocs</a> = Lucene.Net.Index.TermDocs;</div>
<div class="line"><a name="l00024"></a><span class="lineno"><a class="code" href="_field_cache_range_filter_8cs.html#a35ee450e1da1e0bf32b70e5018cc9e5e"> 24</a></span>&#160;<span class="keyword">using</span> <a class="code" href="_numeric_token_stream_8cs.html#a35ee450e1da1e0bf32b70e5018cc9e5e">NumericUtils</a> = Lucene.Net.Util.NumericUtils;</div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">namespace </span>Lucene.Net.Search</div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">class </span>FieldCacheRangeFilter</div>
<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; {</div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; [Serializable]</div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassFieldCacheRangeFilter : FieldCacheRangeFilter&lt;string&gt;</div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; {</div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassFieldCacheDocIdSet : FieldCacheDocIdSet</div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; {</div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">private</span> <span class="keywordtype">void</span> InitBlock(Lucene.Net.Search.StringIndex fcsi, <span class="keywordtype">int</span> inclusiveLowerPoint, <span class="keywordtype">int</span> inclusiveUpperPoint, FieldCacheRangeFilter&lt;string&gt; enclosingInstance)</div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; this.fcsi = fcsi;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; this.inclusiveLowerPoint = inclusiveLowerPoint;</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; this.inclusiveUpperPoint = inclusiveUpperPoint;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; this.enclosingInstance = enclosingInstance;</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">private</span> Lucene.Net.Search.StringIndex fcsi;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span> inclusiveLowerPoint;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span> inclusiveUpperPoint;</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">private</span> FieldCacheRangeFilter&lt;string&gt; enclosingInstance;</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">public</span> FieldCacheRangeFilter&lt;string&gt; Enclosing_Instance</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; {</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">get</span></div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; {</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> enclosingInstance;</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">internal</span> AnonymousClassFieldCacheDocIdSet(Lucene.Net.Search.StringIndex fcsi, <span class="keywordtype">int</span> inclusiveLowerPoint, <span class="keywordtype">int</span> inclusiveUpperPoint, FieldCacheRangeFilter&lt;string&gt; enclosingInstance, Lucene.Net.Index.IndexReader Param1, <span class="keywordtype">bool</span> Param2)</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; : base(Param1, Param2)</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; {</div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; InitBlock(fcsi, inclusiveLowerPoint, inclusiveUpperPoint, enclosingInstance);</div>
<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div>
<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">internal</span> <span class="keyword">override</span> <span class="keywordtype">bool</span> MatchDoc(<span class="keywordtype">int</span> doc)</div>
<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; {</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">return</span> fcsi.order[doc] &gt;= inclusiveLowerPoint &amp;&amp; fcsi.order[doc] &lt;= inclusiveUpperPoint;</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">internal</span> AnonymousClassFieldCacheRangeFilter(<span class="keywordtype">string</span> field, Lucene.Net.Search.Parser parser, <span class="keywordtype">string</span> lowerVal, <span class="keywordtype">string</span> upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; : base(field, parser, lowerVal, upperVal, includeLower, includeUpper)</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; {</div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a> GetDocIdSet(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> reader)</div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; {</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; Lucene.Net.Search.StringIndex fcsi = Lucene.Net.Search.FieldCache_Fields.DEFAULT.GetStringIndex(reader, field);</div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">int</span> lowerPoint = fcsi.BinarySearchLookup(lowerVal);</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">int</span> upperPoint = fcsi.BinarySearchLookup(upperVal);</div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordtype">int</span> inclusiveLowerPoint;</div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">int</span> inclusiveUpperPoint;</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">// Hints:</span></div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// * binarySearchLookup returns 0, if value was null.</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// * the value is &lt;0 if no exact hit was found, the returned value</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// is (-(insertion point) - 1)</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span> (lowerPoint == 0)</div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; {</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; System.Diagnostics.Debug.Assert(lowerVal == null);</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; inclusiveLowerPoint = 1;</div>
<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div>
<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (includeLower &amp;&amp; lowerPoint &gt; 0)</div>
<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; {</div>
<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; inclusiveLowerPoint = lowerPoint;</div>
<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div>
<div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (lowerPoint &gt; 0)</div>
<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; {</div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; inclusiveLowerPoint = lowerPoint + 1;</div>
<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div>
<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; {</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; inclusiveLowerPoint = System.Math.Max(1, -lowerPoint - 1);</div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div>
<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div>
<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span> (upperPoint == 0)</div>
<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; {</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; System.Diagnostics.Debug.Assert(upperVal == null);</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; inclusiveUpperPoint = System.Int32.MaxValue;</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (includeUpper &amp;&amp; upperPoint &gt; 0)</div>
<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; {</div>
<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; inclusiveUpperPoint = upperPoint;</div>
<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div>
<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span> (upperPoint &gt; 0)</div>
<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; {</div>
<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; inclusiveUpperPoint = upperPoint - 1;</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; {</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; inclusiveUpperPoint = -upperPoint - 2;</div>
<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span> (inclusiveUpperPoint &lt;= 0 || inclusiveLowerPoint &gt; inclusiveUpperPoint)</div>
<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div>
<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; System.Diagnostics.Debug.Assert(inclusiveLowerPoint &gt; 0 &amp;&amp; inclusiveUpperPoint &gt; 0);</div>
<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">// for this DocIdSet, we never need to use TermDocs,</span></div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">// because deleted docs have an order of 0 (null entry in StringIndex)</span></div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> AnonymousClassFieldCacheDocIdSet(fcsi, inclusiveLowerPoint, inclusiveUpperPoint, <span class="keyword">this</span>, reader, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; [Serializable]</div>
<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassFieldCacheRangeFilter1 : FieldCacheRangeFilter&lt;sbyte?&gt;</div>
<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; {</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassFieldCacheDocIdSet : FieldCacheDocIdSet</div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; {</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">private</span> <span class="keywordtype">void</span> InitBlock(sbyte[] values, sbyte inclusiveLowerPoint, sbyte inclusiveUpperPoint, FieldCacheRangeFilter&lt;sbyte?&gt; enclosingInstance)</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; {</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; this.values = values;</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; this.inclusiveLowerPoint = inclusiveLowerPoint;</div>
<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; this.inclusiveUpperPoint = inclusiveUpperPoint;</div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; this.enclosingInstance = enclosingInstance;</div>
<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">private</span> sbyte[] values;</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">private</span> sbyte inclusiveLowerPoint;</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">private</span> sbyte inclusiveUpperPoint;</div>
<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keyword">private</span> FieldCacheRangeFilter&lt;sbyte?&gt; enclosingInstance;</div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">public</span> FieldCacheRangeFilter&lt;sbyte?&gt; Enclosing_Instance</div>
<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; {</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">get</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; {</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> enclosingInstance;</div>
<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div>
<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">internal</span> AnonymousClassFieldCacheDocIdSet(sbyte[] values, sbyte inclusiveLowerPoint, sbyte inclusiveUpperPoint, FieldCacheRangeFilter&lt;sbyte?&gt; enclosingInstance, Lucene.Net.Index.IndexReader Param1, <span class="keywordtype">bool</span> Param2)</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; : base(Param1, Param2)</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; {</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; InitBlock(values, inclusiveLowerPoint, inclusiveUpperPoint, enclosingInstance);</div>
<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div>
<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">internal</span> <span class="keyword">override</span> <span class="keywordtype">bool</span> MatchDoc(<span class="keywordtype">int</span> doc)</div>
<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; {</div>
<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> values[doc] &gt;= inclusiveLowerPoint &amp;&amp; values[doc] &lt;= inclusiveUpperPoint;</div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div>
<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">internal</span> AnonymousClassFieldCacheRangeFilter1(<span class="keywordtype">string</span> field, Parser parser, sbyte? lowerVal, sbyte? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; : base(field, parser, lowerVal, upperVal, includeLower, includeUpper)</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; {</div>
<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div>
<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a> GetDocIdSet(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> reader)</div>
<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; {</div>
<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; sbyte inclusiveLowerPoint;</div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; sbyte inclusiveUpperPoint;</div>
<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span> (lowerVal != null)</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; {</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; sbyte i = (sbyte)lowerVal;</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">if</span> (!includeLower &amp;&amp; i == sbyte.MaxValue)</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; inclusiveLowerPoint = (sbyte)(includeLower ? i : (i + 1));</div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div>
<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; {</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; inclusiveLowerPoint = sbyte.MinValue;</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">if</span> (upperVal != null)</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; {</div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; sbyte i = (sbyte)upperVal;</div>
<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span> (!includeUpper &amp;&amp; i == sbyte.MinValue)</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; inclusiveUpperPoint = (sbyte)(includeUpper ? i : (i - 1));</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; {</div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; inclusiveUpperPoint = sbyte.MaxValue;</div>
<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; }</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span> (inclusiveLowerPoint &gt; inclusiveUpperPoint)</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div>
<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; sbyte[] values = Lucene.Net.Search.FieldCache_Fields.DEFAULT.GetBytes(reader, field, (Lucene.Net.Search.ByteParser)parser);</div>
<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">// we only request the usage of termDocs, if the range contains 0</span></div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> AnonymousClassFieldCacheDocIdSet(values, inclusiveLowerPoint, inclusiveUpperPoint, <span class="keyword">this</span>, reader, (inclusiveLowerPoint &lt;= 0 &amp;&amp; inclusiveUpperPoint &gt;= 0));</div>
<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div>
<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div>
<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; [Serializable]</div>
<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassFieldCacheRangeFilter2 : FieldCacheRangeFilter&lt;short?&gt;</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; {</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassFieldCacheDocIdSet : FieldCacheDocIdSet</div>
<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; {</div>
<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">private</span> <span class="keywordtype">void</span> InitBlock(<span class="keywordtype">short</span>[] values, <span class="keywordtype">short</span> inclusiveLowerPoint, <span class="keywordtype">short</span> inclusiveUpperPoint, FieldCacheRangeFilter&lt;short?&gt; enclosingInstance)</div>
<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; {</div>
<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; this.values = values;</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; this.inclusiveLowerPoint = inclusiveLowerPoint;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; this.inclusiveUpperPoint = inclusiveUpperPoint;</div>
<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; this.enclosingInstance = enclosingInstance;</div>
<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">private</span> <span class="keywordtype">short</span>[] values;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keyword">private</span> <span class="keywordtype">short</span> inclusiveLowerPoint;</div>
<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">private</span> <span class="keywordtype">short</span> inclusiveUpperPoint;</div>
<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">private</span> FieldCacheRangeFilter&lt;short?&gt; enclosingInstance;</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">public</span> FieldCacheRangeFilter&lt;short?&gt; Enclosing_Instance</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; {</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">get</span></div>
<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; {</div>
<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">return</span> enclosingInstance;</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div>
<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">internal</span> AnonymousClassFieldCacheDocIdSet(<span class="keywordtype">short</span>[] values, <span class="keywordtype">short</span> inclusiveLowerPoint, <span class="keywordtype">short</span> inclusiveUpperPoint, FieldCacheRangeFilter&lt;short?&gt; enclosingInstance, Lucene.Net.Index.IndexReader Param1, <span class="keywordtype">bool</span> Param2)</div>
<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; : base(Param1, Param2)</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; {</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; InitBlock(values, inclusiveLowerPoint, inclusiveUpperPoint, enclosingInstance);</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">internal</span> <span class="keyword">override</span> <span class="keywordtype">bool</span> MatchDoc(<span class="keywordtype">int</span> doc)</div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; {</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> values[doc] &gt;= inclusiveLowerPoint &amp;&amp; values[doc] &lt;= inclusiveUpperPoint;</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">internal</span> AnonymousClassFieldCacheRangeFilter2(<span class="keywordtype">string</span> field, Parser parser, <span class="keywordtype">short</span>? lowerVal, <span class="keywordtype">short</span>? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; : base(field, parser, lowerVal, upperVal, includeLower, includeUpper)</div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; {</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a> GetDocIdSet(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> reader)</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; {</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordtype">short</span> inclusiveLowerPoint;</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordtype">short</span> inclusiveUpperPoint;</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span> (lowerVal != null)</div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; {</div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordtype">short</span> i = (short)lowerVal;</div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">if</span> (!includeLower &amp;&amp; i == <span class="keywordtype">short</span>.MaxValue)</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; inclusiveLowerPoint = (short)(includeLower ? i : (i + 1));</div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; {</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; inclusiveLowerPoint = <span class="keywordtype">short</span>.MinValue;</div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div>
<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">if</span> (upperVal != null)</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; {</div>
<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordtype">short</span> i = (short)upperVal;</div>
<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">if</span> (!includeUpper &amp;&amp; i == <span class="keywordtype">short</span>.MinValue)</div>
<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; inclusiveUpperPoint = (short)(includeUpper ? i : (i - 1));</div>
<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; }</div>
<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; {</div>
<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; inclusiveUpperPoint = <span class="keywordtype">short</span>.MaxValue;</div>
<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; }</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div>
<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">if</span> (inclusiveLowerPoint &gt; inclusiveUpperPoint)</div>
<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div>
<div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordtype">short</span>[] values = Lucene.Net.Search.FieldCache_Fields.DEFAULT.GetShorts(reader, field, (Lucene.Net.Search.ShortParser)parser);</div>
<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="comment">// we only request the usage of termDocs, if the range contains 0</span></div>
<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> AnonymousClassFieldCacheDocIdSet(values, inclusiveLowerPoint, inclusiveUpperPoint, <span class="keyword">this</span>, reader, (inclusiveLowerPoint &lt;= 0 &amp;&amp; inclusiveUpperPoint &gt;= 0));</div>
<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div>
<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div>
<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; [Serializable]</div>
<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassFieldCacheRangeFilter3 : FieldCacheRangeFilter&lt;int?&gt;</div>
<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; {</div>
<div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassFieldCacheDocIdSet : FieldCacheDocIdSet</div>
<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; {</div>
<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keyword">private</span> <span class="keywordtype">void</span> InitBlock(<span class="keywordtype">int</span>[] values, <span class="keywordtype">int</span> inclusiveLowerPoint, <span class="keywordtype">int</span> inclusiveUpperPoint, FieldCacheRangeFilter&lt;int?&gt; enclosingInstance)</div>
<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; {</div>
<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; this.values = values;</div>
<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; this.inclusiveLowerPoint = inclusiveLowerPoint;</div>
<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; this.inclusiveUpperPoint = inclusiveUpperPoint;</div>
<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; this.enclosingInstance = enclosingInstance;</div>
<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div>
<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span>[] values;</div>
<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span> inclusiveLowerPoint;</div>
<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span> inclusiveUpperPoint;</div>
<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keyword">private</span> FieldCacheRangeFilter&lt;int?&gt; enclosingInstance;</div>
<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">public</span> FieldCacheRangeFilter&lt;int?&gt; Enclosing_Instance</div>
<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; {</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keyword">get</span></div>
<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; {</div>
<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">return</span> enclosingInstance;</div>
<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div>
<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keyword">internal</span> AnonymousClassFieldCacheDocIdSet(<span class="keywordtype">int</span>[] values, <span class="keywordtype">int</span> inclusiveLowerPoint, <span class="keywordtype">int</span> inclusiveUpperPoint, FieldCacheRangeFilter&lt;int?&gt; enclosingInstance, Lucene.Net.Index.IndexReader Param1, <span class="keywordtype">bool</span> Param2)</div>
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; : base(Param1, Param2)</div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; {</div>
<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; InitBlock(values, inclusiveLowerPoint, inclusiveUpperPoint, enclosingInstance);</div>
<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; }</div>
<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keyword">internal</span> <span class="keyword">override</span> <span class="keywordtype">bool</span> MatchDoc(<span class="keywordtype">int</span> doc)</div>
<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; {</div>
<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">return</span> values[doc] &gt;= inclusiveLowerPoint &amp;&amp; values[doc] &lt;= inclusiveUpperPoint;</div>
<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; }</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div>
<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keyword">internal</span> AnonymousClassFieldCacheRangeFilter3(<span class="keywordtype">string</span> field, Lucene.Net.Search.Parser parser, <span class="keywordtype">int</span>? lowerVal, <span class="keywordtype">int</span>? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; : base(field, parser, lowerVal, upperVal, includeLower, includeUpper)</div>
<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; {</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; }</div>
<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a> GetDocIdSet(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> reader)</div>
<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; {</div>
<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordtype">int</span> inclusiveLowerPoint;</div>
<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordtype">int</span> inclusiveUpperPoint;</div>
<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">if</span> (lowerVal != null)</div>
<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; {</div>
<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordtype">int</span> i = (int)lowerVal;</div>
<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">if</span> (!includeLower &amp;&amp; i == <span class="keywordtype">int</span>.MaxValue)</div>
<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; inclusiveLowerPoint = includeLower ? i : (i + 1);</div>
<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; }</div>
<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; {</div>
<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; inclusiveLowerPoint = <span class="keywordtype">int</span>.MinValue;</div>
<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div>
<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">if</span> (upperVal != null)</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; {</div>
<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordtype">int</span> i = (int)upperVal;</div>
<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">if</span> (!includeUpper &amp;&amp; i == <span class="keywordtype">int</span>.MinValue)</div>
<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; inclusiveUpperPoint = includeUpper ? i : (i - 1);</div>
<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div>
<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; {</div>
<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; inclusiveUpperPoint = <span class="keywordtype">int</span>.MaxValue;</div>
<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }</div>
<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div>
<div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">if</span> (inclusiveLowerPoint &gt; inclusiveUpperPoint)</div>
<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div>
<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordtype">int</span>[] values = Lucene.Net.Search.FieldCache_Fields.DEFAULT.GetInts(reader, field, (Lucene.Net.Search.IntParser)parser);</div>
<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="comment">// we only request the usage of termDocs, if the range contains 0</span></div>
<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> AnonymousClassFieldCacheDocIdSet(values, inclusiveLowerPoint, inclusiveUpperPoint, <span class="keyword">this</span>, reader, (inclusiveLowerPoint &lt;= 0 &amp;&amp; inclusiveUpperPoint &gt;= 0));</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; }</div>
<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; }</div>
<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; [Serializable]</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassFieldCacheRangeFilter4 : FieldCacheRangeFilter&lt;long?&gt;</div>
<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; {</div>
<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassFieldCacheDocIdSet : FieldCacheDocIdSet</div>
<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; {</div>
<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">private</span> <span class="keywordtype">void</span> InitBlock(<span class="keywordtype">long</span>[] values, <span class="keywordtype">long</span> inclusiveLowerPoint, <span class="keywordtype">long</span> inclusiveUpperPoint, FieldCacheRangeFilter&lt;long?&gt; enclosingInstance)</div>
<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; {</div>
<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; this.values = values;</div>
<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; this.inclusiveLowerPoint = inclusiveLowerPoint;</div>
<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; this.inclusiveUpperPoint = inclusiveUpperPoint;</div>
<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; this.enclosingInstance = enclosingInstance;</div>
<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; }</div>
<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keyword">private</span> <span class="keywordtype">long</span>[] values;</div>
<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keyword">private</span> <span class="keywordtype">long</span> inclusiveLowerPoint;</div>
<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keyword">private</span> <span class="keywordtype">long</span> inclusiveUpperPoint;</div>
<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">private</span> FieldCacheRangeFilter&lt;long?&gt; enclosingInstance;</div>
<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keyword">public</span> FieldCacheRangeFilter&lt;long?&gt; Enclosing_Instance</div>
<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; {</div>
<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keyword">get</span></div>
<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; {</div>
<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">return</span> enclosingInstance;</div>
<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div>
<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div>
<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div>
<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keyword">internal</span> AnonymousClassFieldCacheDocIdSet(<span class="keywordtype">long</span>[] values, <span class="keywordtype">long</span> inclusiveLowerPoint, <span class="keywordtype">long</span> inclusiveUpperPoint, FieldCacheRangeFilter&lt;long?&gt; enclosingInstance, Lucene.Net.Index.IndexReader Param1, <span class="keywordtype">bool</span> Param2)</div>
<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; : base(Param1, Param2)</div>
<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; {</div>
<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; InitBlock(values, inclusiveLowerPoint, inclusiveUpperPoint, enclosingInstance);</div>
<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; }</div>
<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keyword">internal</span> <span class="keyword">override</span> <span class="keywordtype">bool</span> MatchDoc(<span class="keywordtype">int</span> doc)</div>
<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; {</div>
<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">return</span> values[doc] &gt;= inclusiveLowerPoint &amp;&amp; values[doc] &lt;= inclusiveUpperPoint;</div>
<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; }</div>
<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; }</div>
<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keyword">internal</span> AnonymousClassFieldCacheRangeFilter4(<span class="keywordtype">string</span> field, Lucene.Net.Search.Parser parser, <span class="keywordtype">long</span>? lowerVal, <span class="keywordtype">long</span>? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; : base(field, parser, lowerVal, upperVal, includeLower, includeUpper)</div>
<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; {</div>
<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; }</div>
<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a> GetDocIdSet(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> reader)</div>
<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; {</div>
<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordtype">long</span> inclusiveLowerPoint;</div>
<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordtype">long</span> inclusiveUpperPoint;</div>
<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">if</span> (lowerVal != null)</div>
<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; {</div>
<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordtype">long</span> i = (long)lowerVal;</div>
<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">if</span> (!includeLower &amp;&amp; i == <span class="keywordtype">long</span>.MaxValue)</div>
<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; inclusiveLowerPoint = includeLower ? i : (i + 1L);</div>
<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div>
<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; {</div>
<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; inclusiveLowerPoint = <span class="keywordtype">long</span>.MinValue;</div>
<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; }</div>
<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">if</span> (upperVal != null)</div>
<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; {</div>
<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordtype">long</span> i = (long)upperVal;</div>
<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">if</span> (!includeUpper &amp;&amp; i == <span class="keywordtype">long</span>.MinValue)</div>
<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; inclusiveUpperPoint = includeUpper ? i : (i - 1L);</div>
<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div>
<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; {</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; inclusiveUpperPoint = <span class="keywordtype">long</span>.MaxValue;</div>
<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; }</div>
<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;</div>
<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">if</span> (inclusiveLowerPoint &gt; inclusiveUpperPoint)</div>
<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div>
<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordtype">long</span>[] values = Lucene.Net.Search.FieldCache_Fields.DEFAULT.GetLongs(reader, field, (Lucene.Net.Search.LongParser)parser);</div>
<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="comment">// we only request the usage of termDocs, if the range contains 0</span></div>
<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> AnonymousClassFieldCacheDocIdSet(values, inclusiveLowerPoint, inclusiveUpperPoint, <span class="keyword">this</span>, reader, (inclusiveLowerPoint &lt;= 0L &amp;&amp; inclusiveUpperPoint &gt;= 0L));</div>
<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div>
<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div>
<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; [Serializable]</div>
<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassFieldCacheRangeFilter5 : FieldCacheRangeFilter&lt;float?&gt;</div>
<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; {</div>
<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassFieldCacheDocIdSet : FieldCacheDocIdSet</div>
<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; {</div>
<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keyword">private</span> <span class="keywordtype">void</span> InitBlock(<span class="keywordtype">float</span>[] values, <span class="keywordtype">float</span> inclusiveLowerPoint, <span class="keywordtype">float</span> inclusiveUpperPoint, FieldCacheRangeFilter&lt;float?&gt; enclosingInstance)</div>
<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; {</div>
<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; this.values = values;</div>
<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; this.inclusiveLowerPoint = inclusiveLowerPoint;</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; this.inclusiveUpperPoint = inclusiveUpperPoint;</div>
<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; this.enclosingInstance = enclosingInstance;</div>
<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; }</div>
<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keyword">private</span> <span class="keywordtype">float</span>[] values;</div>
<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keyword">private</span> <span class="keywordtype">float</span> inclusiveLowerPoint;</div>
<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keyword">private</span> <span class="keywordtype">float</span> inclusiveUpperPoint;</div>
<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keyword">private</span> FieldCacheRangeFilter&lt;float?&gt; enclosingInstance;</div>
<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keyword">public</span> FieldCacheRangeFilter&lt;float?&gt; Enclosing_Instance</div>
<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; {</div>
<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keyword">get</span></div>
<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; {</div>
<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">return</span> enclosingInstance;</div>
<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; }</div>
<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div>
<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; }</div>
<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keyword">internal</span> AnonymousClassFieldCacheDocIdSet(<span class="keywordtype">float</span>[] values, <span class="keywordtype">float</span> inclusiveLowerPoint, <span class="keywordtype">float</span> inclusiveUpperPoint, FieldCacheRangeFilter&lt;float?&gt; enclosingInstance, Lucene.Net.Index.IndexReader Param1, <span class="keywordtype">bool</span> Param2)</div>
<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; : base(Param1, Param2)</div>
<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; {</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; InitBlock(values, inclusiveLowerPoint, inclusiveUpperPoint, enclosingInstance);</div>
<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; }</div>
<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keyword">internal</span> <span class="keyword">override</span> <span class="keywordtype">bool</span> MatchDoc(<span class="keywordtype">int</span> doc)</div>
<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; {</div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">return</span> values[doc] &gt;= inclusiveLowerPoint &amp;&amp; values[doc] &lt;= inclusiveUpperPoint;</div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; }</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; }</div>
<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">internal</span> AnonymousClassFieldCacheRangeFilter5(<span class="keywordtype">string</span> field, Lucene.Net.Search.Parser parser, <span class="keywordtype">float</span>? lowerVal, <span class="keywordtype">float</span>? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; : base(field, parser, lowerVal, upperVal, includeLower, includeUpper)</div>
<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; {</div>
<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; }</div>
<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a> GetDocIdSet(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> reader)</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; {</div>
<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="comment">// we transform the floating point numbers to sortable integers</span></div>
<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="comment">// using NumericUtils to easier find the next bigger/lower value</span></div>
<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordtype">float</span> inclusiveLowerPoint;</div>
<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordtype">float</span> inclusiveUpperPoint;</div>
<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">if</span> (lowerVal != null)</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; {</div>
<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordtype">float</span> f = (float)lowerVal;</div>
<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">if</span> (!includeUpper &amp;&amp; f &gt; 0.0f &amp;&amp; <span class="keywordtype">float</span>.IsInfinity(f))</div>
<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordtype">int</span> i = <a class="code" href="_numeric_token_stream_8cs.html#a35ee450e1da1e0bf32b70e5018cc9e5e">NumericUtils</a>.FloatToSortableInt(f);</div>
<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; inclusiveLowerPoint = <a class="code" href="_numeric_token_stream_8cs.html#a35ee450e1da1e0bf32b70e5018cc9e5e">NumericUtils</a>.SortableIntToFloat(includeLower ? i : (i + 1));</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; }</div>
<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; {</div>
<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; inclusiveLowerPoint = <span class="keywordtype">float</span>.NegativeInfinity;</div>
<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; }</div>
<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">if</span> (upperVal != null)</div>
<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; {</div>
<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordtype">float</span> f = (float)upperVal;</div>
<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">if</span> (!includeUpper &amp;&amp; f &lt; 0.0f &amp;&amp; <span class="keywordtype">float</span>.IsInfinity(f))</div>
<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordtype">int</span> i = <a class="code" href="_numeric_token_stream_8cs.html#a35ee450e1da1e0bf32b70e5018cc9e5e">NumericUtils</a>.FloatToSortableInt(f);</div>
<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; inclusiveUpperPoint = <a class="code" href="_numeric_token_stream_8cs.html#a35ee450e1da1e0bf32b70e5018cc9e5e">NumericUtils</a>.SortableIntToFloat(includeUpper ? i : (i - 1));</div>
<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; }</div>
<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; {</div>
<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; inclusiveUpperPoint = <span class="keywordtype">float</span>.PositiveInfinity;</div>
<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; }</div>
<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div>
<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">if</span> (inclusiveLowerPoint &gt; inclusiveUpperPoint)</div>
<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div>
<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordtype">float</span>[] values = Lucene.Net.Search.FieldCache_Fields.DEFAULT.GetFloats(reader, field, (Lucene.Net.Search.FloatParser)parser);</div>
<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="comment">// we only request the usage of termDocs, if the range contains 0</span></div>
<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> AnonymousClassFieldCacheDocIdSet(values, inclusiveLowerPoint, inclusiveUpperPoint, <span class="keyword">this</span>, reader, (inclusiveLowerPoint &lt;= 0.0f &amp;&amp; inclusiveUpperPoint &gt;= 0.0f));</div>
<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; }</div>
<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; }</div>
<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; [Serializable]</div>
<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassFieldCacheRangeFilter6 : FieldCacheRangeFilter&lt;double?&gt;</div>
<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; {</div>
<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassFieldCacheDocIdSet : FieldCacheDocIdSet</div>
<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; {</div>
<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keyword">private</span> <span class="keywordtype">void</span> InitBlock(<span class="keywordtype">double</span>[] values, <span class="keywordtype">double</span> inclusiveLowerPoint, <span class="keywordtype">double</span> inclusiveUpperPoint, FieldCacheRangeFilter&lt;double?&gt; enclosingInstance)</div>
<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; {</div>
<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; this.values = values;</div>
<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; this.inclusiveLowerPoint = inclusiveLowerPoint;</div>
<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; this.inclusiveUpperPoint = inclusiveUpperPoint;</div>
<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; this.enclosingInstance = enclosingInstance;</div>
<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; }</div>
<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keyword">private</span> <span class="keywordtype">double</span>[] values;</div>
<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keyword">private</span> <span class="keywordtype">double</span> inclusiveLowerPoint;</div>
<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keyword">private</span> <span class="keywordtype">double</span> inclusiveUpperPoint;</div>
<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keyword">private</span> FieldCacheRangeFilter&lt;double?&gt; enclosingInstance;</div>
<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keyword">public</span> FieldCacheRangeFilter&lt;double?&gt; Enclosing_Instance</div>
<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; {</div>
<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keyword">get</span></div>
<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; {</div>
<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">return</span> enclosingInstance;</div>
<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; }</div>
<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div>
<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; }</div>
<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keyword">internal</span> AnonymousClassFieldCacheDocIdSet(<span class="keywordtype">double</span>[] values, <span class="keywordtype">double</span> inclusiveLowerPoint, <span class="keywordtype">double</span> inclusiveUpperPoint, FieldCacheRangeFilter&lt;double?&gt; enclosingInstance, Lucene.Net.Index.IndexReader Param1, <span class="keywordtype">bool</span> Param2)</div>
<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; : base(Param1, Param2)</div>
<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; {</div>
<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; InitBlock(values, inclusiveLowerPoint, inclusiveUpperPoint, enclosingInstance);</div>
<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; }</div>
<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keyword">internal</span> <span class="keyword">override</span> <span class="keywordtype">bool</span> MatchDoc(<span class="keywordtype">int</span> doc)</div>
<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; {</div>
<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">return</span> values[doc] &gt;= inclusiveLowerPoint &amp;&amp; values[doc] &lt;= inclusiveUpperPoint;</div>
<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; }</div>
<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; }</div>
<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keyword">internal</span> AnonymousClassFieldCacheRangeFilter6(<span class="keywordtype">string</span> field, Lucene.Net.Search.Parser parser, <span class="keywordtype">double</span>? lowerVal, <span class="keywordtype">double</span>? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; : base(field, parser, lowerVal, upperVal, includeLower, includeUpper)</div>
<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; {</div>
<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; }</div>
<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a> GetDocIdSet(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> reader)</div>
<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; {</div>
<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="comment">// we transform the floating point numbers to sortable integers</span></div>
<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="comment">// using NumericUtils to easier find the next bigger/lower value</span></div>
<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordtype">double</span> inclusiveLowerPoint;</div>
<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordtype">double</span> inclusiveUpperPoint;</div>
<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">if</span> (lowerVal != null)</div>
<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; {</div>
<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordtype">double</span> f = (double)lowerVal;</div>
<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">if</span> (!includeUpper &amp;&amp; f &gt; 0.0 &amp;&amp; <span class="keywordtype">double</span>.IsInfinity(f))</div>
<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordtype">long</span> i = <a class="code" href="_numeric_token_stream_8cs.html#a35ee450e1da1e0bf32b70e5018cc9e5e">NumericUtils</a>.DoubleToSortableLong(f);</div>
<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; inclusiveLowerPoint = <a class="code" href="_numeric_token_stream_8cs.html#a35ee450e1da1e0bf32b70e5018cc9e5e">NumericUtils</a>.SortableLongToDouble(includeLower ? i : (i + 1L));</div>
<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; }</div>
<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; {</div>
<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; inclusiveLowerPoint = <span class="keywordtype">double</span>.NegativeInfinity;</div>
<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; }</div>
<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">if</span> (upperVal != null)</div>
<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; {</div>
<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordtype">double</span> f = (double)upperVal;</div>
<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">if</span> (!includeUpper &amp;&amp; f &lt; 0.0 &amp;&amp; <span class="keywordtype">double</span>.IsInfinity(f))</div>
<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordtype">long</span> i = <a class="code" href="_numeric_token_stream_8cs.html#a35ee450e1da1e0bf32b70e5018cc9e5e">NumericUtils</a>.DoubleToSortableLong(f);</div>
<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; inclusiveUpperPoint = <a class="code" href="_numeric_token_stream_8cs.html#a35ee450e1da1e0bf32b70e5018cc9e5e">NumericUtils</a>.SortableLongToDouble(includeUpper ? i : (i - 1L));</div>
<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; }</div>
<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; {</div>
<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; inclusiveUpperPoint = <span class="keywordtype">double</span>.PositiveInfinity;</div>
<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; }</div>
<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160;</div>
<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">if</span> (inclusiveLowerPoint &gt; inclusiveUpperPoint)</div>
<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">return</span> <a class="code" href="_doc_id_bit_set_8cs.html#a4245eee1c0c260a340820cfe67797b43">DocIdSet</a>.EMPTY_DOCIDSET;</div>
<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;</div>
<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordtype">double</span>[] values = Lucene.Net.Search.FieldCache_Fields.DEFAULT.GetDoubles(reader, field, (Lucene.Net.Search.DoubleParser)parser);</div>
<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="comment">// we only request the usage of termDocs, if the range contains 0</span></div>
<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> AnonymousClassFieldCacheDocIdSet(values, inclusiveLowerPoint, inclusiveUpperPoint, <span class="keyword">this</span>, reader, (inclusiveLowerPoint &lt;= 0.0 &amp;&amp; inclusiveUpperPoint &gt;= 0.0));</div>
<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; }</div>
<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; }</div>
<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;</div>
<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> FieldCacheRangeFilter&lt;string&gt; NewStringRange(<span class="keywordtype">string</span> field, <span class="keywordtype">string</span> lowerVal, <span class="keywordtype">string</span> upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; {</div>
<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> AnonymousClassFieldCacheRangeFilter(field, null, lowerVal, upperVal, includeLower, includeUpper);</div>
<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; }</div>
<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;</div>
<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> FieldCacheRangeFilter&lt;sbyte?&gt; NewByteRange(<span class="keywordtype">string</span> field, sbyte? lowerVal, sbyte? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; {</div>
<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keywordflow">return</span> NewByteRange(field, null, lowerVal, upperVal, includeLower, includeUpper);</div>
<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; }</div>
<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;</div>
<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> FieldCacheRangeFilter&lt;sbyte?&gt; NewByteRange(<span class="keywordtype">string</span> field, Lucene.Net.Search.ByteParser parser, sbyte? lowerVal, sbyte? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; {</div>
<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> AnonymousClassFieldCacheRangeFilter1(field, parser, lowerVal, upperVal, includeLower, includeUpper);</div>
<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; }</div>
<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;</div>
<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> FieldCacheRangeFilter&lt;short?&gt; NewShortRange(<span class="keywordtype">string</span> field, <span class="keywordtype">short</span>? lowerVal, <span class="keywordtype">short</span>? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; {</div>
<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">return</span> NewShortRange(field, null, lowerVal, upperVal, includeLower, includeUpper);</div>
<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; }</div>
<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div>
<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> FieldCacheRangeFilter&lt;short?&gt; NewShortRange(<span class="keywordtype">string</span> field, Lucene.Net.Search.ShortParser parser, <span class="keywordtype">short</span>? lowerVal, <span class="keywordtype">short</span>? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; {</div>
<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> AnonymousClassFieldCacheRangeFilter2(field, parser, lowerVal, upperVal, includeLower, includeUpper);</div>
<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; }</div>
<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;</div>
<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> FieldCacheRangeFilter&lt;int?&gt; NewIntRange(<span class="keywordtype">string</span> field, <span class="keywordtype">int</span>? lowerVal, <span class="keywordtype">int</span>? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; {</div>
<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="keywordflow">return</span> NewIntRange(field, null, lowerVal, upperVal, includeLower, includeUpper);</div>
<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; }</div>
<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;</div>
<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> FieldCacheRangeFilter&lt;int?&gt; NewIntRange(<span class="keywordtype">string</span> field, Lucene.Net.Search.IntParser parser, <span class="keywordtype">int</span>? lowerVal, <span class="keywordtype">int</span>? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; {</div>
<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> AnonymousClassFieldCacheRangeFilter3(field, parser, lowerVal, upperVal, includeLower, includeUpper);</div>
<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; }</div>
<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;</div>
<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> FieldCacheRangeFilter&lt;long?&gt; NewLongRange(<span class="keywordtype">string</span> field, <span class="keywordtype">long</span>? lowerVal, <span class="keywordtype">long</span>? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; {</div>
<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keywordflow">return</span> NewLongRange(field, null, lowerVal, upperVal, includeLower, includeUpper);</div>
<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; }</div>
<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;</div>
<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> FieldCacheRangeFilter&lt;long?&gt; NewLongRange(<span class="keywordtype">string</span> field, Lucene.Net.Search.LongParser parser, <span class="keywordtype">long</span>? lowerVal, <span class="keywordtype">long</span>? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; {</div>
<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> AnonymousClassFieldCacheRangeFilter4(field, parser, lowerVal, upperVal, includeLower, includeUpper);</div>
<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; }</div>
<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160;</div>
<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> FieldCacheRangeFilter&lt;float?&gt; NewFloatRange(<span class="keywordtype">string</span> field, <span class="keywordtype">float</span>? lowerVal, <span class="keywordtype">float</span>? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; {</div>
<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">return</span> NewFloatRange(field, null, lowerVal, upperVal, includeLower, includeUpper);</div>
<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; }</div>
<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;</div>
<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> FieldCacheRangeFilter&lt;float?&gt; NewFloatRange(<span class="keywordtype">string</span> field, Lucene.Net.Search.FloatParser parser, <span class="keywordtype">float</span>? lowerVal, <span class="keywordtype">float</span>? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; {</div>
<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> AnonymousClassFieldCacheRangeFilter5(field, parser, lowerVal, upperVal, includeLower, includeUpper);</div>
<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; }</div>
<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160;</div>
<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> FieldCacheRangeFilter&lt;double?&gt; NewDoubleRange(<span class="keywordtype">string</span> field, <span class="keywordtype">double</span>? lowerVal, <span class="keywordtype">double</span>? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; {</div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">return</span> NewDoubleRange(field, null, lowerVal, upperVal, includeLower, includeUpper);</div>
<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; }</div>
<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;</div>
<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keyword">public</span> <span class="keyword">static</span> FieldCacheRangeFilter&lt;double?&gt; NewDoubleRange(<span class="keywordtype">string</span> field, Lucene.Net.Search.DoubleParser parser, <span class="keywordtype">double</span>? lowerVal, <span class="keywordtype">double</span>? upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; {</div>
<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> AnonymousClassFieldCacheRangeFilter6(field, parser, lowerVal, upperVal, includeLower, includeUpper);</div>
<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; }</div>
<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; }</div>
<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;</div>
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; [Serializable]</div>
<div class="line"><a name="l00721"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_search_1_1_field_cache_range_filter_3_01_t_01_4.html"> 721</a></span>&#160; <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">class </span>FieldCacheRangeFilter&lt;T&gt; : <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_filter.html" title="Abstract base class for restricting which documents may be returned during searching.">Filter</a></div>
<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; {</div>
<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keyword">internal</span> System.String field;</div>
<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keyword">internal</span> Lucene.Net.Search.Parser parser;</div>
<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keyword">internal</span> T lowerVal;</div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keyword">internal</span> T upperVal;</div>
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keyword">internal</span> <span class="keywordtype">bool</span> includeLower;</div>
<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keyword">internal</span> <span class="keywordtype">bool</span> includeUpper;</div>
<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; </div>
<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="keyword">protected</span> <span class="keyword">internal</span> FieldCacheRangeFilter(System.String field, Lucene.Net.Search.Parser parser, T lowerVal, T upperVal, <span class="keywordtype">bool</span> includeLower, <span class="keywordtype">bool</span> includeUpper)</div>
<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; {</div>
<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; this.field = field;</div>
<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; this.parser = parser;</div>
<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; this.lowerVal = lowerVal;</div>
<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; this.upperVal = upperVal;</div>
<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; this.includeLower = includeLower;</div>
<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; this.includeUpper = includeUpper;</div>
<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; }</div>
<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; </div>
<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">override</span> <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_doc_id_set.html" title="A DocIdSet contains a set of doc ids. Implementing classes must only implement Iterator to provide ac...">DocIdSet</a> GetDocIdSet(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> reader);</div>
<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; </div>
<div class="line"><a name="l00743"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_search_1_1_field_cache_range_filter_3_01_t_01_4.html#aa7c41811070e047a62f9746d0a7becf3"> 743</a></span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> System.String ToString()</div>
<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; {</div>
<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; System.Text.StringBuilder sb = <span class="keyword">new</span> System.Text.StringBuilder(field).Append(<span class="stringliteral">&quot;:&quot;</span>);</div>
<div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keywordflow">return</span> sb.Append(includeLower?<span class="charliteral">&#39;[&#39;</span>:<span class="charliteral">&#39;{&#39;</span>).Append((lowerVal == null)?<span class="stringliteral">&quot;*&quot;</span>:lowerVal.ToString()).Append(<span class="stringliteral">&quot; TO &quot;</span>).Append((upperVal == null)?<span class="stringliteral">&quot;*&quot;</span>:upperVal.ToString()).Append(includeUpper?<span class="charliteral">&#39;]&#39;</span>:<span class="charliteral">&#39;}&#39;</span>).ToString();</div>
<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; }</div>
<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; </div>
<div class="line"><a name="l00749"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_search_1_1_field_cache_range_filter_3_01_t_01_4.html#ade5f092f32fcae808c14e946fa5805df"> 749</a></span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">bool</span> Equals(System.Object o)</div>
<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; {</div>
<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">if</span> (<span class="keyword">this</span> == o)</div>
<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">if</span> (!(o is <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_field_cache_range_filter_3_01_t_01_4.html">FieldCacheRangeFilter&lt;T&gt;</a>))</div>
<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; FieldCacheRangeFilter&lt;T&gt; other = (FieldCacheRangeFilter&lt;T&gt;) o;</div>
<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; </div>
<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordflow">if</span> (!this.field.Equals(other.field) || this.includeLower != other.includeLower || this.includeUpper != other.includeUpper)</div>
<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; {</div>
<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; }</div>
<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordflow">if</span> (this.lowerVal != null ?! this.lowerVal.Equals(other.lowerVal):other.lowerVal != null)</div>
<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keywordflow">if</span> (this.upperVal != null ?! this.upperVal.Equals(other.upperVal):other.upperVal != null)</div>
<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">if</span> (this.parser != null ?! this.parser.Equals(other.parser):other.parser != null)</div>
<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; }</div>
<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; </div>
<div class="line"><a name="l00770"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_search_1_1_field_cache_range_filter_3_01_t_01_4.html#af663661e237f0c882363e90a8ff4083b"> 770</a></span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> GetHashCode()</div>
<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; {</div>
<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keywordtype">int</span> h = field.GetHashCode();</div>
<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; h ^= ((lowerVal != null)?lowerVal.GetHashCode():550356204);</div>
<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; h = (h &lt;&lt; 1) | (<a class="code" href="class_lucene_1_1_net_1_1_support_1_1_number.html" title="A simple class for number conversions. ">Number</a>.<a class="code" href="class_lucene_1_1_net_1_1_support_1_1_number.html#aafe44e2acf7feacad6abd2a425730644" title="Performs an unsigned bitwise right shift with the specified number ">URShift</a>(h, 31)); <span class="comment">// rotate to distinguish lower from upper</span></div>
<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; h ^= ((upperVal != null)?upperVal.GetHashCode():- 1674416163);</div>
<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; h ^= ((parser != null)?parser.GetHashCode():- 1572457324);</div>
<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; h ^= (includeLower?1549299360:- 365038026) ^ (includeUpper?1721088258:1948649653);</div>
<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordflow">return</span> h;</div>
<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; }</div>
<div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; </div>
<div class="line"><a name="l00784"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_search_1_1_field_cache_range_filter_3_01_t_01_4.html#a85a25ef2fe2802042dbd412c3a79c216"> 784</a></span>&#160; <span class="keyword">public</span> <span class="keywordtype">string</span> GetField { <span class="keyword">get</span> { <span class="keywordflow">return</span> field; } }</div>
<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;</div>
<div class="line"><a name="l00789"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_search_1_1_field_cache_range_filter_3_01_t_01_4.html#a5efa343f228845a9986bbdee722cf1a6"> 789</a></span>&#160; <span class="keyword">public</span> <span class="keywordtype">bool</span> IncludesLower { <span class="keyword">get</span> { <span class="keywordflow">return</span> includeLower; } }</div>
<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;</div>
<div class="line"><a name="l00794"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_search_1_1_field_cache_range_filter_3_01_t_01_4.html#a5dcac89939b442e140fbd71aed27d8bd"> 794</a></span>&#160; <span class="keyword">public</span> <span class="keywordtype">bool</span> IncludesUpper { <span class="keyword">get</span> { <span class="keywordflow">return</span> includeUpper; } }</div>
<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;</div>
<div class="line"><a name="l00799"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_search_1_1_field_cache_range_filter_3_01_t_01_4.html#a29585b5dd7b3b20719567cee0910e5ed"> 799</a></span>&#160; <span class="keyword">public</span> T LowerValue { <span class="keyword">get</span> { <span class="keywordflow">return</span> lowerVal; } }</div>
<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;</div>
<div class="line"><a name="l00804"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_search_1_1_field_cache_range_filter_3_01_t_01_4.html#a7dc6c91c55b7eaf81a1cbcfb2ad4d24c"> 804</a></span>&#160; <span class="keyword">public</span> T UpperValue { <span class="keyword">get</span> { <span class="keywordflow">return</span> upperVal; } }</div>
<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;</div>
<div class="line"><a name="l00806"></a><span class="lineno"><a class="code" href="class_lucene_1_1_net_1_1_search_1_1_field_cache_range_filter_3_01_t_01_4.html#a285b6864d3dec8ac9ed24be5c9c9c293"> 806</a></span>&#160; <span class="keyword">public</span> <a class="code" href="interface_lucene_1_1_net_1_1_search_1_1_parser.html" title="Marker interface as super-interface to all parsers. It is used to specify a custom parser to SortFiel...">Parser</a> <a class="code" href="interface_lucene_1_1_net_1_1_search_1_1_parser.html" title="Marker interface as super-interface to all parsers. It is used to specify a custom parser to SortFiel...">Parser</a> { <span class="keyword">get</span> { <span class="keywordflow">return</span> parser; } }</div>
<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;</div>
<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <span class="keyword">internal</span> <span class="keyword">abstract</span> <span class="keyword">class </span>FieldCacheDocIdSet:<a class="code" href="class_lucene_1_1_net_1_1_search_1_1_doc_id_set.html" title="A DocIdSet contains a set of doc ids. Implementing classes must only implement Iterator to provide ac...">DocIdSet</a></div>
<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; {</div>
<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassDocIdSetIterator : <a class="code" href="class_lucene_1_1_net_1_1_search_1_1_doc_id_set_iterator.html" title="This abstract class defines methods to iterate over a set of non-decreasing doc ids. Note that this class assumes it iterates on doc Ids, and therefore NO_MORE_DOCS is set to Int32.MaxValue in order to be used as a sentinel object. Implementations of this class are expected to consider int.MaxValue as an invalid value. ">DocIdSetIterator</a></div>
<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; {</div>
<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="keyword">public</span> AnonymousClassDocIdSetIterator(Lucene.Net.Index.TermDocs termDocs, FieldCacheDocIdSet enclosingInstance)</div>
<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; {</div>
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; InitBlock(termDocs, enclosingInstance);</div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; }</div>
<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keyword">private</span> <span class="keywordtype">void</span> InitBlock(Lucene.Net.Index.TermDocs termDocs, FieldCacheDocIdSet enclosingInstance)</div>
<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; {</div>
<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; this.termDocs = termDocs;</div>
<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; this.enclosingInstance = enclosingInstance;</div>
<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; }</div>
<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keyword">private</span> Lucene.Net.Index.TermDocs termDocs;</div>
<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keyword">private</span> FieldCacheDocIdSet enclosingInstance;</div>
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="keyword">public</span> FieldCacheDocIdSet Enclosing_Instance</div>
<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; {</div>
<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="keyword">get</span></div>
<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; {</div>
<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keywordflow">return</span> enclosingInstance;</div>
<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; }</div>
<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; </div>
<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; }</div>
<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span> doc = - 1;</div>
<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; </div>
<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> DocID()</div>
<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; {</div>
<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="keywordflow">return</span> doc;</div>
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; }</div>
<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; </div>
<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> NextDoc()</div>
<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; {</div>
<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <span class="keywordflow">do</span> </div>
<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; {</div>
<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <span class="keywordflow">if</span> (!termDocs.Next())</div>
<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keywordflow">return</span> doc = NO_MORE_DOCS;</div>
<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; }</div>
<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordflow">while</span> (!Enclosing_Instance.MatchDoc(doc = termDocs.Doc));</div>
<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="keywordflow">return</span> doc;</div>
<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; }</div>
<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; </div>
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> Advance(<span class="keywordtype">int</span> target)</div>
<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; {</div>
<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="keywordflow">if</span> (!termDocs.SkipTo(target))</div>
<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="keywordflow">return</span> doc = NO_MORE_DOCS;</div>
<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <span class="keywordflow">while</span> (!Enclosing_Instance.MatchDoc(doc = termDocs.Doc))</div>
<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; {</div>
<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keywordflow">if</span> (!termDocs.Next())</div>
<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="keywordflow">return</span> doc = NO_MORE_DOCS;</div>
<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; }</div>
<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keywordflow">return</span> doc;</div>
<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; }</div>
<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; }</div>
<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="keyword">private</span> <span class="keyword">class </span>AnonymousClassDocIdSetIterator1:<a class="code" href="_doc_id_bit_set_8cs.html#adbba0575d48e29661f658fa4071fde4f">DocIdSetIterator</a></div>
<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; {</div>
<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keyword">public</span> AnonymousClassDocIdSetIterator1(FieldCacheDocIdSet enclosingInstance)</div>
<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; {</div>
<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; InitBlock(enclosingInstance);</div>
<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; }</div>
<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <span class="keyword">private</span> <span class="keywordtype">void</span> InitBlock(FieldCacheDocIdSet enclosingInstance)</div>
<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; {</div>
<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; this.enclosingInstance = enclosingInstance;</div>
<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; }</div>
<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="keyword">private</span> FieldCacheDocIdSet enclosingInstance;</div>
<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="keyword">public</span> FieldCacheDocIdSet Enclosing_Instance</div>
<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; {</div>
<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <span class="keyword">get</span></div>
<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; {</div>
<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="keywordflow">return</span> enclosingInstance;</div>
<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; }</div>
<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; </div>
<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; }</div>
<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <span class="keyword">private</span> <span class="keywordtype">int</span> doc = - 1;</div>
<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; </div>
<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> DocID()</div>
<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; {</div>
<div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keywordflow">return</span> doc;</div>
<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; }</div>
<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; </div>
<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> NextDoc()</div>
<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; {</div>
<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; {</div>
<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keywordflow">do</span> </div>
<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; {</div>
<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; doc++;</div>
<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; }</div>
<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keywordflow">while</span> (!Enclosing_Instance.MatchDoc(doc));</div>
<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <span class="keywordflow">return</span> doc;</div>
<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; }</div>
<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keywordflow">catch</span> (System.IndexOutOfRangeException)</div>
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; {</div>
<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">return</span> doc = NO_MORE_DOCS;</div>
<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; }</div>
<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; }</div>
<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; </div>
<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">int</span> Advance(<span class="keywordtype">int</span> target)</div>
<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; {</div>
<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <span class="keywordflow">try</span></div>
<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; {</div>
<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; doc = target;</div>
<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keywordflow">while</span> (!Enclosing_Instance.MatchDoc(doc))</div>
<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; {</div>
<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; doc++;</div>
<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; }</div>
<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="keywordflow">return</span> doc;</div>
<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; }</div>
<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keywordflow">catch</span> (System.IndexOutOfRangeException)</div>
<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; {</div>
<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="keywordflow">return</span> doc = NO_MORE_DOCS;</div>
<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; }</div>
<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; }</div>
<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; }</div>
<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <span class="keyword">private</span> <a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> reader;</div>
<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="keyword">private</span> <span class="keywordtype">bool</span> mayUseTermDocs;</div>
<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; </div>
<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keyword">internal</span> FieldCacheDocIdSet(<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html" title="IndexReader is an abstract class, providing an interface for accessing an index. Search of an index i...">IndexReader</a> reader, <span class="keywordtype">bool</span> mayUseTermDocs)</div>
<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; {</div>
<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; this.reader = reader;</div>
<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; this.mayUseTermDocs = mayUseTermDocs;</div>
<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; }</div>
<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; </div>
<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; <span class="keyword">internal</span> <span class="keyword">abstract</span> <span class="keywordtype">bool</span> MatchDoc(<span class="keywordtype">int</span> doc);</div>
<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;</div>
<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <span class="keywordtype">bool</span> IsCacheable</div>
<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; {</div>
<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keyword">get</span> { <span class="keywordflow">return</span> !(mayUseTermDocs &amp;&amp; reader.<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#ae5873f4e3a1253dd2cad0849eb74d9e0" title="Returns true if any documents have been deleted ">HasDeletions</a>); }</div>
<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; }</div>
<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;</div>
<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <span class="keyword">public</span> <span class="keyword">override</span> <a class="code" href="_doc_id_bit_set_8cs.html#adbba0575d48e29661f658fa4071fde4f">DocIdSetIterator</a> Iterator()</div>
<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; {</div>
<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <span class="comment">// Synchronization needed because deleted docs BitVector</span></div>
<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; <span class="comment">// can change after call to hasDeletions until TermDocs creation.</span></div>
<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; <span class="comment">// We only use an iterator with termDocs, when this was requested (e.g. range contains 0)</span></div>
<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; <span class="comment">// and the index has deletions</span></div>
<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <a class="code" href="interface_lucene_1_1_net_1_1_index_1_1_term_docs.html" title="TermDocs provides an interface for enumerating &lt;document, frequency&gt; pairs for a term. The document portion names each document containing the term. Documents are indicated by number. The frequency portion gives the number of times the term occurred in each document. The pairs are ordered by document number. ">TermDocs</a> termDocs;</div>
<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; lock (reader)</div>
<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; {</div>
<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; termDocs = IsCacheable ? null : reader.<a class="code" href="class_lucene_1_1_net_1_1_index_1_1_index_reader.html#acbbce30c73e871a7cf5c151ee0c775b9" title="Returns an enumeration of all the documents which contain term. For each document, the document number, the frequency of the term in that document is also provided, for use in search scoring. If term is null, then all non-deleted docs are returned with freq=1. Thus, this method implements the mapping: &amp;#160;&amp;#160; =&gt; &amp;#160;&amp;#160; &lt;docNum, freq&gt;* The enumeration is ordered by document number. Each document number is greater than all that precede it in the enumeration. ">TermDocs</a>(null);</div>
<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; }</div>
<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keywordflow">if</span> (termDocs != null)</div>
<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; {</div>
<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="comment">// a DocIdSetIterator using TermDocs to iterate valid docIds</span></div>
<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> AnonymousClassDocIdSetIterator(termDocs, <span class="keyword">this</span>);</div>
<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; }</div>
<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; <span class="keywordflow">else</span></div>
<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; {</div>
<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <span class="comment">// a DocIdSetIterator generating docIds by incrementing a variable -</span></div>
<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="comment">// this one can be used if there are no deletions are on the index</span></div>
<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <span class="keywordflow">return</span> <span class="keyword">new</span> AnonymousClassDocIdSetIterator1(<span class="keyword">this</span>);</div>
<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; }</div>
<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; }</div>
<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; }</div>
<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; }</div>
<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160;}</div>
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated on Thu Jan 3 2013 02:12:45 for Lucene.Net by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.3
</small></address>
</body>
</html>