Package 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:
  `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
  Description
  `protected`
  `AbstractRangeQueryNode()`
  Constructs an `AbstractRangeQueryNode`, it should be invoked only by its extenders.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `CharSequence`
  `getField()`
  `T`
  `getLowerBound()`
  `T`
  `getUpperBound()`
  `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:

  ### 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 Details

  - ### AbstractRangeQueryNode

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

- ## Method Details

  - ### getField

    public CharSequence getField()
    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()
    Specified by:
      `getLowerBound` in interface `RangeQueryNode<T extends FieldValuePairQueryNode<?>>`
    Returns:
      the lower bound node.

  - ### getUpperBound

    public T getUpperBound()
    Specified by:
      `getUpperBound` in interface `RangeQueryNode<T extends 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<T extends 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<T extends 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()`