KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > alfresco > repo > search > impl > lucene > analysis > LongTokenFilter


1 /*
2  * Copyright (C) 2005 Alfresco, Inc.
3  *
4  * Licensed under the Mozilla Public License version 1.1
5  * with a permitted attribution clause. You may obtain a
6  * copy of the License at
7  *
8  * http://www.alfresco.org/legal/license.txt
9  *
10  * Unless required by applicable law or agreed to in writing,
11  * software distributed under the License is distributed on an
12  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
13  * either express or implied. See the License for the specific
14  * language governing permissions and limitations under the
15  * License.
16  */

17 package org.alfresco.repo.search.impl.lucene.analysis;
18
19 import java.io.IOException JavaDoc;
20 import java.io.Reader JavaDoc;
21
22 import org.apache.lucene.analysis.Token;
23 import org.apache.lucene.analysis.Tokenizer;
24 import org.apache.lucene.analysis.standard.StandardTokenizer;
25
26 /**
27  * Simple tokeniser for longs.
28  *
29  * @author Andy Hind
30  */

31 public class LongTokenFilter extends Tokenizer
32 {
33     Tokenizer baseTokeniser;
34     
35     public LongTokenFilter(Reader JavaDoc in)
36     {
37         super(in);
38         baseTokeniser = new StandardTokenizer(in);
39     }
40
41     /*
42      * (non-Javadoc)
43      *
44      * @see org.apache.lucene.analysis.TokenStream#next()
45      */

46
47     public Token next() throws IOException JavaDoc
48     {
49         Token candidate;
50         while((candidate = baseTokeniser.next()) != null)
51         {
52             Long JavaDoc longValue = Long.valueOf(candidate.termText());
53             String JavaDoc valueString = NumericEncoder.encode(longValue.longValue());
54             Token longToken = new Token(valueString, candidate.startOffset(), candidate.startOffset(),
55                     candidate.type());
56             return longToken;
57         }
58         return null;
59     }
60 }
Popular Tags