package org.apache.lucene.queryparser.flexible.aqp.processors;
import org.apache.lucene.queryparser.flexible.core.config.QueryConfigHandler;
import org.apache.lucene.queryparser.flexible.aqp.nodes.AqpANTLRNode;
import org.apache.lucene.queryparser.flexible.standard.nodes.TermRangeQueryNode;
/**
* Converts QRANGEEX node into {@link TermRangeQueryNode}. The field
* value is the @{link DefaultFieldAttribute} specified in the configuration.
*
* Because QRANGE nodes have this shape:
*
* <pre>
* QRANGE
* / \
* QNORMAL QPHRASE
* / \
* some "phrase"
* </pre>
*
* It is important to queue {@AqpQRANGEEProcessor} and
* {@AqpQRANGEINProcessor} <b>before</b> processors that
* transform QNORMAL, QPHRASE and other Q nodes
* <p>
* If the user specified a field, it will be set by the @{link
* AqpFIELDProcessor} Therefore this processor should queue before @{link
* AqpFIELDProcessor}.
*
*
* @see QueryConfigHandler
* @see AqpQRANGEINProcessor
*
*/
public class AqpQRANGEEXProcessor extends AqpQRANGEINProcessor {
public AqpQRANGEEXProcessor() {
lowerInclusive = false;
upperInclusive = false;
}
public boolean nodeIsWanted(AqpANTLRNode node) {
if (node.getTokenLabel().equals("QRANGEEX")) {
return true;
}
return false;
}
}