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

# Class ModifierQueryNode

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

All Implemented Interfaces:
  `Cloneable`, `QueryNode`

Direct Known Subclasses:
  `BooleanModifierNode`

public class ModifierQueryNode extends QueryNodeImpl
A `ModifierQueryNode` indicates the modifier value (+,-,?,NONE) for each term on the query string. For example "+t1 -t2 t3" will have a tree of:

> <BooleanQueryNode> <ModifierQueryNode modifier="MOD_REQ"> <t1/> </ModifierQueryNode> <ModifierQueryNode modifier="MOD_NOT"> <t2/> </ModifierQueryNode> <t3/> </BooleanQueryNode>

## Nested Class Summary

Nested Classes
Modifier and Type
Class
Description
`static enum`
`ModifierQueryNode.Modifier`
Modifier type: such as required (REQ), prohibited (NOT)

## Field Summary

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

`PLAINTEXT_FIELD_NAME, toQueryStringIgnoreFields`

## Constructor Summary

Constructors
Constructor
Description
`ModifierQueryNode(QueryNode query, ModifierQueryNode.Modifier mod)`
Used to store the modifier value on the original query string

## 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
`QueryNode`
`getChild()`
`ModifierQueryNode.Modifier`
`getModifier()`
`void`
`setChild(QueryNode child)`
`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, 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

### ModifierQueryNode

public ModifierQueryNode(QueryNode query, ModifierQueryNode.Modifier mod)
Used to store the modifier value on the original query string

Parameters:
  `query` - - QueryNode subtree
  `mod` - - Modifier Value

## Method Details

### getChild

public QueryNode getChild()

### getModifier

public ModifierQueryNode.Modifier getModifier()

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

### toQueryString

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

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

### setChild

public void setChild(QueryNode child)