Interface BranchCollisionDetector


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.
  • Method Summary

    Modifier and Type
    Method
    Description
    evaluate(TraversalBranch branch, Direction direction)
    Evaluate the given branch coming from either the start side or the end side.
  • Method Details

    • 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 occurred.