pylucene 3.5.0-3
[pylucene.git] / lucene-java-3.5.0 / lucene / contrib / analyzers / common / src / java / org / apache / lucene / analysis / sinks / TokenRangeSinkFilter.java
1 package org.apache.lucene.analysis.sinks;
2
3 /**
4 * Licensed to the Apache Software Foundation (ASF) under one or more
5 * contributor license agreements.  See the NOTICE file distributed with
6 * this work for additional information regarding copyright ownership.
7 * The ASF licenses this file to You under the Apache License, Version 2.0
8 * (the "License"); you may not use this file except in compliance with
9 * 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, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 */
19
20 import java.io.IOException;
21
22 import org.apache.lucene.analysis.TeeSinkTokenFilter.SinkFilter;
23 import org.apache.lucene.util.AttributeSource;
24
25 /**
26  * Counts the tokens as they go by and saves to the internal list those between the range of lower and upper, exclusive of upper
27  *
28  **/
29 public class TokenRangeSinkFilter extends SinkFilter {
30   private int lower;
31   private int upper;
32   private int count;
33
34   public TokenRangeSinkFilter(int lower, int upper) {
35     this.lower = lower;
36     this.upper = upper;
37   }
38
39   
40   @Override
41   public boolean accept(AttributeSource source) {
42     try {
43       if (count >= lower && count < upper){
44         return true;
45       }
46       return false;
47     } finally {
48       count++;
49     }
50   }
51
52   @Override
53   public void reset() throws IOException {
54     count = 0;
55   }
56 }