org.apache.lucene.queryparser.flexible.standard.nodes

## Class AbstractRangeQueryNode<T extends FieldValuePairQueryNode<?>>

- java.lang.Object
- - org.apache.lucene.queryparser.flexible.core.nodes.QueryNodeImpl
  - - org.apache.lucene.queryparser.flexible.standard.nodes.AbstractRangeQueryNode<T>

- Type Parameters:
    `T` - the type of the range query bounds (lower and upper)
  All Implemented Interfaces:
    Cloneable, FieldableNode, QueryNode, RangeQueryNode<FieldValuePairQueryNode<?>>
  Direct Known Subclasses:
    LegacyNumericRangeQueryNode, PointRangeQueryNode, TermRangeQueryNode

      public class AbstractRangeQueryNode<T extends FieldValuePairQueryNode<?>>
      extends QueryNodeImpl
      implements RangeQueryNode<FieldValuePairQueryNode<?>>

  This class should be extended by nodes intending to represent range queries.

- - ### Field Summary

    - ### Fields inherited from class org.apache.lucene.queryparser.flexible.core.nodes.QueryNodeImpl

      `PLAINTEXT_FIELD_NAME, toQueryStringIgnoreFields`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractRangeQueryNode()` Constructs an `AbstractRangeQueryNode`, it should be invoked only by its extenders.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `CharSequence` | `getField()` Returns the field associated with this node.
    `T` | `getLowerBound()` Returns the lower bound node.
    `T` | `getUpperBound()` Returns the upper bound node.
    `boolean` | `isLowerInclusive()` Returns whether the lower bound is inclusive or exclusive.
    `boolean` | `isUpperInclusive()` Returns whether the upper bound is inclusive or exclusive.
    `void` | `setBounds(T lower, T upper, boolean lowerInclusive, boolean upperInclusive)` Sets the lower and upper bounds.
    `void` | `setField(CharSequence fieldName)` Sets the field associated with this node.
    `CharSequence` | `toQueryString(EscapeQuerySyntax escapeSyntaxParser)` convert to a query string understood by the query parser
    `String` | `toString()` Every implementation of this class should return pseudo xml like this: For FieldQueryNode: <field start='1' end='2' field='subject' text='foo'/>

    - ### Methods inherited from class org.apache.lucene.queryparser.flexible.core.nodes.QueryNodeImpl

      `add, add, allocate, clone, cloneTree, containsTag, getChildren, getParent, getTag, getTagMap, isDefaultField, isLeaf, isRoot, removeChildren, removeFromParent, set, setLeaf, setTag, unsetTag`

    - ### Methods inherited from class java.lang.Object

      `equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface org.apache.lucene.queryparser.flexible.core.nodes.QueryNode

      `add, add, cloneTree, containsTag, getChildren, getParent, getTag, getTagMap, isLeaf, removeChildren, removeFromParent, set, setTag, unsetTag`

- - ### Constructor Detail

    - #### AbstractRangeQueryNode

          protected AbstractRangeQueryNode()

      Constructs an `AbstractRangeQueryNode`, it should be invoked only by its extenders.

  - ### Method Detail

    - #### getField

          public CharSequence getField()

      Returns the field associated with this node.
      Specified by:
        `getField` in interface `FieldableNode`
      Returns:
        the field associated with this node
      See Also:
        `FieldableNode`

    - #### setField

          public void setField(CharSequence fieldName)

      Sets the field associated with this node.
      Specified by:
        `setField` in interface `FieldableNode`
      Parameters:
        `fieldName` - the field associated with this node

    - #### getLowerBound

          public T getLowerBound()

      Returns the lower bound node.
      Specified by:
        `getLowerBound` in interface `RangeQueryNode<FieldValuePairQueryNode<?>>`
      Returns:
        the lower bound node.

    - #### getUpperBound

          public T getUpperBound()

      Returns the upper bound node.
      Specified by:
        `getUpperBound` in interface `RangeQueryNode<FieldValuePairQueryNode<?>>`
      Returns:
        the upper bound node.

    - #### isLowerInclusive

          public boolean isLowerInclusive()

      Returns whether the lower bound is inclusive or exclusive.
      Specified by:
        `isLowerInclusive` in interface `RangeQueryNode<FieldValuePairQueryNode<?>>`
      Returns:
        `true` if the lower bound is inclusive, otherwise, `false`

    - #### isUpperInclusive

          public boolean isUpperInclusive()

      Returns whether the upper bound is inclusive or exclusive.
      Specified by:
        `isUpperInclusive` in interface `RangeQueryNode<FieldValuePairQueryNode<?>>`
      Returns:
        `true` if the upper bound is inclusive, otherwise, `false`

    - #### setBounds

          public void setBounds(T lower,
                                T upper,
                                boolean lowerInclusive,
                                boolean upperInclusive)

      Sets the lower and upper bounds.
      Parameters:
        `lower` - the lower bound, `null` if lower bound is open
        `upper` - the upper bound, `null` if upper bound is open
        `lowerInclusive` - `true` if the lower bound is inclusive, otherwise, `false`
        `upperInclusive` - `true` if the upper bound is inclusive, otherwise, `false`
      See Also:
        `getLowerBound()`, `getUpperBound()`, `isLowerInclusive()`, `isUpperInclusive()`

    - #### toQueryString

          public CharSequence toQueryString(EscapeQuerySyntax escapeSyntaxParser)

      Description copied from interface: `QueryNode`
      convert to a query string understood by the query parser
      Specified by:
        `toQueryString` in interface `QueryNode`

    - #### toString

          public String toString()

      Description copied from class: `QueryNodeImpl`
      Every implementation of this class should return pseudo xml like this: For FieldQueryNode: <field start='1' end='2' field='subject' text='foo'/>
      Specified by:
        `toString` in interface `QueryNode`
      Overrides:
        `toString` in class `QueryNodeImpl`
      See Also:
        `QueryNode.toString()`

Copyright © 2000-2018 Apache Software Foundation. All Rights Reserved.