extensions/net.sf.basedb.varsearch/trunk/src/net/sf/basedb/varsearch/query/LongQueryField.java

Code
Comments
Other
Rev Date Author Line
6120 05 Feb 21 nicklas 1 package net.sf.basedb.varsearch.query;
6120 05 Feb 21 nicklas 2
6120 05 Feb 21 nicklas 3 import org.apache.lucene.document.LongPoint;
6120 05 Feb 21 nicklas 4 import org.apache.lucene.search.Query;
6120 05 Feb 21 nicklas 5
6120 05 Feb 21 nicklas 6 /**
6120 05 Feb 21 nicklas 7   Helper implementation for long fields.
6120 05 Feb 21 nicklas 8   @author nicklas
6120 05 Feb 21 nicklas 9 */
6120 05 Feb 21 nicklas 10 public class LongQueryField 
6171 18 Mar 21 nicklas 11   extends ComparableQueryField
6120 05 Feb 21 nicklas 12 {
6120 05 Feb 21 nicklas 13   
6120 05 Feb 21 nicklas 14   public static final LongQueryField INSTANCE = new LongQueryField();
6120 05 Feb 21 nicklas 15   
6120 05 Feb 21 nicklas 16   private LongQueryField()
6120 05 Feb 21 nicklas 17   {}
6120 05 Feb 21 nicklas 18   
6120 05 Feb 21 nicklas 19   @Override
6171 18 Mar 21 nicklas 20   public Query newExactQuery(String field, String value)
6120 05 Feb 21 nicklas 21   {
6171 18 Mar 21 nicklas 22     return LongPoint.newExactQuery(field, Long.parseLong(value));
6120 05 Feb 21 nicklas 23   }
6120 05 Feb 21 nicklas 24
6120 05 Feb 21 nicklas 25   @Override
6120 05 Feb 21 nicklas 26   public Query newRangeQuery(String field, String part1, String part2, boolean startInclusive, boolean endInclusive) 
6120 05 Feb 21 nicklas 27   {
6171 18 Mar 21 nicklas 28     long start = 0;
6171 18 Mar 21 nicklas 29     if (part1 != null && !"*".equals(part1)) 
6171 18 Mar 21 nicklas 30     {
6171 18 Mar 21 nicklas 31       start = Long.parseLong(part1);
6171 18 Mar 21 nicklas 32       if (!startInclusive) start++;
6171 18 Mar 21 nicklas 33     }
6171 18 Mar 21 nicklas 34     long end = Long.MAX_VALUE;
6171 18 Mar 21 nicklas 35     if (part2 != null && !"*".equals(part2)) 
6171 18 Mar 21 nicklas 36     {
6171 18 Mar 21 nicklas 37       end = Long.parseLong(part2);
6171 18 Mar 21 nicklas 38       if (!endInclusive) end--;
6171 18 Mar 21 nicklas 39     }
6120 05 Feb 21 nicklas 40     return LongPoint.newRangeQuery(field, start, end);
6120 05 Feb 21 nicklas 41   }
6120 05 Feb 21 nicklas 42   
6120 05 Feb 21 nicklas 43 }