Interface ExpressionVisitor<T>
@ProviderType
public interface ExpressionVisitor<T>
Defines expression visitors with arbitrary return types. This interface's
methods are called when an expression node of the expression tree is
traversed.
-
Method Summary
Modifier and TypeMethodDescriptionvisitBinaryExpressionOperation
(BinaryExpression.Operation operation, T left, T right) Called for eachBinaryExpression
.default T
visitCollectionPropertyExpression
(CollectionPropertyExpression collectionPropertyExpression) Called for each traversedComplexPropertyExpression
expressiondefault T
visitComplexPropertyExpression
(ComplexPropertyExpression complexPropertyExpression) Called for each traversedComplexPropertyExpression
expressiondefault T
visitLambdaFunctionExpression
(LambdaFunctionExpression.Type type, String variableName, Expression expression) Called for each traversedLambdaFunctionExpression
expressiondefault T
visitLambdaVariableExpression
(LambdaVariableExpression lambdaVariableExpression) Called for each traversedLambdaVariableExpression
expressionvisitListExpressionOperation
(ListExpression.Operation operation, T left, List<T> right) Called for eachListExpression
.visitLiteralExpression
(LiteralExpression literalExpression) Called for eachLiteralExpression
.visitMemberExpression
(MemberExpression memberExpression) Called for eachMemberExpression
.visitMethodExpression
(List<T> expressions, MethodExpression.Type type) Called for each traversedMethodExpression
expressiondefault T
visitNavigationPropertyExpression
(NavigationPropertyExpression navigationPropertyExpression) default T
visitPrimitivePropertyExpression
(PrimitivePropertyExpression primitivePropertyExpression) Called for each traversedPrimitivePropertyExpression
expression.default T
visitUnaryExpressionOperation
(UnaryExpression.Operation operation, T operand) Called for each traversedUnaryExpression
expression
-
Method Details
-
visitBinaryExpressionOperation
T visitBinaryExpressionOperation(BinaryExpression.Operation operation, T left, T right) throws ExpressionVisitException Called for eachBinaryExpression
.- Parameters:
operation
- the binary expression's operationleft
- the return value of the left subtreeright
- the return value of the right subtree- Returns:
- T the object of type
T
- Throws:
ExpressionVisitException
- if an expression visit exception occurred
-
visitCollectionPropertyExpression
default T visitCollectionPropertyExpression(CollectionPropertyExpression collectionPropertyExpression) throws ExpressionVisitException Called for each traversedComplexPropertyExpression
expression- Parameters:
collectionPropertyExpression
- the complex property expression- Returns:
- T the object of type
T
- Throws:
ExpressionVisitException
- the expression visit exception
-
visitComplexPropertyExpression
default T visitComplexPropertyExpression(ComplexPropertyExpression complexPropertyExpression) throws ExpressionVisitException Called for each traversedComplexPropertyExpression
expression- Parameters:
complexPropertyExpression
- the complex property expression- Returns:
- T the object of type
T
- Throws:
ExpressionVisitException
- the expression visit exception
-
visitLambdaFunctionExpression
default T visitLambdaFunctionExpression(LambdaFunctionExpression.Type type, String variableName, Expression expression) throws ExpressionVisitException Called for each traversedLambdaFunctionExpression
expression- Parameters:
variableName
- the name of the lambda variableexpression
- the expression- Returns:
- T the object of type
T
- Throws:
ExpressionVisitException
- the expression visit exception
-
visitLambdaVariableExpression
default T visitLambdaVariableExpression(LambdaVariableExpression lambdaVariableExpression) throws ExpressionVisitException Called for each traversedLambdaVariableExpression
expression- Parameters:
lambdaVariableExpression
- the lambda variable expression- Returns:
- the t
- Throws:
ExpressionVisitException
- if an expression visit exception occurred
-
visitListExpressionOperation
T visitListExpressionOperation(ListExpression.Operation operation, T left, List<T> right) throws ExpressionVisitException Called for eachListExpression
.- Parameters:
operation
- the list expression's operationleft
- the return value of the left subtreeright
- the return value of the lists of right subtrees- Returns:
- T the object of type
T
- Throws:
ExpressionVisitException
- if an expression visit exception occurred
-
visitLiteralExpression
Called for eachLiteralExpression
.- Parameters:
literalExpression
- the literal expression- Returns:
- T the object of type
T
- Throws:
ExpressionVisitException
- if an expression visit exception occurred
-
visitMemberExpression
Called for eachMemberExpression
.- Parameters:
memberExpression
- the member expression- Returns:
- T the object of type
T
- Throws:
ExpressionVisitException
- if an expression visit exception occurred
-
visitMethodExpression
T visitMethodExpression(List<T> expressions, MethodExpression.Type type) throws ExpressionVisitException Called for each traversedMethodExpression
expression- Parameters:
expressions
- List of return values created by visiting each method expressiontype
- Method.Type- Returns:
- T the object of type
T
- Throws:
ExpressionVisitException
- if an expression visit exception occurred
-
visitPrimitivePropertyExpression
default T visitPrimitivePropertyExpression(PrimitivePropertyExpression primitivePropertyExpression) throws ExpressionVisitException Called for each traversedPrimitivePropertyExpression
expression.- Parameters:
primitivePropertyExpression
- the primitive property expression- Returns:
- T the object of type
T
- Throws:
ExpressionVisitException
- if an expression visit exception occurred
-
visitUnaryExpressionOperation
default T visitUnaryExpressionOperation(UnaryExpression.Operation operation, T operand) throws ExpressionVisitException Called for each traversedUnaryExpression
expression- Parameters:
operation
- the unary expression's operationoperand
- the return value of the subtree- Returns:
- T the object of type
T
- Throws:
ExpressionVisitException
- if an expression visit exception occurred
-