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