Lucene.Net  3.0.3
Lucene.Net is a port of the Lucene search engine library, written in C# and targeted at .NET runtime users.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Pages
RussianLowerCaseFilter.cs
Go to the documentation of this file.
1 /*
2  *
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements. See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership. The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License. You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied. See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  *
20 */
21 
22 using System;
23 using Lucene.Net.Analysis;
24 using Lucene.Net.Analysis.Tokenattributes;
25 
26 namespace Lucene.Net.Analysis.Ru
27 {
28  /// <summary>
29  /// Normalizes token text to lower case.
30  /// </summary>
31  [Obsolete("Use LowerCaseFilter instead, which has the same functionality. This filter will be removed in Lucene 4.0")]
32  public sealed class RussianLowerCaseFilter : TokenFilter
33  {
34  private ITermAttribute termAtt;
35 
37  : base(_in)
38  {
39  termAtt = AddAttribute<ITermAttribute>();
40  }
41 
42  public sealed override bool IncrementToken()
43  {
44  if (input.IncrementToken())
45  {
46  char[] chArray = termAtt.TermBuffer();
47  int chLen = termAtt.TermLength();
48  for (int i = 0; i < chLen; i++)
49  {
50  chArray[i] = char.ToLower(chArray[i]);
51  }
52  return true;
53  }
54  else
55  {
56  return false;
57  }
58  }
59  }
60 }