public interface TraversalBranch extends Path
position
and a PathExpander
with a
traversal context, for example parent and an iterator of relationships to go
next. It's a base to write a BranchSelector
on top of.Modifier and Type | Method and Description |
---|---|
boolean |
continues() |
void |
evaluation(Evaluation eval)
Can change evaluation outcome in a negative direction.
|
int |
expanded()
Returns the number of relationships this expansion source has expanded.
|
boolean |
includes() |
void |
initialize(PathExpander expander,
TraversalContext metadata)
Initializes this
TraversalBranch , the relationship iterator,
Evaluation etc. |
TraversalBranch |
next(PathExpander expander,
TraversalContext metadata)
Returns the next expansion source from the expanded relationships
from the current node.
|
TraversalBranch |
parent()
The parent expansion source which created this
TraversalBranch . |
void |
prune()
Explicitly tell this branch to be pruned so that consecutive calls to
next(PathExpander, TraversalContext) is guaranteed to return
null . |
Object |
state()
Returns the state associated with this branch.
|
endNode, iterator, lastRelationship, length, nodes, relationships, reverseNodes, reverseRelationships, startNode, toString
forEach, spliterator
TraversalBranch parent()
TraversalBranch
.TraversalBranch next(PathExpander expander, TraversalContext metadata)
expander
- an expander to decide which relationships to followmetadata
- the context of the traversalint expanded()
void prune()
next(PathExpander, TraversalContext)
is guaranteed to return
null
.boolean continues()
boolean includes()
Path
representation of
this branch at least) should be included in the result of this
traversal, i.e. returned as one of the Path
s from f.ex.
TraversalDescription.traverse(org.neo4j.graphdb.Node...)
void evaluation(Evaluation eval)
eval
- the Evaluation
to AND with the current evaluation.void initialize(PathExpander expander, TraversalContext metadata)
TraversalBranch
, the relationship iterator,
Evaluation
etc.expander
- PathExpander
to use for getting relationships.metadata
- TraversalContext
to update on progress.Object state()
Object
? The state object type only exists when
specifying the expander in the TraversalDescription
, not anywhere
else. So in the internals of the traversal the state type is unknown and ignored.Copyright © 2002–2016 The Neo4j Graph Database Project. All rights reserved.