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

## Interface QueryNode

All Known Subinterfaces:
  FieldableNode, FieldValuePairQueryNode<T>, RangeQueryNode<T>, ValueQueryNode<T>

All Known Implementing Classes:
  AbstractRangeQueryNode, AndQueryNode, AnyQueryNode, BooleanModifierNode, BooleanQueryNode, BoostQueryNode, DeletedQueryNode, FieldQueryNode, FuzzyQueryNode, GroupQueryNode, MatchAllDocsQueryNode, MatchNoDocsQueryNode, ModifierQueryNode, MultiPhraseQueryNode, NoTokenFoundQueryNode, OpaqueQueryNode, OrQueryNode, PathQueryNode, PhraseSlopQueryNode, PointQueryNode, PointRangeQueryNode, PrefixWildcardQueryNode, ProximityQueryNode, QueryNodeImpl, QuotedFieldQueryNode, RegexpQueryNode, SlopQueryNode, SynonymQueryNode, TermRangeQueryNode, TokenizedPhraseQueryNode, WildcardQueryNode

    public interface QueryNode

A `QueryNode` is a interface implemented by all nodes on a QueryNode tree.

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `add(List<QueryNode> children)`
`void` `add(QueryNode child)`
`QueryNode` `cloneTree()` Recursive clone the QueryNode tree The tags are not copied to the new tree when you call the cloneTree() method
`boolean` `containsTag(String tagName)` verify if a node contains a tag
`List<QueryNode>` `getChildren()` get Children nodes
`QueryNode` `getParent()`
`Object` `getTag(String tagName)` Returns object stored under that tag name
`Map<String,Object>` `getTagMap()` Returns a map containing all tags attached to this query node.
`boolean` `isLeaf()` verify if a node is a Leaf node
`void` `removeChildren(QueryNode childNode)` Remove a child node
`void` `removeFromParent()` Removes this query node from its parent.
`void` `set(List<QueryNode> children)`
`void` `setTag(String tagName, Object value)` Associate the specified value with the specified tagName.
`CharSequence` `toQueryString(EscapeQuerySyntax escapeSyntaxParser)` convert to a query string understood by the query parser
`String` `toString()` for printing
`void` `unsetTag(String tagName)` Unset a tag.

### Method Detail

#### toQueryString

    CharSequence toQueryString(EscapeQuerySyntax escapeSyntaxParser)

convert to a query string understood by the query parser

#### toString

    String toString()

for printing

Overrides:
  `toString` in class `Object`

#### getChildren

    List<QueryNode> getChildren()

get Children nodes

#### isLeaf

    boolean isLeaf()

verify if a node is a Leaf node

#### containsTag

    boolean containsTag(String tagName)

verify if a node contains a tag

#### getTag

    Object getTag(String tagName)

Returns object stored under that tag name

#### getParent

    QueryNode getParent()

#### cloneTree

    QueryNode cloneTree()
                 throws CloneNotSupportedException

Recursive clone the QueryNode tree The tags are not copied to the new tree when you call the cloneTree() method

Returns:
  the cloned tree
Throws:
  `CloneNotSupportedException`

#### add

    void add(QueryNode child)

#### add

    void add(List<QueryNode> children)

#### set

    void set(List<QueryNode> children)

#### setTag

    void setTag(String tagName,
                Object value)

Associate the specified value with the specified tagName. If the tagName already exists, the old value is replaced. The tagName and value cannot be null. tagName will be converted to lowercase.

#### unsetTag

    void unsetTag(String tagName)

Unset a tag. tagName will be converted to lowercase.

#### getTagMap

    Map<String,Object> getTagMap()

Returns a map containing all tags attached to this query node.

Returns:
  a map containing all tags attached to this query node

#### removeFromParent

    void removeFromParent()

Removes this query node from its parent.

#### removeChildren

    void removeChildren(QueryNode childNode)

Remove a child node

Parameters:
  `childNode` - Which child to remove