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
public class OrderByItemStateObject extends AbstractStateObject
AnORDER BYitem 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
ASCspecifies that ascending ordering be used for the associatedORDER BYitem; the keywordDESCspecifies 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 ]- Version:
- 2.4
- See Also:
OrderByItem- Author:
- Pascal Filion
- Since:
- 2.4
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringORDERING_PROPERTYNotifies the ordering property has changed.static java.lang.StringSTATE_OBJECT_PROPERTYNotifies the ordering property has changed.
-
Constructor Summary
Constructors Constructor Description OrderByItemStateObject(OrderByClauseStateObject parent)Creates a newOrderByItemStateObject.OrderByItemStateObject(OrderByClauseStateObject parent, java.lang.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
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaccept(StateObjectVisitor visitor)Visits thisStateObjectby the givenvisitor.protected voidaddChildren(java.util.List<StateObject> children)Adds the children of thisStateObjectto the given list.OrderByItemgetExpression()Returns the actual parsed object if thisStateObjectrepresentation of the JPQL query was created by parsing an existing JPQL query.OrderByItem.OrderinggetOrdering()Returns the enum constant representing the ordering type.OrderByClauseStateObjectgetParent()Returns the parent of thisStateObject.StateObjectgetStateObject()Returns theStateObjectrepresenting the value used for ordering.booleanhasStateObject()Determines whether theStateObjectrepresenting the value used for ordering has been defined.booleanisAscending()Determines whether the ordering was specified as being ascendant.booleanisDefault()Determines whether the ordering was not specified.booleanisDescending()Determines whether the ordering was specified as being descendant.booleanisEquivalent(StateObject stateObject)Determines whether the givenStateObjectis equivalent to this one, i.e. the information of bothStateObjectis the same.voidparse(java.lang.String jpqlFragment)Parses the given JPQL fragment, which represents either a state-field pathe expression or a result variable, and creates theStateObject.voidremoveOrdering()Removes 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(java.lang.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 Detail
-
ORDERING_PROPERTY
public static final java.lang.String ORDERING_PROPERTY
Notifies the ordering property has changed.- See Also:
- Constant Field Values
-
STATE_OBJECT_PROPERTY
public static final java.lang.String STATE_OBJECT_PROPERTY
Notifies the ordering property has changed.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
OrderByItemStateObject
public OrderByItemStateObject(OrderByClauseStateObject parent)
Creates a newOrderByItemStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
java.lang.NullPointerException- The given parent cannot benull
-
OrderByItemStateObject
public OrderByItemStateObject(OrderByClauseStateObject parent, OrderByItem.Ordering ordering)
Creates a newOrderByItemStateObject.- Parameters:
parent- The parent of this state object, which cannot benull- Throws:
java.lang.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:
java.lang.NullPointerException- The given parent cannot benull
-
OrderByItemStateObject
public OrderByItemStateObject(OrderByClauseStateObject parent, java.lang.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:
java.lang.NullPointerException- The given parent cannot benull
-
-
Method Detail
-
accept
public void accept(StateObjectVisitor visitor)
Visits thisStateObjectby the givenvisitor.- Parameters:
visitor- Thevisitorto visit this object
-
addChildren
protected void addChildren(java.util.List<StateObject> children)
Adds the children of thisStateObjectto the given list.- Overrides:
addChildrenin classAbstractStateObject- Parameters:
children- The list used to store the children
-
getExpression
public OrderByItem getExpression()
Returns 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
public OrderByItem.Ordering 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
public OrderByClauseStateObject getParent()
Returns 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
public StateObject 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
public boolean isEquivalent(StateObject stateObject)
Determines 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
public void parse(java.lang.String jpqlFragment)
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
public void setExpression(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.- Parameters:
expression- Theparsed objectrepresenting an order by item
-
setOrdering
public void setOrdering(OrderByItem.Ordering ordering)
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
public void setStateObject(StateObject stateObject)
Sets theStateObjectrepresenting the value used for ordering.- Parameters:
stateObject- TheStateObjectrepresenting the value used for ordering
-
toTextInternal
protected void toTextInternal(java.lang.Appendable writer) throws java.io.IOExceptionPrints 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:
java.io.IOException- This should never happens, it is only required becauseAppendableis used instead of any concrete class
-
-