Class ResolverBuilder
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.tools.resolver.ResolverBuilder
-
- All Implemented Interfaces:
ExpressionVisitor
- Direct Known Subclasses:
DefaultResolverBuilder
,EclipseLinkResolverBuilder
public abstract class ResolverBuilder extends java.lang.Object implements ExpressionVisitor
This visitor creates aResolver
that gives information about the visitedExpression
. The actualResolver
will calculate the properIType
as well.The type of an
Expression
follows the following rules:- The type of the query result specified by the SELECT clause of a query is an entity abstract schema type, a state field type, the result of a scalar expression, the result of an aggregate function, the result of a construction operation, or some sequence of these.
- The result type of the SELECT clause is defined by the result types of the select expressions contained in it. When multiple select expressions are used in the SELECT clause, the elements in this result correspond in order to the order of their specification in the SELECT clause and in type to the result types of each of the select expressions.
- The result type of an
identification_variable
is the type of the entity object or embeddable object to which the identification variable corresponds. The type of anidentification_variable
that refers to an entity abstract schema type is the type of the entity to which that identification variable corresponds or a subtype as determined by the object/relational mapping. - The result type of a
single_valued_path_expression
that is astate_field_path_expression
is the same type as the corresponding state field of the entity or embeddable class. If the state field of the entity is a primitive type, the result type is the corresponding object type. - The result type of a
single_valued_path_expression
that is asingle_valued_object_path_expression
is the type of the entity object or embeddable object to which the path expression corresponds. Asingle_valued_object_path_expression
that results in an entity object will result in an entity of the type of the relationship field or the subtype of the relationship field of the entity object as determined by the object/relational mapping. - The result type of a
single_valued_path_expression
that is an identification_variable to which theKEY
orVALUE
function has been applied is determined by the type of the map key or value respectively, as defined by the above rules. - The result type of a
single_valued_path_expression
that is an identification_variable to which theENTRY
function has been applied isMap.Entry
, where the key and value types of the map entry are determined by the above rules as applied to the map key and map value respectively. - The result type of a
scalar_expression
is the type of the scalar value to which the expression evaluates. - The result type of an
entity_type_expression
scalar expression is the Java class to which the resulting abstract schema type corresponds. - The result type of a
constructor_expression
is the type of the class for which the constructor is defined. The types of the arguments to the constructor are defined by the above rules.
Provisional API: This interface is part of an interim API that is still under development and expected to change significantly before reaching stability. It is available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.
- Version:
- 2.5.1
- Author:
- Pascal Filion
- Since:
- 2.3
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
ResolverBuilder.CollectionExpressionVisitor
This visitor is used to check if the expression visited is aCollectionExpression
.
-
Field Summary
Fields Modifier and Type Field Description protected Resolver
resolver
TheResolver
for theExpression
that was visited.
-
Constructor Summary
Constructors Constructor Description ResolverBuilder(JPQLQueryContext queryContext)
Creates a newResolverBuilder
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Resolver
buildClassNameResolver(java.lang.String typeName)
Creates a new {link Resolver} that simply wraps the already determined type by using its fully qualified class name.protected Resolver
buildClassResolver(java.lang.Class<?> type)
Creates a new {link Resolver} that simply wraps the already determined type.protected ResolverBuilder.CollectionExpressionVisitor
buildCollectionExpressionVisitor()
Creates a visitor that collects theCollectionExpression
if it's been visited.protected Resolver
buildCollectionValuedFieldResolver(java.lang.String variableName)
Creates a newResolver
for the given collection-valued path expression.protected Resolver
buildEnumResolver(AbstractPathExpression expression, IType type, java.lang.String enumLiteral)
Creates a newResolver
that will resolve the given enum literal.protected Resolver
buildNullResolver()
Creates a newResolver
that is used when nothing can be resolved.protected Resolver
buildStateFieldResolver(java.lang.String variableName)
Creates a newResolver
for the given state field path expression.void
dispose()
Disposes the internal data of this resolver.protected CollectionExpression
getCollectionExpression(Expression expression)
Casts the givenExpression
to aCollectionExpression
if it is actually an object of that type.protected ResolverBuilder.CollectionExpressionVisitor
getCollectionExpressionVisitor()
Returns the visitor that collects theCollectionExpression
if it's been visited.protected DeclarationResolver
getDeclarationResolver()
Returns theDeclarationResolver
of the current query's declaration.protected DeclarationResolver
getDeclarationResolver(Expression expression)
Returns theDeclarationResolver
of the current query's declaration.protected JPQLQueryContext
getQueryContext()
Returns theJPQLQueryContext
that contains information related to the JPQL query.Resolver
getResolver()
Returns the currentResolver
used to resolve anExpression
.void
visit(AbsExpression expression)
Visits theAbsExpression
expression.void
visit(AbstractSchemaName expression)
Visits theAbstractSchemaName
expression.void
visit(AdditionExpression expression)
Visits theAdditionExpression
expression.void
visit(AllOrAnyExpression expression)
Visits theAllOrAnyExpression
expression.void
visit(AndExpression expression)
Visits theAndExpression
expression.void
visit(ArithmeticFactor expression)
Visits theArithmeticFactor
expression.void
visit(AvgFunction expression)
Visits theAvgFunction
expression.void
visit(BadExpression expression)
Visits theBadExpression
expression.void
visit(BetweenExpression expression)
Visits theBetweenExpression
expression.void
visit(CaseExpression expression)
Visits theCaseExpression
expression.void
visit(CoalesceExpression expression)
Visits theCoalesceExpression
expression.void
visit(CollectionExpression expression)
Visits theCollectionExpression
expression.void
visit(CollectionMemberDeclaration expression)
Visits theCollectionMemberDeclaration
expression.void
visit(CollectionMemberExpression expression)
Visits theCollectionMemberExpression
expression.void
visit(CollectionValuedPathExpression expression)
Visits theCollectionValuedPathExpression
expression.void
visit(ComparisonExpression expression)
Visits theComparisonExpression
expression.void
visit(ConcatExpression expression)
Visits theConcatExpression
expression.void
visit(ConstructorExpression expression)
Visits theConstructorExpression
expression.void
visit(CountFunction expression)
Visits theCountFunction
expression.void
visit(DateTime expression)
Visits theDateTime
expression.void
visit(DeleteClause expression)
Visits theDeleteClause
expression.void
visit(DeleteStatement expression)
Visits theDeleteStatement
expression.void
visit(DivisionExpression expression)
Visits theDivisionExpression
expression.void
visit(EmptyCollectionComparisonExpression expression)
Visits theEmptyCollectionComparisonExpression
expression.void
visit(EntityTypeLiteral expression)
Visits theEntityTypeLiteral
expression.void
visit(EntryExpression expression)
Visits theEntryExpression
expression.void
visit(ExistsExpression expression)
Visits theExistsExpression
expression.void
visit(FromClause expression)
Visits theFromClause
expression.void
visit(FunctionExpression expression)
Visits theFunctionExpression
expression.void
visit(GroupByClause expression)
Visits theGroupByClause
expression.void
visit(HavingClause expression)
Visits theHavingClause
expression.void
visit(IdentificationVariable expression)
Visits theIdentificationVariable
expression.void
visit(IdentificationVariableDeclaration expression)
Visits theIdentificationVariableDeclaration
expression.void
visit(IndexExpression expression)
Visits theIndexExpression
expression.void
visit(InExpression expression)
Visits theInExpression
expression.void
visit(InputParameter expression)
Visits theInputParameter
expression.void
visit(Join expression)
Visits theJoin
expression.void
visit(JPQLExpression expression)
Visits theJPQLExpression
expression.void
visit(KeyExpression expression)
Visits theKeyExpression
expression.void
visit(KeywordExpression expression)
Visits theKeywordExpression
expression.void
visit(LengthExpression expression)
Visits theLengthExpression
expression.void
visit(LikeExpression expression)
Visits theLikeExpression
expression.void
visit(LocateExpression expression)
Visits theLocateExpression
expression.void
visit(LowerExpression expression)
Visits theLowerExpression
expression.void
visit(MaxFunction expression)
Visits theMaxFunction
expression.void
visit(MinFunction expression)
Visits theMinFunction
expression.void
visit(ModExpression expression)
Visits theModExpression
expression.void
visit(MultiplicationExpression expression)
Visits theMultiplicationExpression
expression.void
visit(NotExpression expression)
Visits theNotExpression
expression.void
visit(NullComparisonExpression expression)
Visits theNullComparisonExpression
expression.void
visit(NullExpression expression)
Visits theNullExpression
expression.void
visit(NullIfExpression expression)
Visits theNullIfExpression
expression.void
visit(NumericLiteral expression)
Visits theNumericLiteral
expression.void
visit(ObjectExpression expression)
Visits theObjectExpression
expression.void
visit(OnClause expression)
Visits theOnClause
expression.void
visit(OrderByClause expression)
Visits theOrderByClause
expression.void
visit(OrderByItem expression)
Visits theOrderByItem
expression.void
visit(OrExpression expression)
Visits theOrExpression
expression.void
visit(RangeVariableDeclaration expression)
Visits theRangeVariableDeclaration
expression.void
visit(ResultVariable expression)
Visits theResultVariable
expression.void
visit(SelectClause expression)
Visits theSelectClause
expression.void
visit(SelectStatement expression)
Visits theSelectStatement
expression.void
visit(SimpleFromClause expression)
Visits theSimpleFromClause
expression.void
visit(SimpleSelectClause expression)
Visits theSimpleSelectClause
expression.void
visit(SimpleSelectStatement expression)
Visits theSimpleSelectStatement
expression.void
visit(SizeExpression expression)
Visits theSizeExpression
expression.void
visit(SqrtExpression expression)
Visits theSqrtExpression
expression.void
visit(StateFieldPathExpression expression)
Visits theStateFieldPathExpression
expression.void
visit(StringLiteral expression)
Visits theStringLiteral
expression.void
visit(SubExpression expression)
Visits theSubExpression
expression.void
visit(SubstringExpression expression)
Visits theSubstringExpression
expression.void
visit(SubtractionExpression expression)
Visits theSubtractionExpression
expression.void
visit(SumFunction expression)
Visits theSumFunction
expression.void
visit(TreatExpression expression)
Visits theTreatExpression
expression.void
visit(TrimExpression expression)
Visits theTrimExpression
expression.void
visit(TypeExpression expression)
Visits theTypeExpression
expression.void
visit(UnknownExpression expression)
Visits theUnknownExpression
expression.void
visit(UpdateClause expression)
Visits theUpdateClause
expression.void
visit(UpdateItem expression)
Visits theUpdateItem
expression.void
visit(UpdateStatement expression)
Visits theUpdateStatement
expression.void
visit(UpperExpression expression)
Visits theUpperExpression
expression.void
visit(ValueExpression expression)
Visits theValueExpression
expression.void
visit(WhenClause expression)
Visits theWhenClause
expression.void
visit(WhereClause expression)
Visits theWhereClause
expression.protected void
visitArithmeticExpression(ArithmeticExpression expression)
Visits the givenArithmeticExpression
and create the appropriateResolver
.protected void
visitCollectionEquivalentExpression(Expression expression, Expression extraExpression)
Visits the givenExpression
and creates aResolver
that will check the type for each of its children.
-
-
-
Field Detail
-
resolver
protected Resolver resolver
TheResolver
for theExpression
that was visited.
-
-
Constructor Detail
-
ResolverBuilder
public ResolverBuilder(JPQLQueryContext queryContext)
Creates a newResolverBuilder
.- Parameters:
queryContext
- The context used to query information about the JPQL query- Throws:
java.lang.NullPointerException
- TheJPQLQueryContext
cannot benull
-
-
Method Detail
-
buildClassNameResolver
protected Resolver buildClassNameResolver(java.lang.String typeName)
Creates a new {link Resolver} that simply wraps the already determined type by using its fully qualified class name.
-
buildClassResolver
protected Resolver buildClassResolver(java.lang.Class<?> type)
Creates a new {link Resolver} that simply wraps the already determined type.
-
buildCollectionExpressionVisitor
protected ResolverBuilder.CollectionExpressionVisitor buildCollectionExpressionVisitor()
Creates a visitor that collects theCollectionExpression
if it's been visited.- Returns:
- A new
ResolverBuilder.CollectionExpressionVisitor
-
buildCollectionValuedFieldResolver
protected Resolver buildCollectionValuedFieldResolver(java.lang.String variableName)
Creates a newResolver
for the given collection-valued path expression.- Parameters:
variableName
- The last segment of the collection-valued path expression- Returns:
- A new
Resolver
that can get the information for a collection-valued path
-
buildEnumResolver
protected Resolver buildEnumResolver(AbstractPathExpression expression, IType type, java.lang.String enumLiteral)
Creates a newResolver
that will resolve the given enum literal.- Parameters:
expression
- TheExpression
that represents the enum literaltype
- TheIType
representing theEnum
typeenumLiteral
- The fully qualified enum constant- Returns:
- The
Resolver
for an enum literal
-
buildNullResolver
protected Resolver buildNullResolver()
Creates a newResolver
that is used when nothing can be resolved.- Returns:
- A "
null
" version of aResolver
-
buildStateFieldResolver
protected Resolver buildStateFieldResolver(java.lang.String variableName)
Creates a newResolver
for the given state field path expression.- Parameters:
variableName
- The last segment of the state field path expression- Returns:
- A new
Resolver
that can get the information for a state field path
-
dispose
public void dispose()
Disposes the internal data of this resolver.
-
getCollectionExpression
protected CollectionExpression getCollectionExpression(Expression expression)
Casts the givenExpression
to aCollectionExpression
if it is actually an object of that type.- Parameters:
expression
- TheExpression
to cast- Returns:
- The given
Expression
if it is aCollectionExpression
ornull
if it is any other object
-
getCollectionExpressionVisitor
protected ResolverBuilder.CollectionExpressionVisitor getCollectionExpressionVisitor()
Returns the visitor that collects theCollectionExpression
if it's been visited.- Returns:
- The
ResolverBuilder.CollectionExpressionVisitor
- See Also:
buildCollectionExpressionVisitor()
-
getDeclarationResolver
protected DeclarationResolver getDeclarationResolver()
Returns theDeclarationResolver
of the current query's declaration. For a SELECT query, it contains the information defined in the FROM clause. For DELETE and UPDATE queries, it contains a single range declaration variable. If the current query is a subquery, then it contains the information defined in theFROM
clause.- Returns:
- The
DeclarationResolver
for the current query being visited
-
getDeclarationResolver
protected DeclarationResolver getDeclarationResolver(Expression expression)
Returns theDeclarationResolver
of the current query's declaration. For a SELECT query, it contains the information defined in the FROM clause. For DELETE and UPDATE queries, it contains a single range variable declaration. If the current query is a subquery, then it contains the information defined in the subqueryFROM
clause.- Parameters:
expression
- TheExpression
that will be used to retrieve its query expression, i.e. eitherJPQLExpression
orSimpleSelectStatement
- Returns:
- The
DeclarationResolver
for the current query being visited
-
getQueryContext
protected JPQLQueryContext getQueryContext()
Returns theJPQLQueryContext
that contains information related to the JPQL query.- Returns:
- The
JPQLQueryContext
, which is nevernull
-
getResolver
public Resolver getResolver()
Returns the currentResolver
used to resolve anExpression
.- Returns:
- The current
Resolver
, which should never benull
-
visit
public void visit(AbsExpression expression)
Visits theAbsExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(AbstractSchemaName expression)
Visits theAbstractSchemaName
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(AdditionExpression expression)
Visits theAdditionExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(AllOrAnyExpression expression)
Visits theAllOrAnyExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(AndExpression expression)
Visits theAndExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ArithmeticFactor expression)
Visits theArithmeticFactor
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(AvgFunction expression)
Visits theAvgFunction
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(BadExpression expression)
Visits theBadExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(BetweenExpression expression)
Visits theBetweenExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CaseExpression expression)
Visits theCaseExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CoalesceExpression expression)
Visits theCoalesceExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CollectionExpression expression)
Visits theCollectionExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CollectionMemberDeclaration expression)
Visits theCollectionMemberDeclaration
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CollectionMemberExpression expression)
Visits theCollectionMemberExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CollectionValuedPathExpression expression)
Visits theCollectionValuedPathExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ComparisonExpression expression)
Visits theComparisonExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ConcatExpression expression)
Visits theConcatExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ConstructorExpression expression)
Visits theConstructorExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CountFunction expression)
Visits theCountFunction
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(DateTime expression)
Visits theDateTime
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(DeleteClause expression)
Visits theDeleteClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(DeleteStatement expression)
Visits theDeleteStatement
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(DivisionExpression expression)
Visits theDivisionExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(EmptyCollectionComparisonExpression expression)
Visits theEmptyCollectionComparisonExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(EntityTypeLiteral expression)
Visits theEntityTypeLiteral
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(EntryExpression expression)
Visits theEntryExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ExistsExpression expression)
Visits theExistsExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(FromClause expression)
Visits theFromClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(FunctionExpression expression)
Visits theFunctionExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(GroupByClause expression)
Visits theGroupByClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(HavingClause expression)
Visits theHavingClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(IdentificationVariable expression)
Visits theIdentificationVariable
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(IdentificationVariableDeclaration expression)
Visits theIdentificationVariableDeclaration
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(IndexExpression expression)
Visits theIndexExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(InExpression expression)
Visits theInExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(InputParameter expression)
Visits theInputParameter
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(Join expression)
Visits theJoin
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(JPQLExpression expression)
Visits theJPQLExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(KeyExpression expression)
Visits theKeyExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(KeywordExpression expression)
Visits theKeywordExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(LengthExpression expression)
Visits theLengthExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(LikeExpression expression)
Visits theLikeExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(LocateExpression expression)
Visits theLocateExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(LowerExpression expression)
Visits theLowerExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(MaxFunction expression)
Visits theMaxFunction
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(MinFunction expression)
Visits theMinFunction
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ModExpression expression)
Visits theModExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(MultiplicationExpression expression)
Visits theMultiplicationExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(NotExpression expression)
Visits theNotExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(NullComparisonExpression expression)
Visits theNullComparisonExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(NullExpression expression)
Visits theNullExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(NullIfExpression expression)
Visits theNullIfExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(NumericLiteral expression)
Visits theNumericLiteral
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ObjectExpression expression)
Visits theObjectExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(OnClause expression)
Visits theOnClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(OrderByClause expression)
Visits theOrderByClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(OrderByItem expression)
Visits theOrderByItem
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(OrExpression expression)
Visits theOrExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(RangeVariableDeclaration expression)
Visits theRangeVariableDeclaration
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ResultVariable expression)
Visits theResultVariable
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SelectClause expression)
Visits theSelectClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SelectStatement expression)
Visits theSelectStatement
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SimpleFromClause expression)
Visits theSimpleFromClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SimpleSelectClause expression)
Visits theSimpleSelectClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SimpleSelectStatement expression)
Visits theSimpleSelectStatement
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SizeExpression expression)
Visits theSizeExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SqrtExpression expression)
Visits theSqrtExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(StateFieldPathExpression expression)
Visits theStateFieldPathExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(StringLiteral expression)
Visits theStringLiteral
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SubExpression expression)
Visits theSubExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SubstringExpression expression)
Visits theSubstringExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SubtractionExpression expression)
Visits theSubtractionExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SumFunction expression)
Visits theSumFunction
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(TreatExpression expression)
Visits theTreatExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(TrimExpression expression)
Visits theTrimExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(TypeExpression expression)
Visits theTypeExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(UnknownExpression expression)
Visits theUnknownExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheUnknownExpression
to visit
-
visit
public void visit(UpdateClause expression)
Visits theUpdateClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheUpdateClause
to visit
-
visit
public void visit(UpdateItem expression)
Visits theUpdateItem
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheUpdateItem
to visit
-
visit
public void visit(UpdateStatement expression)
Visits theUpdateStatement
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheUpdateStatement
to visit
-
visit
public void visit(UpperExpression expression)
Visits theUpperExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheUpperExpression
to visit
-
visit
public void visit(ValueExpression expression)
Visits theValueExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheValueExpression
to visit
-
visit
public void visit(WhenClause expression)
Visits theWhenClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheWhenClause
to visit
-
visit
public void visit(WhereClause expression)
Visits theWhereClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Parameters:
expression
- TheWhereClause
to visit
-
visitArithmeticExpression
protected void visitArithmeticExpression(ArithmeticExpression expression)
Visits the givenArithmeticExpression
and create the appropriateResolver
.- Parameters:
expression
- TheArithmeticExpression
to visit
-
visitCollectionEquivalentExpression
protected void visitCollectionEquivalentExpression(Expression expression, Expression extraExpression)
Visits the givenExpression
and creates aResolver
that will check the type for each of its children. If the type is the same, then it's theExpression
's type; otherwise the type will beObject
.- Parameters:
expression
- TheExpression
to calculate the type of its childrenextraExpression
- ThisExpression
will be resolved, if it's notnull
and its type will be added to the collection of types
-
-