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

### Method Summary

Methods
`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, 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, 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()`