@Override public RelationshipTraversalCursor allocateRelationshipTraversalCursor() { RelationshipTraversalCursor n = cursors.allocateRelationshipTraversalCursor(); allCursors.add( n ); return n; }
private static void setupAllSparse( RelationshipSparseSelection sparseSelection, CursorFactory cursors, NodeCursor node, int[] types ) { RelationshipTraversalCursor traversalCursor = cursors.allocateRelationshipTraversalCursor(); try { node.allRelationships( traversalCursor ); sparseSelection.all( traversalCursor, types ); } catch ( Throwable t ) { traversalCursor.close(); throw t; } } }
private static void setupOutgoingSparse( RelationshipSparseSelection sparseSelection, CursorFactory cursors, NodeCursor node, int[] types ) { RelationshipTraversalCursor traversalCursor = cursors.allocateRelationshipTraversalCursor(); try { node.allRelationships( traversalCursor ); sparseSelection.outgoing( traversalCursor, types ); } catch ( Throwable t ) { traversalCursor.close(); throw t; } }
private static void setupIncomingSparse( RelationshipSparseSelection sparseSelection, CursorFactory cursors, NodeCursor node, int[] types ) { RelationshipTraversalCursor traversalCursor = cursors.allocateRelationshipTraversalCursor(); try { node.allRelationships( traversalCursor ); sparseSelection.incoming( traversalCursor, types ); } catch ( Throwable t ) { traversalCursor.close(); throw t; } }
private static void setupAllDense( RelationshipDenseSelection denseSelection, CursorFactory cursors, NodeCursor node, int[] types ) { RelationshipGroupCursor groupCursor = cursors.allocateRelationshipGroupCursor(); RelationshipTraversalCursor traversalCursor = cursors.allocateRelationshipTraversalCursor(); try { node.relationships( groupCursor ); denseSelection.all( groupCursor, traversalCursor, types ); } catch ( Throwable t ) { groupCursor.close(); traversalCursor.close(); throw t; } }
private static void setupOutgoingDense( RelationshipDenseSelection denseSelection, CursorFactory cursors, NodeCursor node, int[] types ) { RelationshipGroupCursor groupCursor = cursors.allocateRelationshipGroupCursor(); RelationshipTraversalCursor traversalCursor = cursors.allocateRelationshipTraversalCursor(); try { node.relationships( groupCursor ); denseSelection.outgoing( groupCursor, traversalCursor, types ); } catch ( Throwable t ) { groupCursor.close(); traversalCursor.close(); throw t; } }
private static void setupIncomingDense( RelationshipDenseSelection denseSelection, CursorFactory cursors, NodeCursor node, int[] types ) { RelationshipGroupCursor groupCursor = cursors.allocateRelationshipGroupCursor(); RelationshipTraversalCursor traversalCursor = cursors.allocateRelationshipTraversalCursor(); try { node.relationships( groupCursor ); denseSelection.incoming( groupCursor, traversalCursor, types ); } catch ( Throwable t ) { groupCursor.close(); traversalCursor.close(); throw t; } }
try ( RelationshipTraversalCursor traversal = cursors.allocateRelationshipTraversalCursor() )
try ( RelationshipTraversalCursor traversal = cursors.allocateRelationshipTraversalCursor() )
try ( RelationshipTraversalCursor traversal = cursors.allocateRelationshipTraversalCursor() )
try ( RelationshipTraversalCursor traversal = cursors.allocateRelationshipTraversalCursor() )
try ( RelationshipTraversalCursor traversal = cursors.allocateRelationshipTraversalCursor() )
try ( RelationshipTraversalCursor traversal = cursors.allocateRelationshipTraversalCursor() )
private void traverseWithoutGroups( RelationshipTestSupport.StartNode start, boolean detached ) throws Exception { try ( Transaction tx = beginTransaction() ) { Map<String,Integer> expectedCounts = modifyStartNodeRelationships( start, tx ); // given try ( NodeCursor node = tx.cursors().allocateNodeCursor(); RelationshipTraversalCursor relationship = tx.cursors().allocateRelationshipTraversalCursor() ) { // when tx.dataRead().singleNode( start.id, node ); assertTrue( "access node", node.next() ); if ( detached ) { tx.dataRead().relationships( start.id, node.allRelationshipsReference(), relationship ); } else { node.allRelationships( relationship ); } Map<String,Integer> counts = count( tx, relationship ); // then assertCounts( expectedCounts, counts ); } tx.failure(); } }
@Test public void shouldNotSeeRelationshipDeletedInTransaction() throws Exception { long n1, n2, r; try ( Transaction tx = beginTransaction() ) { n1 = tx.dataWrite().nodeCreate(); n2 = tx.dataWrite().nodeCreate(); int label = tx.tokenWrite().relationshipTypeGetOrCreateForName( "R" ); r = tx.dataWrite().relationshipCreate( n1, label, n2 ); tx.success(); } try ( Transaction tx = beginTransaction() ) { tx.dataWrite().relationshipDelete( r ); try ( NodeCursor node = tx.cursors().allocateNodeCursor(); RelationshipTraversalCursor relationship = tx.cursors().allocateRelationshipTraversalCursor() ) { tx.dataRead().singleNode( n1, node ); assertTrue( "should access node", node.next() ); node.allRelationships( relationship ); assertFalse( "should not find relationship", relationship.next() ); } tx.success(); } }
@Test public void shouldSeeRelationshipInTransaction() throws Exception { long n1, n2; try ( Transaction tx = beginTransaction() ) { n1 = tx.dataWrite().nodeCreate(); n2 = tx.dataWrite().nodeCreate(); tx.success(); } try ( Transaction tx = beginTransaction() ) { int label = tx.tokenWrite().relationshipTypeGetOrCreateForName( "R" ); long r = tx.dataWrite().relationshipCreate( n1, label, n2 ); try ( NodeCursor node = tx.cursors().allocateNodeCursor(); RelationshipTraversalCursor relationship = tx.cursors().allocateRelationshipTraversalCursor() ) { tx.dataRead().singleNode( n1, node ); assertTrue( "should access node", node.next() ); node.allRelationships( relationship ); assertTrue( "should find relationship", relationship.next() ); assertEquals( r, relationship.relationshipReference() ); assertFalse( "should only find one relationship", relationship.next() ); } tx.success(); } }
@Test public void shouldSeeRelationshipInTransactionBeforeCursorInitialization() throws Exception { long n1, n2; try ( Transaction tx = beginTransaction() ) { n1 = tx.dataWrite().nodeCreate(); n2 = tx.dataWrite().nodeCreate(); tx.success(); } try ( Transaction tx = beginTransaction() ) { int label = tx.tokenWrite().relationshipTypeGetOrCreateForName( "R" ); long r = tx.dataWrite().relationshipCreate( n1, label, n2 ); try ( NodeCursor node = tx.cursors().allocateNodeCursor(); RelationshipTraversalCursor relationship = tx.cursors().allocateRelationshipTraversalCursor() ) { tx.dataRead().singleNode( n1, node ); assertTrue( "should access node", node.next() ); node.allRelationships( relationship ); assertTrue( "should find relationship", relationship.next() ); assertEquals( r, relationship.relationshipReference() ); tx.dataWrite().relationshipCreate( n1, label, n2 ); // should not be seen assertFalse( "should not find relationship added after cursor init", relationship.next() ); } tx.success(); } }
RelationshipTraversalCursor traversal = tx.cursors().allocateRelationshipTraversalCursor(); RelationshipGroupCursor group = tx.cursors().allocateRelationshipGroupCursor() )
RelationshipTraversalCursor traversal = tx.cursors().allocateRelationshipTraversalCursor(); RelationshipGroupCursor group = tx.cursors().allocateRelationshipGroupCursor() )
RelationshipTraversalCursor relationship = tx.cursors().allocateRelationshipTraversalCursor(); PropertyCursor property = tx.cursors().allocatePropertyCursor() )