public datawave.query.language.tree.QueryNode build(QueryNode queryNode) throws QueryNodeException { TermRangeQueryNode rangeNode = (TermRangeQueryNode) queryNode; FieldQueryNode upper = rangeNode.getUpperBound(); FieldQueryNode lower = rangeNode.getLowerBound(); String field = rangeNode.getField().toString(); RangeFieldedTerm rangeQuery = new RangeFieldedTerm(field, lower.getTextAsString(), upper.getTextAsString(), rangeNode.isLowerInclusive(), rangeNode.isUpperInclusive()); return new SelectorNode(rangeQuery); }
/** * Constructs a {@link TermRangeQueryNode} object using the given * {@link FieldQueryNode} as its bounds. * * @param lower the lower bound * @param upper the upper bound * @param lowerInclusive <code>true</code> if the lower bound is inclusive, otherwise, <code>false</code> * @param upperInclusive <code>true</code> if the upper bound is inclusive, otherwise, <code>false</code> */ public TermRangeQueryNode(FieldQueryNode lower, FieldQueryNode upper, boolean lowerInclusive, boolean upperInclusive) { setBounds(lower, upper, lowerInclusive, upperInclusive); }
@Override protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException { if (node instanceof TermRangeQueryNode) { TermRangeQueryNode rangeNode = (TermRangeQueryNode) node; FieldQueryNode lowerNode = rangeNode.getLowerBound(); FieldQueryNode upperNode = rangeNode.getUpperBound(); CharSequence lowerText = lowerNode.getText(); CharSequence upperText = upperNode.getText(); if (OPEN_RANGE_TOKEN.equals(upperNode.getTextAsString()) && (!(upperText instanceof UnescapedCharSequence) || !((UnescapedCharSequence) upperText) .wasEscaped(0))) { upperText = ""; } if (OPEN_RANGE_TOKEN.equals(lowerNode.getTextAsString()) && (!(lowerText instanceof UnescapedCharSequence) || !((UnescapedCharSequence) lowerText) .wasEscaped(0))) { lowerText = ""; } lowerNode.setText(lowerText); upperNode.setText(upperText); } return node; }
qUpper = new FieldQueryNode(field, EscapeQuerySyntaxImpl.discardEscapeChar(goop2.image), goop2.beginColumn, goop2.endColumn); q = new TermRangeQueryNode(qLower, qUpper, startInc ? true : false, endInc ? true : false); break; case QUOTED:
@Override protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException { if (node instanceof TermRangeQueryNode) { TermRangeQueryNode rangeNode = (TermRangeQueryNode) node; FieldQueryNode lowerNode = rangeNode.getLowerBound(); FieldQueryNode upperNode = rangeNode.getUpperBound(); CharSequence lowerText = lowerNode.getText(); CharSequence upperText = upperNode.getText(); if (OPEN_RANGE_TOKEN.equals(upperNode.getTextAsString()) && (!(upperText instanceof UnescapedCharSequence) || !((UnescapedCharSequence) upperText) .wasEscaped(0))) { upperText = ""; } if (OPEN_RANGE_TOKEN.equals(lowerNode.getTextAsString()) && (!(lowerText instanceof UnescapedCharSequence) || !((UnescapedCharSequence) lowerText) .wasEscaped(0))) { lowerText = ""; } lowerNode.setText(lowerText); upperNode.setText(upperText); } return node; }
qUpper = new FieldQueryNode(field, EscapeQuerySyntaxImpl.discardEscapeChar(goop2.image), goop2.beginColumn, goop2.endColumn); q = new TermRangeQueryNode(qLower, qUpper, startInc ? true : false, endInc ? true : false); break; case QUOTED:
public JexlNode build(QueryNode queryNode) throws QueryNodeException { TermRangeQueryNode rangeNode = (TermRangeQueryNode) queryNode; FieldQueryNode lower = rangeNode.getLowerBound(); FieldQueryNode upper = rangeNode.getUpperBound(); boolean lowerWildcard = lower.getTextAsString().equals("*"); boolean upperWildcard = upper.getTextAsString().equals("*"); if (lowerWildcard && upperWildcard) { throw new QueryNodeException(new MessageImpl("Wildcard of lower and upper bouds not allowed")); } String field = rangeNode.getField().toString(); return new JexlRangeNode(field, lower.getTextAsString(), upper.getTextAsString(), rangeNode.isLowerInclusive(), rangeNode.isUpperInclusive()); }
qUpper = new FieldQueryNode(field, EscapeQuerySyntaxImpl.discardEscapeChar(goop2.image), goop2.beginColumn, goop2.endColumn); q = new TermRangeQueryNode(qLower, qUpper, startInc ? true : false, endInc ? true : false); break; case QUOTED:
/** * Constructs a {@link TermRangeQueryNode} object using the given * {@link FieldQueryNode} as its bounds. * * @param lower the lower bound * @param upper the upper bound * @param lowerInclusive <code>true</code> if the lower bound is inclusive, otherwise, <code>false</code> * @param upperInclusive <code>true</code> if the upper bound is inclusive, otherwise, <code>false</code> */ public TermRangeQueryNode(FieldQueryNode lower, FieldQueryNode upper, boolean lowerInclusive, boolean upperInclusive) { setBounds(lower, upper, lowerInclusive, upperInclusive); }
@Override public TermRangeQuery build(QueryNode queryNode) throws QueryNodeException { TermRangeQueryNode rangeNode = (TermRangeQueryNode) queryNode; FieldQueryNode upper = rangeNode.getUpperBound(); FieldQueryNode lower = rangeNode.getLowerBound(); String field = StringUtils.toString(rangeNode.getField()); String lowerText = lower.getTextAsString(); String upperText = upper.getTextAsString(); .isLowerInclusive(), rangeNode.isUpperInclusive());
qUpper = new FieldQueryNode(field, EscapeQuerySyntaxImpl.discardEscapeChar(goop2.image), goop2.beginColumn, goop2.endColumn); q = new TermRangeQueryNode(qLower, qUpper, startInc ? true : false, endInc ? true : false); break; case QUOTED:
public NodeTermRangeQuery build(final QueryNode queryNode) throws QueryNodeException { final TermRangeQueryNode rangeNode = (TermRangeQueryNode) queryNode; final FieldQueryNode upper = rangeNode.getUpperBound(); final FieldQueryNode lower = rangeNode.getLowerBound(); final String field = StringUtils.toString(rangeNode.getField()); String lowerText = lower.getTextAsString(); String upperText = upper.getTextAsString(); if (lowerText.length() == 0) { lowerText = null; } if (upperText.length() == 0) { upperText = null; } final NodeTermRangeQuery rangeQuery = NodeTermRangeQuery.newStringRange(field, lowerText, upperText, rangeNode .isLowerInclusive(), rangeNode.isUpperInclusive()); final MultiNodeTermQuery.RewriteMethod method = (MultiNodeTermQuery.RewriteMethod) queryNode .getTag(MultiNodeTermRewriteMethodProcessor.TAG_ID); if (method != null) { rangeQuery.setRewriteMethod(method); } return rangeQuery; }
q = new TermRangeQueryNode(qLower, qUpper, startInc ? true : false, endInc ? true : false); break; case QUOTED:
@Override public TermRangeQuery build(QueryNode queryNode) throws QueryNodeException { TermRangeQueryNode rangeNode = (TermRangeQueryNode) queryNode; FieldQueryNode upper = rangeNode.getUpperBound(); FieldQueryNode lower = rangeNode.getLowerBound(); String field = StringUtils.toString(rangeNode.getField()); String lowerText = lower.getTextAsString(); String upperText = upper.getTextAsString(); .isLowerInclusive(), rangeNode.isUpperInclusive());
{if (true) throw new Error("Unhandled case: operator="+operator.toString());} q = new TermRangeQueryNode(qLower, qUpper, lowerInclusive, upperInclusive); break; default:
public NodeQuery build(final QueryNode queryNode) throws QueryNodeException { final TermRangeQueryNode rangeNode = (TermRangeQueryNode) queryNode; final FieldQueryNode upper = rangeNode.getUpperBound(); final FieldQueryNode lower = rangeNode.getLowerBound(); final String field = StringUtils.toString(rangeNode.getField()); String lowerText = lower.getTextAsString(); String upperText = upper.getTextAsString(); if (lowerText.length() == 0) { lowerText = null; } if (upperText.length() == 0) { upperText = null; } final NodeTermRangeQuery rangeQuery = NodeTermRangeQuery.newStringRange(field, lowerText, upperText, rangeNode.isLowerInclusive(), rangeNode.isUpperInclusive()); final MultiNodeTermQuery.RewriteMethod method = (MultiNodeTermQuery.RewriteMethod) queryNode.getTag(MultiNodeTermRewriteMethodProcessor.TAG_ID); if (method != null) { rangeQuery.setRewriteMethod(method); } // if it is tagged as a span query if (rangeNode.getTag(QueryTypeProcessor.QUERYTYPE_TAG) == QueryTypeProcessor.SPAN_QUERYTYPE) { return new MultiTermSpanQuery<>(rangeQuery); } else { return rangeQuery; } }
{if (true) throw new Error("Unhandled case: operator="+operator.toString());} q = new TermRangeQueryNode(qLower, qUpper, lowerInclusive, upperInclusive); break; default:
TermRangeQueryNode termRangeNode = (TermRangeQueryNode) node; FieldConfig fieldConfig = config.getFieldConfig(StringUtils .toString(termRangeNode.getField())); FieldQueryNode lower = termRangeNode.getLowerBound(); FieldQueryNode upper = termRangeNode.getUpperBound(); termRangeNode.getField(), lowerNumber, numberFormat); NumericQueryNode upperNode = new NumericQueryNode( termRangeNode.getField(), upperNumber, numberFormat); boolean lowerInclusive = termRangeNode.isLowerInclusive(); boolean upperInclusive = termRangeNode.isUpperInclusive();
FieldQueryNode upper = termRangeNode.getUpperBound(); FieldQueryNode lower = termRangeNode.getLowerBound(); CharSequence field = termRangeNode.getField(); String fieldStr = null; if (termRangeNode.isUpperInclusive()) { inclusive = true;
FieldQueryNode upper = termRangeNode.getUpperBound(); FieldQueryNode lower = termRangeNode.getLowerBound(); CharSequence field = termRangeNode.getField(); String fieldStr = null; if (termRangeNode.isUpperInclusive()) { inclusive = true;