1 17 package org.alfresco.repo.search.impl.lucene.analysis; 18 19 import java.io.IOException ; 20 import java.io.Reader ; 21 import java.text.ParseException ; 22 import java.text.SimpleDateFormat ; 23 import java.util.Date ; 24 25 import org.alfresco.util.CachingDateFormat; 26 import org.apache.lucene.analysis.Token; 27 import org.apache.lucene.analysis.Tokenizer; 28 import org.apache.lucene.analysis.WhitespaceTokenizer; 29 30 33 public class DateTokenFilter extends Tokenizer 34 { 35 Tokenizer baseTokeniser; 36 37 public DateTokenFilter(Reader in) 38 { 39 super(in); 40 baseTokeniser = new WhitespaceTokenizer(in); 41 } 42 43 public Token next() throws IOException 44 { 45 SimpleDateFormat df = CachingDateFormat.getDateFormat(); 46 SimpleDateFormat dof = CachingDateFormat.getDateOnlyFormat(); 47 Token candidate; 48 while((candidate = baseTokeniser.next()) != null) 49 { 50 Date date; 51 try 52 { 53 date = df.parse(candidate.termText()); 54 } 55 catch (ParseException e) 56 { 57 continue; 58 } 59 String valueString = dof.format(date); 60 Token integerToken = new Token(valueString, candidate.startOffset(), candidate.startOffset(), 61 candidate.type()); 62 return integerToken; 63 } 64 return null; 65 } 66 } | Popular Tags |