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 classAbstractGrammarValidator.AbstractCollectionValidatorThis 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 classAbstractGrammarValidator.AbstractDoubleEncapsulatedExpressionHelper<T extends AbstractDoubleEncapsulatedExpression>protected static interfaceAbstractGrammarValidator.AbstractEncapsulatedExpressionHelper<T extends AbstractEncapsulatedExpression>The root helper that validates anyAbstractEncapsulatedExpression.protected static classAbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<T extends AbstractSingleEncapsulatedExpression>The abstract implementation ofAbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelperwhich implements some of the methods since the behavior is the same for all subclasses ofAbstractSingleEncapsulatedExpression.protected static classAbstractGrammarValidator.AbstractTripleEncapsulatedExpressionHelper<T extends AbstractTripleEncapsulatedExpression>protected static classAbstractGrammarValidator.CollectionExpressionVisitorThis visitor retrieves theCollectionExpressionif it is visited.protected static classAbstractGrammarValidator.CollectionSeparatedByCommaValidatorThis validator validates aCollectionExpressionby making sure each item is separated by a comma.protected static classAbstractGrammarValidator.CollectionSeparatedBySpaceValidatorThis validator validates aCollectionExpressionby making sure each item is not separated by a comma.protected static classAbstractGrammarValidator.ComparisonExpressionVisitorprotected static classAbstractGrammarValidator.DateTimeVisitorprotected static classAbstractGrammarValidator.NullExpressionVisitorThis 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 protectedAbstractGrammarValidator(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- TheJPQLGrammarthat defines how the JPQL query was parsed, which cannot benull- Throws:
java.lang.NullPointerException- If the givenJPQLGrammarisnull
-
-
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 theCollectionExpressionif 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 theNullExpressionif 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:
disposein 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 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 AbstractGrammarValidator.CollectionExpressionVisitor getCollectionExpressionVisitor()
Returns the visitor that collects theCollectionExpressionif it's been visited.- Returns:
- The
AbstractGrammarValidator.CollectionExpressionVisitor - See Also:
buildCollectionExpressionVisitor()
-
getDateTimeVisitor
protected AbstractGrammarValidator.DateTimeVisitor getDateTimeVisitor()
-
getGrammar
protected JPQLGrammar getGrammar()
Returns theJPQLGrammarthat defines how the JPQL query was parsed.- Specified by:
getGrammarin classAbstractValidator- Returns:
- The
JPQLGrammarthat 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
nullif no helper was previously cached for the given id
-
indexExpressionHelper
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<IndexExpression> indexExpressionHelper()
-
initialize
protected void initialize()
Initializes this validator.- Overrides:
initializein classAbstractValidator
-
isChildOfComparisonExpession
protected boolean isChildOfComparisonExpession(AllOrAnyExpression expression)
-
isCollectionExpression
protected boolean isCollectionExpression(Expression expression)
Determines whether the givenExpressionis aCollectionExpression.- Parameters:
expression- TheExpressionto verify- Returns:
trueif the given givenExpressionis aCollectionExpression;falseotherwise
-
isDateTimeConstant
protected boolean isDateTimeConstant(Expression leftExpression)
Determines whether the givenExpressionrepresents one of the three date constants or not.- Parameters:
leftExpression- TheExpressionto visit- Returns:
trueif the givenExpressionrepresents one of the tree date constants;falseotherwise
-
isInputParameterInValidLocation
protected boolean isInputParameterInValidLocation(InputParameter expression)
-
isJoinFetchIdentifiable
protected abstract boolean isJoinFetchIdentifiable()
Determines whether aJOIN FETCHexpression can be identified by with an identification variable or not.- Returns:
trueif the expression can have an identification variable;falseotherwise
-
isJPA1_0
protected boolean isJPA1_0()
Determines whether the JPA version defined by the JPQL grammar is 1.0.- Returns:
trueif the JPQL grammar was defined for JPA 1.0;falseif 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:
trueif the JPQL grammar was defined for JPA 2.0;falseif 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:
trueif the JPQL grammar was defined for JPA 2.1;falseif it was defined for a more recent version
-
isMultipleSubquerySelectItemsAllowed
protected boolean isMultipleSubquerySelectItemsAllowed(SimpleSelectClause expression)
Determines whether the given subquerySELECTclause can return more than one item or just a single. By default, only one item can be returned.- Parameters:
expression- The subquerySELECTclause- Returns:
trueif it can return more than one item;falseif 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:
trueif this constant represents a newer version and the given constant represents a version that is older;falseif 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:
trueif this constant represents a newer version and the given constant represents a version that is older or if it's the same constant;falseif 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:
trueif the given sequence of characters is a valid numeric literal;falseotherwise
-
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:
trueif this constant represents an earlier version and the given constant represents a version that is more recent;falseif 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:
trueif this constant represents an earlier version and the given constant represents a version that is more recent or if it's the same constant;falseif the given constant represents an earlier version and this constant represents a more recent version
-
isOwnedByConditionalClause
protected boolean isOwnedByConditionalClause(Expression expression)
Determines whether the givenExpressionis a child of the WHERE or HAVING clause of the top-level query.- Parameters:
expression- TheExpressionto visit its parent hierarchy up to the clause- Returns:
trueif the first parent being a clause is the WHERE or HAVING clause;falseotherwise
-
isOwnedByFromClause
protected boolean isOwnedByFromClause(Expression expression)
Determines whether the givenExpressionis a child of the FROM clause of the top-level query.- Parameters:
expression- TheExpressionto visit its parent hierarchy up to the clause- Returns:
trueif the first parent being a clause is the top-level FROM clause;falseotherwise
-
isOwnedBySubFromClause
protected boolean isOwnedBySubFromClause(Expression expression)
Determines whether the givenExpressionis a child of the FROM clause of a subquery.- Parameters:
expression- TheExpressionto visit its parent hierarchy up to the clause- Returns:
trueif the first parent being a clause is the FROM clause of a subquery;falseotherwise
-
isSubqueryAllowedAnywhere
protected abstract boolean isSubqueryAllowedAnywhere()
Determines whether a subquery can be used in any clause of the top-level query.- Returns:
trueif a subquery can be defined in any clause;falseif it can only be used within theWHEREandHAVINGdefined 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:
trueif the given variable follows the Java identifier specification;falseotherwise
-
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- TheAbstractDoubleEncapsulatedExpressionto validatehelper- This helper is used to retrieve specific information related to theexpressionbeing validated
-
validateAbstractFromClause
protected void validateAbstractFromClause(AbstractFromClause expression)
-
validateAbstractSelectClause
protected void validateAbstractSelectClause(AbstractSelectClause expression, boolean multipleSelectItemsAllowed)
Validates the select expression of the givenSELECTclause. The select expression will only be visited if its JPQL query BNF is part of the select item BNF.- Parameters:
expression- TheAbstractSelectClauseto validatemultipleSelectItemsAllowed- Determines whether theSELECTcan 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 givenExpressionby making sure each child is separated by a comma.- Parameters:
expression- TheExpressionto validate its children, which should be a series ofExpressionseparated by a commaendsWithCommaProblemKey- The problem key describing theCollectionExpressionis ending with a commamissingCommaProblemKey- The problem key describing theCollectionExpressionhas two items not separated by a comma
-
validateCollectionSeparatedBySpace
protected void validateCollectionSeparatedBySpace(Expression expression, java.lang.String endsWithCommaProblemKey, java.lang.String hasCommaProblemKey)
Validates the givenExpressionby making sure each child is separated by a whitespace.- Parameters:
expression- TheExpressionto validate its children, which should be a series ofExpressionseparated by a whitespaceendsWithCommaProblemKey- The problem key describing theCollectionExpressionis ending with a commahasCommaProblemKey- The problem key describing theCollectionExpressionhas 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 theAbsExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AbstractSchemaName expression)
Visits theAbstractSchemaNameexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AdditionExpression expression)
Visits theAdditionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AllOrAnyExpression expression)
Visits theAllOrAnyExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AndExpression expression)
Visits theAndExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ArithmeticFactor expression)
Visits theArithmeticFactorexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(AvgFunction expression)
Visits theAvgFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(BadExpression expression)
Visits theBadExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(BetweenExpression expression)
Visits theBetweenExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CaseExpression expression)
Visits theCaseExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CoalesceExpression expression)
Visits theCoalesceExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CollectionExpression expression)
Visits theCollectionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CollectionMemberDeclaration expression)
Visits theCollectionMemberDeclarationexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CollectionMemberExpression expression)
Visits theCollectionMemberExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CollectionValuedPathExpression expression)
Visits theCollectionValuedPathExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ComparisonExpression expression)
Visits theComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ConcatExpression expression)
Visits theConcatExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ConstructorExpression expression)
Visits theConstructorExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(CountFunction expression)
Visits theCountFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(DateTime expression)
Visits theDateTimeexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(DeleteClause expression)
Visits theDeleteClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(DeleteStatement expression)
Visits theDeleteStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(DivisionExpression expression)
Visits theDivisionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(EmptyCollectionComparisonExpression expression)
Visits theEmptyCollectionComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(EntityTypeLiteral expression)
Visits theEntityTypeLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(EntryExpression expression)
Visits theEntryExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ExistsExpression expression)
Visits theExistsExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(FromClause expression)
Visits theFromClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(FunctionExpression expression)
Visits theFunctionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(GroupByClause expression)
Visits theGroupByClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(HavingClause expression)
Visits theHavingClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(IdentificationVariable expression)
Visits theIdentificationVariableexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(IdentificationVariableDeclaration expression)
Visits theIdentificationVariableDeclarationexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(IndexExpression expression)
Visits theIndexExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(InExpression expression)
Visits theInExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(InputParameter expression)
Visits theInputParameterexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(Join expression)
Visits theJoinexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(JPQLExpression expression)
Visits theJPQLExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(KeyExpression expression)
Visits theKeyExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(KeywordExpression expression)
Visits theKeywordExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LengthExpression expression)
Visits theLengthExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LikeExpression expression)
Visits theLikeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LocateExpression expression)
Visits theLocateExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(LowerExpression expression)
Visits theLowerExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(MaxFunction expression)
Visits theMaxFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(MinFunction expression)
Visits theMinFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ModExpression expression)
Visits theModExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(MultiplicationExpression expression)
Visits theMultiplicationExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NotExpression expression)
Visits theNotExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NullComparisonExpression expression)
Visits theNullComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NullExpression expression)
Visits theNullExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NullIfExpression expression)
Visits theNullIfExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(NumericLiteral expression)
Visits theNumericLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ObjectExpression expression)
Visits theObjectExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(OnClause expression)
Visits theOnClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(OrderByClause expression)
Visits theOrderByClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(OrderByItem expression)
Visits theOrderByItemexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(OrExpression expression)
Visits theOrExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(RangeVariableDeclaration expression)
Visits theRangeVariableDeclarationexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(ResultVariable expression)
Visits theResultVariableexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SelectClause expression)
Visits theSelectClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SelectStatement expression)
Visits theSelectStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SimpleFromClause expression)
Visits theSimpleFromClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SimpleSelectClause expression)
Visits theSimpleSelectClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SimpleSelectStatement expression)
Visits theSimpleSelectStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SizeExpression expression)
Visits theSizeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SqrtExpression expression)
Visits theSqrtExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(StateFieldPathExpression expression)
Visits theStateFieldPathExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(StringLiteral expression)
Visits theStringLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SubExpression expression)
Visits theSubExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SubstringExpression expression)
Visits theSubstringExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SubtractionExpression expression)
Visits theSubtractionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(SumFunction expression)
Visits theSumFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(TreatExpression expression)
Visits theTreatExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(TrimExpression expression)
Visits theTrimExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(TypeExpression expression)
Visits theTypeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public void visit(UnknownExpression expression)
Visits theUnknownExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUnknownExpressionto visit
-
visit
public void visit(UpdateClause expression)
Visits theUpdateClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpdateClauseto visit
-
visit
public void visit(UpdateItem expression)
Visits theUpdateItemexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpdateItemto visit
-
visit
public void visit(UpdateStatement expression)
Visits theUpdateStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpdateStatementto visit
-
visit
public void visit(UpperExpression expression)
Visits theUpperExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpperExpressionto visit
-
visit
public void visit(ValueExpression expression)
Visits theValueExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheValueExpressionto visit
-
visit
public void visit(WhenClause expression)
Visits theWhenClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheWhenClauseto visit
-
visit
public void visit(WhereClause expression)
Visits theWhereClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheWhereClauseto visit
-
-