@PublicApi public class QueryTraversal extends java.lang.Object
This is an important distinction to just traversing the Document without any type information: Each field has a clearly
defined type. See QueryVisitorFieldEnvironment
.
Further are the built in Directives skip/include automatically evaluated: if parts of the Document should be ignored they will not be visited. But this is not a full evaluation of a Query: every fragment will be visited/followed regardless of the type condition.
Modifier and Type | Class and Description |
---|---|
static class |
QueryTraversal.Builder |
Modifier and Type | Method and Description |
---|---|
static QueryTraversal.Builder |
newQueryTraversal() |
<T> T |
reducePostOrder(QueryReducer<T> queryReducer,
T initialValue)
Reduces the fields of a Document (or parts of it) to a single value.
|
<T> T |
reducePreOrder(QueryReducer<T> queryReducer,
T initialValue)
Reduces the fields of a Document (or parts of it) to a single value.
|
void |
visitPostOrder(QueryVisitor visitor)
Visits the Document (or parts of it) in post-order.
|
void |
visitPreOrder(QueryVisitor visitor)
Visits the Document (or parts of it) in pre-order.
|
public void visitPostOrder(QueryVisitor visitor)
visitor
- the query visitor that will be called backpublic void visitPreOrder(QueryVisitor visitor)
visitor
- the query visitor that will be called backpublic <T> T reducePostOrder(QueryReducer<T> queryReducer, T initialValue)
T
- the type of reduced valuequeryReducer
- the query reducerinitialValue
- the initial value to pass to the reducerpublic <T> T reducePreOrder(QueryReducer<T> queryReducer, T initialValue)
T
- the type of reduced valuequeryReducer
- the query reducerinitialValue
- the initial value to pass to the reducerpublic static QueryTraversal.Builder newQueryTraversal()