Package org.apache.lucene.queryparser.flexible.core.nodes

# Class PathQueryNode

java.lang.Object
org.apache.lucene.queryparser.flexible.core.nodes.QueryNodeImpl
org.apache.lucene.queryparser.flexible.core.nodes.PathQueryNode

All Implemented Interfaces:
  `Cloneable`, `QueryNode`

public class PathQueryNode extends QueryNodeImpl
A `PathQueryNode` is used to store queries like /company/USA/California /product/shoes/brown. QueryText are objects that contain the text, begin position and end position in the query.

Example how the text parser creates these objects:

     List values = ArrayList();
     values.add(new PathQueryNode.QueryText("company", 1, 7));
     values.add(new PathQueryNode.QueryText("USA", 9, 12));
     values.add(new PathQueryNode.QueryText("California", 14, 23));
     QueryNode q = new PathQueryNode(values);

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static class`
`PathQueryNode.QueryText`
Term text with a beginning and end position

## Field Summary

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

`PLAINTEXT_FIELD_NAME, toQueryStringIgnoreFields`

## Constructor Summary

Constructors
Constructor
Description
`PathQueryNode(List<PathQueryNode.QueryText> pathElements)`

## Method Summary

Modifier and Type
Method
Description
`QueryNode`
`cloneTree()`
Recursive clone the QueryNode tree The tags are not copied to the new tree when you call the cloneTree() method
`CharSequence`
`getFirstPathElement()`
Returns the CharSequence value of a specific QueryText element
`PathQueryNode.QueryText`
`getPathElement(int index)`
Returns the a specific QueryText element
`List<PathQueryNode.QueryText>`
`getPathElements()`
Returns the a List with all QueryText elements
`List<PathQueryNode.QueryText>`
`getPathElements(int startIndex)`
Returns a List QueryText element from position startIndex
`void`
`setPathElements(List<PathQueryNode.QueryText> elements)`
Returns the a List with all QueryText elements
`CharSequence`
`toQueryString(EscapeQuerySyntax escaper)`
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, 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`

## Constructor Details

### PathQueryNode

public PathQueryNode(List<PathQueryNode.QueryText> pathElements)

Parameters:
  `pathElements` - - List of QueryText objects

## Method Details

### getPathElements

public List<PathQueryNode.QueryText> getPathElements()
Returns the a List with all QueryText elements

Returns:
  QueryText List size

### setPathElements

public void setPathElements(List<PathQueryNode.QueryText> elements)
Returns the a List with all QueryText elements

### getPathElement

public PathQueryNode.QueryText getPathElement(int index)
Returns the a specific QueryText element

Returns:
  QueryText List size

### getFirstPathElement

public CharSequence getFirstPathElement()
Returns the CharSequence value of a specific QueryText element

Returns:
  the CharSequence for a specific QueryText element

### getPathElements

public List<PathQueryNode.QueryText> getPathElements(int startIndex)
Returns a List QueryText element from position startIndex

Returns:
  a List QueryText element from position startIndex

### toQueryString

public CharSequence toQueryString(EscapeQuerySyntax escaper)
Description copied from interface: `QueryNode`
convert to a query string understood by the query parser

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

### cloneTree

public QueryNode cloneTree() throws CloneNotSupportedException
Description copied from interface: `QueryNode`
Recursive clone the QueryNode tree The tags are not copied to the new tree when you call the cloneTree() method

Specified by:
  `cloneTree` in interface `QueryNode`
Overrides:
  `cloneTree` in class `QueryNodeImpl`
Returns:
  the cloned tree
Throws:
  `CloneNotSupportedException`