diff src/goodjava/queryparser/NumberFieldParser.java @ 1445:f6075d7a36f2

better range query
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 05 Feb 2020 18:06:26 -0700
parents 5f038be65271
children
line wrap: on
line diff
--- a/src/goodjava/queryparser/NumberFieldParser.java	Wed Feb 05 08:16:15 2020 -0700
+++ b/src/goodjava/queryparser/NumberFieldParser.java	Wed Feb 05 18:06:26 2020 -0700
@@ -36,8 +36,8 @@
 	public static final FieldParser INT = new NumberFieldParser() {
 
 		@Override protected Query getRangeQuery(String field,String minQuery,String maxQuery,boolean includeMin,boolean includeMax) {
-			int min = Integer.parseInt(minQuery);
-			int max = Integer.parseInt(maxQuery);
+			Integer min = minQuery.equals("*") ? null : Integer.valueOf(minQuery);
+			Integer max = maxQuery.equals("*") ? null : Integer.valueOf(maxQuery);
 			return NumericRangeQuery.newIntRange(field,min,max,includeMin,includeMax);
 		}
 
@@ -49,8 +49,8 @@
 	public static final FieldParser LONG = new NumberFieldParser() {
 
 		@Override protected Query getRangeQuery(String field,String minQuery,String maxQuery,boolean includeMin,boolean includeMax) {
-			long min = Long.parseLong(minQuery);
-			long max = Long.parseLong(maxQuery);
+			Long min = minQuery.equals("*") ? null : Long.valueOf(minQuery);
+			Long max = maxQuery.equals("*") ? null : Long.valueOf(maxQuery);
 			return NumericRangeQuery.newLongRange(field,min,max,includeMin,includeMax);
 		}
 
@@ -62,8 +62,8 @@
 	public static final FieldParser FLOAT = new NumberFieldParser() {
 
 		@Override protected Query getRangeQuery(String field,String minQuery,String maxQuery,boolean includeMin,boolean includeMax) {
-			float min = Float.parseFloat(minQuery);
-			float max = Float.parseFloat(maxQuery);
+			Float min = minQuery.equals("*") ? null : Float.valueOf(minQuery);
+			Float max = maxQuery.equals("*") ? null : Float.valueOf(maxQuery);
 			return NumericRangeQuery.newFloatRange(field,min,max,includeMin,includeMax);
 		}
 
@@ -75,8 +75,8 @@
 	public static final FieldParser DOUBLE = new NumberFieldParser() {
 
 		@Override protected Query getRangeQuery(String field,String minQuery,String maxQuery,boolean includeMin,boolean includeMax) {
-			double min = Double.parseDouble(minQuery);
-			double max = Double.parseDouble(maxQuery);
+			Double min = minQuery.equals("*") ? null : Double.valueOf(minQuery);
+			Double max = maxQuery.equals("*") ? null : Double.valueOf(maxQuery);
 			return NumericRangeQuery.newDoubleRange(field,min,max,includeMin,includeMax);
 		}