|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
public interface TraversalDescription
Represents a description of a traversal. This interface describes the rules and behavior of a traversal. A traversal description is immutable and each method which adds or modifies the behavior returns a new instances that includes the new modification, leaving the instance which returns the new instance intact. For instance,
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.
| Method Summary | |
|---|---|
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 |
expand(RelationshipExpander expander)
Sets the RelationshipExpander as the expander of relationships,
discarding all previous calls to
relationships(RelationshipType) and
relationships(RelationshipType, Direction). |
TraversalDescription |
filter(Predicate<Path> filter)
Sets the return filter to use, that is which positions are OK to return. |
TraversalDescription |
order(BranchOrderingPolicy selector)
Sets the BranchOrderingPolicy to use. |
TraversalDescription |
prune(PruneEvaluator pruning)
Adds pruning to the list of PruneEvaluators which
are used to prune the traversal. |
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. |
Traverser |
traverse(Node startNode)
Starts traversing from startNode based on all the rules and
behavior in this description. |
TraversalDescription |
uniqueness(Uniqueness uniqueness)
Sets the Uniqueness to use. |
TraversalDescription |
uniqueness(Uniqueness uniqueness,
Object parameter)
Sets the Uniqueness to use. |
| Method Detail |
|---|
TraversalDescription uniqueness(Uniqueness uniqueness)
Uniqueness to use.
uniqueness - the Uniqueness to use.
TraversalDescription uniqueness(Uniqueness uniqueness,
Object parameter)
Uniqueness to use. It also accepts an extra parameter
which is obligatory for certain uniqueness's, f.ex
Uniqueness.NODE_RECENT.
uniqueness - the Uniqueness to use.parameter - the extra parameter to go with the uniqueness.
TraversalDescription prune(PruneEvaluator pruning)
pruning to the list of PruneEvaluators which
are used to prune the traversal. The semantics for many prune evaluators
is that if any one of the added prune evaluators returns true
it's considered OK to prune there.
pruning - the PruneEvaluator to add to the list of prune
evaluators to use.
TraversalDescription filter(Predicate<Path> filter)
Path from the start node of the
traversal to the current node. The current node is the
Path.endNode() of the path.
filter - the Predicate to use as filter.
TraversalDescription 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_search
TraversalDescription 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_search
TraversalDescription 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(RelationshipExpander expander)
RelationshipExpander as the expander of relationships,
discarding all previous calls to
relationships(RelationshipType) and
relationships(RelationshipType, Direction).
expander - the RelationshipExpander to use.
Traverser traverse(Node startNode)
startNode based on all the rules and
behavior in this description. A Traverser is returned which is
used to step through the graph and getting results back.
startNode - the Node to start the traversal from.
Traverser used to step through the graph and to get
results from.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||