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, UNDERSCOREABS, 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, toStringpublic 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 AbstractExpressionchildren - The collection used to store the childrenprotected void addOrderedChildrenTo(java.util.List<Expression> children)
AbstractExpression to the given list.addOrderedChildrenTo in class AbstractExpressionchildren - The list used to store the string representation of this AbstractExpressionpublic JPQLQueryBNF findQueryBNF(Expression expression)
JPQLQueryBNF that represents the fragment of this Expression
that was used when parsing the given Expression.findQueryBNF in interface ExpressionfindQueryBNF in class AbstractExpressionexpression - 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 Expressionpublic 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 AbstractExpressionwordParser - 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 AbstractExpressionwordParser - 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 AbstractExpressionwriter - 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