Show / Hide Table of Contents

Class QueryVisitorWithReflection

Query expression visitor with visit methods for reflection objects.

Inheritance
System.Object
QueryVisitor<QueryTree, MonadMember, QueryOperator>
QueryVisitor
QueryVisitorWithReflection
TypeSubstitutionQueryVisitor
Inherited Members
QueryVisitor.MakeFirst(FirstOperator, MonadMember)
QueryVisitor.MakeFirstPredicate(FirstPredicateOperator, MonadMember, QueryTree)
QueryVisitor.MakeLambdaAbstraction(LambdaAbstraction, ReadOnlyCollection<QueryTree>)
QueryVisitor.MakeMonadAbstraction(MonadAbstraction, QueryTree)
QueryVisitor.MakeTake(TakeOperator, MonadMember, QueryTree)
QueryVisitor.MakeSelect(SelectOperator, MonadMember, QueryTree)
QueryVisitor.MakeWhere(WhereOperator, MonadMember, QueryTree)
QueryVisitor.Visit(ReadOnlyCollection<QueryTree>)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.Visit(QueryTree)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.VisitAndConvert<TStronglyTypedResult>(QueryTree)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.Visit<TSource, TResult>(ReadOnlyCollection<TSource>, Func<TSource, TResult>)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.VisitFirst(FirstOperator)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.MakeFirst(FirstOperator, MonadMember)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.VisitFirstPredicate(FirstPredicateOperator)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.MakeFirstPredicate(FirstPredicateOperator, MonadMember, QueryTree)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.VisitLambdaAbstraction(LambdaAbstraction)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.MakeLambdaAbstraction(LambdaAbstraction, ReadOnlyCollection<QueryTree>)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.VisitMonadAbstraction(MonadAbstraction)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.MakeMonadAbstraction(MonadAbstraction, QueryTree)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.VisitSelect(SelectOperator)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.MakeSelect(SelectOperator, MonadMember, QueryTree)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.VisitTake(TakeOperator)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.MakeTake(TakeOperator, MonadMember, QueryTree)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.VisitWhere(WhereOperator)
QueryVisitor<QueryTree, MonadMember, QueryOperator>.MakeWhere(WhereOperator, MonadMember, QueryTree)
Namespace: System.Linq.CompilerServices.Optimizers
Assembly: Nuqleon.Linq.CompilerServices.Optimizers.dll
Syntax
public class QueryVisitorWithReflection : QueryVisitor

Constructors

QueryVisitorWithReflection()

Declaration
public QueryVisitorWithReflection()

Methods

MakeFirst(FirstOperator, Type, MonadMember)

Makes a FirstOperator with the given children.

Declaration
protected virtual QueryOperator MakeFirst(FirstOperator node, Type elementType, MonadMember source)
Parameters
Type Name Description
FirstOperator node

Original query expression.

System.Type elementType

Element type for the resulting operator.

MonadMember source

Source query expression.

Returns
Type Description
QueryOperator

Representation of the original query expression.

MakeFirstPredicate(FirstPredicateOperator, Type, MonadMember, QueryTree)

Makes a FirstPredicateOperator with the given children.

Declaration
protected virtual QueryOperator MakeFirstPredicate(FirstPredicateOperator node, Type elementType, MonadMember source, QueryTree predicate)
Parameters
Type Name Description
FirstPredicateOperator node

Original query expression.

System.Type elementType

Element type for the resulting operator.

MonadMember source

Source query expression.

QueryTree predicate

Predicate query expression.

Returns
Type Description
QueryOperator

Representation of the original query expression.

MakeLambdaAbstraction(LambdaAbstraction, LambdaExpression, ReadOnlyCollection<QueryTree>)

Makes a LambdaAbstraction with the given children.

Declaration
protected virtual QueryTree MakeLambdaAbstraction(LambdaAbstraction node, LambdaExpression body, ReadOnlyCollection<QueryTree> arguments)
Parameters
Type Name Description
LambdaAbstraction node

Original query expression.

System.Linq.Expressions.LambdaExpression body

Body expression.

System.Collections.ObjectModel.ReadOnlyCollection<QueryTree> arguments

Argument query expressions.

Returns
Type Description
QueryTree

Representation of the original query expression.

MakeMonadAbstraction(MonadAbstraction, Type, QueryTree)

Makes a MonadAbstraction with the given children.

Declaration
protected virtual MonadMember MakeMonadAbstraction(MonadAbstraction node, Type elementType, QueryTree inner)
Parameters
Type Name Description
MonadAbstraction node

Original query expression.

System.Type elementType

Element type for the resulting operator.

QueryTree inner

Inner query expression.

Returns
Type Description
MonadMember

Representation of the original query expression.

MakeSelect(SelectOperator, Type, Type, MonadMember, QueryTree)

Makes a SelectOperator with the given children.

Declaration
protected virtual QueryOperator MakeSelect(SelectOperator node, Type elementType, Type inputElementType, MonadMember source, QueryTree selector)
Parameters
Type Name Description
SelectOperator node

Original query expression.

System.Type elementType

Element type for the resulting operator.

System.Type inputElementType

Input element type for the resulting operator.

MonadMember source

Source query expression.

QueryTree selector

Selector query expression.

Returns
Type Description
QueryOperator

Representation of the original query expression.

MakeTake(TakeOperator, Type, MonadMember, QueryTree)

Makes a TakeOperator with the given children.

Declaration
protected virtual QueryOperator MakeTake(TakeOperator node, Type elementType, MonadMember source, QueryTree count)
Parameters
Type Name Description
TakeOperator node

Original query expression.

System.Type elementType

Element type for the resulting operator.

MonadMember source

Source query expression.

QueryTree count

Count query expression.

Returns
Type Description
QueryOperator

Representation of the original query expression.

MakeWhere(WhereOperator, Type, MonadMember, QueryTree)

Makes a WhereOperator with the given children.

Declaration
protected virtual QueryOperator MakeWhere(WhereOperator node, Type elementType, MonadMember source, QueryTree predicate)
Parameters
Type Name Description
WhereOperator node

Original query expression.

System.Type elementType

Element type for the resulting operator.

MonadMember source

Source query expression.

QueryTree predicate

Predicate query expression.

Returns
Type Description
QueryOperator

Representation of the original query expression.

VisitFirst(FirstOperator)

Visits a FirstOperator node.

Declaration
protected override QueryOperator VisitFirst(FirstOperator op)
Parameters
Type Name Description
FirstOperator op

Node to visit.

Returns
Type Description
QueryOperator

Result of visiting the node.

Overrides
QueryVisitor.VisitFirst(FirstOperator)

VisitFirstPredicate(FirstPredicateOperator)

Visits a FirstPredicateOperator node.

Declaration
protected override QueryOperator VisitFirstPredicate(FirstPredicateOperator op)
Parameters
Type Name Description
FirstPredicateOperator op

Node to visit.

Returns
Type Description
QueryOperator

Result of visiting the node.

Overrides
QueryVisitor.VisitFirstPredicate(FirstPredicateOperator)

VisitLambdaAbstraction(LambdaAbstraction)

Visits a LambdaAbstraction node.

Declaration
protected override QueryTree VisitLambdaAbstraction(LambdaAbstraction node)
Parameters
Type Name Description
LambdaAbstraction node

Node to visit.

Returns
Type Description
QueryTree

Result of visiting the node.

Overrides
QueryVisitor.VisitLambdaAbstraction(LambdaAbstraction)

VisitLambdaAbstractionBody(LambdaExpression)

Visits an expression which is the body of a lambda abstraction.

Declaration
protected virtual LambdaExpression VisitLambdaAbstractionBody(LambdaExpression body)
Parameters
Type Name Description
System.Linq.Expressions.LambdaExpression body

The expression to visit.

Returns
Type Description
System.Linq.Expressions.LambdaExpression

Result of visiting the expression.

VisitMonadAbstraction(MonadAbstraction)

Visits a MonadAbstraction node.

Declaration
protected override MonadMember VisitMonadAbstraction(MonadAbstraction node)
Parameters
Type Name Description
MonadAbstraction node

Node to visit.

Returns
Type Description
MonadMember

Result of visiting the node.

Overrides
QueryVisitor.VisitMonadAbstraction(MonadAbstraction)

VisitSelect(SelectOperator)

Visits a SelectOperator node.

Declaration
protected override QueryOperator VisitSelect(SelectOperator op)
Parameters
Type Name Description
SelectOperator op

Node to visit.

Returns
Type Description
QueryOperator

Result of visiting the node.

Overrides
QueryVisitor.VisitSelect(SelectOperator)

VisitTake(TakeOperator)

Visits a TakeOperator node.

Declaration
protected override QueryOperator VisitTake(TakeOperator op)
Parameters
Type Name Description
TakeOperator op

Node to visit.

Returns
Type Description
QueryOperator

Result of visiting the node.

Overrides
QueryVisitor.VisitTake(TakeOperator)

VisitType(Type)

Visits a type.

Declaration
protected virtual Type VisitType(Type type)
Parameters
Type Name Description
System.Type type

Type to visit.

Returns
Type Description
System.Type

Result of the visit.

VisitWhere(WhereOperator)

Visits a WhereOperator node.

Declaration
protected override QueryOperator VisitWhere(WhereOperator op)
Parameters
Type Name Description
WhereOperator op

Node to visit.

Returns
Type Description
QueryOperator

Result of visiting the node.

Overrides
QueryVisitor.VisitWhere(WhereOperator)
In This Article
Back to top Generated by DocFX