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 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.
- Since:
- 2.3
- Version:
- 2.5.1
- Author:
- Pascal Filion
-
-
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(String typeName)Creates a new {link Resolver} that simply wraps the already determined type by using its fully qualified class name.protected ResolverbuildClassResolver(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(String variableName)Creates a newResolverfor the given collection-valued path expression.protected ResolverbuildEnumResolver(AbstractPathExpression expression, IType type, 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(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:
NullPointerException- TheJPQLQueryContextcannot benull
-
-
Method Detail
-
buildClassNameResolver
protected Resolver buildClassNameResolver(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(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(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, 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(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)
Description copied from interface:ExpressionVisitorVisits theAbsExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AbstractSchemaName expression)
Description copied from interface:ExpressionVisitorVisits theAbstractSchemaNameexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AdditionExpression expression)
Description copied from interface:ExpressionVisitorVisits theAdditionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AllOrAnyExpression expression)
Description copied from interface:ExpressionVisitorVisits theAllOrAnyExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AndExpression expression)
Description copied from interface:ExpressionVisitorVisits theAndExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ArithmeticFactor expression)
Description copied from interface:ExpressionVisitorVisits theArithmeticFactorexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AvgFunction expression)
Description copied from interface:ExpressionVisitorVisits theAvgFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(BadExpression expression)
Description copied from interface:ExpressionVisitorVisits theBadExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(BetweenExpression expression)
Description copied from interface:ExpressionVisitorVisits theBetweenExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CaseExpression expression)
Description copied from interface:ExpressionVisitorVisits theCaseExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CoalesceExpression expression)
Description copied from interface:ExpressionVisitorVisits theCoalesceExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CollectionExpression expression)
Description copied from interface:ExpressionVisitorVisits theCollectionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CollectionMemberDeclaration expression)
Description copied from interface:ExpressionVisitorVisits theCollectionMemberDeclarationexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CollectionMemberExpression expression)
Description copied from interface:ExpressionVisitorVisits theCollectionMemberExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CollectionValuedPathExpression expression)
Description copied from interface:ExpressionVisitorVisits theCollectionValuedPathExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ComparisonExpression expression)
Description copied from interface:ExpressionVisitorVisits theComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ConcatExpression expression)
Description copied from interface:ExpressionVisitorVisits theConcatExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ConstructorExpression expression)
Description copied from interface:ExpressionVisitorVisits theConstructorExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CountFunction expression)
Description copied from interface:ExpressionVisitorVisits theCountFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(DateTime expression)
Description copied from interface:ExpressionVisitorVisits theDateTimeexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(DeleteClause expression)
Description copied from interface:ExpressionVisitorVisits theDeleteClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(DeleteStatement expression)
Description copied from interface:ExpressionVisitorVisits theDeleteStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(DivisionExpression expression)
Description copied from interface:ExpressionVisitorVisits theDivisionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(EmptyCollectionComparisonExpression expression)
Description copied from interface:ExpressionVisitorVisits theEmptyCollectionComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(EntityTypeLiteral expression)
Description copied from interface:ExpressionVisitorVisits theEntityTypeLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(EntryExpression expression)
Description copied from interface:ExpressionVisitorVisits theEntryExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ExistsExpression expression)
Description copied from interface:ExpressionVisitorVisits theExistsExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(FromClause expression)
Description copied from interface:ExpressionVisitorVisits theFromClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(FunctionExpression expression)
Description copied from interface:ExpressionVisitorVisits theFunctionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(GroupByClause expression)
Description copied from interface:ExpressionVisitorVisits theGroupByClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(HavingClause expression)
Description copied from interface:ExpressionVisitorVisits theHavingClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(IdentificationVariable expression)
Description copied from interface:ExpressionVisitorVisits theIdentificationVariableexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(IdentificationVariableDeclaration expression)
Description copied from interface:ExpressionVisitorVisits theIdentificationVariableDeclarationexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(IndexExpression expression)
Description copied from interface:ExpressionVisitorVisits theIndexExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(InExpression expression)
Description copied from interface:ExpressionVisitorVisits theInExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(InputParameter expression)
Description copied from interface:ExpressionVisitorVisits theInputParameterexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(Join expression)
Description copied from interface:ExpressionVisitorVisits theJoinexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(JPQLExpression expression)
Description copied from interface:ExpressionVisitorVisits theJPQLExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(KeyExpression expression)
Description copied from interface:ExpressionVisitorVisits theKeyExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(KeywordExpression expression)
Description copied from interface:ExpressionVisitorVisits theKeywordExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LengthExpression expression)
Description copied from interface:ExpressionVisitorVisits theLengthExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LikeExpression expression)
Description copied from interface:ExpressionVisitorVisits theLikeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LocateExpression expression)
Description copied from interface:ExpressionVisitorVisits theLocateExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LowerExpression expression)
Description copied from interface:ExpressionVisitorVisits theLowerExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(MaxFunction expression)
Description copied from interface:ExpressionVisitorVisits theMaxFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(MinFunction expression)
Description copied from interface:ExpressionVisitorVisits theMinFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ModExpression expression)
Description copied from interface:ExpressionVisitorVisits theModExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(MultiplicationExpression expression)
Description copied from interface:ExpressionVisitorVisits theMultiplicationExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NotExpression expression)
Description copied from interface:ExpressionVisitorVisits theNotExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NullComparisonExpression expression)
Description copied from interface:ExpressionVisitorVisits theNullComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NullExpression expression)
Description copied from interface:ExpressionVisitorVisits theNullExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NullIfExpression expression)
Description copied from interface:ExpressionVisitorVisits theNullIfExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NumericLiteral expression)
Description copied from interface:ExpressionVisitorVisits theNumericLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ObjectExpression expression)
Description copied from interface:ExpressionVisitorVisits theObjectExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(OnClause expression)
Description copied from interface:ExpressionVisitorVisits theOnClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(OrderByClause expression)
Description copied from interface:ExpressionVisitorVisits theOrderByClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(OrderByItem expression)
Description copied from interface:ExpressionVisitorVisits theOrderByItemexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(OrExpression expression)
Description copied from interface:ExpressionVisitorVisits theOrExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(RangeVariableDeclaration expression)
Description copied from interface:ExpressionVisitorVisits theRangeVariableDeclarationexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ResultVariable expression)
Description copied from interface:ExpressionVisitorVisits theResultVariableexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SelectClause expression)
Description copied from interface:ExpressionVisitorVisits theSelectClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SelectStatement expression)
Description copied from interface:ExpressionVisitorVisits theSelectStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SimpleFromClause expression)
Description copied from interface:ExpressionVisitorVisits theSimpleFromClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SimpleSelectClause expression)
Description copied from interface:ExpressionVisitorVisits theSimpleSelectClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SimpleSelectStatement expression)
Description copied from interface:ExpressionVisitorVisits theSimpleSelectStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SizeExpression expression)
Description copied from interface:ExpressionVisitorVisits theSizeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SqrtExpression expression)
Description copied from interface:ExpressionVisitorVisits theSqrtExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(StateFieldPathExpression expression)
Description copied from interface:ExpressionVisitorVisits theStateFieldPathExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(StringLiteral expression)
Description copied from interface:ExpressionVisitorVisits theStringLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SubExpression expression)
Description copied from interface:ExpressionVisitorVisits theSubExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SubstringExpression expression)
Description copied from interface:ExpressionVisitorVisits theSubstringExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SubtractionExpression expression)
Description copied from interface:ExpressionVisitorVisits theSubtractionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SumFunction expression)
Description copied from interface:ExpressionVisitorVisits theSumFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(TreatExpression expression)
Description copied from interface:ExpressionVisitorVisits theTreatExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(TrimExpression expression)
Description copied from interface:ExpressionVisitorVisits theTrimExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(TypeExpression expression)
Description copied from interface:ExpressionVisitorVisits theTypeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(UnknownExpression expression)
Description copied from interface:ExpressionVisitorVisits theUnknownExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheUnknownExpressionto visit
-
visit
public void visit(UpdateClause expression)
Description copied from interface:ExpressionVisitorVisits theUpdateClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheUpdateClauseto visit
-
visit
public void visit(UpdateItem expression)
Description copied from interface:ExpressionVisitorVisits theUpdateItemexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheUpdateItemto visit
-
visit
public void visit(UpdateStatement expression)
Description copied from interface:ExpressionVisitorVisits theUpdateStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheUpdateStatementto visit
-
visit
public void visit(UpperExpression expression)
Description copied from interface:ExpressionVisitorVisits theUpperExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheUpperExpressionto visit
-
visit
public void visit(ValueExpression expression)
Description copied from interface:ExpressionVisitorVisits theValueExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheValueExpressionto visit
-
visit
public void visit(WhenClause expression)
Description copied from interface:ExpressionVisitorVisits theWhenClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Parameters:
expression- TheWhenClauseto visit
-
visit
public void visit(WhereClause expression)
Description copied from interface:ExpressionVisitorVisits 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
-
-