Beispiel #1
0
 public virtual void Accept(DefaultRelationshipTraversalCursor cursor)
 {
     if (_relationshipTraversalCursor != null)
     {
         _relationshipTraversalCursor.release();
     }
     _relationshipTraversalCursor = cursor;
 }
Beispiel #2
0
 private void AssertRelationships(DefaultRelationshipTraversalCursor cursor, params long[] expected)
 {
     foreach (long expectedId in expected)
     {
         assertTrue(cursor.Next(), "Expected relationship " + expectedId + " but got none");
         assertEquals(expectedId, cursor.RelationshipReference(), "Expected relationship " + expectedId + " got " + cursor.RelationshipReference());
     }
     assertFalse(cursor.Next(), "Expected no more relationships, but got " + cursor.RelationshipReference());
 }
Beispiel #3
0
        private void RegularTraversalWithTxState(long reference)
        {
            // given
            StorageRelationshipTraversalCursor storeCursor = storeCursor(100, 102, 104);
            DefaultRelationshipTraversalCursor cursor      = new DefaultRelationshipTraversalCursor(_pool, storeCursor);
            Read read = TxState(3, 4);

            // when
            cursor.Init(_node, reference, read);

            // then
            AssertRelationships(cursor, 3, 4, 100, 102, 104);
        }
Beispiel #4
0
        // Sparse traversal but with tx-state filtering

//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void sparseTraversalWithTxStateFiltering()
        public virtual void SparseTraversalWithTxStateFiltering()
        {
            // given
            StorageRelationshipTraversalCursor storeCursor = storeCursor(Rel(100, _node, 50, _type), Rel(102, _node, 51, _type), Rel(104, _node, 52, _type));

            DefaultRelationshipTraversalCursor cursor = new DefaultRelationshipTraversalCursor(_pool, storeCursor);
            Read read = TxState(Rel(3, _node, 50, _type), Rel(4, 50, _node, _type), Rel(5, _node, 50, _type2), Rel(6, _node, _node, _type), Rel(7, _node, 52, _type));

            // when
            cursor.Init(_node, RelationshipReferenceEncoding.encodeForTxStateFiltering(_relationship), read);

            // then
            AssertRelationships(cursor, 100, 3, 7, 102, 104);
        }
Beispiel #5
0
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes:
//ORIGINAL LINE: @Test public void emptyStoreLoopsOfType()
        public virtual void EmptyStoreLoopsOfType()
        {
            // given
            StorageRelationshipTraversalCursor storeCursor = EmptyStoreCursor();

            DefaultRelationshipTraversalCursor cursor = new DefaultRelationshipTraversalCursor(_pool, storeCursor);
            Read read = TxState(Rel(3, _node, 50, _type), Rel(2, _node, _node, _type), Rel(5, 50, _node, _type2), Rel(6, _node, _node, _type), Rel(7, 56, _node, _type), Rel(8, _node, 52, _type));

            // when
            cursor.Init(_node, RelationshipReferenceEncoding.encodeNoLoopRels(_type), read);

            // then
            AssertRelationships(cursor, 2, 6);
        }
Beispiel #6
0
 public virtual void Release()
 {
     if (_nodeCursor != null)
     {
         _nodeCursor.release();
         _nodeCursor = null;
     }
     if (_relationshipScanCursor != null)
     {
         _relationshipScanCursor.release();
         _relationshipScanCursor = null;
     }
     if (_relationshipTraversalCursor != null)
     {
         _relationshipTraversalCursor.release();
         _relationshipTraversalCursor = null;
     }
     if (_propertyCursor != null)
     {
         _propertyCursor.release();
         _propertyCursor = null;
     }
     if (_relationshipGroupCursor != null)
     {
         _relationshipGroupCursor.release();
         _relationshipGroupCursor = null;
     }
     if (_nodeValueIndexCursor != null)
     {
         _nodeValueIndexCursor.release();
         _nodeValueIndexCursor = null;
     }
     if (_nodeLabelIndexCursor != null)
     {
         _nodeLabelIndexCursor.release();
         _nodeLabelIndexCursor = null;
     }
     if (_nodeExplicitIndexCursor != null)
     {
         _nodeExplicitIndexCursor.release();
         _nodeExplicitIndexCursor = null;
     }
     if (_relationshipExplicitIndexCursor != null)
     {
         _relationshipExplicitIndexCursor.release();
         _relationshipExplicitIndexCursor = null;
     }
 }
Beispiel #7
0
        public override DefaultRelationshipTraversalCursor AllocateRelationshipTraversalCursor()
        {
            if (_relationshipTraversalCursor == null)
            {
                return(Trace(new DefaultRelationshipTraversalCursor(this, _storageReader.allocateRelationshipTraversalCursor())));
            }

            try
            {
                return(_relationshipTraversalCursor);
            }
            finally
            {
                _relationshipTraversalCursor = null;
            }
        }