Flexberry ORM 4.0.0
Класс ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBaseabstract

Visitor, который обходит распарсенноое дерево Подробнее...

Граф наследования:ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase:
ICSSoft.STORMNET.Business.LINQProvider.IExpressionTreeVisitor ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorCommon

Открытые члены

 LcsGeneratorExpressionTreeVisitorBase (TreeVisitorStacksHolder stacksHolder)
 Конструктор класса LcsGeneratorExpressionTreeVisitorCommon. Подробнее...
 
Function GetLcsExpression ()
 Получение сформированного lcs (берётся из стека). Подробнее...
 
abstract Function GetLcsExpression (Expression linqExpression)
 Получить функцию ограничения для LoadingCustomizationStruct. Подробнее...
 
abstract IQueryModelVisitor GetQueryModelVisitor (bool viewIsDynamic, View view, IEnumerable< View > resolvingViews)
 Создать экземпляр visitor'а для обработки запроса linq-выражения для LcsQueryProvider<T,Q>. Подробнее...
 
Expression CreatePseudoDetailQuery< T > (LambdaExpression lambdaExpression)
 Создаём lcs для ограничения на псевдодетейл. Делается это так: создаётся запрос к объекту типа псевдодетейл и получается lcs, откуда берётся правильная функция ограничения. Подробнее...
 

Защищенные члены

 LcsGeneratorExpressionTreeVisitorBase (bool viewIsDynamic, View view, IEnumerable< View > resolvingViews)
 Конструктор класса LcsGeneratorExpressionTreeVisitorCommon. Подробнее...
 
override Expression VisitUnaryExpression (UnaryExpression expression)
 Обход унарной операции в дереве выражения. Подробнее...
 
override Expression VisitSubQueryExpression (SubQueryExpression expression)
 Обход подзапроса в дереве выражения. Подробнее...
 
Expression VisitSubQueryExpressionHelper (SubQueryExpression expression)
 Вспомогательный метод, содержащий общую обработку VisitSubQueryExpression, используемую в потомках. Подробнее...
 
override Expression VisitConditionalExpression (ConditionalExpression expression)
 Обработка выражения вида IIF(Condition, IfTrue, IfFalse). Подробнее...
 
override Expression VisitBinaryExpression (BinaryExpression expression)
 Обход бинарной операции в дереве выражения. Подробнее...
 
override Expression VisitQuerySourceReferenceExpression (QuerySourceReferenceExpression expression)
 
override Expression VisitMemberExpression (MemberExpression expression)
 Обход элемента в дереве выражения, соответствующему свойству элемента. Подробнее...
 
Expression VisitMemberExpressionHelper (MemberExpression expression)
 Вспомогательный метод, содержащий общую обработку VisitMemberExpressionHelper, используемую в потомках. Подробнее...
 
override Expression VisitConstantExpression (ConstantExpression expression)
 Обход константы в дереве выражения. Подробнее...
 
override Expression VisitMethodCallExpression (MethodCallExpression expression)
 Обход вызова метода в дереве выражения. Подробнее...
 
override Exception CreateUnhandledItemException< T > (T unhandledItem, string visitMethod)
 

Защищенные данные

readonly global::ICSSoft.STORMNET.Windows.Forms.ExternalLangDef _ldef = global::ICSSoft.STORMNET.Windows.Forms.ExternalLangDef.LanguageDef
 Описание языка для построения lcs. Подробнее...
 
TreeVisitorStacksHolder _stacksHolder
 Элемент для организации стека. Подробнее...
 

Подробное описание

Visitor, который обходит распарсенноое дерево

Конструктор(ы)

ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase.LcsGeneratorExpressionTreeVisitorBase ( TreeVisitorStacksHolder  stacksHolder)
inline

Конструктор класса LcsGeneratorExpressionTreeVisitorCommon.

Аргументы
stacksHolderЭлемент, организующий стек.
ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase.LcsGeneratorExpressionTreeVisitorBase ( bool  viewIsDynamic,
View  view,
IEnumerable< View >  resolvingViews 
)
inlineprotected

Конструктор класса LcsGeneratorExpressionTreeVisitorCommon.

Аргументы
viewIsDynamicЯвляется ли представление динамическим (формируется во время разбора выражения).
viewПредставление (в случае динамического представления может быть передано пустое представление, у которого задан только тип).
resolvingViewsПредставления мастеров, нужные для получения их детейлов (в случае динамических представлений null).

Методы

Expression ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase.CreatePseudoDetailQuery< T > ( LambdaExpression  lambdaExpression)
inline

Создаём lcs для ограничения на псевдодетейл. Делается это так: создаётся запрос к объекту типа псевдодетейл и получается lcs, откуда берётся правильная функция ограничения.

Параметры шаблона
TТип псевдодетейла.
Аргументы
lambdaExpressionОграничение на псевдодетейл, из которого нужно получить LimitFunction.
Возвращает
LimitFunction для псевдодетейла.
Согласование типов
T :DataObject 
Function ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase.GetLcsExpression ( )
inline

Получение сформированного lcs (берётся из стека).

Возвращает
Сформированное lcs.
abstract Function ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase.GetLcsExpression ( Expression  linqExpression)
pure virtual

Получить функцию ограничения для LoadingCustomizationStruct.

Аргументы
linqExpressionLinq-выражение, для которого необходимо получить функцию ограничения.
Возвращает
Функция ограничения для LoadingCustomizationStruct.

Замещает ICSSoft.STORMNET.Business.LINQProvider.IExpressionTreeVisitor.

Замещается в ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorCommon.

abstract IQueryModelVisitor ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase.GetQueryModelVisitor ( bool  viewIsDynamic,
View  view,
IEnumerable< View >  resolvingViews 
)
pure virtual

Создать экземпляр visitor'а для обработки запроса linq-выражения для LcsQueryProvider<T,Q>.

Аргументы
viewIsDynamicДинамически создавать представление.
viewПредставление, если было указано.
resolvingViewsПредставления мастеров, необходимые для получения их детейлов, в случае динамических представлений.
Возвращает
Экземпляр visitor'а для обработки запроса linq-выражения для LcsQueryProvider<T,Q>.

Замещает ICSSoft.STORMNET.Business.LINQProvider.IExpressionTreeVisitor.

Замещается в ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorCommon.

override Expression ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase.VisitBinaryExpression ( BinaryExpression  expression)
inlineprotected

Обход бинарной операции в дереве выражения.

Аргументы
expressionЭлемент, соответствующий бинарной операции.
Возвращает
Фактически возвращается то же выражение, но при этом в стеке появляются необходимые параметры.
override Expression ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase.VisitConditionalExpression ( ConditionalExpression  expression)
inlineprotected

Обработка выражения вида IIF(Condition, IfTrue, IfFalse).

Аргументы
expressionТекущее рассматриваемое выражение.
Возвращает
Фактически возвращается то же выражение, но при этом в стеке появляются необходимые параметры.
override Expression ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase.VisitConstantExpression ( ConstantExpression  expression)
inlineprotected

Обход константы в дереве выражения.

Аргументы
expressionЭлемент, соответствующий константе.
Возвращает
Фактически возвращается то же выражение, но при этом в стеке появляются необходимые параметры.
override Expression ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase.VisitMemberExpression ( MemberExpression  expression)
inlineprotected

Обход элемента в дереве выражения, соответствующему свойству элемента.

Аргументы
expressionВыражение, соответствующему свойству элемента.
Возвращает
Реализовано только в потомках, будет проброшено исключение.
Expression ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase.VisitMemberExpressionHelper ( MemberExpression  expression)
inlineprotected

Вспомогательный метод, содержащий общую обработку VisitMemberExpressionHelper, используемую в потомках.

Аргументы
expressionВыражение, содержащее обращение к свойству.
Возвращает
Фактически возвращается то же выражение, но при этом в стеке появляются необходимые параметры.
override Expression ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase.VisitMethodCallExpression ( MethodCallExpression  expression)
inlineprotected

Обход вызова метода в дереве выражения.

Аргументы
expressionЭлемент, соответствующий вызову метода.
Возвращает
Фактически возвращается то же выражение, но при этом в стеке появляются необходимые параметры.
override Expression ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase.VisitSubQueryExpression ( SubQueryExpression  expression)
inlineprotected

Обход подзапроса в дереве выражения.

Аргументы
expressionВыражение-подзапрос.
Возвращает
Данный метод реализован только у потомков.
Expression ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase.VisitSubQueryExpressionHelper ( SubQueryExpression  expression)
inlineprotected

Вспомогательный метод, содержащий общую обработку VisitSubQueryExpression, используемую в потомках.

Аргументы
expressionВыражение, содержащее подзапрос.
Возвращает
Фактически возвращается то же выражение, но при этом в стеке появляются необходимые параметры.
override Expression ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase.VisitUnaryExpression ( UnaryExpression  expression)
inlineprotected

Обход унарной операции в дереве выражения.

Аргументы
expressionЭлемент, соответствующий унарной операции.
Возвращает
Фактически возвращается то же выражение, но при этом в стеке появляются необходимые параметры.

Данные класса

readonly global.ICSSoft.STORMNET.Windows.Forms.ExternalLangDef ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase._ldef = global::ICSSoft.STORMNET.Windows.Forms.ExternalLangDef.LanguageDef
protected

Описание языка для построения lcs.

TreeVisitorStacksHolder ICSSoft.STORMNET.Business.LINQProvider.LcsGeneratorExpressionTreeVisitorBase._stacksHolder
protected

Элемент для организации стека.