Lucene.Net  3.0.3
Lucene.Net is a .NET port of the Java Lucene Indexing Library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties
FieldCacheSource.cs
Go to the documentation of this file.
1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */
17 
18 using System;
19 
20 using IndexReader = Lucene.Net.Index.IndexReader;
21 using FieldCache = Lucene.Net.Search.FieldCache;
22 
23 namespace Lucene.Net.Search.Function
24 {
25 
49  [Serializable]
50  public abstract class FieldCacheSource:ValueSource
51  {
52  private System.String field;
53 
55  protected FieldCacheSource(System.String field)
56  {
57  this.field = field;
58  }
59 
60  /* (non-Javadoc) <see cref="Lucene.Net.Search.Function.ValueSource.getValues(Lucene.Net.Index.IndexReader) */
61  public override DocValues GetValues(IndexReader reader)
62  {
63  return GetCachedFieldValues(Lucene.Net.Search.FieldCache_Fields.DEFAULT, field, reader);
64  }
65 
66  /* (non-Javadoc) <see cref="Lucene.Net.Search.Function.ValueSource.description() */
67  public override System.String Description()
68  {
69  return field;
70  }
71 
79  public abstract DocValues GetCachedFieldValues(FieldCache cache, System.String field, IndexReader reader);
80 
81  /*(non-Javadoc) <see cref="java.lang.Object.equals(java.lang.Object) */
82  public override bool Equals(System.Object o)
83  {
84  if (!(o is FieldCacheSource))
85  {
86  return false;
87  }
88  FieldCacheSource other = (FieldCacheSource) o;
89  return this.field.Equals(other.field) && CachedFieldSourceEquals(other);
90  }
91 
92  /*(non-Javadoc) <see cref="java.lang.Object.hashCode() */
93  public override int GetHashCode()
94  {
95  return field.GetHashCode() + CachedFieldSourceHashCode();
96  }
97 
101  public abstract bool CachedFieldSourceEquals(FieldCacheSource other);
102 
108  public abstract int CachedFieldSourceHashCode();
109  }
110 }