Iterable<Node> getAllTimeNodes() { return underlyingNode.traverse( Order.DEPTH_FIRST, StopEvaluator.END_OF_GRAPH, new ReturnableEvaluator() { public boolean isReturnableNode( TraversalPosition position ) { return position.depth() > 0; } }, RelTypes.TIMELINE_NEXT_ENTRY, Direction.OUTGOING ); }
Iterable<Node> getAllTimeNodes() { return underlyingNode.traverse( Order.DEPTH_FIRST, StopEvaluator.END_OF_GRAPH, new ReturnableEvaluator() { public boolean isReturnableNode( TraversalPosition position ) { return position.depth() > 0; } }, RelTypes.TIMELINE_NEXT_ENTRY, Direction.OUTGOING ); }
public Iterable<Node> getAllNodes() { return underlyingNode.traverse( Order.BREADTH_FIRST, StopEvaluator.END_OF_GRAPH, new ReturnableEvaluator() { public boolean isReturnableNode( TraversalPosition position ) { Relationship last = position.lastRelationshipTraversed(); if ( last != null && last.isType( RelTypes.TIMELINE_INSTANCE ) ) { return true; } return false; } }, RelTypes.TIMELINE_INSTANCE, Direction.OUTGOING, RelTypes.TIMELINE_NEXT_ENTRY, Direction.OUTGOING ); }
public Iterable<Node> getAllNodes() { return underlyingNode.traverse( Order.BREADTH_FIRST, StopEvaluator.END_OF_GRAPH, new ReturnableEvaluator() { public boolean isReturnableNode( TraversalPosition position ) { Relationship last = position.lastRelationshipTraversed(); if ( last != null && last.getType().equals( RelTypes.TIMELINE_INSTANCE ) ) { return true; } return false; } }, RelTypes.TIMELINE_INSTANCE, Direction.OUTGOING, RelTypes.TIMELINE_NEXT_ENTRY, Direction.OUTGOING ); }
public Iterable<Node> getAllNodesBefore( final long timestamp ) return underlyingNode.traverse( Order.DEPTH_FIRST, new StopEvaluator()
public Iterable<Node> getAllNodesBefore( final long timestamp ) return underlyingNode.traverse( Order.DEPTH_FIRST, new StopEvaluator()
public Iterable<Node> getAllIndexInternalNodes() { return getIndexRoot().traverse(Order.BREADTH_FIRST, StopEvaluator.END_OF_GRAPH, ReturnableEvaluator.ALL_BUT_START_NODE, RTreeRelationshipTypes.RTREE_CHILD, Direction.OUTGOING); }
private void checkGeometryNodeIterator() { while ((geometryNodeIterator == null || !geometryNodeIterator.hasNext()) && allIndexNodeIterator.hasNext()) { geometryNodeIterator = allIndexNodeIterator.next().traverse(Order.DEPTH_FIRST, StopEvaluator.DEPTH_ONE, ReturnableEvaluator.ALL_BUT_START_NODE, RTreeRelationshipTypes.RTREE_REFERENCE, Direction.OUTGOING) .iterator(); } }
private void checkGeometryNodeIterator() { while ((geometryNodeIterator == null || !geometryNodeIterator.hasNext()) && allIndexNodeIterator.hasNext()) { geometryNodeIterator = allIndexNodeIterator.next().traverse(Order.DEPTH_FIRST, StopEvaluator.DEPTH_ONE, ReturnableEvaluator.ALL_BUT_START_NODE, RTreeRelationshipTypes.RTREE_REFERENCE, Direction.OUTGOING) .iterator(); } }
public Iterable<Node> getAllIndexInternalNodes() { return getIndexRoot().traverse(Order.BREADTH_FIRST, StopEvaluator.END_OF_GRAPH, ReturnableEvaluator.ALL_BUT_START_NODE, RTreeRelationshipTypes.RTREE_CHILD, Direction.OUTGOING); }
public Iterator<Node> iterate() { StopEvaluator stopEvaluator = new StopEvaluator() { public boolean isStopNode( TraversalPosition pos ) { return pos.lastRelationshipTraversed() != null && pos.currentNode().equals( rootNode ); } }; Traverser traverser = rootNode.traverse( Order.BREADTH_FIRST, stopEvaluator, ReturnableEvaluator.ALL_BUT_START_NODE, relType, Direction.OUTGOING ); return traverser.iterator(); } }
public SearchResults searchIndex(SearchFilter filter) { // TODO: Refactor to new traversal API SearchEvaluator searchEvaluator = new SearchEvaluator(filter); return new SearchResults(getIndexRoot().traverse(Order.DEPTH_FIRST, searchEvaluator, searchEvaluator, RTreeRelationshipTypes.RTREE_CHILD, Direction.OUTGOING, RTreeRelationshipTypes.RTREE_REFERENCE, Direction.OUTGOING)); }
public SearchResults searchIndex(SearchFilter filter) { // TODO: Refactor to new traversal API SearchEvaluator searchEvaluator = new SearchEvaluator(filter); return new SearchResults(getIndexRoot().traverse(Order.DEPTH_FIRST, searchEvaluator, searchEvaluator, RTreeRelationshipTypes.RTREE_CHILD, Direction.OUTGOING, RTreeRelationshipTypes.RTREE_REFERENCE, Direction.OUTGOING)); }
/** * Returns all the entries in this b-tree. The iterable returned back is * a wrapped {@link Traverser}. * * @return an Iterable of all the entries in this b-tree */ public Iterable<KeyEntry> entries() { EntryReturnableEvaluator entryEvaluator = new EntryReturnableEvaluator(); Traverser trav = treeRoot.getUnderlyingNode().traverse( Order.DEPTH_FIRST, StopEvaluator.END_OF_GRAPH, entryEvaluator, RelTypes.KEY_ENTRY, Direction.OUTGOING, RelTypes.SUB_TREE, Direction.OUTGOING ); return new EntryTraverser( trav, this, entryEvaluator ); }
/** * Returns all the entries in this b-tree. The iterable returned back is * a wrapped {@link Traverser}. * * @return an Iterable of all the entries in this b-tree */ public Iterable<KeyEntry> entries() { EntryReturnableEvaluator entryEvaluator = new EntryReturnableEvaluator(); Traverser trav = treeRoot.getUnderlyingNode().traverse( Order.DEPTH_FIRST, StopEvaluator.END_OF_GRAPH, entryEvaluator, RelTypes.KEY_ENTRY, Direction.OUTGOING, RelTypes.SUB_TREE, Direction.OUTGOING ); return new EntryTraverser( trav, this, entryEvaluator ); }
/** * Returns the values of all entries in this b-tree. The iterable which is * returned back is wrapped {@link Traverser}. * * @return the values of all entries values in this b-tree. */ public Iterable<Object> values() { Traverser trav = getTreeRoot().getUnderlyingNode().traverse( Order.DEPTH_FIRST, StopEvaluator.END_OF_GRAPH, new ReturnableEvaluator() { public boolean isReturnableNode( TraversalPosition pos ) { Relationship last = pos.lastRelationshipTraversed(); if ( last != null && last.getType().equals( RelTypes.KEY_ENTRY ) ) { return true; } return false; } }, RelTypes.KEY_ENTRY, Direction.OUTGOING, RelTypes.SUB_TREE, Direction.OUTGOING ); return new ValueTraverser( trav ); }
try Traverser traverser = node.traverse( Traverser.Order.DEPTH_FIRST, StopEvaluator.END_OF_GRAPH, new ReturnableEvaluator()
/** * Returns the values of all entries in this b-tree. The iterable which is * returned back is wrapped {@link Traverser}. * * @return the values of all entries values in this b-tree. */ public Iterable<Object> values() { Traverser trav = getTreeRoot().getUnderlyingNode().traverse( Order.DEPTH_FIRST, StopEvaluator.END_OF_GRAPH, new ReturnableEvaluator() { public boolean isReturnableNode( TraversalPosition pos ) { Relationship last = pos.lastRelationshipTraversed(); if ( last != null && last.getType().equals( RelTypes.KEY_ENTRY ) ) { return true; } return false; } }, RelTypes.KEY_ENTRY, Direction.OUTGOING, RelTypes.SUB_TREE, Direction.OUTGOING ); return new ValueTraverser( trav ); }
@SuppressWarnings( "deprecation" ) private static void verifyFriendsOf( Node thomas ) throws Exception { Traverser traverser = thomas.traverse( Order.BREADTH_FIRST, StopEvaluator.END_OF_GRAPH, ReturnableEvaluator.ALL_BUT_START_NODE, MatrixRelation.KNOWS, Direction.OUTGOING ); Set<String> actual = new HashSet<String>(); for ( Node friend : traverser ) { assertTrue( "Same friend added twice.", actual.add( (String) friend.getProperty( "name" ) ) ); } assertEquals( "Thomas Anderssons friends are incorrect.", new HashSet<String>( Arrays.asList( "Trinity", "Morpheus", "Cypher", "Agent Smith" ) ), actual ); }
@SuppressWarnings( { "serial", "deprecation" } ) private static void verifyHackersInNetworkOf( Node thomas ) throws Exception { Traverser traverser = thomas.traverse( Order.BREADTH_FIRST, StopEvaluator.END_OF_GRAPH, new ReturnableEvaluator() { public boolean isReturnableNode( TraversalPosition pos ) { return pos.notStartNode() && pos.lastRelationshipTraversed().isType( MatrixRelation.CODED_BY ); } }, MatrixRelation.CODED_BY, Direction.OUTGOING, MatrixRelation.KNOWS, Direction.OUTGOING ); Map<String, Integer> actual = new HashMap<String, Integer>(); for ( Node hacker : traverser ) { assertNull( "Same hacker found twice.", actual.put( (String) hacker.getProperty( "name" ), traverser.currentPosition().depth() ) ); } assertEquals( "", new HashMap<String, Integer>() { { put( "The Architect", 4 ); } }, actual ); } }