public virtual IGraphQueryStep Visit(IGraphQueryStep root) { _token.ThrowIfCancellationRequested(); switch (root) { case QueryQueryStep qqs: return(VisitQueryQueryStep(qqs)); case EdgeQueryStep eqs: return(VisitEdgeQueryStep(eqs)); case CollectionDestinationQueryStep cdqs: return(VisitCollectionDestinationQueryStep(cdqs)); case IntersectionQueryStep <Except> iqse: return(VisitIntersectionQueryStepExcept(iqse)); case IntersectionQueryStep <Union> iqsu: return(VisitIntersectionQueryStepUnion(iqsu)); case IntersectionQueryStep <Intersection> iqsi: return(VisitIntersectionQueryStepIntersection(iqsi)); case RecursionQueryStep rqs: return(VisitRecursionQueryStep(rqs)); default: throw new NotSupportedException($"Unexpected type {root.GetType().Name} for QueryPlanRewriter.Visit"); } }
public virtual async Task VisitAsync(IGraphQueryStep root) { switch (root) { case QueryQueryStep qqs: VisitQueryQueryStep(qqs); return; case EdgeQueryStep eqs: await VisitEdgeQueryStepAsync(eqs); return; case CollectionDestinationQueryStep cdqs: VisitCollectionDestinationQueryStep(cdqs); return; case IntersectionQueryStep <Except> iqse: await VisitIntersectionQueryStepExceptAsync(iqse); return; case IntersectionQueryStep <Union> iqsu: await VisitIntersectionQueryStepUnionAsync(iqsu); return; case IntersectionQueryStep <Intersection> iqsi: await VisitIntersectionQueryStepIntersectionAsync(iqsi); return; case RecursionQueryStep rqs: await VisitRecursionQueryStepAsync(rqs); return; default: throw new NotSupportedException($"Unexpected type {root.GetType().Name} for QueryPlanVisitor.Visit"); } }