X-Git-Url: https://git.mdrn.pl/pylucene.git/blobdiff_plain/a2e61f0c04805cfcb8706176758d1283c7e3a55c..aaeed5504b982cf3545252ab528713250aa33eed:/lucene-java-3.4.0/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/NumericRangeQueryBuilder.java diff --git a/lucene-java-3.4.0/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/NumericRangeQueryBuilder.java b/lucene-java-3.4.0/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/NumericRangeQueryBuilder.java deleted file mode 100644 index 5cf129a..0000000 --- a/lucene-java-3.4.0/lucene/contrib/xml-query-parser/src/java/org/apache/lucene/xmlparser/builders/NumericRangeQueryBuilder.java +++ /dev/null @@ -1,127 +0,0 @@ -package org.apache.lucene.xmlparser.builders; - -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -import org.apache.lucene.search.NumericRangeQuery; -import org.apache.lucene.search.Query; -import org.apache.lucene.util.NumericUtils; -import org.apache.lucene.xmlparser.DOMUtils; -import org.apache.lucene.xmlparser.ParserException; -import org.apache.lucene.xmlparser.QueryBuilder; -import org.w3c.dom.Element; - -/** - * Creates a {@link NumericRangeQuery}. The table below specifies the required - * attributes and the defaults if optional attributes are omitted. For more - * detail on what each of the attributes actually do, consult the documentation - * for {@link NumericRangeQuery}: - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - * - *
Attribute nameValuesRequiredDefault
fieldNameStringYesN/A
lowerTermSpecified by typeYesN/A
upperTermSpecified by typeYesN/A
typeint, long, float, doubleNoint
includeLowertrue, falseNotrue
includeUppertrue, falseNotrue
precisionStepIntegerNo4
- *

- * A {@link ParserException} will be thrown if an error occurs parsing the - * supplied lowerTerm or upperTerm into the numeric type - * specified by type. - */ -public class NumericRangeQueryBuilder implements QueryBuilder { - - public Query getQuery(Element e) throws ParserException { - String field = DOMUtils.getAttributeWithInheritanceOrFail(e, "fieldName"); - String lowerTerm = DOMUtils.getAttributeOrFail(e, "lowerTerm"); - String upperTerm = DOMUtils.getAttributeOrFail(e, "upperTerm"); - boolean lowerInclusive = DOMUtils.getAttribute(e, "includeLower", true); - boolean upperInclusive = DOMUtils.getAttribute(e, "includeUpper", true); - int precisionStep = DOMUtils.getAttribute(e, "precisionStep", NumericUtils.PRECISION_STEP_DEFAULT); - - String type = DOMUtils.getAttribute(e, "type", "int"); - try { - Query filter; - if (type.equalsIgnoreCase("int")) { - filter = NumericRangeQuery.newIntRange(field, precisionStep, Integer - .valueOf(lowerTerm), Integer.valueOf(upperTerm), lowerInclusive, - upperInclusive); - } else if (type.equalsIgnoreCase("long")) { - filter = NumericRangeQuery.newLongRange(field, precisionStep, Long - .valueOf(lowerTerm), Long.valueOf(upperTerm), lowerInclusive, - upperInclusive); - } else if (type.equalsIgnoreCase("double")) { - filter = NumericRangeQuery.newDoubleRange(field, precisionStep, Double - .valueOf(lowerTerm), Double.valueOf(upperTerm), lowerInclusive, - upperInclusive); - } else if (type.equalsIgnoreCase("float")) { - filter = NumericRangeQuery.newFloatRange(field, precisionStep, Float - .valueOf(lowerTerm), Float.valueOf(upperTerm), lowerInclusive, - upperInclusive); - } else { - throw new ParserException( - "type attribute must be one of: [long, int, double, float]"); - } - return filter; - } catch (NumberFormatException nfe) { - throw new ParserException( - "Could not parse lowerTerm or upperTerm into a number", nfe); - } - } -}