예제 #1
0
 public override void VisitEdgeMatcher(EdgeQueryStep.EdgeMatcher em)
 {
     _token.ThrowIfCancellationRequested();
     _isVisitingRight = true;
     base.VisitEdgeMatcher(em);
     _isVisitingRight = false;
 }
        public override async Task VisitEdgeMatcherAsync(EdgeQueryStep.EdgeMatcher em)
        {
            _writer.WritePropertyName("Next");
            await VisitAsync(em._parent.Right);

            _writer.WriteComma();
        }
예제 #3
0
        //This method is only invoked from recursive step and fix the problem that we don't visit edges after recursive steps
        public virtual void VisitEdgeMatcher(EdgeQueryStep.EdgeMatcher em)
        {
            _token.ThrowIfCancellationRequested();
            var newRight = Visit(em._parent.Right);

            if (ReferenceEquals(newRight, em._parent.Right) == false)
            {
                em._parent.SetRight(newRight);
            }
        }
예제 #4
0
 public virtual async Task VisitEdgeMatcherAsync(EdgeQueryStep.EdgeMatcher em)
 {
     await VisitAsync(em._parent.Right);
 }
예제 #5
0
 public virtual void VisitEdgeMatcher(EdgeQueryStep.EdgeMatcher em)
 {
     Visit(em._parent.Right);
 }
예제 #6
0
 public override void VisitEdgeMatcher(EdgeQueryStep.EdgeMatcher em)
 {
     _writer.WritePropertyName("Next");
     Visit(em._parent.Right);
     _writer.WriteComma();
 }