Class AbstractEclipseLinkSemanticValidator
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.parser.AnonymousExpressionVisitor
-
- org.eclipse.persistence.jpa.jpql.AbstractValidator
-
- org.eclipse.persistence.jpa.jpql.AbstractSemanticValidator
-
- org.eclipse.persistence.jpa.jpql.AbstractEclipseLinkSemanticValidator
-
- All Implemented Interfaces:
EclipseLinkExpressionVisitor
,ExpressionVisitor
- Direct Known Subclasses:
EclipseLinkSemanticValidator
public class AbstractEclipseLinkSemanticValidator extends AbstractSemanticValidator implements EclipseLinkExpressionVisitor
This validator is responsible to gather the problems found in a JPQL query by validating the content to make sure it is semantically valid for EclipseLink. The grammar is not validated by this visitor.For instance, the function AVG accepts a state field path. The property it represents has to be of numeric type. AVG(e.name) is parsable but is not semantically valid because the type of name is a string (the property signature is: "
private String name
").Note: EclipseLink does not validate types, but leaves it to the database. This is because some databases such as Oracle allow different types to different functions and perform implicit type conversion. i.e.
CONCAT('test', 2)
returns'test2'
. Also the FUNC function has an unknown type, so should be allowed with any function.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.
- Since:
- 2.4
- Version:
- 2.5.1
- Author:
- Pascal Filion
- See Also:
EclipseLinkGrammarValidator
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
AbstractEclipseLinkSemanticValidator.EclipseLinkOwningClauseVisitor
This visitor retrieves the clause owning the visitedExpression
.-
Nested classes/interfaces inherited from class org.eclipse.persistence.jpa.jpql.AbstractValidator
AbstractValidator.BypassChildCollectionExpressionVisitor, AbstractValidator.BypassParentSubExpressionVisitor, AbstractValidator.ChildrenCollectorVisitor, AbstractValidator.JPQLQueryBNFValidator, AbstractValidator.OwningClauseVisitor
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
visit(AsOfClause expression)
Visits theAsOfClause
expression.void
visit(CastExpression expression)
Visits theCastExpression
expression.void
visit(ConnectByClause expression)
Visits theConnectByClause
expression.void
visit(DatabaseType expression)
Visits theDatabaseType
expression.void
visit(ExtractExpression expression)
Visits theExtractExpression
expression.void
visit(HierarchicalQueryClause expression)
Visits theHierarchicalQueryClause
expression.void
visit(OrderSiblingsByClause expression)
Visits theOrderSiblingsByClause
expression.void
visit(RegexpExpression expression)
Visits theRegexpExpression
expression.void
visit(StartWithClause expression)
Visits theStartWithClause
expression.void
visit(TableExpression expression)
Visits theTableExpression
expression.void
visit(TableVariableDeclaration expression)
Visits theTableVariableDeclaration
expression.void
visit(UnionClause expression)
Visits theUnionClause
expression.-
Methods inherited from class org.eclipse.persistence.jpa.jpql.AbstractSemanticValidator
dispose, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
-
Methods inherited from class org.eclipse.persistence.jpa.jpql.AbstractValidator
problemsSize, setProblems
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit
-
-
-
-
Method Detail
-
visit
public void visit(AsOfClause expression)
Visits theAsOfClause
expression.- Specified by:
visit
in interfaceEclipseLinkExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(CastExpression expression)
Visits theCastExpression
expression.- Specified by:
visit
in interfaceEclipseLinkExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(ConnectByClause expression)
Visits theConnectByClause
expression.- Specified by:
visit
in interfaceEclipseLinkExpressionVisitor
- Parameters:
expression
- TheConnectByClause
to visit
-
visit
public void visit(DatabaseType expression)
Visits theDatabaseType
expression.- Specified by:
visit
in interfaceEclipseLinkExpressionVisitor
- Parameters:
expression
- TheDatabaseType
to visit
-
visit
public void visit(ExtractExpression expression)
Visits theExtractExpression
expression.- Specified by:
visit
in interfaceEclipseLinkExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(HierarchicalQueryClause expression)
Visits theHierarchicalQueryClause
expression.- Specified by:
visit
in interfaceEclipseLinkExpressionVisitor
- Parameters:
expression
- TheHierarchicalQueryClause
to visit
-
visit
public void visit(OrderSiblingsByClause expression)
Visits theOrderSiblingsByClause
expression.- Specified by:
visit
in interfaceEclipseLinkExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(RegexpExpression expression)
Visits theRegexpExpression
expression.- Specified by:
visit
in interfaceEclipseLinkExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(StartWithClause expression)
Visits theStartWithClause
expression.- Specified by:
visit
in interfaceEclipseLinkExpressionVisitor
- Parameters:
expression
- TheStartWithClause
to visit
-
visit
public void visit(TableExpression expression)
Visits theTableExpression
expression.- Specified by:
visit
in interfaceEclipseLinkExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(TableVariableDeclaration expression)
Visits theTableVariableDeclaration
expression.- Specified by:
visit
in interfaceEclipseLinkExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
visit
public void visit(UnionClause expression)
Visits theUnionClause
expression.- Specified by:
visit
in interfaceEclipseLinkExpressionVisitor
- Parameters:
expression
- TheExpression
to visit
-
-