Class OrderByItemStateObject
java.lang.Object
org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
org.eclipse.persistence.jpa.jpql.tools.model.query.OrderByItemStateObject
- All Implemented Interfaces:
StateObject
An
JPA 2.0
ORDER BY item must be one of the following:
- A
state_field_path_expressionthat evaluates to an orderable state field of an entity or embeddable class abstract schema type designated in theSELECTclause by one of the following:- A general_identification_variable
- A single_valued_object_path_expression
- A
state_field_path_expressionthat evaluates to the same state field of the same entity or embeddable abstract schema type as astate_field_path_expressionin the SELECT clause - A
result_variablethat refers to an orderable item in theSELECTclause for which the sameresult_variablehas been specified. This may be the result of an aggregate_expression, ascalar_expression, or astate_field_path_expressionin theSELECTclause.
The keyword ASC specifies that ascending ordering be used for the associated
ORDER BY item; the keyword DESC specifies that descending
ordering be used. Ascending ordering is the default.
JPA 1.0:
BNF:
orderby_item ::= state_field_path_expression [ ASC | DESC ]JPA 2.0
BNF: orderby_item ::= state_field_path_expression | result_variable [ ASC | DESC ]
- Since:
- 2.4
- Version:
- 2.4
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionCreates a newOrderByItemStateObject.OrderByItemStateObject(OrderByClauseStateObject parent, String jpqlFragment, OrderByItem.Ordering ordering) Creates a newOrderByItemStateObject.OrderByItemStateObject(OrderByClauseStateObject parent, OrderByItem.Ordering ordering) Creates a newOrderByItemStateObject.OrderByItemStateObject(OrderByClauseStateObject parent, StateObject stateObject, OrderByItem.Ordering ordering) Creates a newOrderByItemStateObject. -
Method Summary
Modifier and TypeMethodDescriptionvoidaccept(StateObjectVisitor visitor) Visits thisStateObjectby the givenvisitor.protected voidaddChildren(List<StateObject> children) Adds the children of thisStateObjectto the given list.Returns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.Returns the enum constant representing the ordering type.Returns the parent of thisStateObject.Returns theStateObjectrepresenting the value used for ordering.booleanDetermines whether theStateObjectrepresenting the value used for ordering has been defined.booleanDetermines whether the ordering was specified as being ascendant.booleanDetermines whether the ordering was not specified.booleanDetermines whether the ordering was specified as being descendant.booleanisEquivalent(StateObject stateObject) Determines whether the givenStateObjectis equivalent to this one, i.e.voidParses the given JPQL fragment, which represents either a state-field pathe expression or a result variable, and creates theStateObject.voidRemoves the ordering if it's specified, otherwise do nothing.voidsetExpression(OrderByItem expression) Keeps a reference of theparsed objectobject, which should only be done when this object is instantiated during the conversion of a parsed JPQL query intoStateObjects.voidsetOrdering(OrderByItem.Ordering ordering) Sets the enum constant representing the ordering type.voidsetStateObject(StateObject stateObject) Sets theStateObjectrepresenting the value used for ordering.protected voidtoTextInternal(Appendable writer) Prints out a string representation of thisStateObject, which should not be used to define atruestring representation of a JPQL query but should be used for debugging purposes.Methods inherited from class org.eclipse.persistence.jpa.jpql.tools.model.query.AbstractStateObject
acceptUnknownVisitor, acceptUnknownVisitor, addProblems, addPropertyChangeListener, areEquivalent, buildProblem, buildProblem, buildStateObject, buildStateObjects, checkParent, children, decorate, equals, findIdentificationVariable, firePropertyChanged, getChangeSupport, getDeclaration, getDecorator, getGrammar, getManagedTypeProvider, getQueryBuilder, getRoot, getType, getType, getTypeHelper, getTypeRepository, hashCode, initialize, isDecorated, parent, parent, parent, removePropertyChangeListener, setExpression, setParent, toString, toString, toStringInternal, toStringItems, toText
-
Field Details
-
ORDERING_PROPERTY
Notifies the ordering property has changed.- See Also:
-
STATE_OBJECT_PROPERTY
Notifies the ordering property has changed.- See Also:
-
-
Constructor Details
-
OrderByItemStateObject
Creates a newOrderByItemStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
NullPointerException- The given parent cannot benull
-
OrderByItemStateObject
Creates a newOrderByItemStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
NullPointerException- The given parent cannot benull
-
OrderByItemStateObject
public OrderByItemStateObject(OrderByClauseStateObject parent, StateObject stateObject, OrderByItem.Ordering ordering) Creates a newOrderByItemStateObject.- Parameters:
parent- The parent of this state object, which cannot benullstateObject- TheStateObjectof the itemordering- One of the possibleOrderByItem.Orderingchoice- Throws:
NullPointerException- The given parent cannot benull
-
OrderByItemStateObject
public OrderByItemStateObject(OrderByClauseStateObject parent, String jpqlFragment, OrderByItem.Ordering ordering) Creates a newOrderByItemStateObject.- Parameters:
parent- The parent of this state object, which cannot benulljpqlFragment- The JPQL fragment representing the ordering itemordering- One of the possibleOrderByItem.Orderingchoice- Throws:
NullPointerException- The given parent cannot benull
-
-
Method Details
-
accept
Description copied from interface:StateObjectVisits thisStateObjectby the givenvisitor.- Parameters:
visitor- Thevisitorto visit this object
-
addChildren
Description copied from class:AbstractStateObjectAdds the children of thisStateObjectto the given list.- Overrides:
addChildrenin classAbstractStateObject- Parameters:
children- The list used to store the children
-
getExpression
Description copied from interface:StateObjectReturns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.- Specified by:
getExpressionin interfaceStateObject- Overrides:
getExpressionin classAbstractStateObject- Returns:
- The parsed object when a JPQL query is parsed and converted into a
StateObjectornullwhen the JPQL query is manually created (i.e. not from a string)
-
getOrdering
Returns the enum constant representing the ordering type.- Returns:
- The constant representing the ordering, in the case the ordering was not parsed, then
OrderByItem.Ordering.DEFAULTis returned
-
getParent
Description copied from interface:StateObjectReturns the parent of thisStateObject.- Specified by:
getParentin interfaceStateObject- Overrides:
getParentin classAbstractStateObject- Returns:
- Returns the parent of this
StateObject, which isnullonly when this is the root of the hierarchy
-
getStateObject
Returns theStateObjectrepresenting the value used for ordering.- Returns:
- The
StateObjectrepresenting the value used for ordering
-
hasStateObject
public boolean hasStateObject()Determines whether theStateObjectrepresenting the value used for ordering has been defined.- Returns:
trueif the ordering value is defined;falseotherwise
-
isAscending
public boolean isAscending()Determines whether the ordering was specified as being ascendant.- Returns:
trueif ASC was parsed;falseotherwise
-
isDefault
public boolean isDefault()Determines whether the ordering was not specified.- Returns:
trueif no ordering was parsed;falseotherwise
-
isDescending
public boolean isDescending()Determines whether the ordering was specified as being descendant.- Returns:
trueif DESC was parsed;falseotherwise
-
isEquivalent
Description copied from interface:StateObjectDetermines whether the givenStateObjectis equivalent to this one, i.e. the information of bothStateObjectis the same.- Specified by:
isEquivalentin interfaceStateObject- Overrides:
isEquivalentin classAbstractStateObject- Parameters:
stateObject- TheStateObjectto compare its content to this one- Returns:
trueif both object are equivalent;falseotherwise
-
parse
Parses the given JPQL fragment, which represents either a state-field pathe expression or a result variable, and creates theStateObject.- Parameters:
jpqlFragment- The portion of the query representing a state-field path expression or result variable
-
removeOrdering
public void removeOrdering()Removes the ordering if it's specified, otherwise do nothing. -
setExpression
Keeps a reference of theparsed objectobject, which should only be done when this object is instantiated during the conversion of a parsed JPQL query intoStateObjects.- Parameters:
expression- Theparsed objectrepresenting an order by item
-
setOrdering
Sets the enum constant representing the ordering type.- Parameters:
ordering- The constant representing the ordering, in the case the ordering was not parsed, thenOrderByItem.Ordering.DEFAULTshould be used
-
setStateObject
Sets theStateObjectrepresenting the value used for ordering.- Parameters:
stateObject- TheStateObjectrepresenting the value used for ordering
-
toTextInternal
Description copied from class:AbstractStateObjectPrints out a string representation of thisStateObject, which should not be used to define atruestring representation of a JPQL query but should be used for debugging purposes.- Specified by:
toTextInternalin classAbstractStateObject- Parameters:
writer- The writer used to print out the string representation- Throws:
IOException- This should never happens, it is only required becauseAppendableis used instead of any concrete class
-