org.apache.lucene.queryparser.flexible.standard.processors

## Class LowercaseExpandedTermsQueryNodeProcessor

- java.lang.Object
- - org.apache.lucene.queryparser.flexible.core.processors.QueryNodeProcessorImpl
  - - org.apache.lucene.queryparser.flexible.standard.processors.LowercaseExpandedTermsQueryNodeProcessor

All Implemented Interfaces:
  QueryNodeProcessor

    public class LowercaseExpandedTermsQueryNodeProcessor
    extends QueryNodeProcessorImpl

This processor verifies if `StandardQueryConfigHandler.ConfigurationKeys.LOWERCASE_EXPANDED_TERMS` is defined in the `QueryConfigHandler`. If it is and the expanded terms should be lower-cased, it looks for every `WildcardQueryNode`, `FuzzyQueryNode` and children of a `RangeQueryNode` and lower-case its term.

See Also:
  `StandardQueryConfigHandler.ConfigurationKeys.LOWERCASE_EXPANDED_TERMS`

### Constructor Summary

Constructors
Constructor and Description
`LowercaseExpandedTermsQueryNodeProcessor()`

### Method Summary

Methods
`protected QueryNode` `postProcessNode(QueryNode node)` This method is invoked for every node when walking up the tree.
`protected QueryNode` `preProcessNode(QueryNode node)` This method is invoked for every node when walking down the tree.
`QueryNode` `process(QueryNode queryTree)` Processes a query node tree.
`protected List<QueryNode>` `setChildrenOrder(List<QueryNode> children)` This method is invoked for every node that has at least on child.

### Methods inherited from class org.apache.lucene.queryparser.flexible.core.processors.QueryNodeProcessorImpl

`getQueryConfigHandler, processChildren, setQueryConfigHandler`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### LowercaseExpandedTermsQueryNodeProcessor

    public LowercaseExpandedTermsQueryNodeProcessor()

### Method Detail

#### process

    public QueryNode process(QueryNode queryTree)
                      throws QueryNodeException

Description copied from interface: `QueryNodeProcessor`
Processes a query node tree. It may return the same or another query tree. I should never return `null`.

Specified by:
  `process` in interface `QueryNodeProcessor`
Overrides:
  `process` in class `QueryNodeProcessorImpl`
Parameters:
  `queryTree` - tree root node
Returns:
  the processed query tree
Throws:
  `QueryNodeException`

#### postProcessNode

    protected QueryNode postProcessNode(QueryNode node)
                                 throws QueryNodeException

Description copied from class: `QueryNodeProcessorImpl`
This method is invoked for every node when walking up the tree.

Specified by:
  `postProcessNode` in class `QueryNodeProcessorImpl`
Parameters:
  `node` - node the query node to be post-processed
Returns:
  a query node
Throws:
  `QueryNodeException` - if something goes wrong during the query node processing

#### preProcessNode

    protected QueryNode preProcessNode(QueryNode node)
                                throws QueryNodeException

Description copied from class: `QueryNodeProcessorImpl`
This method is invoked for every node when walking down the tree.

Specified by:
  `preProcessNode` in class `QueryNodeProcessorImpl`
Parameters:
  `node` - the query node to be pre-processed
Returns:
  a query node
Throws:
  `QueryNodeException` - if something goes wrong during the query node processing

#### setChildrenOrder

    protected List<QueryNode> setChildrenOrder(List<QueryNode> children)
                                        throws QueryNodeException

Description copied from class: `QueryNodeProcessorImpl`
This method is invoked for every node that has at least on child. It's invoked right before `QueryNodeProcessorImpl.postProcessNode(QueryNode)` is invoked.

Specified by:
  `setChildrenOrder` in class `QueryNodeProcessorImpl`
Parameters:
  `children` - the list containing all current node's children
Returns:
  a new list containing all children that should be set to the current node
Throws:
  `QueryNodeException` - if something goes wrong during the query node processing