Package org.eclipse.persistence.jpa.jpql
Class AbstractSemanticValidator
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.parser.AnonymousExpressionVisitor
-
- org.eclipse.persistence.jpa.jpql.AbstractValidator
-
- org.eclipse.persistence.jpa.jpql.AbstractSemanticValidator
-
- All Implemented Interfaces:
ExpressionVisitor
- Direct Known Subclasses:
AbstractEclipseLinkSemanticValidator,DefaultSemanticValidator
public abstract class AbstractSemanticValidator extends AbstractValidator
The base validator responsible to gather the problems found in a JPQL query by validating the content to make sure it is semantically valid, i.e. based on the information contained in the JPA application. The grammar 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:
AbstractGrammarValidator- Author:
- Pascal Filion
- Since:
- 2.4
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classAbstractSemanticValidator.CollectionValuedPathExpressionVisitorThis visitor is meant to retrieve anCollectionValuedPathExpressionif the visitedExpressionis that object.protected static classAbstractSemanticValidator.ComparingEntityTypeLiteralVisitorprotected static classAbstractSemanticValidator.ComparisonExpressionVisitorThis visitor compares the left and right expressions of a comparison expression and gathers information about those expressions if they are an identification variable or a path expression.protected static classAbstractSemanticValidator.FirstDeclarationVisitorprotected static classAbstractSemanticValidator.InItemsVisitorprotected static classAbstractSemanticValidator.PathTypeThis enumeration allowsvalidateStateFieldPathExpression( StateFieldPathExpression, PathType)to validate the type of the mapping and to make sure it is allowed based on its location.protected static classAbstractSemanticValidator.StateFieldPathExpressionVisitorThis visitor is meant to retrieve anAbstractSemanticValidator.StateFieldPathExpressionVisitorif the visitedExpressionis that object.protected static classAbstractSemanticValidator.SubqueryFirstDeclarationVisitorprotected static classAbstractSemanticValidator.TopLevelFirstDeclarationVisitor-
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
-
-
Field Summary
Fields Modifier and Type Field Description protected AbstractSemanticValidator.CollectionValuedPathExpressionVisitorcollectionValuedPathExpressionVisitorThis visitor is responsible to retrieve the visitedExpressionif it is aCollectionValuedPathExpression.protected SemanticValidatorHelperhelperThe given helper allows this validator to access the JPA artifacts without using Hermes SPI.protected booleanregisterIdentificationVariableThis flag is used to register theIdentificationVariablesthat are used throughout the query (top-level query and subqueries), except the identification variables defining an abstract schema name or a collection-valued path expression.protected AbstractSemanticValidator.StateFieldPathExpressionVisitorstateFieldPathExpressionVisitorThis visitor is responsible to retrieve the visitedExpressionif it is aStateFieldPathExpression.protected java.util.List<IdentificationVariable>usedIdentificationVariablesTheIdentificationVariablesthat are used throughout the query (top-level query and subqueries), except the identification variables defining an abstract schema name or a collection-valued path expression.protected BaseDeclarationIdentificationVariableFindervirtualIdentificationVariableFinderThis finder is responsible to retrieve the virtual identification variable from the UPDATE range declaration since it is optional.
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractSemanticValidator(SemanticValidatorHelper helper)Creates a newAbstractSemanticValidator.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected AbstractSemanticValidator.ComparingEntityTypeLiteralVisitorbuildComparingEntityTypeLiteralVisitor()protected AbstractSemanticValidator.InItemsVisitorbuildInItemsVisitor()protected AbstractSemanticValidator.SubqueryFirstDeclarationVisitorbuildSubqueryFirstDeclarationVisitor()protected AbstractSemanticValidator.TopLevelFirstDeclarationVisitorbuildTopLevelFirstDeclarationVisitor()voiddispose()Disposes this visitor.protected IdentificationVariablefindVirtualIdentificationVariable(AbstractSchemaName expression)Returns theIdentificationVariablethat defines the identification variable for either aDELETEor anUPDATEquery.protected CollectionValuedPathExpressiongetCollectionValuedPathExpression(Expression expression)protected AbstractSemanticValidator.CollectionValuedPathExpressionVisitorgetCollectionValuedPathExpressionVisitor()protected AbstractSemanticValidator.ComparingEntityTypeLiteralVisitorgetComparingEntityTypeLiteralVisitor()protected AbstractSemanticValidator.ComparisonExpressionVisitorgetComparisonExpressionVisitor()protected JPQLGrammargetGrammar()Returns theJPQLGrammarthat defines how the JPQL query was parsed.protected AbstractSemanticValidator.InItemsVisitorgetInItemsVisitor()protected StateFieldPathExpressiongetStateFieldPathExpression(Expression expression)protected AbstractSemanticValidator.StateFieldPathExpressionVisitorgetStateFieldPathExpressionVisitor()protected BaseDeclarationIdentificationVariableFindergetVirtualIdentificationVariableFinder()Returns the visitor that can find theIdentificationVariableof theRangeVariableDeclaration.protected voidinitialize()Initializes this validator.protected booleanisComparingEntityTypeLiteral(IdentificationVariable expression)Determines whether the given identification variable is used in a comparison expression: "expression = LargeProject".protected booleanisIdentificationVariableDeclaredAfter(java.lang.String variableName, int variableNameIndex, int joinIndex, java.util.List<JPQLQueryDeclaration> declarations)protected booleanisIdentificationVariableValidInComparison(IdentificationVariable expression)Determines whether an identification variable can be used in a comparison expression when the operator is either '<', '<=', '>', '>='.protected booleanisOrderComparison(ComparisonExpression expression)Determines whether the givenComparisonExpressioncompares two expression using one of the following operators: '<', '<=', '>', '>='.protected booleanisValid(int result, int index)Determines whether the expression at the given index is valid or not.protected abstract AbstractSemanticValidator.PathTypeselectClausePathExpressionPathType()Returns the type of path expression that is allowed in theSELECTclause.protected AbstractSemanticValidator.FirstDeclarationVisitorsubqueryFirstDeclarationVisitor()protected AbstractSemanticValidator.FirstDeclarationVisitortopLevelFirstDeclarationVisitor()protected intupdateStatus(int result, int index, boolean valid)Updates the validation status of an expression at a specified position.protected booleanvalidateAbsExpression(AbsExpression expression)Validates the encapsulated expression of the givenABSexpression.protected voidvalidateAbstractFromClause(AbstractFromClause expression, AbstractSemanticValidator.FirstDeclarationVisitor visitor)Validates the givenFROMclause.protected booleanvalidateAbstractSchemaName(AbstractSchemaName expression)Validates the givenAbstractSchemaName.protected intvalidateAdditionExpression(AdditionExpression expression)Validates the encapsulated expression of the given addition expression.protected voidvalidateAllOrAnyExpression(AllOrAnyExpression expression)Validates the givenAllOrAnyExpression.protected voidvalidateAndExpression(AndExpression expression)Validates the givenAndExpression.protected intvalidateArithmeticExpression(ArithmeticExpression expression, java.lang.String leftExpressionWrongTypeMessageKey, java.lang.String rightExpressionWrongTypeMessageKey)Validates the type of the left and right expressions defined by the givenArithmeticExpression.protected booleanvalidateArithmeticExpression(ArithmeticFactor expression)Validates the arithmetic factor expression.protected booleanvalidateAvgFunction(AvgFunction expression)Validates the encapsulated expression of the givenAVGexpression.protected intvalidateBetweenExpression(BetweenExpression expression)Validates the givenBetweenExpression.protected voidvalidateCaseExpression(CaseExpression expression)Validates the givenCaseExpression.protected voidvalidateCoalesceExpression(CoalesceExpression expression)Validates the givenCoalesceExpression.protected voidvalidateCollectionMemberDeclaration(CollectionMemberDeclaration expression)Validates the givenCollectionMemberDeclaration.protected intvalidateCollectionMemberExpression(CollectionMemberExpression expression)Validates the givenCollectionMemberExpression.protected booleanvalidateCollectionValuedPathExpression(Expression expression, boolean collectionTypeOnly)Validates the givenExpressionand makes sure it's a valid collection value path expression.protected booleanvalidateComparisonExpression(ComparisonExpression expression)Validates the left and right expressions of the givenComparisonExpression.protected booleanvalidateConcatExpression(ConcatExpression expression)Validates the encapsulated expression of the givenCONCATexpression.protected voidvalidateConstructorExpression(ConstructorExpression expression)Validates the givenConstructorExpression.protected voidvalidateCountFunction(CountFunction expression)Validates the givenCountFunction.protected voidvalidateDateTime(DateTime expression)Validates the givenDateTime.protected voidvalidateDeleteClause(DeleteClause expression)Validates the givenDeleteClause.protected voidvalidateDeleteStatement(DeleteStatement expression)Validates the givenDeleteStatement.protected intvalidateDivisionExpression(DivisionExpression expression)Validates the encapsulated expression of the given division expression.protected booleanvalidateEntityTypeLiteral(EntityTypeLiteral expression)protected voidvalidateEntryExpression(EntryExpression expression)Validates the givenEntryExpression.protected voidvalidateExistsExpression(ExistsExpression expression)Validates the givenExistsExpression.protected voidvalidateFirstDeclaration(AbstractFromClause expression, JPQLQueryDeclaration declaration, AbstractSemanticValidator.FirstDeclarationVisitor visitor)protected voidvalidateFromClause(FromClause expression)Validates the givenFromClause.protected voidvalidateFunctionExpression(FunctionExpression expression)Validates the givenFunctionExpression.protected booleanvalidateFunctionPathExpression(AbstractSingleEncapsulatedExpression expression)Validates the givenAbstractSingleEncapsulatedExpression's encapsulated expression if it is a state field path expression and makes sure it is mapping to a basic mapping.protected intvalidateFunctionPathExpression(CompoundExpression expression, AbstractSemanticValidator.PathType pathType)Validates the left and right expressions of the given compound expression.protected voidvalidateGroupByClause(GroupByClause expression)Validates the givenGroupByClause.protected voidvalidateHavingClause(HavingClause expression)Validates the givenHavingClause.protected booleanvalidateIdentificationVariable(IdentificationVariable expression)Validates the givenIdentificationVariable.protected booleanvalidateIdentificationVariable(IdentificationVariable expression, java.lang.String variable)Validates the given identification variable.protected voidvalidateIdentificationVariableDeclaration(IdentificationVariableDeclaration expression)Validates the givenInExpression.protected voidvalidateIdentificationVariables()Validates the identification variables: Assures those used throughout the query have been defined in theFROMclause in the current subquery or in a superquery. They have been defined only once.protected booleanvalidateIndexExpression(IndexExpression expression)Validates the givenIndexExpression.protected voidvalidateInExpression(InExpression expression)Validates the givenInExpression.protected voidvalidateJoin(Join expression)Validates the givenJoin.protected booleanvalidateJoinCollectionValuedPathExpression(Expression expression, boolean collectionTypeOnly)Validates the givenExpressionand makes sure it's a valid collection value path expression.protected voidvalidateJoinsIdentificationVariable(AbstractFromClause expression, java.util.List<JPQLQueryDeclaration> declarations, JPQLQueryDeclaration declaration, int index)protected voidvalidateKeyExpression(KeyExpression expression)Validates the givenKeyExpression.protected booleanvalidateLengthExpression(LengthExpression expression)Validates the encapsulated expression of the givenLENGTHexpression.protected intvalidateLikeExpression(LikeExpression expression)Validates the string expression of the givenLIKEexpression.protected intvalidateLocateExpression(LocateExpression expression)Validates the encapsulated expression of the givenLOCATEexpression.protected booleanvalidateLowerExpression(LowerExpression expression)Validates the encapsulated expression of the givenLOWERexpression.protected booleanvalidateMaxFunction(MaxFunction expression)Validates the encapsulated expression of the givenMAXexpression.protected booleanvalidateMinFunction(MinFunction expression)Validates the encapsulated expression of the givenMINexpression.protected intvalidateModExpression(ModExpression expression)Validates the encapsulated expression of the givenMODexpression.protected intvalidateMultiplicationExpression(MultiplicationExpression expression)Validates the encapsulated expression of the given multiplication expression.protected voidvalidateNotExpression(NotExpression expression)Validates the givenNotExpression.protected voidvalidateNullComparisonExpression(NullComparisonExpression expression)Validates the givenNullComparisonExpression.protected voidvalidateNullIfExpression(NullIfExpression expression)Validates the givenNullIfExpression.protected voidvalidateObjectExpression(ObjectExpression expression)Validates the givenObjectExpression.protected voidvalidateOnClause(OnClause expression)Validates the givenOnClause.protected voidvalidateOrderByClause(OrderByClause expression)Validates the givenOrderByItem.protected voidvalidateOrderByItem(OrderByItem expression)Validates the givenOrderByItem.protected voidvalidateOrExpression(OrExpression expression)Validates the givenOrExpression.protected voidvalidateRangeVariableDeclaration(RangeVariableDeclaration expression)Validates the givenRangeVariableDeclaration.protected voidvalidateRangeVariableDeclarationRootObject(RangeVariableDeclaration expression)Validates the "root" object of the givenRangeVariableDeclaration.protected voidvalidateResultVariable(ResultVariable expression)Validates the givenResultVariable.protected voidvalidateSelectClause(SelectClause expression)Validates the givenSelectClause.protected voidvalidateSelectStatement(SelectStatement expression)Validates the givenSelectStatement.protected voidvalidateSimpleFromClause(SimpleFromClause expression)Validates the givenSimpleFromClause.protected voidvalidateSimpleSelectClause(SimpleSelectClause expression)Validates the givenSimpleSelectClause.protected voidvalidateSimpleSelectStatement(SimpleSelectStatement expression)protected booleanvalidateSizeExpression(SizeExpression expression)Validates the givenSizeExpression.protected booleanvalidateSqrtExpression(SqrtExpression expression)Validates the encapsulated expression of the givenSQRTexpression.protected booleanvalidateStateFieldPathExpression(StateFieldPathExpression expression, AbstractSemanticValidator.PathType pathType)Validates the givenStateFieldPathExpression.protected intvalidateSubstringExpression(SubstringExpression expression)Validates the encapsulated expression of the givenSUBSTRINGexpression.protected intvalidateSubtractionExpression(SubtractionExpression expression)Validates the encapsulated expression of the given subtraction expression.protected booleanvalidateSumFunction(SumFunction expression)Validates the encapsulated expression of the givenMODexpression.protected java.lang.BooleanvalidateThirdPartyStateFieldPathExpression(StateFieldPathExpression expression)Validates the givenStateFieldPathExpression, which means the path does not represent a mapping, or an enum constant.protected voidvalidateTreatExpression(TreatExpression expression)Validates the givenTreatExpression.protected booleanvalidateTrimExpression(TrimExpression expression)Validates the encapsulated expression of the givenTRIMexpression.protected booleanvalidateTypeExpression(TypeExpression expression)Validates the givenTypeExpression.protected voidvalidateUpdateClause(UpdateClause expression)Validates the givenUpdateClause.protected booleanvalidateUpdateItem(UpdateItem expression)Validates the givenUpdateItemby validating the traversability of the path expression.protected voidvalidateUpdateStatement(UpdateStatement expression)Validates the givenUpdateStatement.protected booleanvalidateUpperExpression(UpperExpression expression)Validates the encapsulated expression of the givenUPPERexpression.protected voidvalidateValueExpression(ValueExpression expression)Validates the givenValueExpression.protected voidvalidateWhenClause(WhenClause expression)Validates the givenWhenClause.protected voidvalidateWhereClause(WhereClause expression)Validates the givenWhereClause.protected AbstractSemanticValidator.PathTypevalidPathExpressionTypeForCountFunction()Returns the type of path expression that is valid for a count function; which is the left expression in aCOUNTexpression.protected AbstractSemanticValidator.PathTypevalidPathExpressionTypeForInExpression()Returns the type of path expression that is valid for the expression being tested by anINexpression; which is the left expression.protected AbstractSemanticValidator.PathTypevalidPathExpressionTypeForInItem()Returns the type of path expression that is valid for anINitems; which is the left expression in aINexpression.protected AbstractSemanticValidator.PathTypevalidPathExpressionTypeForStringExpression()Returns the type of path expression that is valid for a string expression; which is the left expression in aLIKEexpression.voidvisit(AbsExpression expression)Visits theAbsExpressionexpression.voidvisit(AbstractSchemaName expression)Visits theAbstractSchemaNameexpression.voidvisit(AdditionExpression expression)Visits theAdditionExpressionexpression.voidvisit(AllOrAnyExpression expression)Visits theAllOrAnyExpressionexpression.voidvisit(AndExpression expression)Visits theAndExpressionexpression.voidvisit(ArithmeticFactor expression)Visits theArithmeticFactorexpression.voidvisit(AvgFunction expression)Visits theAvgFunctionexpression.voidvisit(BadExpression expression)Visits theBadExpressionexpression.voidvisit(BetweenExpression expression)Visits theBetweenExpressionexpression.voidvisit(CaseExpression expression)Visits theCaseExpressionexpression.voidvisit(CoalesceExpression expression)Visits theCoalesceExpressionexpression.voidvisit(CollectionExpression expression)Visits theCollectionExpressionexpression.voidvisit(CollectionMemberDeclaration expression)Visits theCollectionMemberDeclarationexpression.voidvisit(CollectionMemberExpression expression)Visits theCollectionMemberExpressionexpression.voidvisit(CollectionValuedPathExpression expression)Visits theCollectionValuedPathExpressionexpression.voidvisit(ComparisonExpression expression)Visits theComparisonExpressionexpression.voidvisit(ConcatExpression expression)Visits theConcatExpressionexpression.voidvisit(ConstructorExpression expression)Visits theConstructorExpressionexpression.voidvisit(CountFunction expression)Visits theCountFunctionexpression.voidvisit(DateTime expression)Visits theDateTimeexpression.voidvisit(DeleteClause expression)Visits theDeleteClauseexpression.voidvisit(DeleteStatement expression)Visits theDeleteStatementexpression.voidvisit(DivisionExpression expression)Visits theDivisionExpressionexpression.voidvisit(EmptyCollectionComparisonExpression expression)Visits theEmptyCollectionComparisonExpressionexpression.voidvisit(EntityTypeLiteral expression)Visits theEntityTypeLiteralexpression.voidvisit(EntryExpression expression)Visits theEntryExpressionexpression.voidvisit(ExistsExpression expression)Visits theExistsExpressionexpression.voidvisit(FromClause expression)Visits theFromClauseexpression.voidvisit(FunctionExpression expression)Visits theFunctionExpressionexpression.voidvisit(GroupByClause expression)Visits theGroupByClauseexpression.voidvisit(HavingClause expression)Visits theHavingClauseexpression.voidvisit(IdentificationVariable expression)Visits theIdentificationVariableexpression.voidvisit(IdentificationVariableDeclaration expression)Visits theIdentificationVariableDeclarationexpression.voidvisit(IndexExpression expression)Visits theIndexExpressionexpression.voidvisit(InExpression expression)Visits theInExpressionexpression.voidvisit(InputParameter expression)Visits theInputParameterexpression.voidvisit(Join expression)Visits theJoinexpression.voidvisit(JPQLExpression expression)Visits theJPQLExpressionexpression.voidvisit(KeyExpression expression)Visits theKeyExpressionexpression.voidvisit(KeywordExpression expression)Visits theKeywordExpressionexpression.voidvisit(LengthExpression expression)Visits theLengthExpressionexpression.voidvisit(LikeExpression expression)Visits theLikeExpressionexpression.voidvisit(LocateExpression expression)Visits theLocateExpressionexpression.voidvisit(LowerExpression expression)Visits theLowerExpressionexpression.voidvisit(MaxFunction expression)Visits theMaxFunctionexpression.voidvisit(MinFunction expression)Visits theMinFunctionexpression.voidvisit(ModExpression expression)Visits theModExpressionexpression.voidvisit(MultiplicationExpression expression)Visits theMultiplicationExpressionexpression.voidvisit(NotExpression expression)Visits theNotExpressionexpression.voidvisit(NullComparisonExpression expression)Visits theNullComparisonExpressionexpression.voidvisit(NullExpression expression)Visits theNullExpressionexpression.voidvisit(NullIfExpression expression)Visits theNullIfExpressionexpression.voidvisit(NumericLiteral expression)Visits theNumericLiteralexpression.voidvisit(ObjectExpression expression)Visits theObjectExpressionexpression.voidvisit(OnClause expression)Visits theOnClauseexpression.voidvisit(OrderByClause expression)Visits theOrderByClauseexpression.voidvisit(OrderByItem expression)Visits theOrderByItemexpression.voidvisit(OrExpression expression)Visits theOrExpressionexpression.voidvisit(RangeVariableDeclaration expression)Visits theRangeVariableDeclarationexpression.voidvisit(ResultVariable expression)Visits theResultVariableexpression.voidvisit(SelectClause expression)Visits theSelectClauseexpression.voidvisit(SelectStatement expression)Visits theSelectStatementexpression.voidvisit(SimpleFromClause expression)Visits theSimpleFromClauseexpression.voidvisit(SimpleSelectClause expression)Visits theSimpleSelectClauseexpression.voidvisit(SimpleSelectStatement expression)Visits theSimpleSelectStatementexpression.voidvisit(SizeExpression expression)Visits theSizeExpressionexpression.voidvisit(SqrtExpression expression)Visits theSqrtExpressionexpression.voidvisit(StateFieldPathExpression expression)Visits theStateFieldPathExpressionexpression.voidvisit(StringLiteral expression)Visits theStringLiteralexpression.voidvisit(SubExpression expression)Visits theSubExpressionexpression.voidvisit(SubstringExpression expression)Visits theSubstringExpressionexpression.voidvisit(SubtractionExpression expression)Visits theSubtractionExpressionexpression.voidvisit(SumFunction expression)Visits theSumFunctionexpression.voidvisit(TreatExpression expression)Visits theTreatExpressionexpression.voidvisit(TrimExpression expression)Visits theTrimExpressionexpression.voidvisit(TypeExpression expression)Visits theTypeExpressionexpression.voidvisit(UnknownExpression expression)Visits theUnknownExpressionexpression.voidvisit(UpdateClause expression)Visits theUpdateClauseexpression.voidvisit(UpdateItem expression)Visits theUpdateItemexpression.voidvisit(UpdateStatement expression)Visits theUpdateStatementexpression.voidvisit(UpperExpression expression)Visits theUpperExpressionexpression.voidvisit(ValueExpression expression)Visits theValueExpressionexpression.voidvisit(WhenClause expression)Visits theWhenClauseexpression.voidvisit(WhereClause expression)Visits theWhereClauseexpression.-
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
-
-
-
-
Field Detail
-
collectionValuedPathExpressionVisitor
protected AbstractSemanticValidator.CollectionValuedPathExpressionVisitor collectionValuedPathExpressionVisitor
This visitor is responsible to retrieve the visitedExpressionif it is aCollectionValuedPathExpression.
-
helper
protected final SemanticValidatorHelper helper
The given helper allows this validator to access the JPA artifacts without using Hermes SPI.
-
registerIdentificationVariable
protected boolean registerIdentificationVariable
This flag is used to register theIdentificationVariablesthat are used throughout the query (top-level query and subqueries), except the identification variables defining an abstract schema name or a collection-valued path expression.
-
stateFieldPathExpressionVisitor
protected AbstractSemanticValidator.StateFieldPathExpressionVisitor stateFieldPathExpressionVisitor
This visitor is responsible to retrieve the visitedExpressionif it is aStateFieldPathExpression.
-
usedIdentificationVariables
protected java.util.List<IdentificationVariable> usedIdentificationVariables
TheIdentificationVariablesthat are used throughout the query (top-level query and subqueries), except the identification variables defining an abstract schema name or a collection-valued path expression.
-
virtualIdentificationVariableFinder
protected BaseDeclarationIdentificationVariableFinder virtualIdentificationVariableFinder
This finder is responsible to retrieve the virtual identification variable from the UPDATE range declaration since it is optional.
-
-
Constructor Detail
-
AbstractSemanticValidator
protected AbstractSemanticValidator(SemanticValidatorHelper helper)
Creates a newAbstractSemanticValidator.- Parameters:
helper- The given helper allows this validator to access the JPA artifacts without using Hermes SPI- Throws:
java.lang.NullPointerException- The givenSemanticValidatorHelpercannot benull
-
-
Method Detail
-
buildComparingEntityTypeLiteralVisitor
protected AbstractSemanticValidator.ComparingEntityTypeLiteralVisitor buildComparingEntityTypeLiteralVisitor()
-
buildInItemsVisitor
protected AbstractSemanticValidator.InItemsVisitor buildInItemsVisitor()
-
buildSubqueryFirstDeclarationVisitor
protected AbstractSemanticValidator.SubqueryFirstDeclarationVisitor buildSubqueryFirstDeclarationVisitor()
-
buildTopLevelFirstDeclarationVisitor
protected AbstractSemanticValidator.TopLevelFirstDeclarationVisitor buildTopLevelFirstDeclarationVisitor()
-
dispose
public void dispose()
Disposes this visitor.- Overrides:
disposein classAbstractValidator
-
findVirtualIdentificationVariable
protected IdentificationVariable findVirtualIdentificationVariable(AbstractSchemaName expression)
Returns theIdentificationVariablethat defines the identification variable for either aDELETEor anUPDATEquery.- Parameters:
expression- TheAbstractSchemaNamethat is being validated and that most likely representing an associated path expression and not an entity name- Returns:
- The
IdentificationVariabledefining either the identification variable or the virtual identification variable for theDELETEor for theUPDATEquery
-
getCollectionValuedPathExpression
protected CollectionValuedPathExpression getCollectionValuedPathExpression(Expression expression)
-
getCollectionValuedPathExpressionVisitor
protected AbstractSemanticValidator.CollectionValuedPathExpressionVisitor getCollectionValuedPathExpressionVisitor()
-
getComparingEntityTypeLiteralVisitor
protected AbstractSemanticValidator.ComparingEntityTypeLiteralVisitor getComparingEntityTypeLiteralVisitor()
-
getComparisonExpressionVisitor
protected AbstractSemanticValidator.ComparisonExpressionVisitor getComparisonExpressionVisitor()
-
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
-
getInItemsVisitor
protected AbstractSemanticValidator.InItemsVisitor getInItemsVisitor()
-
getStateFieldPathExpression
protected StateFieldPathExpression getStateFieldPathExpression(Expression expression)
-
getStateFieldPathExpressionVisitor
protected AbstractSemanticValidator.StateFieldPathExpressionVisitor getStateFieldPathExpressionVisitor()
-
getVirtualIdentificationVariableFinder
protected BaseDeclarationIdentificationVariableFinder getVirtualIdentificationVariableFinder()
Returns the visitor that can find theIdentificationVariableof theRangeVariableDeclaration. This should be used when the query is either aDELETEorUPDATEquery.- Returns:
- The visitor that can traverse the query and returns the
IdentificationVariable
-
initialize
protected void initialize()
Initializes this validator.- Overrides:
initializein classAbstractValidator
-
isComparingEntityTypeLiteral
protected boolean isComparingEntityTypeLiteral(IdentificationVariable expression)
Determines whether the given identification variable is used in a comparison expression: "expression = LargeProject".- Parameters:
expression- TheIdentificationVariableused to determine its purpose- Returns:
trueif the identification variable is used in a comparison expression;falseotherwise
-
isIdentificationVariableDeclaredAfter
protected boolean isIdentificationVariableDeclaredAfter(java.lang.String variableName, int variableNameIndex, int joinIndex, java.util.List<JPQLQueryDeclaration> declarations)
-
isIdentificationVariableValidInComparison
protected boolean isIdentificationVariableValidInComparison(IdentificationVariable expression)
Determines whether an identification variable can be used in a comparison expression when the operator is either '<', '<=', '>', '>='.- Parameters:
expression- TheIdentificationVariablethat is mapped to either an entity, a singled-object value field, a collection-valued object field- Returns:
trueif it can be used in a ordering comparison expression;falseif it can't
-
isOrderComparison
protected boolean isOrderComparison(ComparisonExpression expression)
Determines whether the givenComparisonExpressioncompares two expression using one of the following operators: '<', '<=', '>', '>='.- Parameters:
expression- TheComparisonExpressionto check what type of operator that is used- Returns:
trueif the operator is used to check for order;falseif it is not
-
isValid
protected final boolean isValid(int result, int index)Determines whether the expression at the given index is valid or not.- Parameters:
result- The integer value containing the bit used to determine the state of an expression at a given positionindex- The index that is used to determine the state of the expression- Returns:
trueif the expression is valid at the given index
-
selectClausePathExpressionPathType
protected abstract AbstractSemanticValidator.PathType selectClausePathExpressionPathType()
Returns the type of path expression that is allowed in theSELECTclause.- Returns:
- The type of path expressions allowed. The spec defines it as basic or object mapping only, i.e. collection-valued path expression is not allowed
-
subqueryFirstDeclarationVisitor
protected AbstractSemanticValidator.FirstDeclarationVisitor subqueryFirstDeclarationVisitor()
-
topLevelFirstDeclarationVisitor
protected AbstractSemanticValidator.FirstDeclarationVisitor topLevelFirstDeclarationVisitor()
-
updateStatus
protected final int updateStatus(int result, int index, boolean valid)Updates the validation status of an expression at a specified position. The value is stored in an integer value.- Parameters:
result- The integer value that is used to store the validation status of an expression at the given positionindex- The position to store the validation statusvalid- The new validation status to store- Returns:
- The updated integer value
-
validateAbsExpression
protected boolean validateAbsExpression(AbsExpression expression)
Validates the encapsulated expression of the givenABSexpression. The test to perform is:- If the encapsulated expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the encapsulated expression is not a path expression, validation will be redirected to that expression but the returned status will not be changed.
- Parameters:
expression- TheAbsExpressionto validate by validating its encapsulated expression- Returns:
falseif the encapsulated expression was validated and is invalid;trueotherwise
-
validateAbstractFromClause
protected void validateAbstractFromClause(AbstractFromClause expression, AbstractSemanticValidator.FirstDeclarationVisitor visitor)
Validates the givenFROMclause. This will validate the order of identification variable declarations.- Parameters:
expression- TheAbstractFromClauseto validatevisitor-
-
validateAbstractSchemaName
protected boolean validateAbstractSchemaName(AbstractSchemaName expression)
Validates the givenAbstractSchemaName. The tests to perform are:- Check to see the actual entity associated with the entity name does exist.
- If the abstract schema name is actually a path expression (which can be defined in a subquery but is always parsed as an abstract schema name), then make sure the path expression is resolving to a relationship mapping.
- Parameters:
expression- TheAbstractSchemaNameto validate- Returns:
trueif the entity name was resolved;falseotherwise
-
validateAdditionExpression
protected int validateAdditionExpression(AdditionExpression expression)
Validates the encapsulated expression of the given addition expression. The test to perform is:- If the left or right expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the left or right expression is not a path expression, validation will be redirected to that expression but the returned status will not be updated.
- Parameters:
expression- TheAdditionExpressionto validate by validating its encapsulated expression- Returns:
- A number indicating the validation result.
isValid(int, int)can be used to determine the validation status of an expression based on its position
-
validateAllOrAnyExpression
protected void validateAllOrAnyExpression(AllOrAnyExpression expression)
Validates the givenAllOrAnyExpression. The default behavior does not require to semantically validate it.- Parameters:
expression- TheAllOrAnyExpressionto validate
-
validateAndExpression
protected void validateAndExpression(AndExpression expression)
Validates the givenAndExpression. The default behavior does not require to semantically validate it.- Parameters:
expression- TheAndExpressionto validate
-
validateArithmeticExpression
protected int validateArithmeticExpression(ArithmeticExpression expression, java.lang.String leftExpressionWrongTypeMessageKey, java.lang.String rightExpressionWrongTypeMessageKey)
Validates the type of the left and right expressions defined by the givenArithmeticExpression. The test to perform is:- If the encapsulated expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the encapsulated expression is not a path expression, validation will be redirected to that expression but the returned status will not be changed.
- Parameters:
expression- TheArithmeticExpressionto validateleftExpressionWrongTypeMessageKey- The key used to describe the left expression does not have a valid typerightExpressionWrongTypeMessageKey- The key used to describe the right expression does not have a valid type- Returns:
- A number indicating the validation result.
isValid(int, int)can be used to determine the validation status of an expression based on its position
-
validateArithmeticExpression
protected boolean validateArithmeticExpression(ArithmeticFactor expression)
Validates the arithmetic factor expression. The test to perform is:- If the arithmetic factor is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- Parameters:
expression- TheArithmeticFactorto validate- Returns:
falseif the arithmetic factor expression was validated and is invalid;trueotherwise
-
validateAvgFunction
protected boolean validateAvgFunction(AvgFunction expression)
Validates the encapsulated expression of the givenAVGexpression. The test to perform is:- If the encapsulated expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the encapsulated expression is not a path expression, validation will be redirected to that expression but the returned status will not be changed.
- Parameters:
expression- TheAvgFunctionto validate by validating its encapsulated expression- Returns:
falseif the encapsulated expression was validated and is invalid;trueotherwise
-
validateBetweenExpression
protected int validateBetweenExpression(BetweenExpression expression)
Validates the givenBetweenExpression. The test to perform is:- If the "first" expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- Parameters:
expression- TheBetweenExpressionto validate
-
validateCaseExpression
protected void validateCaseExpression(CaseExpression expression)
Validates the givenCaseExpression. The default behavior does not require to semantically validate it.- Parameters:
expression- TheCaseExpressionto validate
-
validateCoalesceExpression
protected void validateCoalesceExpression(CoalesceExpression expression)
Validates the givenCoalesceExpression. The default behavior does not require to semantically validate it.- Parameters:
expression- TheCoalesceExpressionto validate
-
validateCollectionMemberDeclaration
protected void validateCollectionMemberDeclaration(CollectionMemberDeclaration expression)
Validates the givenCollectionMemberDeclaration.- Parameters:
expression- TheCollectionMemberDeclarationto validate
-
validateCollectionMemberExpression
protected int validateCollectionMemberExpression(CollectionMemberExpression expression)
Validates the givenCollectionMemberExpression. Only the collection-valued path expression is validated.- Parameters:
expression- TheCollectionMemberExpressionto validate- Returns:
- A number indicating the validation result.
isValid(int, int)can be used to determine the validation status of an expression based on its position
-
validateCollectionValuedPathExpression
protected boolean validateCollectionValuedPathExpression(Expression expression, boolean collectionTypeOnly)
Validates the givenExpressionand makes sure it's a valid collection value path expression.- Parameters:
expression- TheExpressionto validatecollectionTypeOnly-trueto make sure the path expression resolves to a collection mapping only;falseif it can simply resolves to a relationship mapping
-
validateJoinCollectionValuedPathExpression
protected boolean validateJoinCollectionValuedPathExpression(Expression expression, boolean collectionTypeOnly)
Validates the givenExpressionand makes sure it's a valid collection value path expression. join_collection_valued_path_expression::= identification_variable.{single_valued_embeddable_object_field.}*collection_valued_field join_single_valued_path_expression::= identification_variable.{single_valued_embeddable_object_field.}*single_valued_object_field- Parameters:
expression- TheExpressionto validatecollectionTypeOnly-trueto make sure the path expression resolves to a collection mapping only;falseif it can simply resolves to a relationship mapping
-
validateComparisonExpression
protected boolean validateComparisonExpression(ComparisonExpression expression)
Validates the left and right expressions of the givenComparisonExpression. The tests to perform are:- If the comparison operator is either '=' or '<>'. The expressions can only be
- Two identification variables;
- Two path expressions resolving to an association field;
- One can be a path expression resolving to a basic field and the other one has to resolve to a basic value.
- If the comparison operator is either '<', '<=', '>=', '>'. The expressions cannot be
- Two identification variables;
- Two path expressions resolving to an association field;
- Parameters:
expression- TheConcatExpressionto validate by validating its left and right expressions- Returns:
- The status of the comparison between the left and right expression:
trueif the two expressions pass the rules defined by this method;falseotherwise
- If the comparison operator is either '=' or '<>'. The expressions can only be
-
validateConcatExpression
protected boolean validateConcatExpression(ConcatExpression expression)
Validates the encapsulated expression of the givenCONCATexpression. The tests to perform are:- If the encapsulated expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the encapsulated expression is not a path expression, validation will be redirected to that expression but the returned status will not be changed.
- Parameters:
expression- TheConcatExpressionto validate by validating its encapsulated expression- Returns:
falseif the first encapsulated expression was validated and is invalid;trueotherwise
-
validateConstructorExpression
protected void validateConstructorExpression(ConstructorExpression expression)
Validates the givenConstructorExpression. The default behavior does not require to semantically validate it.- Parameters:
expression- TheConstructorExpressionto validate
-
validateCountFunction
protected void validateCountFunction(CountFunction expression)
Validates the givenCountFunction. The default behavior does not require to semantically validate it.- Parameters:
expression- TheCountFunctionto validate
-
validateDateTime
protected void validateDateTime(DateTime expression)
Validates the givenDateTime. The default behavior does not require to semantically validate it.- Parameters:
expression- TheDateTimeto validate
-
validateDeleteClause
protected void validateDeleteClause(DeleteClause expression)
Validates the givenDeleteClause. The default behavior does not require to semantically validate it.- Parameters:
expression- TheDeleteClauseto validate
-
validateDeleteStatement
protected void validateDeleteStatement(DeleteStatement expression)
Validates the givenDeleteStatement. The default behavior does not require to semantically validate it.- Parameters:
expression- TheDeleteStatementto validate
-
validateDivisionExpression
protected int validateDivisionExpression(DivisionExpression expression)
Validates the encapsulated expression of the given division expression. The test to perform is:- If the left or right expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the left or right expression is not a path expression, validation will be redirected to that expression but the returned status will not be updated.
- Parameters:
expression- TheDivisionExpressionto validate by validating its encapsulated expression- Returns:
- A number indicating the validation result.
isValid(int, int)can be used to determine the validation status of an expression based on its position
-
validateEntityTypeLiteral
protected boolean validateEntityTypeLiteral(EntityTypeLiteral expression)
-
validateEntryExpression
protected void validateEntryExpression(EntryExpression expression)
Validates the givenEntryExpression. The default behavior does not require to semantically validate it.- Parameters:
expression- TheEntryExpressionto validate
-
validateExistsExpression
protected void validateExistsExpression(ExistsExpression expression)
Validates the givenExistsExpression. The default behavior does not require to semantically validate it.- Parameters:
expression- TheExistsExpressionto validate
-
validateFirstDeclaration
protected void validateFirstDeclaration(AbstractFromClause expression, JPQLQueryDeclaration declaration, AbstractSemanticValidator.FirstDeclarationVisitor visitor)
-
validateFromClause
protected void validateFromClause(FromClause expression)
Validates the givenFromClause.- Parameters:
expression- TheFromClauseto validate
-
validateFunctionExpression
protected void validateFunctionExpression(FunctionExpression expression)
Validates the givenFunctionExpression.- Parameters:
expression- TheFunctionExpressionto validate
-
validateFunctionPathExpression
protected boolean validateFunctionPathExpression(AbstractSingleEncapsulatedExpression expression)
Validates the givenAbstractSingleEncapsulatedExpression's encapsulated expression if it is a state field path expression and makes sure it is mapping to a basic mapping. That means relationship field mapping is not allowed.- Parameters:
expression- TheAbstractSingleEncapsulatedExpressionto validate its encapsulated expression if it's a state field path expression, otherwise does nothing- Returns:
falseif the encapsulated expression was validated and is invalid;trueotherwise
-
validateFunctionPathExpression
protected int validateFunctionPathExpression(CompoundExpression expression, AbstractSemanticValidator.PathType pathType)
Validates the left and right expressions of the given compound expression. The test to perform is:- If the left or the right expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- Parameters:
expression- TheCompoundExpressionto validate by validating its left and right expressionspathType- The type of field that is allowed- Returns:
- A number indicating the validation result.
isValid(int, int)can be used to determine the validation status of an expression based on its position
-
validateGroupByClause
protected void validateGroupByClause(GroupByClause expression)
Validates the givenGroupByClause. The default behavior does not require to semantically validate it.- Parameters:
expression- TheGroupByClauseto validate
-
validateHavingClause
protected void validateHavingClause(HavingClause expression)
Validates the givenHavingClause. The default behavior does not require to semantically validate it.- Parameters:
expression- TheHavingClauseto validate
-
validateIdentificationVariable
protected boolean validateIdentificationVariable(IdentificationVariable expression)
Validates the givenIdentificationVariable. The test to perform are:- If the identification variable resolves to an entity type literal, then no validation is performed.
- Parameters:
expression- The identification variable to be validated- Returns:
trueif the given identification variable is valid;falseotherwise
-
validateIdentificationVariable
protected boolean validateIdentificationVariable(IdentificationVariable expression, java.lang.String variable)
Validates the given identification variable. The default behavior is to not validate it.- Parameters:
expression- TheIdentificationVariablethat is being visitedvariable- The actual identification variable, which is never an empty string- Returns:
trueif the given identification variable is valid;falseotherwise
-
validateIdentificationVariableDeclaration
protected void validateIdentificationVariableDeclaration(IdentificationVariableDeclaration expression)
Validates the givenInExpression. The default behavior does not require to semantically validate it.- Parameters:
expression- TheInExpressionto validate
-
validateIdentificationVariables
protected void validateIdentificationVariables()
Validates the identification variables:- Assures those used throughout the query have been defined in the
FROMclause in the current subquery or in a superquery. - They have been defined only once.
- Assures those used throughout the query have been defined in the
-
validateIndexExpression
protected boolean validateIndexExpression(IndexExpression expression)
Validates the givenIndexExpression. It validates the identification variable and makes sure is it defined inINorINexpression.- Parameters:
expression- TheIndexExpressionto validate
-
validateInExpression
protected void validateInExpression(InExpression expression)
Validates the givenInExpression. The test to perform is:- If the expression is a path expression, validation makes sure it is an association mapping, a basic field is not allowed.
- Parameters:
expression- TheInExpressionto validate
-
validateJoin
protected void validateJoin(Join expression)
Validates the givenJoin.- Parameters:
expression- TheValueExpressionto validate
-
validateJoinsIdentificationVariable
protected void validateJoinsIdentificationVariable(AbstractFromClause expression, java.util.List<JPQLQueryDeclaration> declarations, JPQLQueryDeclaration declaration, int index)
-
validateKeyExpression
protected void validateKeyExpression(KeyExpression expression)
Validates the givenKeyExpression. The default behavior does not require to semantically validate it.- Parameters:
expression- TheKeyExpressionto validate
-
validateLengthExpression
protected boolean validateLengthExpression(LengthExpression expression)
Validates the encapsulated expression of the givenLENGTHexpression. The test to perform is:- If the encapsulated expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the encapsulated expression is not a path expression, validation will be redirected to that expression but the returned status will not be changed.
- Parameters:
expression- TheLengthExpressionto validate by validating its encapsulated expression- Returns:
falseif the encapsulated expression was validated and is invalid;trueotherwise
-
validateLikeExpression
protected int validateLikeExpression(LikeExpression expression)
Validates the string expression of the givenLIKEexpression. The test to perform is:- If the string expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the encapsulated expression is not a path expression, validation will be redirected to that expression but the returned status will not be changed.
- Parameters:
expression- TheLengthExpressionto validate by validating its string expression- Returns:
- A number indicating the validation result.
isValid(int, int)can be used to determine the validation status of an expression based on its position
-
validateLocateExpression
protected int validateLocateExpression(LocateExpression expression)
Validates the encapsulated expression of the givenLOCATEexpression. The test to perform is:- If the encapsulated expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the encapsulated expression is not a path expression, validation will be redirected to that expression but the returned status will not be changed.
- Parameters:
expression- TheLocateExpressionto validate by validating its encapsulated expression- Returns:
- A number indicating the validation result.
isValid(int, int)can be used to determine the validation status of an expression based on its position
-
validateLowerExpression
protected boolean validateLowerExpression(LowerExpression expression)
Validates the encapsulated expression of the givenLOWERexpression. The test to perform is:- If the encapsulated expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the encapsulated expression is not a path expression, validation will be redirected to that expression but the returned status will not be changed.
- Parameters:
expression- TheLowerExpressionto validate by validating its encapsulated expression- Returns:
falseif the encapsulated expression was validated and is invalid;trueotherwise
-
validateMaxFunction
protected boolean validateMaxFunction(MaxFunction expression)
Validates the encapsulated expression of the givenMAXexpression. The test to perform is:- If the encapsulated expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the encapsulated expression is not a path expression, validation will be redirected to that expression but the returned status will not be changed.
- Parameters:
expression- TheMaxFunctionto validate by validating its encapsulated expression- Returns:
falseif the encapsulated expression was validated and is not valid;trueotherwise
-
validateMinFunction
protected boolean validateMinFunction(MinFunction expression)
Validates the encapsulated expression of the givenMINexpression. The test to perform is:- If the encapsulated expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the encapsulated expression is not a path expression, validation will be redirected to that expression but the returned status will not be changed.
- Parameters:
expression- TheMinFunctionto validate by validating its encapsulated expression- Returns:
falseif the encapsulated expression was validated and is not valid;trueotherwise
-
validateModExpression
protected int validateModExpression(ModExpression expression)
Validates the encapsulated expression of the givenMODexpression. The test to perform is:- If the encapsulated expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the encapsulated expression is not a path expression, validation will be redirected to that expression but the returned status will not be changed.
- Parameters:
expression- TheModExpressionto validate by validating its encapsulated expression- Returns:
- A number indicating the validation result.
isValid(int, int)can be used to determine the validation status of an expression based on its position
-
validateMultiplicationExpression
protected int validateMultiplicationExpression(MultiplicationExpression expression)
Validates the encapsulated expression of the given multiplication expression. The test to perform is:- If the left or right expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the left or right expression is not a path expression, validation will be redirected to that expression but the returned status will not be updated.
- Parameters:
expression- TheMultiplicationExpressionto validate by validating its encapsulated expression- Returns:
- A number indicating the validation result.
isValid(int, int)can be used to determine the validation status of an expression based on its position
-
validateNotExpression
protected void validateNotExpression(NotExpression expression)
Validates the givenNotExpression. The default behavior does not require to semantically validate it.- Parameters:
expression- TheNotExpressionto validate
-
validateNullComparisonExpression
protected void validateNullComparisonExpression(NullComparisonExpression expression)
Validates the givenNullComparisonExpression. The default behavior does not require to semantically validate it.- Parameters:
expression- TheNullComparisonExpressionto validate
-
validateNullIfExpression
protected void validateNullIfExpression(NullIfExpression expression)
Validates the givenNullIfExpression. The default behavior does not require to semantically validate it.- Parameters:
expression- TheNullIfExpressionto validate
-
validateObjectExpression
protected void validateObjectExpression(ObjectExpression expression)
Validates the givenObjectExpression. The default behavior does not require to semantically validate it.- Parameters:
expression- TheObjectExpressionto validate
-
validateOnClause
protected void validateOnClause(OnClause expression)
Validates the givenOnClause. The default behavior does not require to semantically validate it.- Parameters:
expression- TheOnClauseto validate
-
validateOrderByClause
protected void validateOrderByClause(OrderByClause expression)
Validates the givenOrderByItem. The default behavior does not require to semantically validate it.- Parameters:
expression- TheOrderByItemto validate
-
validateOrderByItem
protected void validateOrderByItem(OrderByItem expression)
Validates the givenOrderByItem. The default behavior does not require to semantically validate it.- Parameters:
expression- TheOrderByItemto validate
-
validateOrExpression
protected void validateOrExpression(OrExpression expression)
Validates the givenOrExpression. The default behavior does not require to semantically validate it.- Parameters:
expression- TheOrExpressionto validate
-
validateRangeVariableDeclaration
protected void validateRangeVariableDeclaration(RangeVariableDeclaration expression)
Validates the givenRangeVariableDeclaration.- Parameters:
expression- TheRangeVariableDeclarationto validate
-
validateRangeVariableDeclarationRootObject
protected void validateRangeVariableDeclarationRootObject(RangeVariableDeclaration expression)
Validates the "root" object of the givenRangeVariableDeclaration.- Parameters:
expression- TheRangeVariableDeclarationthat needs its "root" object to be validated
-
validateResultVariable
protected void validateResultVariable(ResultVariable expression)
Validates the givenResultVariable. The default behavior does not require to semantically validate it.- Parameters:
expression- TheResultVariableto validate
-
validateSelectClause
protected void validateSelectClause(SelectClause expression)
Validates the givenSelectClause. The default behavior does not require to semantically validate it.- Parameters:
expression- TheSelectClauseto validate
-
validateSelectStatement
protected void validateSelectStatement(SelectStatement expression)
Validates the givenSelectStatement. The default behavior does not require to semantically validate it.- Parameters:
expression- TheSelectStatementto validate
-
validateSimpleFromClause
protected void validateSimpleFromClause(SimpleFromClause expression)
Validates the givenSimpleFromClause.- Parameters:
expression- TheSimpleFromClauseto validate
-
validateSimpleSelectClause
protected void validateSimpleSelectClause(SimpleSelectClause expression)
Validates the givenSimpleSelectClause. The default behavior does not require to semantically validate it.- Parameters:
expression- TheSimpleSelectClauseto validate
-
validateSimpleSelectStatement
protected void validateSimpleSelectStatement(SimpleSelectStatement expression)
-
validateSizeExpression
protected boolean validateSizeExpression(SizeExpression expression)
Validates the givenSizeExpression.- Parameters:
expression- TheSizeExpressionto validate- Returns:
falseif the encapsulated expression is a collection-valued path expression and it was found to be invalid;trueotherwise
-
validateSqrtExpression
protected boolean validateSqrtExpression(SqrtExpression expression)
Validates the encapsulated expression of the givenSQRTexpression. The test to perform is:- If the encapsulated expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the encapsulated expression is not a path expression, validation will be redirected to that expression but the returned status will not be changed.
- Parameters:
expression- TheSqrtExpressionto validate by validating its encapsulated expression- Returns:
falseif the encapsulated expression was validated and is invalid;trueotherwise
-
validateStateFieldPathExpression
protected boolean validateStateFieldPathExpression(StateFieldPathExpression expression, AbstractSemanticValidator.PathType pathType)
Validates the givenStateFieldPathExpression.- Parameters:
expression- TheStateFieldPathExpressionthe validatepathType- The type of field that is allowed- Returns:
trueif the givenStateFieldPathExpressionresolves to a valid path;falseotherwise
-
validateSubstringExpression
protected int validateSubstringExpression(SubstringExpression expression)
Validates the encapsulated expression of the givenSUBSTRINGexpression. The test to perform is:- If the encapsulated expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the encapsulated expression is not a path expression, validation will be redirected to that expression but the returned status will not be changed.
- Parameters:
expression- TheSubstringExpressionto validate by validating its encapsulated expression- Returns:
- A number indicating the validation result.
isValid(int, int)can be used to determine the validation status of an expression based on its position
-
validateSubtractionExpression
protected int validateSubtractionExpression(SubtractionExpression expression)
Validates the encapsulated expression of the given subtraction expression. The test to perform is:- If the left or right expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the left or right expression is not a path expression, validation will be redirected to that expression but the returned status will not be updated.
- Parameters:
expression- TheSubtractionExpressionto validate by validating its encapsulated expression- Returns:
- A number indicating the validation result.
isValid(int, int)can be used to determine the validation status of an expression based on its position
-
validateSumFunction
protected boolean validateSumFunction(SumFunction expression)
Validates the encapsulated expression of the givenMODexpression. The test to perform is:- If the encapsulated expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the encapsulated expression is not a path expression, validation will be redirected to that expression but the returned status will not be changed.
- Parameters:
expression- TheModExpressionto validate by validating its encapsulated expression- Returns:
falseif the encapsulated expression was validated and is invalid;trueotherwise
-
validateThirdPartyStateFieldPathExpression
protected java.lang.Boolean validateThirdPartyStateFieldPathExpression(StateFieldPathExpression expression)
Validates the givenStateFieldPathExpression, which means the path does not represent a mapping, or an enum constant.- Parameters:
expression- TheStateFieldPathExpressionthe validate- Returns:
Boolean.TRUEorBoolean.FALSEif the givenStateFieldPathExpressionwas validated by this method;nullif it could not be validated (as being valid or invalid)
-
validateTreatExpression
protected void validateTreatExpression(TreatExpression expression)
Validates the givenTreatExpression. The default behavior does not require to semantically validate it.- Parameters:
expression- TheTreatExpressionto validate
-
validateTrimExpression
protected boolean validateTrimExpression(TrimExpression expression)
Validates the encapsulated expression of the givenTRIMexpression. The test to perform is:- If the encapsulated expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the encapsulated expression is not a path expression, validation will be redirected to that expression but the returned status will not be changed.
- Parameters:
expression- TheTrimExpressionto validate by validating its encapsulated expression- Returns:
falseif the encapsulated expression was validated and is invalid;trueotherwise
-
validateTypeExpression
protected boolean validateTypeExpression(TypeExpression expression)
Validates the givenTypeExpression. The test to perform is:- If the encapsulated expression is a path expression, validation makes sure it is an association field, a basic field is not allowed.
- Parameters:
expression- TheTypeExpressionto validate- Returns:
falseif the encapsulated expression was validated and is invalid;trueotherwise
-
validateUpdateClause
protected void validateUpdateClause(UpdateClause expression)
Validates the givenUpdateClause. The default behavior does not require to semantically validate it.- Parameters:
expression- TheUpdateClauseto validate
-
validateUpdateItem
protected boolean validateUpdateItem(UpdateItem expression)
Validates the givenUpdateItemby validating the traversability of the path expression. The path expression is valid if it follows one of the following rules:- The identification variable is omitted if it's not defined in the FROM clause;
- The last path is a state field;
- Only embedded field can be traversed.
- Parameters:
expression-UpdateItemto validate its path expression- Returns:
trueif the path expression is valid;falseotherwise
-
validateUpdateStatement
protected void validateUpdateStatement(UpdateStatement expression)
Validates the givenUpdateStatement. The default behavior does not require to semantically validate it.- Parameters:
expression- TheUpdateStatementto validate
-
validateUpperExpression
protected boolean validateUpperExpression(UpperExpression expression)
Validates the encapsulated expression of the givenUPPERexpression. The test to perform is:- If the encapsulated expression is a path expression, validation makes sure it is a basic mapping, an association field is not allowed.
- If the encapsulated expression is not a path expression, validation will be redirected to that expression but the returned status will not be changed.
- Parameters:
expression- TheUpperExpressionto validate by validating its encapsulated expression- Returns:
falseif the encapsulated expression was validated and is invalid;trueotherwise
-
validateValueExpression
protected void validateValueExpression(ValueExpression expression)
Validates the givenValueExpression. The default behavior does not require to semantically validate it.- Parameters:
expression- TheValueExpressionto validate
-
validateWhenClause
protected void validateWhenClause(WhenClause expression)
Validates the givenWhenClause. The default behavior does not require to semantically validate it.- Parameters:
expression- TheWhenClauseto validate
-
validateWhereClause
protected void validateWhereClause(WhereClause expression)
Validates the givenWhereClause. The default behavior does not require to semantically validate it.- Parameters:
expression- TheWhereClauseto validate
-
validPathExpressionTypeForCountFunction
protected AbstractSemanticValidator.PathType validPathExpressionTypeForCountFunction()
Returns the type of path expression that is valid for a count function; which is the left expression in aCOUNTexpression.- Returns:
- By default, any field are allowed except collection
-
validPathExpressionTypeForInExpression
protected AbstractSemanticValidator.PathType validPathExpressionTypeForInExpression()
Returns the type of path expression that is valid for the expression being tested by anINexpression; which is the left expression.- Returns:
- By default, any field (without collection) is allowed
-
validPathExpressionTypeForInItem
protected AbstractSemanticValidator.PathType validPathExpressionTypeForInItem()
Returns the type of path expression that is valid for anINitems; which is the left expression in aINexpression.- Returns:
- By default, any field are allowed except collection
-
validPathExpressionTypeForStringExpression
protected AbstractSemanticValidator.PathType validPathExpressionTypeForStringExpression()
Returns the type of path expression that is valid for a string expression; which is the left expression in aLIKEexpression.- Returns:
- By default, only basic field are allowed
-
visit
public final void visit(AbsExpression expression)
Visits theAbsExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(AbstractSchemaName expression)
Visits theAbstractSchemaNameexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(AdditionExpression expression)
Visits theAdditionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(AllOrAnyExpression expression)
Visits theAllOrAnyExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(AndExpression expression)
Visits theAndExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(ArithmeticFactor expression)
Visits theArithmeticFactorexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(AvgFunction expression)
Visits theAvgFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(BadExpression expression)
Visits theBadExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(BetweenExpression expression)
Visits theBetweenExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(CaseExpression expression)
Visits theCaseExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(CoalesceExpression expression)
Visits theCoalesceExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(CollectionExpression expression)
Visits theCollectionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(CollectionMemberDeclaration expression)
Visits theCollectionMemberDeclarationexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(CollectionMemberExpression expression)
Visits theCollectionMemberExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(CollectionValuedPathExpression expression)
Visits theCollectionValuedPathExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(ComparisonExpression expression)
Visits theComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(ConcatExpression expression)
Visits theConcatExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(ConstructorExpression expression)
Visits theConstructorExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(CountFunction expression)
Visits theCountFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(DateTime expression)
Visits theDateTimeexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(DeleteClause expression)
Visits theDeleteClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(DeleteStatement expression)
Visits theDeleteStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(DivisionExpression expression)
Visits theDivisionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(EmptyCollectionComparisonExpression expression)
Visits theEmptyCollectionComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(EntityTypeLiteral expression)
Visits theEntityTypeLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(EntryExpression expression)
Visits theEntryExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(ExistsExpression expression)
Visits theExistsExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(FromClause expression)
Visits theFromClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(FunctionExpression expression)
Visits theFunctionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(GroupByClause expression)
Visits theGroupByClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(HavingClause expression)
Visits theHavingClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(IdentificationVariable expression)
Visits theIdentificationVariableexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(IdentificationVariableDeclaration expression)
Visits theIdentificationVariableDeclarationexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(IndexExpression expression)
Visits theIndexExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(InExpression expression)
Visits theInExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(InputParameter expression)
Visits theInputParameterexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(Join expression)
Visits theJoinexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(JPQLExpression expression)
Visits theJPQLExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(KeyExpression expression)
Visits theKeyExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(KeywordExpression expression)
Visits theKeywordExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(LengthExpression expression)
Visits theLengthExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(LikeExpression expression)
Visits theLikeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(LocateExpression expression)
Visits theLocateExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(LowerExpression expression)
Visits theLowerExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(MaxFunction expression)
Visits theMaxFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(MinFunction expression)
Visits theMinFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(ModExpression expression)
Visits theModExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(MultiplicationExpression expression)
Visits theMultiplicationExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(NotExpression expression)
Visits theNotExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(NullComparisonExpression expression)
Visits theNullComparisonExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(NullExpression expression)
Visits theNullExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(NullIfExpression expression)
Visits theNullIfExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(NumericLiteral expression)
Visits theNumericLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(ObjectExpression expression)
Visits theObjectExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(OnClause expression)
Visits theOnClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(OrderByClause expression)
Visits theOrderByClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(OrderByItem expression)
Visits theOrderByItemexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(OrExpression expression)
Visits theOrExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(RangeVariableDeclaration expression)
Visits theRangeVariableDeclarationexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(ResultVariable expression)
Visits theResultVariableexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(SelectClause expression)
Visits theSelectClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(SelectStatement expression)
Visits theSelectStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(SimpleFromClause expression)
Visits theSimpleFromClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(SimpleSelectClause expression)
Visits theSimpleSelectClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(SimpleSelectStatement expression)
Visits theSimpleSelectStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(SizeExpression expression)
Visits theSizeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(SqrtExpression expression)
Visits theSqrtExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(StateFieldPathExpression expression)
Visits theStateFieldPathExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(StringLiteral expression)
Visits theStringLiteralexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(SubExpression expression)
Visits theSubExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(SubstringExpression expression)
Visits theSubstringExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(SubtractionExpression expression)
Visits theSubtractionExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(SumFunction expression)
Visits theSumFunctionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(TreatExpression expression)
Visits theTreatExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(TrimExpression expression)
Visits theTrimExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(TypeExpression expression)
Visits theTypeExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheExpressionto visit
-
visit
public final void visit(UnknownExpression expression)
Visits theUnknownExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUnknownExpressionto visit
-
visit
public final void visit(UpdateClause expression)
Visits theUpdateClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpdateClauseto visit
-
visit
public final void visit(UpdateItem expression)
Visits theUpdateItemexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpdateItemto visit
-
visit
public final void visit(UpdateStatement expression)
Visits theUpdateStatementexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpdateStatementto visit
-
visit
public final void visit(UpperExpression expression)
Visits theUpperExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheUpperExpressionto visit
-
visit
public final void visit(ValueExpression expression)
Visits theValueExpressionexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheValueExpressionto visit
-
visit
public final void visit(WhenClause expression)
Visits theWhenClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheWhenClauseto visit
-
visit
public final void visit(WhereClause expression)
Visits theWhereClauseexpression.- Specified by:
visitin interfaceExpressionVisitor- Overrides:
visitin classAnonymousExpressionVisitor- Parameters:
expression- TheWhereClauseto visit
-
-