Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.lucene.queryParser.precedence.processors
Class BooleanModifiersQueryNodeProcessor

    java.lang.Object
      org.apache.lucene.queryParser.core.processors.QueryNodeProcessorImpl
          org.apache.lucene.queryParser.precedence.processors.BooleanModifiersQueryNodeProcessor

All Implemented Interfaces:
  QueryNodeProcessor

    public class BooleanModifiersQueryNodeProcessor

extends QueryNodeProcessorImpl

This processor is used to apply the correct `ModifierQueryNode` to `BooleanQueryNode`s children.

It walks through the query node tree looking for `BooleanQueryNode`s. If an `AndQueryNode` is found, every child, which is not a `ModifierQueryNode` or the `ModifierQueryNode` is `ModifierQueryNode.Modifier.MOD_NONE`, becomes a `ModifierQueryNode.Modifier.MOD_REQ`. For any other `BooleanQueryNode` which is not an `OrQueryNode`, it checks the default operator is `StandardQueryConfigHandler.Operator.AND`, if it is, the same operation when an `AndQueryNode` is found is applied to it.

See Also:
  `StandardQueryConfigHandler.ConfigurationKeys.DEFAULT_OPERATOR`, `StandardQueryParser.setDefaultOperator(org.apache.lucene.queryParser.standard.config.DefaultOperatorAttribute.Operator)`

Constructor Summary
`BooleanModifiersQueryNodeProcessor()`

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

### BooleanModifiersQueryNodeProcessor

    public BooleanModifiersQueryNodeProcessor()

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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD