Package org.eclipse.persistence.jpa.jpql
Class AbstractGrammarValidator
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.parser.AnonymousExpressionVisitor
-
- org.eclipse.persistence.jpa.jpql.AbstractValidator
-
- org.eclipse.persistence.jpa.jpql.AbstractGrammarValidator
-
- All Implemented Interfaces:
ExpressionVisitor
- Direct Known Subclasses:
DefaultGrammarValidator
,EclipseLinkGrammarValidator
public abstract class AbstractGrammarValidator extends AbstractValidator
The base validator responsible to gather the problems found in a JPQL query by validating it against the provided JPQL grammar. The semantic of the JPQL query is not validated by this visitor.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
- See Also:
AbstractSemanticValidator
- Author:
- Pascal Filion
- Since:
- 2.4
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static class
AbstractGrammarValidator.AbstractCollectionValidator
This validate is responsible to validate the collection ofExpressions
: Making sure they are all separated by a comma or by a space (depending on which one is required); Making sure it does not end with a comma; There is no empty expression between two commas.protected static class
AbstractGrammarValidator.AbstractDoubleEncapsulatedExpressionHelper<T extends AbstractDoubleEncapsulatedExpression>
protected static interface
AbstractGrammarValidator.AbstractEncapsulatedExpressionHelper<T extends AbstractEncapsulatedExpression>
The root helper that validates anyAbstractEncapsulatedExpression
.protected static class
AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<T extends AbstractSingleEncapsulatedExpression>
The abstract implementation ofAbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper
which implements some of the methods since the behavior is the same for all subclasses ofAbstractSingleEncapsulatedExpression
.protected static class
AbstractGrammarValidator.AbstractTripleEncapsulatedExpressionHelper<T extends AbstractTripleEncapsulatedExpression>
protected static class
AbstractGrammarValidator.CollectionExpressionVisitor
This visitor retrieves theCollectionExpression
if it is visited.protected static class
AbstractGrammarValidator.CollectionSeparatedByCommaValidator
This validator validates aCollectionExpression
by making sure each item is separated by a comma.protected static class
AbstractGrammarValidator.CollectionSeparatedBySpaceValidator
This validator validates aCollectionExpression
by making sure each item is not separated by a comma.protected static class
AbstractGrammarValidator.ComparisonExpressionVisitor
protected static class
AbstractGrammarValidator.DateTimeVisitor
protected static class
AbstractGrammarValidator.NullExpressionVisitor
This visitor checks to see if the visited expression isNullExpression
.-
Nested classes/interfaces inherited from class org.eclipse.persistence.jpa.jpql.AbstractValidator
AbstractValidator.BypassChildCollectionExpressionVisitor, AbstractValidator.BypassParentSubExpressionVisitor, AbstractValidator.ChildrenCollectorVisitor, AbstractValidator.JPQLQueryBNFValidator, AbstractValidator.NestedArrayVisitor, AbstractValidator.OwningClauseVisitor, AbstractValidator.OwningStatementVisitor, AbstractValidator.SubqueryVisitor
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractGrammarValidator(JPQLGrammar jpqlGrammar)
Creates a newAbstractGrammarValidator
.
-
Method Summary
-
Methods inherited from class org.eclipse.persistence.jpa.jpql.AbstractValidator
addProblem, addProblem, addProblem, addProblem, buildChildrenCollector, buildLiteralVisitor, buildNestedArrayVisitor, buildOwningClauseVisitor, buildOwningStatementVisitor, buildProblem, buildSubqueryVisitor, getBypassChildCollectionExpressionVisitor, getBypassParentSubExpressionVisitor, getChildren, getChildrenCollectorVisitor, getExpressionRegistry, getExpressionValidator, getJPAVersion, getJPQLQueryBNFValidator, getJPQLQueryBNFValidator, getLiteralVisitor, getNestedArrayVisitor, getOwningClauseVisitor, getOwningStatementVisitor, getProvider, getProviderVersion, getQueryBNF, getSubqueryVisitor, isNestedArray, isSubquery, isValid, isValid, isValid, isValidWithChildCollectionBypass, isWithinSubquery, isWithinTopLevelQuery, length, literal, nestedArraySize, position, problemsSize, setProblems, visit
-
-
-
-
Constructor Detail
-
AbstractGrammarValidator
protected AbstractGrammarValidator(JPQLGrammar jpqlGrammar)
Creates a newAbstractGrammarValidator
.- Parameters:
jpqlGrammar
- TheJPQLGrammar
that defines how the JPQL query was parsed, which cannot benull
- Throws:
java.lang.NullPointerException
- If the givenJPQLGrammar
isnull
-
-
Method Detail
-
absExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<AbsExpression> absExpressionHelper()
-
allOrAnyExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<AllOrAnyExpression> allOrAnyExpressionHelper()
-
avgFunctionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<AvgFunction> avgFunctionHelper()
-
buildAbsExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<AbsExpression> buildAbsExpressionHelper()
-
buildAllOrAnyExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<AllOrAnyExpression> buildAllOrAnyExpressionHelper()
-
buildAvgFunctionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<AvgFunction> buildAvgFunctionHelper()
-
buildCoalesceExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<CoalesceExpression> buildCoalesceExpressionHelper()
-
buildCollectionExpressionVisitor
protected AbstractGrammarValidator.CollectionExpressionVisitor buildCollectionExpressionVisitor()
Creates a visitor that collects theCollectionExpression
if it's been visited.- Returns:
- A new
AbstractGrammarValidator.CollectionExpressionVisitor
-
buildConcatExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<ConcatExpression> buildConcatExpressionHelper()
-
buildCountFunctionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<CountFunction> buildCountFunctionHelper()
-
buildDateTimeVisitor
protected AbstractGrammarValidator.DateTimeVisitor buildDateTimeVisitor()
-
buildEntryExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<EntryExpression> buildEntryExpressionHelper()
-
buildExistsExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<ExistsExpression> buildExistsExpressionHelper()
-
buildFunctionExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<FunctionExpression> buildFunctionExpressionHelper()
-
buildIndexExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<IndexExpression> buildIndexExpressionHelper()
-
buildKeyExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<KeyExpression> buildKeyExpressionHelper()
-
buildLengthExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<LengthExpression> buildLengthExpressionHelper()
-
buildLocateExpressionHelper
protected AbstractGrammarValidator.AbstractTripleEncapsulatedExpressionHelper<LocateExpression> buildLocateExpressionHelper()
-
buildLowerExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<LowerExpression> buildLowerExpressionHelper()
-
buildMaxFunctionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<MaxFunction> buildMaxFunctionHelper()
-
buildMinFunctionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<MinFunction> buildMinFunctionHelper()
-
buildModExpressionHelper
protected AbstractGrammarValidator.AbstractDoubleEncapsulatedExpressionHelper<ModExpression> buildModExpressionHelper()
-
buildNullExpressionVisitor
protected AbstractGrammarValidator.NullExpressionVisitor buildNullExpressionVisitor()
Creates a visitor that collects theNullExpression
if it's been visited.- Returns:
- A new
AbstractGrammarValidator.NullExpressionVisitor
-
buildNullIfExpressionHelper
protected AbstractGrammarValidator.AbstractDoubleEncapsulatedExpressionHelper<NullIfExpression> buildNullIfExpressionHelper()
-
buildObjectExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<ObjectExpression> buildObjectExpressionHelper()
-
buildSizeExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<SizeExpression> buildSizeExpressionHelper()
-
buildSqrtExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<SqrtExpression> buildSqrtExpressionHelper()
-
buildSubstringExpressionHelper
protected AbstractGrammarValidator.AbstractTripleEncapsulatedExpressionHelper<SubstringExpression> buildSubstringExpressionHelper()
-
buildSumFunctionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<SumFunction> buildSumFunctionHelper()
-
buildTrimExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<TrimExpression> buildTrimExpressionHelper()
-
buildTypeExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<TypeExpression> buildTypeExpressionHelper()
-
buildUpperExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<UpperExpression> buildUpperExpressionHelper()
-
buildValueExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<ValueExpression> buildValueExpressionHelper()
-
coalesceExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<CoalesceExpression> coalesceExpressionHelper()
-
collectionSeparatedByCommaValidator
protected AbstractGrammarValidator.CollectionSeparatedByCommaValidator collectionSeparatedByCommaValidator()
-
collectionSeparatedBySpaceValidator
protected AbstractGrammarValidator.CollectionSeparatedBySpaceValidator collectionSeparatedBySpaceValidator()
-
comparisonExpressionVisitor
protected AbstractGrammarValidator.ComparisonExpressionVisitor comparisonExpressionVisitor()
-
concatExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<ConcatExpression> concatExpressionHelper()
-
countFunctionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<CountFunction> countFunctionHelper()
-
dispose
public void dispose()
Disposes this visitor.- Overrides:
dispose
in classAbstractValidator
-
entryExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<EntryExpression> entryExpressionHelper()
-
existsExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<ExistsExpression> existsExpressionHelper()
-
functionExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<FunctionExpression> functionExpressionHelper()
-
getCollectionExpression
protected CollectionExpression getCollectionExpression(Expression expression)
Casts the givenExpression
to aCollectionExpression
if it is actually an object of that type.- Parameters:
expression
- TheExpression
to cast- Returns:
- The given
Expression
if it is aCollectionExpression
ornull
if it is any other object
-
getCollectionExpressionVisitor
protected AbstractGrammarValidator.CollectionExpressionVisitor getCollectionExpressionVisitor()
Returns the visitor that collects theCollectionExpression
if it's been visited.- Returns:
- The
AbstractGrammarValidator.CollectionExpressionVisitor
- See Also:
buildCollectionExpressionVisitor()
-
getDateTimeVisitor
protected AbstractGrammarValidator.DateTimeVisitor getDateTimeVisitor()
-
getGrammar
protected JPQLGrammar getGrammar()
Returns theJPQLGrammar
that defines how the JPQL query was parsed.- Specified by:
getGrammar
in classAbstractValidator
- Returns:
- The
JPQLGrammar
that was used to parse the JPQL query
-
getHelper
protected <T> T getHelper(java.lang.String id)
Returns the registered helper that was cached with the given id.- Parameters:
id
- The key used to retrieve the cached helper, if one was cached- Returns:
- Either the cached helper or
null
if no helper was previously cached for the given id
-
indexExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<IndexExpression> indexExpressionHelper()
-
initialize
protected void initialize()
Initializes this validator.- Overrides:
initialize
in classAbstractValidator
-
isChildOfComparisonExpession
protected boolean isChildOfComparisonExpession(AllOrAnyExpression expression)
-
isCollectionExpression
protected boolean isCollectionExpression(Expression expression)
Determines whether the givenExpression
is aCollectionExpression
.- Parameters:
expression
- TheExpression
to verify- Returns:
true
if the given givenExpression
is aCollectionExpression
;false
otherwise
-
isDateTimeConstant
protected boolean isDateTimeConstant(Expression leftExpression)
Determines whether the givenExpression
represents one of the three date constants or not.- Parameters:
leftExpression
- TheExpression
to visit- Returns:
true
if the givenExpression
represents one of the tree date constants;false
otherwise
-
isInputParameterInValidLocation
protected boolean isInputParameterInValidLocation(InputParameter expression)
-
isJoinFetchIdentifiable
protected abstract boolean isJoinFetchIdentifiable()
Determines whether aJOIN FETCH
expression can be identified by with an identification variable or not.- Returns:
true
if the expression can have an identification variable;false
otherwise
-
isJPA1_0
protected boolean isJPA1_0()
Determines whether the JPA version defined by the JPQL grammar is 1.0.- Returns:
true
if the JPQL grammar was defined for JPA 1.0;false
if it was defined for a more recent version
-
isJPA2_0
protected boolean isJPA2_0()
Determines whether the JPA version defined by the JPQL grammar is 2.0.- Returns:
true
if the JPQL grammar was defined for JPA 2.0;false
if it was defined for a more recent version
-
isJPA2_1
protected boolean isJPA2_1()
Determines whether the JPA version defined by the JPQL grammar is 2.1.- Returns:
true
if the JPQL grammar was defined for JPA 2.1;false
if it was defined for a more recent version
-
isMultipleSubquerySelectItemsAllowed
protected boolean isMultipleSubquerySelectItemsAllowed(SimpleSelectClause expression)
Determines whether the given subquerySELECT
clause can return more than one item or just a single. By default, only one item can be returned.- Parameters:
expression
- The subquerySELECT
clause- Returns:
true
if it can return more than one item;false
if it needs to return only one item
-
isNewerThan
protected final boolean isNewerThan(JPAVersion version)
Determines whether the JPA version for which the JPQL grammar was defined represents a version that is newer than the given version.- Parameters:
version
- The constant to verify if it's representing a version that is older than this one- Returns:
true
if this constant represents a newer version and the given constant represents a version that is older;false
if the given constant represents a newer and this constant represents an older version
-
isNewerThanOrEqual
protected final boolean isNewerThanOrEqual(JPAVersion version)
Determines whether the JPA version for which the JPQL grammar was defined represents a version that is newer than the given version or if it's the same version.- Parameters:
version
- The constant to verify if it's representing a version that is older than this one or if it's the same than this one- Returns:
true
if this constant represents a newer version and the given constant represents a version that is older or if it's the same constant;false
if the given constant represents a newer and this constant represents an older version
-
isNumericLiteral
protected boolean isNumericLiteral(java.lang.String text)
Determines whether the given sequence of characters is a numeric literal or not. There are two types of numeric literal that is supported:- Decimal literal
- Hexadecimal literal
- Parameters:
text
- The sequence of characters to validate- Returns:
true
if the given sequence of characters is a valid numeric literal;false
otherwise
-
isOlderThan
protected final boolean isOlderThan(JPAVersion version)
Determines whether the JPA version for which the JPQL grammar was defined represents a version that is older than the given version.- Parameters:
version
- The constant to verify if it's representing a version that is more recent than this one- Returns:
true
if this constant represents an earlier version and the given constant represents a version that is more recent;false
if the given constant represents an earlier version and this constant represents a more recent version
-
isOlderThanOrEqual
protected final boolean isOlderThanOrEqual(JPAVersion version)
Determines whether the JPA version for which the JPQL grammar was defined represents a version that is older than the given version or if it's the same version.- Parameters:
version
- The constant to verify if it's representing a version that is more recent than this one or if it's the same than this one- Returns:
true
if this constant represents an earlier version and the given constant represents a version that is more recent or if it's the same constant;false
if the given constant represents an earlier version and this constant represents a more recent version
-
isOwnedByConditionalClause
protected boolean isOwnedByConditionalClause(Expression expression)
Determines whether the givenExpression
is a child of the WHERE or HAVING clause of the top-level query.- Parameters:
expression
- TheExpression
to visit its parent hierarchy up to the clause- Returns:
true
if the first parent being a clause is the WHERE or HAVING clause;false
otherwise
-
isOwnedByFromClause
protected boolean isOwnedByFromClause(Expression expression)
Determines whether the givenExpression
is a child of the FROM clause of the top-level query.- Parameters:
expression
- TheExpression
to visit its parent hierarchy up to the clause- Returns:
true
if the first parent being a clause is the top-level FROM clause;false
otherwise
-
isOwnedBySubFromClause
protected boolean isOwnedBySubFromClause(Expression expression)
Determines whether the givenExpression
is a child of the FROM clause of a subquery.- Parameters:
expression
- TheExpression
to visit its parent hierarchy up to the clause- Returns:
true
if the first parent being a clause is the FROM clause of a subquery;false
otherwise
-
isSubqueryAllowedAnywhere
protected abstract boolean isSubqueryAllowedAnywhere()
Determines whether a subquery can be used in any clause of the top-level query.- Returns:
true
if a subquery can be defined in any clause;false
if it can only be used within theWHERE
andHAVING
defined by the JPA 1.0 and 2.0 specification document
-
isValidJavaIdentifier
protected boolean isValidJavaIdentifier(java.lang.String variable)
Determines whether the given variable is a valid Java identifier, which means it follows the Java specification. The first letter has to be a Java identifier start and the others have to be Java identifier parts.- Parameters:
variable
- The variable to validate- Returns:
true
if the given variable follows the Java identifier specification;false
otherwise
-
keyExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<KeyExpression> keyExpressionHelper()
-
lengthExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<LengthExpression> lengthExpressionHelper()
-
locateExpressionHelper
protected AbstractGrammarValidator.AbstractTripleEncapsulatedExpressionHelper<LocateExpression> locateExpressionHelper()
-
lowerExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<LowerExpression> lowerExpressionHelper()
-
maxFunctionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<MaxFunction> maxFunctionHelper()
-
minFunctionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<MinFunction> minFunctionHelper()
-
modExpressionHelper
protected AbstractGrammarValidator.AbstractDoubleEncapsulatedExpressionHelper<ModExpression> modExpressionHelper()
-
nullIfExpressionHelper
protected AbstractGrammarValidator.AbstractDoubleEncapsulatedExpressionHelper<NullIfExpression> nullIfExpressionHelper()
-
objectExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<ObjectExpression> objectExpressionHelper()
-
position
protected int position(Expression expression, int... extras)
-
registerHelper
protected void registerHelper(java.lang.String id, java.lang.Object helper)
Registers the given helper.- Parameters:
id
- The key used to cache the given helperhelper
- The helper to cache for future use
-
sizeExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<SizeExpression> sizeExpressionHelper()
-
sqrtExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<SqrtExpression> sqrtExpressionHelper()
-
substringExpressionHelper
protected AbstractGrammarValidator.AbstractTripleEncapsulatedExpressionHelper<SubstringExpression> substringExpressionHelper()
-
sumFunctionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<SumFunction> sumFunctionHelper()
-
trimExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<TrimExpression> trimExpressionHelper()
-
typeExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<TypeExpression> typeExpressionHelper()
-
upperExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<UpperExpression> upperExpressionHelper()
-
validateAbstractConditionalClause
protected void validateAbstractConditionalClause(AbstractConditionalClause expression, java.lang.String missingConditionalExpressionMessageKey, java.lang.String invalidConditionalExpressionMessageKey)
-
validateAbstractDoubleEncapsulatedExpression
protected <T extends AbstractDoubleEncapsulatedExpression> void validateAbstractDoubleEncapsulatedExpression(T expression, AbstractGrammarValidator.AbstractDoubleEncapsulatedExpressionHelper<T> helper)
Validates the content of anAbstractDoubleEncapsulatedExpression
, which encapsulates two expressions separated by a comma.- Parameters:
expression
- TheAbstractDoubleEncapsulatedExpression
to validatehelper
- This helper is used to retrieve specific information related to theexpression
being validated
-
validateAbstractFromClause
protected void validateAbstractFromClause(AbstractFromClause expression)
-
validateAbstractSelectClause
protected void validateAbstractSelectClause(AbstractSelectClause expression, boolean multipleSelectItemsAllowed)
Validates the select expression of the givenSELECT
clause. The select expression will only be visited if its JPQL query BNF is part of the select item BNF.- Parameters:
expression
- TheAbstractSelectClause
to validatemultipleSelectItemsAllowed
- Determines whether theSELECT
can have one or more select expression or not
-
validateAbstractSelectStatement
protected void validateAbstractSelectStatement(AbstractSelectStatement expression)
-
validateAbstractSingleEncapsulatedExpression
protected <T extends AbstractSingleEncapsulatedExpression> void validateAbstractSingleEncapsulatedExpression(T expression, AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<T> helper)
-
validateAbstractTripleEncapsulatedExpression
protected <T extends AbstractTripleEncapsulatedExpression> void validateAbstractTripleEncapsulatedExpression(T expression, AbstractGrammarValidator.AbstractTripleEncapsulatedExpressionHelper<T> helper)
-
validateAggregateFunctionLocation
protected <T extends AggregateFunction> void validateAggregateFunctionLocation(T expression, AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<T> helper)
-
validateArithmeticExpression
protected void validateArithmeticExpression(ArithmeticExpression expression)
-
validateCollectionSeparatedByComma
protected void validateCollectionSeparatedByComma(Expression expression, java.lang.String endsWithCommaProblemKey, java.lang.String missingCommaProblemKey)
Validates the givenExpression
by making sure each child is separated by a comma.- Parameters:
expression
- TheExpression
to validate its children, which should be a series ofExpression
separated by a commaendsWithCommaProblemKey
- The problem key describing theCollectionExpression
is ending with a commamissingCommaProblemKey
- The problem key describing theCollectionExpression
has two items not separated by a comma
-
validateCollectionSeparatedBySpace
protected void validateCollectionSeparatedBySpace(Expression expression, java.lang.String endsWithCommaProblemKey, java.lang.String hasCommaProblemKey)
Validates the givenExpression
by making sure each child is separated by a whitespace.- Parameters:
expression
- TheExpression
to validate its children, which should be a series ofExpression
separated by a whitespaceendsWithCommaProblemKey
- The problem key describing theCollectionExpression
is ending with a commahasCommaProblemKey
- The problem key describing theCollectionExpression
has two items separated by a comma
-
validateCompoundExpression
protected void validateCompoundExpression(CompoundExpression expression, java.lang.String identifier, java.lang.String missingLeftExpression, java.lang.String invalidLeftExpression, java.lang.String missingRightExpression, java.lang.String invalidRightExpression, java.lang.String leftExpressionQueryBNF, java.lang.String rightExpressionQueryBNF)
-
validateIdentificationVariableDeclaration
protected void validateIdentificationVariableDeclaration(IdentificationVariableDeclaration expression)
-
validateIdentifier
protected void validateIdentifier(Expression expression, java.lang.String variableName, int variableLength, java.lang.String reservedWordProblemKey, java.lang.String invalidJavaIdentifierProblemKey)
Validates the given variable name to make sure:- It is not a JPQL reserved identifier;
- It is a valid Java identifier.
- Parameters:
expression
- The expression to validatevariableName
- The text to actually validatevariableLength
- The actual length of the text, which can be longer than the text that is validatedreservedWordProblemKey
- The problem key used when the variable name is a reserved JPQL identifierinvalidJavaIdentifierProblemKey
- The problem key used when the variable name is not a valid Java identifier
-
validateInputParameters
protected void validateInputParameters(JPQLExpression expression)
-
validateJoins
protected void validateJoins(IdentificationVariableDeclaration expression)
-
validateLikeExpressionEscapeCharacter
protected void validateLikeExpressionEscapeCharacter(LikeExpression expression)
-
validateLogicalExpression
protected void validateLogicalExpression(LogicalExpression expression, java.lang.String leftExpressionQueryBNF, java.lang.String rightExpressionQueryBNF)
-
validateOwningClause
protected void validateOwningClause(InputParameter expression, java.lang.String parameter)
-
validatePathExpression
protected void validatePathExpression(AbstractPathExpression expression)
-
validateSimpleSelectStatement
protected void validateSimpleSelectStatement(SimpleSelectStatement expression)
-
valueExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<ValueExpression> valueExpressionHelper()
-
visit
public void visit(AbsExpression expression)
Visits theAbsExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(AbstractSchemaName expression)
Visits theAbstractSchemaName
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(AdditionExpression expression)
Visits theAdditionExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(AllOrAnyExpression expression)
Visits theAllOrAnyExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(AndExpression expression)
Visits theAndExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ArithmeticFactor expression)
Visits theArithmeticFactor
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(AvgFunction expression)
Visits theAvgFunction
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(BadExpression expression)
Visits theBadExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(BetweenExpression expression)
Visits theBetweenExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CaseExpression expression)
Visits theCaseExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CoalesceExpression expression)
Visits theCoalesceExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CollectionExpression expression)
Visits theCollectionExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CollectionMemberDeclaration expression)
Visits theCollectionMemberDeclaration
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CollectionMemberExpression expression)
Visits theCollectionMemberExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CollectionValuedPathExpression expression)
Visits theCollectionValuedPathExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ComparisonExpression expression)
Visits theComparisonExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ConcatExpression expression)
Visits theConcatExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ConstructorExpression expression)
Visits theConstructorExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CountFunction expression)
Visits theCountFunction
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(DateTime expression)
Visits theDateTime
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(DeleteClause expression)
Visits theDeleteClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(DeleteStatement expression)
Visits theDeleteStatement
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(DivisionExpression expression)
Visits theDivisionExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(EmptyCollectionComparisonExpression expression)
Visits theEmptyCollectionComparisonExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(EntityTypeLiteral expression)
Visits theEntityTypeLiteral
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(EntryExpression expression)
Visits theEntryExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ExistsExpression expression)
Visits theExistsExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(FromClause expression)
Visits theFromClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(FunctionExpression expression)
Visits theFunctionExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(GroupByClause expression)
Visits theGroupByClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(HavingClause expression)
Visits theHavingClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(IdentificationVariable expression)
Visits theIdentificationVariable
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(IdentificationVariableDeclaration expression)
Visits theIdentificationVariableDeclaration
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(IndexExpression expression)
Visits theIndexExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(InExpression expression)
Visits theInExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(InputParameter expression)
Visits theInputParameter
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(Join expression)
Visits theJoin
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(JPQLExpression expression)
Visits theJPQLExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(KeyExpression expression)
Visits theKeyExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(KeywordExpression expression)
Visits theKeywordExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(LengthExpression expression)
Visits theLengthExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(LikeExpression expression)
Visits theLikeExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(LocateExpression expression)
Visits theLocateExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(LowerExpression expression)
Visits theLowerExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(MaxFunction expression)
Visits theMaxFunction
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(MinFunction expression)
Visits theMinFunction
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ModExpression expression)
Visits theModExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(MultiplicationExpression expression)
Visits theMultiplicationExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(NotExpression expression)
Visits theNotExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(NullComparisonExpression expression)
Visits theNullComparisonExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(NullExpression expression)
Visits theNullExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(NullIfExpression expression)
Visits theNullIfExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(NumericLiteral expression)
Visits theNumericLiteral
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ObjectExpression expression)
Visits theObjectExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(OnClause expression)
Visits theOnClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(OrderByClause expression)
Visits theOrderByClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(OrderByItem expression)
Visits theOrderByItem
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(OrExpression expression)
Visits theOrExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(RangeVariableDeclaration expression)
Visits theRangeVariableDeclaration
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ResultVariable expression)
Visits theResultVariable
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SelectClause expression)
Visits theSelectClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SelectStatement expression)
Visits theSelectStatement
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SimpleFromClause expression)
Visits theSimpleFromClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SimpleSelectClause expression)
Visits theSimpleSelectClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SimpleSelectStatement expression)
Visits theSimpleSelectStatement
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SizeExpression expression)
Visits theSizeExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SqrtExpression expression)
Visits theSqrtExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(StateFieldPathExpression expression)
Visits theStateFieldPathExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(StringLiteral expression)
Visits theStringLiteral
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SubExpression expression)
Visits theSubExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SubstringExpression expression)
Visits theSubstringExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SubtractionExpression expression)
Visits theSubtractionExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(SumFunction expression)
Visits theSumFunction
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(TreatExpression expression)
Visits theTreatExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(TrimExpression expression)
Visits theTrimExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(TypeExpression expression)
Visits theTypeExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(UnknownExpression expression)
Visits theUnknownExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheUnknownExpression
to visit
-
visit
public void visit(UpdateClause expression)
Visits theUpdateClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheUpdateClause
to visit
-
visit
public void visit(UpdateItem expression)
Visits theUpdateItem
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheUpdateItem
to visit
-
visit
public void visit(UpdateStatement expression)
Visits theUpdateStatement
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheUpdateStatement
to visit
-
visit
public void visit(UpperExpression expression)
Visits theUpperExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheUpperExpression
to visit
-
visit
public void visit(ValueExpression expression)
Visits theValueExpression
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheValueExpression
to visit
-
visit
public void visit(WhenClause expression)
Visits theWhenClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheWhenClause
to visit
-
visit
public void visit(WhereClause expression)
Visits theWhereClause
expression.- Specified by:
visit
in interfaceExpressionVisitor
- Overrides:
visit
in classAnonymousExpressionVisitor
- Parameters:
expression
- TheWhereClause
to visit
-
-