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