HitIterator.cs
上传用户:zhangkuixh
上传日期:2013-09-30
资源大小:5473k
文件大小:2k
源码类别:

搜索引擎

开发平台:

C#

  1. /*
  2.  * Copyright 2005 The Apache Software Foundation
  3.  * 
  4.  * Licensed under the Apache License, Version 2.0 (the "License");
  5.  * you may not use this file except in compliance with the License.
  6.  * You may obtain a copy of the License at
  7.  * 
  8.  * http://www.apache.org/licenses/LICENSE-2.0
  9.  * 
  10.  * Unless required by applicable law or agreed to in writing, software
  11.  * distributed under the License is distributed on an "AS IS" BASIS,
  12.  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13.  * See the License for the specific language governing permissions and
  14.  * limitations under the License.
  15.  */
  16. using System;
  17. namespace Lucene.Net.Search
  18. {
  19. /// <summary> An iterator over {@link Hits} that provides lazy fetching of each document.
  20. /// {@link Hits#Iterator()} returns an instance of this class.  Calls to {@link #next()}
  21. /// return a {@link Hit} instance.
  22. /// 
  23. /// </summary>
  24. /// <author>  Jeremy Rayner
  25. /// </author>
  26. public class HitIterator : System.Collections.IEnumerator
  27. {
  28. /// <summary> Returns a {@link Hit} instance representing the next hit in {@link Hits}.
  29. /// 
  30. /// </summary>
  31. /// <returns> Next {@link Hit}.
  32. /// </returns>
  33. public virtual System.Object Current
  34. {
  35. get
  36. {
  37. if (hitNumber == hits.Length())
  38. throw new System.ArgumentOutOfRangeException();
  39. System.Object next = new Hit(hits, hitNumber);
  40. hitNumber++;
  41. return next;
  42. }
  43. }
  44. private Hits hits;
  45. private int hitNumber = 0;
  46. /// <summary> Constructed from {@link Hits#Iterator()}.</summary>
  47. internal HitIterator(Hits hits)
  48. {
  49. this.hits = hits;
  50. }
  51. /// <returns> true if current hit is less than the total number of {@link Hits}.
  52. /// </returns>
  53. public virtual bool MoveNext()
  54. {
  55. return hitNumber < hits.Length();
  56. }
  57. /// <summary> Unsupported operation.
  58. /// 
  59. /// </summary>
  60. /// <throws>  UnsupportedOperationException </throws>
  61. public virtual void  Remove()
  62. {
  63. throw new System.NotSupportedException();
  64. }
  65. /// <summary> Returns the total number of hits.</summary>
  66. public virtual int Length()
  67. {
  68. return hits.Length();
  69. }
  70. //UPGRADE_TODO: The following method was automatically generated and it must be implemented in order to preserve the class logic. "ms-help://MS.VSCC.v80/dv_commoner/local/redirect.htm?index='!DefaultContextWindowIndex'&keyword='jlca1232'"
  71. virtual public void  Reset()
  72. {
  73. }
  74. }
  75. }