Top Description Inners Fields Constructors Methods
org.eclipse.persistence.jpa.jpql

public Class EclipseLinkGrammarValidator

extends AbstractGrammarValidator
implements EclipseLinkExpressionVisitor
Class Inheritance
All Implemented Interfaces
org.eclipse.persistence.jpa.jpql.parser.EclipseLinkExpressionVisitor, org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor
Imports
org.eclipse.persistence.jpa.jpql.AbstractEclipseLinkSemanticValidator.EclipseLinkOwningClauseVisitor, org.eclipse.persistence.jpa.jpql.parser.AbstractEclipseLinkExpressionVisitor, .AbstractSelectClause, .AsOfClause, .CastExpression, .ConnectByClause, .DatabaseType, .DatabaseTypeFactory, .DefaultEclipseLinkJPQLGrammar, .EclipseLinkExpressionVisitor, .Expression, .ExtractExpression, .HierarchicalQueryClause, .InExpression, .InputParameter, .JPQLGrammar, .OrderSiblingsByClause, .PatternValueBNF, .RegexpExpression, .SimpleSelectClause, .SimpleSelectStatement, .StartWithClause, .StringExpressionBNF, .TableExpression, .TableVariableDeclaration, .UnionClause

This validator adds EclipseLink extension over what the JPA functional specification had defined.

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.

Author
Pascal Filion
Since
2.4
Version
2.5

Nested and Inner Type Summary

Modifier and TypeClass and Description
protected static class
protected static class

Field Summary

Modifier and TypeField and Description
private EclipseLinkGrammarValidator.InExpressionVisitor
private EclipseLinkGrammarValidator.InExpressionWithNestedArrayVisitor

Constructor Summary

AccessConstructor and Description
public
EclipseLinkGrammarValidator(JPQLGrammar
The JPQLGrammar that defines how the JPQL query was parsed
jpqlGrammar
)

Creates a new EclipseLinkGrammarValidator.

Method Summary

Modifier and TypeMethod and Description
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<CastExpression>
protected AbstractGrammarValidator.AbstractDoubleEncapsulatedExpressionHelper<DatabaseType>
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<ExtractExpression>
protected EclipseLinkGrammarValidator.InExpressionVisitor
protected EclipseLinkGrammarValidator.InExpressionWithNestedArrayVisitor
protected LiteralVisitor
buildLiteralVisitor()

Implements abstract org.eclipse.persistence.jpa.jpql.AbstractValidator.buildLiteralVisitor.

Creates the visitor that can retrieve some information about various literal.
protected AbstractValidator.OwningClauseVisitor
buildOwningClauseVisitor()

Implements abstract org.eclipse.persistence.jpa.jpql.AbstractValidator.buildOwningClauseVisitor.

Creates the visitor that traverses the parent hierarchy of any Expression and stops at the first Expression that is a clause.
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<TableExpression>
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<CastExpression>
protected AbstractGrammarValidator.AbstractDoubleEncapsulatedExpressionHelper<DatabaseType>
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<ExtractExpression>
protected EclipseLinkGrammarValidator.InExpressionVisitor
protected EclipseLinkGrammarValidator.InExpressionWithNestedArrayVisitor
protected AbstractEclipseLinkSemanticValidator.EclipseLinkOwningClauseVisitor
getOwningClauseVisitor()

Overrides org.eclipse.persistence.jpa.jpql.AbstractValidator.getOwningClauseVisitor.

Returns the visitor that traverses the parent hierarchy of any Expression and stops at the first Expression that is a clause.
protected boolean

Returns:

true if the subquery is in an IN expression and its left expression is a nested array
isInExpressionWithNestedArray
(SimpleSelectClause
The SimpleSelectClause of the subquery
expression
)

Determines whether the subquery is part of an IN expression where the left expression is a nested array.

protected boolean
protected boolean
isJoinFetchIdentifiable()

Implements abstract org.eclipse.persistence.jpa.jpql.AbstractGrammarValidator.isJoinFetchIdentifiable.

Determines whether a JOIN FETCH expression can be identified by with an identification variable or not.
protected boolean
isMultipleSubquerySelectItemsAllowed(SimpleSelectClause
The subquery SELECT clause
expression
)

Overrides org.eclipse.persistence.jpa.jpql.AbstractGrammarValidator.isMultipleSubquerySelectItemsAllowed.

Determines whether the given subquery SELECT clause can return more than one item or just a single.
protected boolean
protected boolean

Returns:

true if the first parent being a clause is the UNION clause; false otherwise
isOwnedByUnionClause
(Expression
The Expression to visit its parent hierarchy up to the clause
expression
)

Determines whether the given Expression is a child of the UNION clause.

protected boolean
isSubqueryAllowedAnywhere()

Implements abstract org.eclipse.persistence.jpa.jpql.AbstractGrammarValidator.isSubqueryAllowedAnywhere.

Determines whether a subquery can be used in any clause of the top-level query.
protected AbstractGrammarValidator.AbstractSingleEncapsulatedExpressionHelper<TableExpression>
protected void
validateAbstractSelectClause(AbstractSelectClause
The AbstractSelectClause to validate
expression
,
boolean
Determines whether the SELECT can have one or more select expression or not
multipleSelectItemsAllowed
)

Overrides org.eclipse.persistence.jpa.jpql.AbstractGrammarValidator.validateAbstractSelectClause.

Validates the select expression of the given SELECT clause.
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
Inherited from org.eclipse.persistence.jpa.jpql.AbstractGrammarValidator:
absExpressionHelperallOrAnyExpressionHelperavgFunctionHelperbuildAbsExpressionHelperbuildAllOrAnyExpressionHelperbuildAvgFunctionHelperbuildCoalesceExpressionHelperbuildCollectionExpressionVisitorbuildConcatExpressionHelperbuildCountFunctionHelperbuildDateTimeVisitorbuildEntryExpressionHelperbuildExistsExpressionHelperbuildFunctionExpressionHelperbuildIndexExpressionHelperbuildKeyExpressionHelperbuildLengthExpressionHelperbuildLocateExpressionHelperbuildLowerExpressionHelperbuildMaxFunctionHelperbuildMinFunctionHelperbuildModExpressionHelperbuildNullExpressionVisitorbuildNullIfExpressionHelperbuildObjectExpressionHelperbuildSizeExpressionHelperbuildSqrtExpressionHelperbuildSubstringExpressionHelperbuildSumFunctionHelperbuildTrimExpressionHelperbuildTypeExpressionHelperbuildUpperExpressionHelperbuildValueExpressionHelpercoalesceExpressionHelpercollectionSeparatedByCommaValidatorcollectionSeparatedBySpaceValidatorcomparisonExpressionVisitorconcatExpressionHelpercountFunctionHelperdisposeentryExpressionHelperexistsExpressionHelperfunctionExpressionHelpergetCollectionExpressiongetCollectionExpressionVisitorgetDateTimeVisitorgetGrammargetHelperindexExpressionHelperinitializeisChildOfComparisonExpessionisCollectionExpressionisDateTimeConstantisJPA1_0isJPA2_0isJPA2_1isNewerThanisNewerThanOrEqualisNumericLiteralisOlderThanisOlderThanOrEqualisOwnedByConditionalClauseisOwnedByFromClauseisOwnedBySubFromClauseisValidJavaIdentifierkeyExpressionHelperlengthExpressionHelperlocateExpressionHelperlowerExpressionHelpermaxFunctionHelperminFunctionHelpermodExpressionHelpernullIfExpressionHelperobjectExpressionHelperpositionregisterHelpersizeExpressionHelpersqrtExpressionHelpersubstringExpressionHelpersumFunctionHelpertrimExpressionHelpertypeExpressionHelperupperExpressionHelpervalidateAbstractConditionalClausevalidateAbstractDoubleEncapsulatedExpressionvalidateAbstractFromClausevalidateAbstractSelectStatementvalidateAbstractSingleEncapsulatedExpressionvalidateAbstractTripleEncapsulatedExpressionvalidateAggregateFunctionLocationvalidateArithmeticExpressionvalidateCollectionSeparatedByCommavalidateCollectionSeparatedBySpacevalidateCompoundExpressionvalidateIdentificationVariableDeclarationvalidateIdentifiervalidateInputParametersvalidateJoinsvalidateLikeExpressionEscapeCharactervalidateLogicalExpressionvalidateOwningClausevalidatePathExpressionvalidateSimpleSelectStatementvalueExpressionHelpervisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisitvisit