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
`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 and Description
`PathQueryNode(List<PathQueryNode.QueryText> pathElements)`

### Method Summary

All Methods Instance Methods Concrete Methods
`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: 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, 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 Detail

#### PathQueryNode

    public PathQueryNode(List<PathQueryNode.QueryText> pathElements)

Parameters:
  `pathElements` - - List of QueryText objects

### Method Detail

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