Class AbstractPathExpression
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractPathExpression
-
- All Implemented Interfaces:
Expression
- Direct Known Subclasses:
CollectionValuedPathExpression,StateFieldPathExpression
public abstract class AbstractPathExpression extends AbstractExpression
An identification variable followed by the navigation operator (.) and a state field or association field is a path expression. The type of the path expression is the type computed as the result of navigation; that is, the type of the state field or association field to which the expression navigates.- Since:
- 2.3
- Version:
- 2.5
- Author:
- Pascal Filion
- See Also:
CollectionValuedPathExpression,IdentificationVariable
-
-
Field Summary
-
Fields inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
COMMA, DOT, DOUBLE_QUOTE, LEFT_CURLY_BRACKET, LEFT_PARENTHESIS, NOT_DEFINED, RIGHT_CURLY_BRACKET, RIGHT_PARENTHESIS, SINGLE_QUOTE, SPACE, UNDERSCORE
-
Fields inherited from interface org.eclipse.persistence.jpa.jpql.parser.Expression
ABS, ALL, AND, ANY, AS, AS_OF, ASC, AVG, BETWEEN, BIT_LENGTH, BOTH, CASE, CAST, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, COLUMN, CONCAT, CONNECT_BY, COUNT, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DELETE, DELETE_FROM, DESC, DIFFERENT, DISTINCT, DIVISION, ELSE, EMPTY, END, ENTRY, EQUAL, ESCAPE, EXCEPT, EXISTS, EXTRACT, FALSE, FETCH, FIRST, FROM, FUNC, FUNCTION, GREATER_THAN, GREATER_THAN_OR_EQUAL, GROUP_BY, HAVING, IN, INDEX, INNER, INNER_JOIN, INNER_JOIN_FETCH, INTERSECT, IS, IS_EMPTY, IS_NOT_EMPTY, IS_NOT_NULL, IS_NULL, JOIN, JOIN_FETCH, KEY, LAST, LEADING, LEFT, LEFT_JOIN, LEFT_JOIN_FETCH, LEFT_OUTER_JOIN, LEFT_OUTER_JOIN_FETCH, LENGTH, LIKE, LOCATE, LOWER, LOWER_THAN, LOWER_THAN_OR_EQUAL, MAX, MEMBER, MEMBER_OF, MIN, MINUS, MOD, MULTIPLICATION, NAMED_PARAMETER, NEW, NOT, NOT_BETWEEN, NOT_EQUAL, NOT_EXISTS, NOT_IN, NOT_LIKE, NOT_MEMBER, NOT_MEMBER_OF, NULL, NULLIF, NULLS, NULLS_FIRST, NULLS_LAST, OBJECT, OF, ON, OPERATOR, OR, ORDER_BY, ORDER_SIBLINGS_BY, OUTER, PLUS, POSITION, POSITIONAL_PARAMETER, QUOTE, REGEXP, SCN, SELECT, SET, SIZE, SOME, SQL, SQRT, START_WITH, SUBSTRING, SUM, TABLE, THEN, TIMESTAMP, TRAILING, TREAT, TRIM, TRUE, TYPE, UNION, UNKNOWN, UPDATE, UPPER, VALUE, WHEN, WHERE
-
-
Constructor Summary
Constructors Constructor Description AbstractPathExpression(AbstractExpression parent, AbstractExpression identificationVariable, String paths)Creates a newAbstractPathExpression.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidacceptChildren(ExpressionVisitor visitor)Visits the children of thisExpression.booleanendsWithDot()Determines whether the path ends with a dot or not.JPQLQueryBNFfindQueryBNF(Expression expression)Retrieves theJPQLQueryBNFthat represents the fragment of thisExpressionthat was used when parsing the givenExpression.ExpressiongetIdentificationVariable()Returns the identification variable that starts the path expression, which can be a sample identification variable, a map value, map key or map entry expression.StringgetPath(int index)Returns the specified segment of the state field path.booleanhasIdentificationVariable()Determines whether the identification variable was parsed.booleanhasVirtualIdentificationVariable()Determines whether the path's identification variable is virtual or not, meaning it's not part of the query but is required for proper navigability.ListIterable<String>paths()Returns the segments in the state field path in order.intpathSize()Returns the number of segments in the state field path.booleanstartsWithDot()Determines whether the path starts with a dot or not.StringtoParsedText(int startIndex, int stopIndex)Returns a string representation from the given range.-
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
children, getGrammar, getIdentifierVersion, getLength, getOffset, getParent, getQueryBNF, getRoot, isAncestor, orderedChildren, populatePosition, toActualText, toParsedText, toString
-
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.persistence.jpa.jpql.parser.Expression
accept, getQueryBNF
-
-
-
-
Constructor Detail
-
AbstractPathExpression
public AbstractPathExpression(AbstractExpression parent, AbstractExpression identificationVariable, String paths)
Creates a newAbstractPathExpression.- Parameters:
parent- The parent of this expressionidentificationVariable- The identification variable that was already parsed, which means the beginning of the parsing should start with a dotpaths- The path expression that is following the identification variable
-
-
Method Detail
-
acceptChildren
public void acceptChildren(ExpressionVisitor visitor)
Visits the children of thisExpression. This method can be used to optimize traversing the children since a new list is not created every timeExpression.children()is called.This does not traverse the
Expressionsub-hierarchy, use a subclass ofAbstractTraverseChildrenVisitorin order to traverse the entire sub-hierarchy.- Parameters:
visitor- Thevisitorto visit the children of this object.
-
endsWithDot
public final boolean endsWithDot()
Determines whether the path ends with a dot or not.- Returns:
trueif the path ends with a dot;falseotherwise
-
findQueryBNF
public final JPQLQueryBNF findQueryBNF(Expression expression)
Retrieves theJPQLQueryBNFthat represents the fragment of thisExpressionthat was used when parsing the givenExpression.- Specified by:
findQueryBNFin interfaceExpression- Overrides:
findQueryBNFin classAbstractExpression- Parameters:
expression- TheExpressionthat is a descendant of this one- Returns:
- The
JPQLQueryBNFthat was used to parse the given expression
-
getIdentificationVariable
public final Expression getIdentificationVariable()
Returns the identification variable that starts the path expression, which can be a sample identification variable, a map value, map key or map entry expression.- Returns:
- The root of the path expression
-
getPath
public final String getPath(int index)
Returns the specified segment of the state field path.- Parameters:
index- The 0-based segment index- Returns:
- The specified segment
-
hasIdentificationVariable
public final boolean hasIdentificationVariable()
Determines whether the identification variable was parsed.- Returns:
truethe identification variable was parsed;falseotherwise
-
hasVirtualIdentificationVariable
public final boolean hasVirtualIdentificationVariable()
Determines whether the path's identification variable is virtual or not, meaning it's not part of the query but is required for proper navigability.- Returns:
trueif this identification variable was virtually created to fully qualify path expression;falseif it was parsed
-
paths
public final ListIterable<String> paths()
Returns the segments in the state field path in order.- Returns:
- An
Iteratorover the segments of the state field path
-
pathSize
public final int pathSize()
Returns the number of segments in the state field path.- Returns:
- The number of segments
-
startsWithDot
public final boolean startsWithDot()
Determines whether the path starts with a dot or not.- Returns:
trueif the path starts with a dot;falseotherwise
-
toParsedText
public String toParsedText(int startIndex, int stopIndex)
Returns a string representation from the given range.- Parameters:
startIndex- The beginning of the range to create the string representationstopIndex- When to stop creating the string representation, which is exclusive- Returns:
- The string representation of this path expression contained in the given range
- Since:
- 2.4
-
-