org.neo4j.api.core
Interface StopEvaluator


public interface StopEvaluator

A client hook for evaluating whether the traverser should traverse beyond a specific node. When a traverser is created, the client parameterizes it with a StopEvaluator. The traverser then invokes the isStopNode() operation just before traversing the relationships of a node, allowing the client to either approve or disapprove of traversing beyond that node.

When implementing a StopEvaluator, the client investigates the information encapsulated in a TraversalPosition to decide whether to block traversal beyond a node. For example, here's a snippet detailing a StopEvaluator that blocks traversal beyond a node if it has a certain property value:

 StopEvaluator stopEvaluator = new StopEvaluator()
 {
     // Block traversal if the node has a property with key 'key' and value
     // 'someValue'
     public boolean isStopNode( TraversalPosition position )
     {
         Node node = position.previousNode();
         Object someProp = node.getProperty( "key" );
         return someProp instanceof String &&
             ((String) someProp).equals( "someValue" );
     }
 };
 


Field Summary
static StopEvaluator DEPTH_ONE
          Traverses to depth 1.
static StopEvaluator END_OF_GRAPH
          Traverse until the end of the graph.
static StopEvaluator END_OF_NETWORK
          Deprecated.  
 
Method Summary
 boolean isStopNode(TraversalPosition currentPos)
          Method invoked by traverser to see if current position is a stop node.
 

Field Detail

END_OF_NETWORK

static final StopEvaluator END_OF_NETWORK
Deprecated. 
Deprecated: replaced by END_OF_GRAPH. Traverse until the end of network, this evaluator returns false all the time.


END_OF_GRAPH

static final StopEvaluator END_OF_GRAPH
Traverse until the end of the graph. This evaluator returns false all the time.


DEPTH_ONE

static final StopEvaluator DEPTH_ONE
Traverses to depth 1.

Method Detail

isStopNode

boolean isStopNode(TraversalPosition currentPos)
Method invoked by traverser to see if current position is a stop node.

Parameters:
currentPos - The traversal position
Returns:
True if current position is a stop node


Copyright © 2009 Neo4j. All Rights Reserved.