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

pack-priv final Class ExpressionBuilderVisitor

extends Object
implements EclipseLinkExpressionVisitor
Class Inheritance
All Implemented Interfaces
org.eclipse.persistence.jpa.jpql.parser.EclipseLinkExpressionVisitor, org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor
Annotations
@SuppressWarnings:nls
Imports
java.sql.Date, .Time, .Timestamp, java.time.LocalDate, .LocalTime, java.util.ArrayList, .Collection, .Collections, .Comparator, .HashSet, .LinkedHashMap, .LinkedList, .List, .Map, .Set, .Vector, org.eclipse.persistence.descriptors.ClassDescriptor, org.eclipse.persistence.expressions.Expression, .ExpressionBuilder, .ExpressionMath, org.eclipse.persistence.internal.expressions.ConstantExpression, .DateConstantExpression, .MapEntryExpression, .ParameterExpression, org.eclipse.persistence.internal.queries.ReportItem, org.eclipse.persistence.jpa.jpql.ExpressionTools, .JPQLQueryDeclaration.Type, .LiteralType, org.eclipse.persistence.jpa.jpql.parser.AbsExpression, .AbstractEclipseLinkExpressionVisitor, .AbstractExpressionVisitor, .AbstractPathExpression, .AbstractSchemaName, .AdditionExpression, .AllOrAnyExpression, .AndExpression, .AnonymousExpressionVisitor, .ArithmeticFactor, .AsOfClause, .AvgFunction, .BadExpression, .BetweenExpression, .CaseExpression, .CastExpression, .CoalesceExpression, .CollectionExpression, .CollectionMemberDeclaration, .CollectionMemberExpression, .CollectionValuedPathExpression, .ComparisonExpression, .ConcatExpression, .ConnectByClause, .ConstructorExpression, .CountFunction, .DatabaseType, .DateTime, .DeleteClause, .DeleteStatement, .DivisionExpression, .EclipseLinkAnonymousExpressionVisitor, .EclipseLinkExpressionVisitor, .EmptyCollectionComparisonExpression, .EntityTypeLiteral, .EntryExpression, .ExistsExpression, .ExtractExpression, .FromClause, .FunctionExpression, .GroupByClause, .HavingClause, .HierarchicalQueryClause, .IdentificationVariable, .IdentificationVariableDeclaration, .InExpression, .IndexExpression, .InputParameter, .JPQLExpression, .Join, .KeyExpression, .KeywordExpression, .LengthExpression, .LikeExpression, .LocalDateTime, .LocalExpression, .LocateExpression, .LowerExpression, .MathDoubleExpression, .MathSingleExpression, .MaxFunction, .MinFunction, .ModExpression, .MultiplicationExpression, .NotExpression, .NullComparisonExpression, .NullExpression, .NullIfExpression, .NumericLiteral, .ObjectExpression, .OnClause, .OrExpression, .OrderByClause, .OrderByItem, .OrderSiblingsByClause, .RangeVariableDeclaration, .RegexpExpression, .ResultVariable, .SelectClause, .SelectStatement, .SimpleFromClause, .SimpleSelectClause, .SimpleSelectStatement, .SizeExpression, .SqrtExpression, .StartWithClause, .StateFieldPathExpression, .StringLiteral, .SubExpression, .SubstringExpression, .SubtractionExpression, .SumFunction, .TableExpression, .TableVariableDeclaration, .TreatExpression, .TrimExpression, .TypeExpression, .UnionClause, .UnknownExpression, .UpdateClause, .UpdateItem, .UpdateStatement, .UpperExpression, .ValueExpression, .WhenClause, .WhereClause, org.eclipse.persistence.mappings.DatabaseMapping, org.eclipse.persistence.mappings.querykeys.ForeignReferenceQueryKey, .QueryKey, org.eclipse.persistence.queries.ReportQuery

This org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor visits an JPQL Expression and creates the corresponding EclipseLink Expression.
Authors
Pascal Filion, John Bracken

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static class
ExpressionBuilderVisitor.ChildrenExpressionVisitor

This visitor creates a list by retrieving either the single child or the children of the CollectionExpression, which would be the child.

private class
ExpressionBuilderVisitor.ComparisonExpressionVisitor

This visitor makes sure to properly handle an entity type literal being parsed as an identification variable.

private class
ExpressionBuilderVisitor.InExpressionBuilder

This visitor takes care of creating the IN expression by visiting the items.

private class
ExpressionBuilderVisitor.InExpressionExpressionBuilder

This visitor takes care of creating the left expression of an IN expression and make sure to support nested arrays.

private class
private class
ExpressionBuilderVisitor.WhenClauseExpressionVisitor

This visitor is responsible to create the Expressions for the WHEN and THEN expressions.

Field Summary

Modifier and TypeField and Description
private ExpressionBuilderVisitor.ChildrenExpressionVisitor
childrenExpressionVisitor

This visitor creates a list by retrieving either the single child or the children of the CollectionExpression, which would be the child.

private boolean
nullAllowed

Determines whether the target relationship is allowed to be null.

private Comparator<Class<?>>
numericTypeComparator

This Comparator compares two Class values and returned the appropriate numeric type that takes precedence.

private final JPQLQueryContext
queryContext

The context used to query information about the application metadata.

private Expression
queryExpression

The EclipseLink Expression that represents a visited parsed persistence.jpa.query.parser.Expression Expression

private final Class<?>[]
type

Keeps track of the type of an expression while traversing it.

private ExpressionBuilderVisitor.WhenClauseExpressionVisitor
whenClauseExpressionVisitor

The visitor responsible to create the Expressions for the WHEN and THEN expressions.

Constructor Summary

AccessConstructor and Description
pack-priv
ExpressionBuilderVisitor(JPQLQueryContext
The context used to query information about the application metadata and cached information
queryContext
)

Creates a new ExpressionBuilderVisitor.

Method Summary

Modifier and TypeMethod and Description
private void
pack-priv Expression

Returns:

The EclipseLink Expression of the JPQL fragment
buildExpression
(Expression
The Expression to convert into an EclipseLink Expression
expression
,
Class<?>[]
The type of the expression
type
)

Creates a new EclipseLink Expression by visiting the given JPQL Expression.

pack-priv Expression

Returns:

The EclipseLink Expression representation of that path expression
buildGroupByExpression
(CollectionValuedPathExpression
The CollectionValuedPathExpression to convert into an EclipseLink Expression
expression
)

Creates a new EclipseLink Expression by visiting the given JPQL CollectionValuedPathExpression that is used in the GROUP BY clause.

private void
private void
private void
pack-priv Expression

Returns:

The EclipseLink Expression representation of that path expression
buildModifiedPathExpression
(StateFieldPathExpression
The StateFieldPathExpression to convert into an EclipseLink Expression
expression
)

Creates a new EclipseLink Expression by visiting the given JPQL StateFieldPathExpression.

pack-priv ReportQuery

Returns:

A fully initialized ReportQuery
buildSubquery
(SimpleSelectStatement
The SimpleSelectStatement to convert into a ReportQuery
expression
)

Creates a new ReportQuery by visiting the given SimpleSelectStatement.

private List<Expression>
children(Expression expression)

private ExpressionBuilderVisitor.ChildrenExpressionVisitor
private Set<String>
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
visit(DateTime
The Expression to visit
expression
)

Implements org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Visits the DateTime expression.
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
visit(Join
The Expression to visit
expression
)

Implements org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Visits the Join expression.
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
visit(OnClause
The Expression to visit
expression
)

Implements org.eclipse.persistence.jpa.jpql.parser.ExpressionVisitor.visit.

Visits the OnClause expression.
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
public void
private void
visitPathExpression(AbstractPathExpression expression, boolean nullAllowed, int lastIndex)

private ExpressionBuilderVisitor.WhenClauseExpressionVisitor
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait