public interface TraversalDescription
TraversalDescription td = new TraversalDescriptionImpl(); td.depthFirst();is not going to modify td. you will need to reassign td, like
td = td.depthFirst();
When all the rules and behaviors have been described the traversal is started
by using traverse(Node)
where a starting node is supplied. The
Traverser
that is returned is then used to step through the graph,
and return the positions that matches the rules.
Modifier and Type | Method and Description |
---|---|
TraversalDescription |
breadthFirst()
A convenience method for
order(BranchOrderingPolicy)
where a "preorder breadth first" selector is used. |
TraversalDescription |
depthFirst()
A convenience method for
order(BranchOrderingPolicy)
where a "preorder depth first" selector is used. |
TraversalDescription |
evaluator(Evaluator evaluator)
Adds
evaluator to the list of evaluators which will control the
behavior of the traversal. |
TraversalDescription |
evaluator(PathEvaluator evaluator)
Adds
evaluator to the list of evaluators which will control the
behavior of the traversal. |
TraversalDescription |
expand(PathExpander<?> expander)
Sets the
PathExpander as the expander of relationships,
discarding all previous calls to
relationships(RelationshipType) and
relationships(RelationshipType, Direction) or any other expand method. |
<STATE> TraversalDescription |
expand(PathExpander<STATE> expander,
InitialBranchState<STATE> initialState)
Sets the
PathExpander as the expander of relationships,
discarding all previous calls to
relationships(RelationshipType) and
relationships(RelationshipType, Direction) or any other expand method. |
TraversalDescription |
order(BranchOrderingPolicy selector)
Sets the
BranchOrderingPolicy to use. |
TraversalDescription |
relationships(RelationshipType type)
Adds
type to the list of relationship types to traverse. |
TraversalDescription |
relationships(RelationshipType type,
Direction direction)
Adds
type to the list of relationship types to traverse in
the given direction . |
TraversalDescription |
reverse()
Creates an identical
TraversalDescription , although reversed in
how it traverses the graph. |
TraversalDescription |
sort(Comparator<? super Path> comparator) |
Traverser |
traverse(Iterable<Node> iterableStartNodes)
Traverse from a iterable of start nodes based on all the rules and behavior
in this description.
|
Traverser |
traverse(Node... startNodes)
Traverse from a set of start nodes based on all the rules and behavior
in this description.
|
Traverser |
traverse(Node startNode)
Traverse from a single start node based on all the rules and behavior
in this description.
|
TraversalDescription |
uniqueness(UniquenessFactory uniqueness)
Sets the
UniquenessFactory for creating the
UniquenessFilter to use. |
TraversalDescription |
uniqueness(UniquenessFactory uniqueness,
Object parameter)
Sets the
UniquenessFactory for creating the
UniquenessFilter to use. |
TraversalDescription uniqueness(UniquenessFactory uniqueness)
UniquenessFactory
for creating the
UniquenessFilter
to use.uniqueness
- the UniquenessFactory
the creator
of the desired UniquenessFilter
to use.TraversalDescription uniqueness(UniquenessFactory uniqueness, Object parameter)
UniquenessFactory
for creating the
UniquenessFilter
to use. It also accepts an extra parameter
which is mandatory for certain uniquenesses.uniqueness
- the UniquenessFactory
the creator
of the desired UniquenessFilter
to use.parameter
- an extra parameter
which is mandatory for certain uniquenesses.TraversalDescription evaluator(Evaluator evaluator)
evaluator
to the list of evaluators which will control the
behavior of the traversal. Each Evaluator
can decide whether or
not to include a position in the traverser result, i.e. return it from
the Traverser
iterator and also whether to continue down that
path or to prune, so that the traverser won't continue further down that
path.
Multiple Evaluator
s can be added. For a path to be included in
the result, all evaluators must agree to include it, i.e. returning
either Evaluation.INCLUDE_AND_CONTINUE
or
Evaluation.INCLUDE_AND_PRUNE
. For making the traversal continue
down that path all evaluators must agree to continue from that path, i.e.
returning either Evaluation.INCLUDE_AND_CONTINUE
or
Evaluation.EXCLUDE_AND_CONTINUE
.evaluator
- the Evaluator
to add to the traversalTraversalDescription evaluator(PathEvaluator evaluator)
evaluator
to the list of evaluators which will control the
behavior of the traversal. Each PathEvaluator
can decide whether or
not to include a position in the traverser result, i.e. return it from
the Traverser
iterator and also whether to continue down that
path or to prune, so that the traverser won't continue further down that
path.
Multiple PathEvaluator
s can be added. For a path to be included in
the result, all evaluators must agree to include it, i.e. returning
either Evaluation.INCLUDE_AND_CONTINUE
or
Evaluation.INCLUDE_AND_PRUNE
. For making the traversal continue
down that path all evaluators must agree to continue from that path, i.e.
returning either Evaluation.INCLUDE_AND_CONTINUE
or
Evaluation.EXCLUDE_AND_CONTINUE
.evaluator
- the PathEvaluator
to add to the traversalTraversalDescription order(BranchOrderingPolicy selector)
BranchOrderingPolicy
to use. A BranchSelector
is the basic decisions in the traversal of "where to go next".
Examples of default implementations are "breadth first" and
"depth first", which can be set with convenience methods
breadthFirst()
and depthFirst()
.selector
- the factory which creates the BranchSelector
to use with the traversal.TraversalDescription depthFirst()
order(BranchOrderingPolicy)
where a "preorder depth first" selector is used. Positions which are
deeper than the current position will be returned before positions on
the same depth. See http://en.wikipedia.org/wiki/Depth-first_searchTraversalDescription breadthFirst()
order(BranchOrderingPolicy)
where a "preorder breadth first" selector is used. All positions with
the same depth will be returned before advancing to the next depth.
See http://en.wikipedia.org/wiki/Breadth-first_searchTraversalDescription relationships(RelationshipType type)
type
to the list of relationship types to traverse.
There's no priority or order in which types to traverse.type
- the RelationshipType
to add to the list of types
to traverse.TraversalDescription relationships(RelationshipType type, Direction direction)
type
to the list of relationship types to traverse in
the given direction
. There's no priority or order in which
types to traverse.type
- the RelationshipType
to add to the list of types
to traverse.direction
- the Direction
to traverse this type of
relationship in.TraversalDescription expand(PathExpander<?> expander)
PathExpander
as the expander of relationships,
discarding all previous calls to
relationships(RelationshipType)
and
relationships(RelationshipType, Direction)
or any other expand method.expander
- the PathExpander
to use.<STATE> TraversalDescription expand(PathExpander<STATE> expander, InitialBranchState<STATE> initialState)
PathExpander
as the expander of relationships,
discarding all previous calls to
relationships(RelationshipType)
and
relationships(RelationshipType, Direction)
or any other expand method.
The supplied InitialBranchState
will provide the initial traversal branches
with state values which flows down throughout the traversal and can be changed
for child branches by the PathExpander
at any level.STATE
- the type of the state objectexpander
- the PathExpander
to use.initialState
- factory for supplying the initial traversal branches with
state values potentially used by the PathExpander
.TraversalDescription sort(Comparator<? super Path> comparator)
comparator
- the Comparator
to use for sorting the paths.comparator
.TraversalDescription reverse()
TraversalDescription
, although reversed in
how it traverses the graph.Traverser traverse(Node startNode)
Traverser
is returned which is
used to step through the graph and getting results back. The traversal
is not guaranteed to start before the Traverser is used.Traverser traverse(Node... startNodes)
Traverser
is returned which is
used to step through the graph and getting results back. The traversal
is not guaranteed to start before the Traverser is used.Traverser traverse(Iterable<Node> iterableStartNodes)
Traverser
is returned which is
used to step through the graph and getting results back. The traversal
is not guaranteed to start before the Traverser is used.Copyright © 2002–2016 The Neo4j Graph Database Project. All rights reserved.