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()`
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:

### 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()
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<T extends FieldValuePairQueryNode<?>>`
Returns:
  the lower bound node.

### getUpperBound

public T getUpperBound()
Returns the upper bound node.

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