public abstract class ResolverBuilder extends java.lang.Object implements ExpressionVisitor
Resolver
that gives information about the visited Expression
.
The actual Resolver
will calculate the proper IType
as well.
The type of an Expression
follows the following rules:
identification_variable
is the type of the entity object
or embeddable object to which the identification variable corresponds. The type of an
identification_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.single_valued_path_expression
that is a
state_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.single_valued_path_expression
that is a
single_valued_object_path_expression
is the type of the entity object or embeddable
object to which the path expression corresponds. A
single_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.single_valued_path_expression
that is an
identification_variable to which the KEY
or VALUE
function has been
applied is determined by the type of the map key or value respectively, as defined by the above
rules.single_valued_path_expression
that is an
identification_variable to which the ENTRY
function has been applied is
Map.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.scalar_expression
is the type of the scalar value to which
the expression evaluates.entity_type_expression
scalar expression is the Java class
to which the resulting abstract schema type corresponds.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.
Modifier and Type | Class and Description |
---|---|
protected static class |
ResolverBuilder.CollectionExpressionVisitor
This visitor is used to check if the expression visited is a
CollectionExpression . |
Modifier and Type | Field and Description |
---|---|
protected Resolver |
resolver
The
Resolver for the Expression that was visited. |
Constructor and Description |
---|
ResolverBuilder(JPQLQueryContext queryContext)
Creates a new
ResolverBuilder . |
Modifier and Type | Method and 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 the
CollectionExpression if it's been visited. |
protected Resolver |
buildCollectionValuedFieldResolver(java.lang.String variableName)
Creates a new
Resolver for the given collection-valued path expression. |
protected Resolver |
buildEnumResolver(AbstractPathExpression expression,
IType type,
java.lang.String enumLiteral)
Creates a new
Resolver that will resolve the given enum literal. |
protected Resolver |
buildNullResolver()
Creates a new
Resolver that is used when nothing can be resolved. |
protected Resolver |
buildStateFieldResolver(java.lang.String variableName)
Creates a new
Resolver for the given state field path expression. |
void |
dispose()
Disposes the internal data of this resolver.
|
protected CollectionExpression |
getCollectionExpression(Expression expression)
Casts the given
Expression to a CollectionExpression if it is actually an
object of that type. |
protected ResolverBuilder.CollectionExpressionVisitor |
getCollectionExpressionVisitor()
Returns the visitor that collects the
CollectionExpression if it's been visited. |
protected DeclarationResolver |
getDeclarationResolver()
Returns the
DeclarationResolver of the current query's declaration. |
protected DeclarationResolver |
getDeclarationResolver(Expression expression)
Returns the
DeclarationResolver of the current query's declaration. |
protected JPQLQueryContext |
getQueryContext()
Returns the
JPQLQueryContext that contains information related to the JPQL query. |
Resolver |
getResolver()
Returns the current
Resolver used to resolve an Expression . |
void |
visit(AbsExpression expression)
Visits the
AbsExpression expression. |
void |
visit(AbstractSchemaName expression)
Visits the
AbstractSchemaName expression. |
void |
visit(AdditionExpression expression)
Visits the
AdditionExpression expression. |
void |
visit(AllOrAnyExpression expression)
Visits the
AllOrAnyExpression expression. |
void |
visit(AndExpression expression)
Visits the
AndExpression expression. |
void |
visit(ArithmeticFactor expression)
Visits the
ArithmeticFactor expression. |
void |
visit(AvgFunction expression)
Visits the
AvgFunction expression. |
void |
visit(BadExpression expression)
Visits the
BadExpression expression. |
void |
visit(BetweenExpression expression)
Visits the
BetweenExpression expression. |
void |
visit(CaseExpression expression)
Visits the
CaseExpression expression. |
void |
visit(CoalesceExpression expression)
Visits the
CoalesceExpression expression. |
void |
visit(CollectionExpression expression)
Visits the
CollectionExpression expression. |
void |
visit(CollectionMemberDeclaration expression)
Visits the
CollectionMemberDeclaration expression. |
void |
visit(CollectionMemberExpression expression)
Visits the
CollectionMemberExpression expression. |
void |
visit(CollectionValuedPathExpression expression)
Visits the
CollectionValuedPathExpression expression. |
void |
visit(ComparisonExpression expression)
Visits the
ComparisonExpression expression. |
void |
visit(ConcatExpression expression)
Visits the
ConcatExpression expression. |
void |
visit(ConstructorExpression expression)
Visits the
ConstructorExpression expression. |
void |
visit(CountFunction expression)
Visits the
CountFunction expression. |
void |
visit(DateTime expression)
Visits the
DateTime expression. |
void |
visit(DeleteClause expression)
Visits the
DeleteClause expression. |
void |
visit(DeleteStatement expression)
Visits the
DeleteStatement expression. |
void |
visit(DivisionExpression expression)
Visits the
DivisionExpression expression. |
void |
visit(EmptyCollectionComparisonExpression expression)
Visits the
EmptyCollectionComparisonExpression expression. |
void |
visit(EntityTypeLiteral expression)
Visits the
EntityTypeLiteral expression. |
void |
visit(EntryExpression expression)
Visits the
EntryExpression expression. |
void |
visit(ExistsExpression expression)
Visits the
ExistsExpression expression. |
void |
visit(FromClause expression)
Visits the
FromClause expression. |
void |
visit(FunctionExpression expression)
Visits the
FunctionExpression expression. |
void |
visit(GroupByClause expression)
Visits the
GroupByClause expression. |
void |
visit(HavingClause expression)
Visits the
HavingClause expression. |
void |
visit(IdentificationVariable expression)
Visits the
IdentificationVariable expression. |
void |
visit(IdentificationVariableDeclaration expression)
Visits the
IdentificationVariableDeclaration expression. |
void |
visit(IndexExpression expression)
Visits the
IndexExpression expression. |
void |
visit(InExpression expression)
Visits the
InExpression expression. |
void |
visit(InputParameter expression)
Visits the
InputParameter expression. |
void |
visit(Join expression)
Visits the
Join expression. |
void |
visit(JPQLExpression expression)
Visits the
JPQLExpression expression. |
void |
visit(KeyExpression expression)
Visits the
KeyExpression expression. |
void |
visit(KeywordExpression expression)
Visits the
KeywordExpression expression. |
void |
visit(LengthExpression expression)
Visits the
LengthExpression expression. |
void |
visit(LikeExpression expression)
Visits the
LikeExpression expression. |
void |
visit(LocateExpression expression)
Visits the
LocateExpression expression. |
void |
visit(LowerExpression expression)
Visits the
LowerExpression expression. |
void |
visit(MaxFunction expression)
Visits the
MaxFunction expression. |
void |
visit(MinFunction expression)
Visits the
MinFunction expression. |
void |
visit(ModExpression expression)
Visits the
ModExpression expression. |
void |
visit(MultiplicationExpression expression)
Visits the
MultiplicationExpression expression. |
void |
visit(NotExpression expression)
Visits the
NotExpression expression. |
void |
visit(NullComparisonExpression expression)
Visits the
NullComparisonExpression expression. |
void |
visit(NullExpression expression)
Visits the
NullExpression expression. |
void |
visit(NullIfExpression expression)
Visits the
NullIfExpression expression. |
void |
visit(NumericLiteral expression)
Visits the
NumericLiteral expression. |
void |
visit(ObjectExpression expression)
Visits the
ObjectExpression expression. |
void |
visit(OnClause expression)
Visits the
OnClause expression. |
void |
visit(OrderByClause expression)
Visits the
OrderByClause expression. |
void |
visit(OrderByItem expression)
Visits the
OrderByItem expression. |
void |
visit(OrExpression expression)
Visits the
OrExpression expression. |
void |
visit(RangeVariableDeclaration expression)
Visits the
RangeVariableDeclaration expression. |
void |
visit(ResultVariable expression)
Visits the
ResultVariable expression. |
void |
visit(SelectClause expression)
Visits the
SelectClause expression. |
void |
visit(SelectStatement expression)
Visits the
SelectStatement expression. |
void |
visit(SimpleFromClause expression)
Visits the
SimpleFromClause expression. |
void |
visit(SimpleSelectClause expression)
Visits the
SimpleSelectClause expression. |
void |
visit(SimpleSelectStatement expression)
Visits the
SimpleSelectStatement expression. |
void |
visit(SizeExpression expression)
Visits the
SizeExpression expression. |
void |
visit(SqrtExpression expression)
Visits the
SqrtExpression expression. |
void |
visit(StateFieldPathExpression expression)
Visits the
StateFieldPathExpression expression. |
void |
visit(StringLiteral expression)
Visits the
StringLiteral expression. |
void |
visit(SubExpression expression)
Visits the
SubExpression expression. |
void |
visit(SubstringExpression expression)
Visits the
SubstringExpression expression. |
void |
visit(SubtractionExpression expression)
Visits the
SubtractionExpression expression. |
void |
visit(SumFunction expression)
Visits the
SumFunction expression. |
void |
visit(TreatExpression expression)
Visits the
TreatExpression expression. |
void |
visit(TrimExpression expression)
Visits the
TrimExpression expression. |
void |
visit(TypeExpression expression)
Visits the
TypeExpression expression. |
void |
visit(UnknownExpression expression)
Visits the
UnknownExpression expression. |
void |
visit(UpdateClause expression)
Visits the
UpdateClause expression. |
void |
visit(UpdateItem expression)
Visits the
UpdateItem expression. |
void |
visit(UpdateStatement expression)
Visits the
UpdateStatement expression. |
void |
visit(UpperExpression expression)
Visits the
UpperExpression expression. |
void |
visit(ValueExpression expression)
Visits the
ValueExpression expression. |
void |
visit(WhenClause expression)
Visits the
WhenClause expression. |
void |
visit(WhereClause expression)
Visits the
WhereClause expression. |
protected void |
visitArithmeticExpression(ArithmeticExpression expression)
Visits the given
ArithmeticExpression and create the appropriate Resolver . |
protected void |
visitCollectionEquivalentExpression(Expression expression,
Expression extraExpression)
Visits the given
Expression and creates a Resolver that will check the type
for each of its children. |
protected Resolver resolver
Resolver
for the Expression
that was visited.public ResolverBuilder(JPQLQueryContext queryContext)
ResolverBuilder
.queryContext
- The context used to query information about the JPQL queryjava.lang.NullPointerException
- The JPQLQueryContext
cannot be null
protected Resolver buildClassNameResolver(java.lang.String typeName)
protected Resolver buildClassResolver(java.lang.Class<?> type)
protected ResolverBuilder.CollectionExpressionVisitor buildCollectionExpressionVisitor()
CollectionExpression
if it's been visited.ResolverBuilder.CollectionExpressionVisitor
protected Resolver buildCollectionValuedFieldResolver(java.lang.String variableName)
Resolver
for the given collection-valued path expression.variableName
- The last segment of the collection-valued path expressionResolver
that can get the information for a collection-valued pathprotected Resolver buildEnumResolver(AbstractPathExpression expression, IType type, java.lang.String enumLiteral)
Resolver
that will resolve the given enum literal.expression
- The Expression
that represents the enum literaltype
- The IType
representing the Enum
typeenumLiteral
- The fully qualified enum constantResolver
for an enum literalprotected Resolver buildNullResolver()
Resolver
that is used when nothing can be resolved.null
" version of a Resolver
protected Resolver buildStateFieldResolver(java.lang.String variableName)
Resolver
for the given state field path expression.variableName
- The last segment of the state field path expressionResolver
that can get the information for a state field pathpublic void dispose()
protected CollectionExpression getCollectionExpression(Expression expression)
Expression
to a CollectionExpression
if it is actually an
object of that type.expression
- The Expression
to castExpression
if it is a CollectionExpression
or null
if it is any other objectprotected ResolverBuilder.CollectionExpressionVisitor getCollectionExpressionVisitor()
CollectionExpression
if it's been visited.ResolverBuilder.CollectionExpressionVisitor
buildCollectionExpressionVisitor()
protected DeclarationResolver getDeclarationResolver()
DeclarationResolver
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 the
FROM
clause.DeclarationResolver
for the current query being visitedprotected DeclarationResolver getDeclarationResolver(Expression expression)
DeclarationResolver
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 subquery
FROM
clause.expression
- The Expression
that will be used to retrieve its query expression,
i.e. either JPQLExpression
or SimpleSelectStatement
DeclarationResolver
for the current query being visitedprotected JPQLQueryContext getQueryContext()
JPQLQueryContext
that contains information related to the JPQL query.JPQLQueryContext
, which is never null
public Resolver getResolver()
Resolver
used to resolve an Expression
.Resolver
, which should never be null
public void visit(AbsExpression expression)
AbsExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(AbstractSchemaName expression)
AbstractSchemaName
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(AdditionExpression expression)
AdditionExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(AllOrAnyExpression expression)
AllOrAnyExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(AndExpression expression)
AndExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(ArithmeticFactor expression)
ArithmeticFactor
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(AvgFunction expression)
AvgFunction
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(BadExpression expression)
BadExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(BetweenExpression expression)
BetweenExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(CaseExpression expression)
CaseExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(CoalesceExpression expression)
CoalesceExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(CollectionExpression expression)
CollectionExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(CollectionMemberDeclaration expression)
CollectionMemberDeclaration
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(CollectionMemberExpression expression)
CollectionMemberExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(CollectionValuedPathExpression expression)
CollectionValuedPathExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(ComparisonExpression expression)
ComparisonExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(ConcatExpression expression)
ConcatExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(ConstructorExpression expression)
ConstructorExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(CountFunction expression)
CountFunction
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(DateTime expression)
DateTime
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(DeleteClause expression)
DeleteClause
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(DeleteStatement expression)
DeleteStatement
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(DivisionExpression expression)
DivisionExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(EmptyCollectionComparisonExpression expression)
EmptyCollectionComparisonExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(EntityTypeLiteral expression)
EntityTypeLiteral
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(EntryExpression expression)
EntryExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(ExistsExpression expression)
ExistsExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(FromClause expression)
FromClause
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(FunctionExpression expression)
FunctionExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(GroupByClause expression)
GroupByClause
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(HavingClause expression)
HavingClause
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(IdentificationVariable expression)
IdentificationVariable
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(IdentificationVariableDeclaration expression)
IdentificationVariableDeclaration
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(IndexExpression expression)
IndexExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(InExpression expression)
InExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(InputParameter expression)
InputParameter
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(Join expression)
Join
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(JPQLExpression expression)
JPQLExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(KeyExpression expression)
KeyExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(KeywordExpression expression)
KeywordExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(LengthExpression expression)
LengthExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(LikeExpression expression)
LikeExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(LocateExpression expression)
LocateExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(LowerExpression expression)
LowerExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(MaxFunction expression)
MaxFunction
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(MinFunction expression)
MinFunction
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(ModExpression expression)
ModExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(MultiplicationExpression expression)
MultiplicationExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(NotExpression expression)
NotExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(NullComparisonExpression expression)
NullComparisonExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(NullExpression expression)
NullExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(NullIfExpression expression)
NullIfExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(NumericLiteral expression)
NumericLiteral
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(ObjectExpression expression)
ObjectExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(OnClause expression)
OnClause
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(OrderByClause expression)
OrderByClause
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(OrderByItem expression)
OrderByItem
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(OrExpression expression)
OrExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(RangeVariableDeclaration expression)
RangeVariableDeclaration
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(ResultVariable expression)
ResultVariable
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(SelectClause expression)
SelectClause
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(SelectStatement expression)
SelectStatement
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(SimpleFromClause expression)
SimpleFromClause
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(SimpleSelectClause expression)
SimpleSelectClause
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(SimpleSelectStatement expression)
SimpleSelectStatement
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(SizeExpression expression)
SizeExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(SqrtExpression expression)
SqrtExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(StateFieldPathExpression expression)
StateFieldPathExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(StringLiteral expression)
StringLiteral
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(SubExpression expression)
SubExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(SubstringExpression expression)
SubstringExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(SubtractionExpression expression)
SubtractionExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(SumFunction expression)
SumFunction
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(TreatExpression expression)
TreatExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(TrimExpression expression)
TrimExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(TypeExpression expression)
TypeExpression
expression.visit
in interface ExpressionVisitor
expression
- The Expression
to visitpublic void visit(UnknownExpression expression)
UnknownExpression
expression.visit
in interface ExpressionVisitor
expression
- The UnknownExpression
to visitpublic void visit(UpdateClause expression)
UpdateClause
expression.visit
in interface ExpressionVisitor
expression
- The UpdateClause
to visitpublic void visit(UpdateItem expression)
UpdateItem
expression.visit
in interface ExpressionVisitor
expression
- The UpdateItem
to visitpublic void visit(UpdateStatement expression)
UpdateStatement
expression.visit
in interface ExpressionVisitor
expression
- The UpdateStatement
to visitpublic void visit(UpperExpression expression)
UpperExpression
expression.visit
in interface ExpressionVisitor
expression
- The UpperExpression
to visitpublic void visit(ValueExpression expression)
ValueExpression
expression.visit
in interface ExpressionVisitor
expression
- The ValueExpression
to visitpublic void visit(WhenClause expression)
WhenClause
expression.visit
in interface ExpressionVisitor
expression
- The WhenClause
to visitpublic void visit(WhereClause expression)
WhereClause
expression.visit
in interface ExpressionVisitor
expression
- The WhereClause
to visitprotected void visitArithmeticExpression(ArithmeticExpression expression)
ArithmeticExpression
and create the appropriate Resolver
.expression
- The ArithmeticExpression
to visitprotected void visitCollectionEquivalentExpression(Expression expression, Expression extraExpression)
Expression
and creates a Resolver
that will check the type
for each of its children. If the type is the same, then it's the Expression
's type;
otherwise the type will be Object
.expression
- The Expression
to calculate the type of its childrenextraExpression
- This Expression
will be resolved, if it's not null
and its type will be added to the collection of types