public final class OrderByItem extends AbstractExpression
state_field_path_expression
that evaluates to an orderable
state field of an entity or embeddable class abstract schema type designated in the SELECT clause
by one of the following:
state_field_path_expression
that evaluates to the same
state field of the same entity or embeddable abstract schema type as a state_field_path_expression
in the SELECT clause
result_variable
that refers to an orderable item in the SELECT
clause for which the same result_variable
has been specified. This may be
the result of an aggregate_expression, a scalar_expression
, or a state_field_path_expression
in the SELECT clause.
The keyword ASC specifies that ascending ordering be used for the associated orderby_item; the keyword DESC specifies that descending ordering be used. Ascending ordering is the default.
The keyword NULLS FIRST specifies that nulls first ordering be used for the associated orderby_item; the keyword NULLS LAST specifies that nulls last ordering be used. Ascending ordering is the default.
JPA 1.0:
orderby_item ::= state_field_path_expression [ ASC | DESC ]
JPA 2.0
orderby_item ::= state_field_path_expression | result_variable [ ASC | DESC ]
EclipseLink 2.4:
orderby_item ::= state_field_path_expression | result_variable [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ]
Modifier and Type | Class and Description |
---|---|
static class |
OrderByItem.NullOrdering
This enumeration lists all the possible choices for ordering nulls in an item.
|
static class |
OrderByItem.Ordering
This enumeration lists all the possible choices for ordering an item.
|
COMMA, DOT, DOUBLE_QUOTE, LEFT_CURLY_BRACKET, LEFT_PARENTHESIS, NOT_DEFINED, RIGHT_CURLY_BRACKET, RIGHT_PARENTHESIS, SINGLE_QUOTE, SPACE, UNDERSCORE
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 and Description |
---|
OrderByItem(AbstractExpression parent)
Creates a new
OrderByItem . |
Modifier and Type | Method and Description |
---|---|
void |
accept(ExpressionVisitor visitor)
Visits this
Expression by the given visitor . |
void |
acceptChildren(ExpressionVisitor visitor)
Visits the children of this
Expression . |
protected void |
addChildrenTo(java.util.Collection<Expression> children)
Adds the children of this
AbstractExpression to the given collection. |
protected void |
addOrderedChildrenTo(java.util.List<Expression> children)
Adds the children of this
AbstractExpression to the given list. |
JPQLQueryBNF |
findQueryBNF(Expression expression)
Retrieves the
JPQLQueryBNF that represents the fragment of this Expression
that was used when parsing the given Expression . |
java.lang.String |
getActualNullOrdering()
Returns the actual
null ordering identifier found in the string representation of
the JPQL query, which has the actual case that was used. |
java.lang.String |
getActualOrdering()
Returns the actual ordering identifier found in the string representation of the JPQL query,
which has the actual case that was used.
|
Expression |
getExpression()
Returns the
Expression that represents the order by expression. |
OrderByItem.NullOrdering |
getNullOrdering()
Returns the enum constant representing the null ordering type.
|
OrderByItem.Ordering |
getOrdering()
Returns the enum constant representing the ordering type.
|
JPQLQueryBNF |
getQueryBNF()
Returns the BNF of this
Expression . |
boolean |
hasExpression()
Determines whether the order by expression was parsed.
|
boolean |
hasNulls()
Determines whether the
NULLS identifier was parsed. |
boolean |
hasOrdering()
Determines whether
ASC or DESC was parsed. |
boolean |
hasSpaceAfterExpression()
Determines whether a whitespace was parsed after the order by expression.
|
boolean |
hasSpaceAfterNulls()
Determines whether a whitespace was parsed after the
NULLS identifier. |
boolean |
hasSpaceAfterOrdering()
Determines whether a whitespace was parsed after the ordering.
|
boolean |
isAscending()
Determines whether the ordering was specified as being ascendant.
|
boolean |
isDefault()
Determines whether the ordering was not specified.
|
boolean |
isDescending()
Determines whether the ordering was specified as being descendant.
|
boolean |
isNullsFirst()
Determines whether the ordering was specified as being nulls first.
|
boolean |
isNullsLast()
Determines whether the ordering was specified as being nulls first.
|
protected boolean |
isParsingComplete(WordParser wordParser,
java.lang.String word,
Expression expression)
Determines whether the parsing is complete based on what is left in the given text.
|
protected void |
parse(WordParser wordParser,
boolean tolerant)
Parses the query by starting at the current position, which is part of the given
WordParser . |
protected void |
toParsedText(java.lang.StringBuilder writer,
boolean actual)
Generates a string representation of this
Expression , including its children,
if it has any. |
acceptUnknownVisitor, acceptUnknownVisitor, buildExpressionFromFallingBack, buildNullExpression, buildStringExpression, buildStringExpression, buildUnknownExpression, calculatePosition, children, findFallBackExpressionFactory, getExpressionFactory, getExpressionRegistry, getGrammar, getIdentifierVersion, getJPAVersion, getLength, getOffset, getParent, getQueryBNF, getRoot, getText, handleAggregate, handleCollection, isAncestor, isIdentifier, isNull, isTolerant, isUnknown, isVirtual, orderedChildren, parse, parseUsingExpressionFactory, populatePosition, rebuildActualText, rebuildParsedText, setParent, setText, shouldParseWithFactoryFirst, shouldSkipLiteral, toActualText, toParsedText, toString
public OrderByItem(AbstractExpression parent)
OrderByItem
.parent
- The parent of this expressionpublic void accept(ExpressionVisitor visitor)
Expression
by the given visitor
.visitor
- The ExpressionVisitor
to visit this objectpublic void acceptChildren(ExpressionVisitor visitor)
Expression
. This method can be used to optimize traversing
the children since a new list is not created every time Expression.children()
is called.
This does not traverse the Expression
sub-hierarchy, use a subclass of
AbstractTraverseChildrenVisitor
in order to traverse the entire sub-hierarchy.
visitor
- The visitor
to visit the children of this object.protected void addChildrenTo(java.util.Collection<Expression> children)
AbstractExpression
to the given collection.addChildrenTo
in class AbstractExpression
children
- The collection used to store the childrenprotected void addOrderedChildrenTo(java.util.List<Expression> children)
AbstractExpression
to the given list.addOrderedChildrenTo
in class AbstractExpression
children
- The list used to store the string representation of this AbstractExpression
public JPQLQueryBNF findQueryBNF(Expression expression)
JPQLQueryBNF
that represents the fragment of this Expression
that was used when parsing the given Expression
.findQueryBNF
in interface Expression
findQueryBNF
in class AbstractExpression
expression
- The Expression
that is a descendant of this oneJPQLQueryBNF
that was used to parse the given expressionpublic java.lang.String getActualNullOrdering()
null
ordering identifier found in the string representation of
the JPQL query, which has the actual case that was used.null
ordering identifier that was actually parsed, if one was present,
otherwise an empty string is returnedpublic java.lang.String getActualOrdering()
public Expression getExpression()
Expression
that represents the order by expression.public OrderByItem.NullOrdering getNullOrdering()
OrderByItem.NullOrdering.DEFAULT
is returnedpublic OrderByItem.Ordering getOrdering()
OrderByItem.Ordering.DEFAULT
is returnedpublic JPQLQueryBNF getQueryBNF()
Expression
.JPQLQueryBNF
, which represents the grammar of this Expression
public boolean hasExpression()
true
if the order by expression was parsed; false
otherwisepublic boolean hasNulls()
NULLS
identifier was parsed.true
if the NULLS
identifier was parsed;
false
otherwisepublic boolean hasOrdering()
ASC
or DESC
was parsed.true
if the ordering status was parsed; false
otherwisepublic boolean hasSpaceAfterExpression()
true
if there was a whitespace after the order by expression;
false
otherwisepublic boolean hasSpaceAfterNulls()
NULLS
identifier. If the
composite identifier was fully parsed - NULLS FIRST
or NULLS LAST
-
then this is always true
, but if only NULLS
was parsed, then this
can be useful to determine if there was a space after.true
if there was a whitespace after the NULLS
identifier;
false
otherwisepublic boolean hasSpaceAfterOrdering()
true
if there was a whitespace after the ordering;
false
otherwisepublic boolean isAscending()
true
if ASC was parsed; false
otherwisepublic boolean isDefault()
true
if no ordering was parsed; false
otherwisepublic boolean isDescending()
true
if DESC was parsed; false
otherwisepublic boolean isNullsFirst()
true
if NULLS FIRST was parsed; false
otherwisepublic boolean isNullsLast()
true
if NULLS LAST was parsed; false
otherwiseprotected boolean isParsingComplete(WordParser wordParser, java.lang.String word, Expression expression)
isParsingComplete
in class AbstractExpression
wordParser
- The text to parse based on the current position of the cursorword
- The word that was retrieved from the given text, which is the first word in the textexpression
- The Expression
that has already been parsedtrue
if the text no longer can't be parsed by the current expression;
false
if more can be parsedprotected void parse(WordParser wordParser, boolean tolerant)
WordParser
.parse
in class AbstractExpression
wordParser
- The text to parse based on the current position of the cursortolerant
- Determines whether the parsing system should be tolerant, meaning if it should
try to parse invalid or incomplete queriesprotected void toParsedText(java.lang.StringBuilder writer, boolean actual)
Expression
, including its children,
if it has any.toParsedText
in class AbstractExpression
writer
- The buffer used to append this Expression
's string representationactual
- Determines whether the string representation should represent what was parsed,
i.e. include any "virtual" whitespace (such as ending whitespace) and the actual case of the
JPQL identifiers