Package org.apache.cayenne.query
Class Ordering
java.lang.Object
org.apache.cayenne.query.Ordering
- All Implemented Interfaces:
- Serializable,- Comparator<Object>,- XMLSerializable
public class Ordering extends Object implements Comparator<Object>, Serializable, XMLSerializable
Defines object sorting criteria, used either for in-memory sorting of object
 lists or as a specification for building ORDER BY clause of a
 SelectQuery query. Note that in case of in-memory sorting, Ordering can be
 used with any JavaBeans, not just DataObjects.
- See Also:
- Serialized Form
- 
Field SummaryFields Modifier and Type Field Description protected booleannullSortedFirstprotected booleanpathExceptionSuppressedprotected SortOrdersortOrderprotected ExpressionsortSpecprotected StringsortSpecString
- 
Constructor Summary
- 
Method SummaryModifier and Type Method Description intcompare(Object o1, Object o2)Comparable interface implementation.voidencodeAsXML(XMLEncoder encoder, ConfigurationNodeVisitor delegate)Encodes itself as a query ordering.booleanequals(Object object)SortOrdergetSortOrder()Returns sort order for this orderingExpressiongetSortSpec()Returns the expression defining a ordering Java Bean property.StringgetSortSpecString()Returns sortSpec string representation.inthashCode()booleanisAscending()Returns true if sorting is done in ascending order.booleanisCaseInsensitive()Returns true if the sorting is case insensitivebooleanisCaseSensitive()Returns true if the sorting is case sensitive.booleanisDescending()Returns true if the sorting is done in descending order.booleanisNullSortedFirst()Get sort order for nulls.booleanisPathExceptionSuppressed()Is a path with a null in the middle is ignored.<E> List<E>orderedList(Collection<E> objects)static <E> List<E>orderedList(Collection<E> objects, List<? extends Ordering> orderings)Orders a given list of objects, using a List of Orderings applied according the default iteration order of the Orderings list.voidorderList(List<?> objects)Orders the given list of objects according to the ordering that this object specifies.static voidorderList(List<?> objects, List<? extends Ordering> orderings)Orders a given list of objects, using a List of Orderings applied according the default iteration order of the Orderings list.voidsetAscending()If the sort order is DESCENDING or DESCENDING_INSENSITIVE, sets the sort order to ASCENDING or ASCENDING_INSENSITIVE, respectively.voidsetCaseInsensitive()If the sort order is ASCENDING or DESCENDING, sets the sort order to ASCENDING_INSENSITIVE or DESCENDING_INSENSITIVE, respectively.voidsetCaseSensitive()If the sort order is ASCENDING_INSENSITIVE or DESCENDING_INSENSITIVE, sets the sort order to ASCENDING or DESCENDING, respectively.voidsetDescending()If the sort order is ASCENDING or ASCENDING_INSENSITIVE, sets the sort order to DESCENDING or DESCENDING_INSENSITIVE, respectively.voidsetNullSortedFirst(boolean nullSortedFirst)Sets sort order for whether nulls are at the top or bottom of the resulting list.voidsetPathExceptionSupressed(boolean pathExceptionSuppressed)Sets whether a path with a null in the middle is ignored.voidsetSortOrder(SortOrder order)Sets the sort order for this ordering.voidsetSortSpec(Expression sortSpec)Sets the expression defining a ordering Java Bean property.voidsetSortSpecString(String sortSpecString)Sets sortSpec to be an expression represented by string argument.Orderingsthen(List<Ordering> nextOrderings)Orderingsthen(Ordering nextOrdering)Returns Orderings with this Ordering followed by the provided next Ordering.Orderingsthen(Orderings nextOrderings)Returns Orderings with this Ordering followed by the provided list of next Orderings.StringtoString()Methods inherited from class java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface java.util.Comparatorreversed, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong
- 
Field Details- 
sortSpecString
- 
sortSpec
- 
sortOrder
- 
pathExceptionSuppressedprotected boolean pathExceptionSuppressed
- 
nullSortedFirstprotected boolean nullSortedFirst
 
- 
- 
Constructor Details- 
Orderingpublic Ordering()
- 
OrderingCreate an ordering instance with a provided path and ascending sorting strategy.- Since:
- 4.0
 
- 
Ordering- Since:
- 3.0
 
- 
Ordering- Since:
- 4.0
 
- 
Ordering- Since:
- 4.0
 
 
- 
- 
Method Details- 
orderListOrders a given list of objects, using a List of Orderings applied according the default iteration order of the Orderings list. I.e. each Ordering with lower index is more significant than any other Ordering with higher index. List being ordered is modified in place.- Parameters:
- objects- elements to sort
- orderings- list of Orderings to be applied
 
- 
orderedListOrders a given list of objects, using a List of Orderings applied according the default iteration order of the Orderings list. I.e. each Ordering with lower index is more significant than any other Ordering with higher index.- Parameters:
- objects- elements to sort
- orderings- list of Orderings to be applied
- Returns:
- new List with ordered elements
- Since:
- 4.0
 
- 
equals- Specified by:
- equalsin interface- Comparator<Object>
- Overrides:
- equalsin class- Object
 
- 
hashCodepublic int hashCode()
- 
setSortSpecStringSets sortSpec to be an expression represented by string argument.- Since:
- 1.1
 
- 
setNullSortedFirstpublic void setNullSortedFirst(boolean nullSortedFirst)Sets sort order for whether nulls are at the top or bottom of the resulting list. Default is true. Affects only in-memory sorting.- Parameters:
- nullSortedFirst- true sorts nulls to the top of the list, false sorts nulls to the bottom
 
- 
isNullSortedFirstpublic boolean isNullSortedFirst()Get sort order for nulls.- Returns:
- true if nulls are sorted to the top of the list, false if sorted to the bottom
 
- 
setPathExceptionSupressedpublic void setPathExceptionSupressed(boolean pathExceptionSuppressed)Sets whether a path with a null in the middle is ignored. For example, a sort frompaintingonartist.namewould by default throw an exception if the artist was null. If set to true, then this is treated just like a null value. Default is false.- Parameters:
- pathExceptionSuppressed- true to suppress exceptions and sort as null
 
- 
isPathExceptionSuppressedpublic boolean isPathExceptionSuppressed()Is a path with a null in the middle is ignored.- Returns:
- true is exception is suppressed and sorted as null
 
- 
getSortSpecStringReturns sortSpec string representation.- Since:
- 1.1
 
- 
setSortOrderSets the sort order for this ordering.- Since:
- 3.0
 
- 
isAscendingpublic boolean isAscending()Returns true if sorting is done in ascending order.
- 
isDescendingpublic boolean isDescending()Returns true if the sorting is done in descending order.- Since:
- 3.0
 
- 
setAscendingpublic void setAscending()If the sort order is DESCENDING or DESCENDING_INSENSITIVE, sets the sort order to ASCENDING or ASCENDING_INSENSITIVE, respectively.- Since:
- 3.0
 
- 
setDescendingpublic void setDescending()If the sort order is ASCENDING or ASCENDING_INSENSITIVE, sets the sort order to DESCENDING or DESCENDING_INSENSITIVE, respectively.- Since:
- 3.0
 
- 
isCaseInsensitivepublic boolean isCaseInsensitive()Returns true if the sorting is case insensitive
- 
isCaseSensitivepublic boolean isCaseSensitive()Returns true if the sorting is case sensitive.- Since:
- 3.0
 
- 
setCaseInsensitivepublic void setCaseInsensitive()If the sort order is ASCENDING or DESCENDING, sets the sort order to ASCENDING_INSENSITIVE or DESCENDING_INSENSITIVE, respectively.- Since:
- 3.0
 
- 
setCaseSensitivepublic void setCaseSensitive()If the sort order is ASCENDING_INSENSITIVE or DESCENDING_INSENSITIVE, sets the sort order to ASCENDING or DESCENDING, respectively.- Since:
- 3.0
 
- 
getSortSpecReturns the expression defining a ordering Java Bean property.
- 
setSortSpecSets the expression defining a ordering Java Bean property.
- 
orderListOrders the given list of objects according to the ordering that this object specifies. List is modified in-place.- Parameters:
- objects- a List of objects to be sorted
 
- 
orderedList- Since:
- 4.0
 
- 
compareComparable interface implementation. Can compare two Java Beans based on the stored expression.- Specified by:
- comparein interface- Comparator<Object>
 
- 
encodeAsXMLEncodes itself as a query ordering.- Specified by:
- encodeAsXMLin interface- XMLSerializable
- Since:
- 1.1
 
- 
toString
- 
getSortOrderReturns sort order for this ordering- Since:
- 3.1
 
- 
thenReturns Orderings with this Ordering followed by the provided next Ordering.- Parameters:
- nextOrdering- the next Ordering to chain to this
- Returns:
- a new Orderings with both Ordering
- Since:
- 4.1
 
- 
thenReturns Orderings with this Ordering followed by the provided list of next Orderings.- Parameters:
- nextOrderings- the next Orderings to chain to this
- Returns:
- an array of sort orderings
- Since:
- 4.1
 
- 
then- Parameters:
- nextOrderings- the next Orderings to chain to this
- Returns:
- an array of sort orderings
- Since:
- 4.1
- See Also:
- Orderings.then(Orderings)
 
 
-