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.
Constructor and Description |
---|
BooleanModifiersQueryNodeProcessor() |
Modifier and Type | Method and Description |
---|---|
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.
|
getQueryConfigHandler, processChildren, setQueryConfigHandler
public QueryNode process(QueryNode queryTree) throws QueryNodeException
QueryNodeProcessor
null
.process
in interface QueryNodeProcessor
process
in class QueryNodeProcessorImpl
queryTree
- tree root nodeQueryNodeException
protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException
QueryNodeProcessorImpl
postProcessNode
in class QueryNodeProcessorImpl
node
- node the query node to be post-processedQueryNodeException
- if something goes wrong during the query node processingprotected QueryNode preProcessNode(QueryNode node) throws QueryNodeException
QueryNodeProcessorImpl
preProcessNode
in class QueryNodeProcessorImpl
node
- the query node to be pre-processedQueryNodeException
- if something goes wrong during the query node processingprotected List<QueryNode> setChildrenOrder(List<QueryNode> children) throws QueryNodeException
QueryNodeProcessorImpl
QueryNodeProcessorImpl.postProcessNode(QueryNode)
is invoked.setChildrenOrder
in class QueryNodeProcessorImpl
children
- the list containing all current node's childrenQueryNodeException
- if something goes wrong during the query node processingCopyright © 2000-2017 Apache Software Foundation. All Rights Reserved.