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 aResolverthat gives information about the visitedExpression. The actualResolverwill calculate the properITypeas well.The type of an
Expressionfollows 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_variableis the type of the entity object or embeddable object to which the identification variable corresponds. The type of anidentification_variablethat 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_expressionthat is astate_field_path_expressionis 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_expressionthat is asingle_valued_object_path_expressionis the type of the entity object or embeddable object to which the path expression corresponds. Asingle_valued_object_path_expressionthat 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_expressionthat is an identification_variable to which theKEYorVALUEfunction 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_expressionthat is an identification_variable to which theENTRYfunction 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_expressionis the type of the scalar value to which the expression evaluates. - The result type of an
entity_type_expressionscalar expression is the Java class to which the resulting abstract schema type corresponds. - The result type of a
constructor_expressionis 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 classResolverBuilder.CollectionExpressionVisitorThis visitor is used to check if the expression visited is aCollectionExpression.
-
Field Summary
Fields Modifier and Type Field Description protected ResolverresolverTheResolverfor theExpressionthat 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 ResolverbuildClassNameResolver(java.lang.String typeName)Creates a new {link Resolver} that simply wraps the already determined type by using its fully qualified class name.protected ResolverbuildClassResolver(java.lang.Class<?> type)Creates a new {link Resolver} that simply wraps the already determined type.protected ResolverBuilder.CollectionExpressionVisitorbuildCollectionExpressionVisitor()Creates a visitor that collects theCollectionExpressionif it's been visited.protected ResolverbuildCollectionValuedFieldResolver(java.lang.String variableName)Creates a newResolverfor the given collection-valued path expression.protected ResolverbuildEnumResolver(AbstractPathExpression expression, IType type, java.lang.String enumLiteral)Creates a newResolverthat will resolve the given enum literal.protected ResolverbuildNullResolver()Creates a newResolverthat is used when nothing can be resolved.protected ResolverbuildStateFieldResolver(java.lang.String variableName)Creates a newResolverfor the given state field path expression.voiddispose()Disposes the internal data of this resolver.protected CollectionExpressiongetCollectionExpression(Expression expression)Casts the givenExpressionto aCollectionExpressionif it is actually an object of that type.protected ResolverBuilder.CollectionExpressionVisitorgetCollectionExpressionVisitor()Returns the visitor that collects theCollectionExpressionif it's been visited.protected DeclarationResolvergetDeclarationResolver()Returns theDeclarationResolverof the current query's declaration.protected DeclarationResolvergetDeclarationResolver(Expression expression)Returns theDeclarationResolverof the current query's declaration.protected JPQLQueryContextgetQueryContext()Returns theJPQLQueryContextthat contains information related to the JPQL query.ResolvergetResolver()Returns the currentResolverused to resolve anExpression.voidvisit(AbsExpression expression)Visits theAbsExpressionexpression.voidvisit(AbstractSchemaName expression)Visits theAbstractSchemaNameexpression.voidvisit(AdditionExpression expression)Visits theAdditionExpressionexpression.voidvisit(AllOrAnyExpression expression)Visits theAllOrAnyExpressionexpression.voidvisit(AndExpression expression)Visits theAndExpressionexpression.voidvisit(ArithmeticFactor expression)Visits theArithmeticFactorexpression.voidvisit(AvgFunction expression)Visits theAvgFunctionexpression.voidvisit(BadExpression expression)Visits theBadExpressionexpression.voidvisit(BetweenExpression expression)Visits theBetweenExpressionexpression.voidvisit(CaseExpression expression)Visits theCaseExpressionexpression.voidvisit(CoalesceExpression expression)Visits theCoalesceExpressionexpression.voidvisit(CollectionExpression expression)Visits theCollectionExpressionexpression.voidvisit(CollectionMemberDeclaration expression)Visits theCollectionMemberDeclarationexpression.voidvisit(CollectionMemberExpression expression)Visits theCollectionMemberExpressionexpression.voidvisit(CollectionValuedPathExpression expression)Visits theCollectionValuedPathExpressionexpression.voidvisit(ComparisonExpression expression)Visits theComparisonExpressionexpression.voidvisit(ConcatExpression expression)Visits theConcatExpressionexpression.voidvisit(ConstructorExpression expression)Visits theConstructorExpressionexpression.voidvisit(CountFunction expression)Visits theCountFunctionexpression.voidvisit(DateTime expression)Visits theDateTimeexpression.voidvisit(DeleteClause expression)Visits theDeleteClauseexpression.voidvisit(DeleteStatement expression)Visits theDeleteStatementexpression.voidvisit(DivisionExpression expression)Visits theDivisionExpressionexpression.voidvisit(EmptyCollectionComparisonExpression expression)Visits theEmptyCollectionComparisonExpressionexpression.voidvisit(EntityTypeLiteral expression)Visits theEntityTypeLiteralexpression.voidvisit(EntryExpression expression)Visits theEntryExpressionexpression.voidvisit(ExistsExpression expression)Visits theExistsExpressionexpression.voidvisit(FromClause expression)Visits theFromClauseexpression.voidvisit(FunctionExpression expression)Visits theFunctionExpressionexpression.voidvisit(GroupByClause expression)Visits theGroupByClauseexpression.voidvisit(HavingClause expression)Visits theHavingClauseexpression.voidvisit(IdentificationVariable expression)Visits theIdentificationVariableexpression.voidvisit(IdentificationVariableDeclaration expression)Visits theIdentificationVariableDeclarationexpression.voidvisit(IndexExpression expression)Visits theIndexExpressionexpression.voidvisit(InExpression expression)Visits theInExpressionexpression.voidvisit(InputParameter expression)Visits theInputParameterexpression.voidvisit(Join expression)Visits theJoinexpression.voidvisit(JPQLExpression expression)Visits theJPQLExpressionexpression.voidvisit(KeyExpression expression)Visits theKeyExpressionexpression.voidvisit(KeywordExpression expression)Visits theKeywordExpressionexpression.voidvisit(LengthExpression expression)Visits theLengthExpressionexpression.voidvisit(LikeExpression expression)Visits theLikeExpressionexpression.voidvisit(LocateExpression expression)Visits theLocateExpressionexpression.voidvisit(LowerExpression expression)Visits theLowerExpressionexpression.voidvisit(MaxFunction expression)Visits theMaxFunctionexpression.voidvisit(MinFunction expression)Visits theMinFunctionexpression.voidvisit(ModExpression expression)Visits theModExpressionexpression.voidvisit(MultiplicationExpression expression)Visits theMultiplicationExpressionexpression.voidvisit(NotExpression expression)Visits theNotExpressionexpression.voidvisit(NullComparisonExpression expression)Visits theNullComparisonExpressionexpression.voidvisit(NullExpression expression)Visits theNullExpressionexpression.voidvisit(NullIfExpression expression)Visits theNullIfExpressionexpression.voidvisit(NumericLiteral expression)Visits theNumericLiteralexpression.voidvisit(ObjectExpression expression)Visits theObjectExpressionexpression.voidvisit(OnClause expression)Visits theOnClauseexpression.voidvisit(OrderByClause expression)Visits theOrderByClauseexpression.voidvisit(OrderByItem expression)Visits theOrderByItemexpression.voidvisit(OrExpression expression)Visits theOrExpressionexpression.voidvisit(RangeVariableDeclaration expression)Visits theRangeVariableDeclarationexpression.voidvisit(ResultVariable expression)Visits theResultVariableexpression.voidvisit(SelectClause expression)Visits theSelectClauseexpression.voidvisit(SelectStatement expression)Visits theSelectStatementexpression.voidvisit(SimpleFromClause expression)Visits theSimpleFromClauseexpression.voidvisit(SimpleSelectClause expression)Visits theSimpleSelectClauseexpression.voidvisit(SimpleSelectStatement expression)Visits theSimpleSelectStatementexpression.voidvisit(SizeExpression expression)Visits theSizeExpressionexpression.voidvisit(SqrtExpression expression)Visits theSqrtExpressionexpression.voidvisit(StateFieldPathExpression expression)Visits theStateFieldPathExpressionexpression.voidvisit(StringLiteral expression)Visits theStringLiteralexpression.voidvisit(SubExpression expression)Visits theSubExpressionexpression.voidvisit(SubstringExpression expression)Visits theSubstringExpressionexpression.voidvisit(SubtractionExpression expression)Visits theSubtractionExpressionexpression.voidvisit(SumFunction expression)Visits theSumFunctionexpression.voidvisit(TreatExpression expression)Visits theTreatExpressionexpression.voidvisit(TrimExpression expression)Visits theTrimExpressionexpression.voidvisit(TypeExpression expression)Visits theTypeExpressionexpression.voidvisit(UnknownExpression expression)Visits theUnknownExpressionexpression.voidvisit(UpdateClause expression)Visits theUpdateClauseexpression.voidvisit(UpdateItem expression)Visits theUpdateItemexpression.voidvisit(UpdateStatement expression)Visits theUpdateStatementexpression.voidvisit(UpperExpression expression)Visits theUpperExpressionexpression.voidvisit(ValueExpression expression)Visits theValueExpressionexpression.voidvisit(WhenClause expression)Visits theWhenClauseexpression.voidvisit(WhereClause expression)Visits theWhereClauseexpression.protected voidvisitArithmeticExpression(ArithmeticExpression expression)Visits the givenArithmeticExpressionand create the appropriateResolver.protected voidvisitCollectionEquivalentExpression(Expression expression, Expression extraExpression)Visits the givenExpressionand creates aResolverthat will check the type for each of its children.
-
-
-
Field Detail
-
resolver
protected Resolver resolver
TheResolverfor theExpressionthat 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- TheJPQLQueryContextcannot 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 theCollectionExpressionif it's been visited.- Returns:
- A new
ResolverBuilder.CollectionExpressionVisitor
-
buildCollectionValuedFieldResolver
protected Resolver buildCollectionValuedFieldResolver(java.lang.String variableName)
Creates a newResolverfor the given collection-valued path expression.- Parameters:
variableName- The last segment of the collection-valued path expression- Returns:
- A new
Resolverthat can get the information for a collection-valued path
-
buildEnumResolver
protected Resolver buildEnumResolver(AbstractPathExpression expression, IType type, java.lang.String enumLiteral)
Creates a newResolverthat will resolve the given enum literal.- Parameters:
expression- TheExpressionthat represents the enum literaltype- TheITyperepresenting theEnumtypeenumLiteral- The fully qualified enum constant- Returns:
- The
Resolverfor an enum literal
-
buildNullResolver
protected Resolver buildNullResolver()
Creates a newResolverthat is used when nothing can be resolved.- Returns:
- A "
null" version of aResolver
-
buildStateFieldResolver
protected Resolver buildStateFieldResolver(java.lang.String variableName)
Creates a newResolverfor the given state field path expression.- Parameters:
variableName- The last segment of the state field path expression- Returns:
- A new
Resolverthat 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 givenExpressionto aCollectionExpressionif it is actually an object of that type.- Parameters:
expression- TheExpressionto cast- Returns:
- The given
Expressionif it is aCollectionExpressionornullif it is any other object
-
getCollectionExpressionVisitor
protected ResolverBuilder.CollectionExpressionVisitor getCollectionExpressionVisitor()
Returns the visitor that collects theCollectionExpressionif it's been visited.- Returns:
- The
ResolverBuilder.CollectionExpressionVisitor - See Also:
buildCollectionExpressionVisitor()
-
getDeclarationResolver
protected DeclarationResolver getDeclarationResolver()
Returns theDeclarationResolverof 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 theFROMclause.- Returns:
- The
DeclarationResolverfor the current query being visited
-
getDeclarationResolver
protected DeclarationResolver getDeclarationResolver(Expression expression)
Returns theDeclarationResolverof 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 subqueryFROMclause.- Parameters:
expression- TheExpressionthat will be used to retrieve its query expression, i.e. eitherJPQLExpressionorSimpleSelectStatement- Returns:
- The
DeclarationResolverfor the current query being visited
-
getQueryContext
protected JPQLQueryContext getQueryContext()
Returns theJPQLQueryContextthat contains information related to the JPQL query.- Returns:
- The
JPQLQueryContext, which is nevernull
-
getResolver
public Resolver getResolver()
Returns the currentResolverused to resolve anExpression.- Returns:
- The current
Resolver, which should never benull
-
visit
public void visit(AbsExpression expression)
Visits theAbsExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AbstractSchemaName expression)
Visits theAbstractSchemaNameexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AdditionExpression expression)
Visits theAdditionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AllOrAnyExpression expression)
Visits theAllOrAnyExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AndExpression expression)
Visits theAndExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ArithmeticFactor expression)
Visits theArithmeticFactorexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AvgFunction expression)
Visits theAvgFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(BadExpression expression)
Visits theBadExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(BetweenExpression expression)
Visits theBetweenExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CaseExpression expression)
Visits theCaseExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CoalesceExpression expression)
Visits theCoalesceExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CollectionExpression expression)
Visits theCollectionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CollectionMemberDeclaration expression)
Visits theCollectionMemberDeclarationexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CollectionMemberExpression expression)
Visits theCollectionMemberExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CollectionValuedPathExpression expression)
Visits theCollectionValuedPathExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ComparisonExpression expression)
Visits theComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ConcatExpression expression)
Visits theConcatExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ConstructorExpression expression)
Visits theConstructorExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CountFunction expression)
Visits theCountFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(DateTime expression)
Visits theDateTimeexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(DeleteClause expression)
Visits theDeleteClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(DeleteStatement expression)
Visits theDeleteStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(DivisionExpression expression)
Visits theDivisionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(EmptyCollectionComparisonExpression expression)
Visits theEmptyCollectionComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(EntityTypeLiteral expression)
Visits theEntityTypeLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(EntryExpression expression)
Visits theEntryExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ExistsExpression expression)
Visits theExistsExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(FromClause expression)
Visits theFromClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(FunctionExpression expression)
Visits theFunctionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(GroupByClause expression)
Visits theGroupByClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(HavingClause expression)
Visits theHavingClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(IdentificationVariable expression)
Visits theIdentificationVariableexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(IdentificationVariableDeclaration expression)
Visits theIdentificationVariableDeclarationexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(IndexExpression expression)
Visits theIndexExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(InExpression expression)
Visits theInExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(InputParameter expression)
Visits theInputParameterexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(Join expression)
Visits theJoinexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(JPQLExpression expression)
Visits theJPQLExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(KeyExpression expression)
Visits theKeyExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(KeywordExpression expression)
Visits theKeywordExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LengthExpression expression)
Visits theLengthExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LikeExpression expression)
Visits theLikeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LocateExpression expression)
Visits theLocateExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LowerExpression expression)
Visits theLowerExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(MaxFunction expression)
Visits theMaxFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(MinFunction expression)
Visits theMinFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ModExpression expression)
Visits theModExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(MultiplicationExpression expression)
Visits theMultiplicationExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NotExpression expression)
Visits theNotExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NullComparisonExpression expression)
Visits theNullComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NullExpression expression)
Visits theNullExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NullIfExpression expression)
Visits theNullIfExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NumericLiteral expression)
Visits theNumericLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ObjectExpression expression)
Visits theObjectExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(OnClause expression)
Visits theOnClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(OrderByClause expression)
Visits theOrderByClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(OrderByItem expression)
Visits theOrderByItemexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(OrExpression expression)
Visits theOrExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(RangeVariableDeclaration expression)
Visits theRangeVariableDeclarationexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ResultVariable expression)
Visits theResultVariableexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SelectClause expression)
Visits theSelectClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SelectStatement expression)
Visits theSelectStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SimpleFromClause expression)
Visits theSimpleFromClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SimpleSelectClause expression)
Visits theSimpleSelectClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SimpleSelectStatement expression)
Visits theSimpleSelectStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SizeExpression expression)
Visits theSizeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SqrtExpression expression)
Visits theSqrtExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(StateFieldPathExpression expression)
Visits theStateFieldPathExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(StringLiteral expression)
Visits theStringLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SubExpression expression)
Visits theSubExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SubstringExpression expression)
Visits theSubstringExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SubtractionExpression expression)
Visits theSubtractionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SumFunction expression)
Visits theSumFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(TreatExpression expression)
Visits theTreatExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(TrimExpression expression)
Visits theTrimExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(TypeExpression expression)
Visits theTypeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(UnknownExpression expression)
Visits theUnknownExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheUnknownExpressionto visit
-
visit
public void visit(UpdateClause expression)
Visits theUpdateClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheUpdateClauseto visit
-
visit
public void visit(UpdateItem expression)
Visits theUpdateItemexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheUpdateItemto visit
-
visit
public void visit(UpdateStatement expression)
Visits theUpdateStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheUpdateStatementto visit
-
visit
public void visit(UpperExpression expression)
Visits theUpperExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheUpperExpressionto visit
-
visit
public void visit(ValueExpression expression)
Visits theValueExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheValueExpressionto visit
-
visit
public void visit(WhenClause expression)
Visits theWhenClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheWhenClauseto visit
-
visit
public void visit(WhereClause expression)
Visits theWhereClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheWhereClauseto visit
-
visitArithmeticExpression
protected void visitArithmeticExpression(ArithmeticExpression expression)
Visits the givenArithmeticExpressionand create the appropriateResolver.- Parameters:
expression- TheArithmeticExpressionto visit
-
visitCollectionEquivalentExpression
protected void visitCollectionEquivalentExpression(Expression expression, Expression extraExpression)
Visits the givenExpressionand creates aResolverthat 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- TheExpressionto calculate the type of its childrenextraExpression- ThisExpressionwill be resolved, if it's notnulland its type will be added to the collection of types
-
-