org.neo4j.graphdb.traversal
Interface BranchCollisionDetector

All Known Implementing Classes:
ShortestPathsBranchCollisionDetector, StandardBranchCollisionDetector

public interface BranchCollisionDetector

In a bidirectional traversal there's one traversal from each start/end side and they will probably meet somewhere in the middle and the full paths are formed. This is where that detection and path generation takes place.

Author:
Mattias Persson

Method Summary
 Iterable<Path> evaluate(TraversalBranch branch, Direction direction)
          Evaluate the given branch coming from either the start side or the end side.
 

Method Detail

evaluate

Iterable<Path> evaluate(TraversalBranch branch,
                        Direction direction)
Evaluate the given branch coming from either the start side or the end side. Which side the branch represents is controlled by the direction argument, Direction.OUTGOING means the start side and Direction.INCOMING means the end side. Returns an Iterable of new unique Paths if this branch resulted in a collision with other previously registered branches, or null if this branch didn't result in any collision.

Parameters:
branch - the TraversalBranch to check for collision with other previously registered branches.
direction - Direction.OUTGOING if this branch represents a branch from the start side of this bidirectional traversal, or Direction.INCOMING for the end side.
Returns:
new paths formed if this branch collided with other branches, or null if no collision occured.


Copyright © 2002-2012 The Neo4j Graph Database Project. All Rights Reserved.