org.apache.cayenne.query
Class Ordering

java.lang.Object
  extended by org.apache.cayenne.query.Ordering
All Implemented Interfaces:
java.io.Serializable, java.util.Comparator<java.lang.Object>, XMLSerializable

public class Ordering
extends java.lang.Object
implements java.util.Comparator<java.lang.Object>, java.io.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 Summary
protected  boolean nullSortedFirst
           
protected  boolean pathExceptionSuppressed
           
protected  SortOrder sortOrder
           
protected  Expression sortSpec
           
protected  java.lang.String sortSpecString
           
 
Constructor Summary
Ordering()
           
Ordering(java.lang.String sortPathSpec, SortOrder sortOrder)
           
 
Method Summary
 int compare(java.lang.Object o1, java.lang.Object o2)
          Comparable interface implementation.
 void encodeAsXML(XMLEncoder encoder)
          Encodes itself as a query ordering.
 SortOrder getSortOrder()
          Returns sort order for this ordering
 Expression getSortSpec()
          Returns the expression defining a ordering Java Bean property.
 java.lang.String getSortSpecString()
          Returns sortSpec string representation.
 boolean isAscending()
          Returns true if sorting is done in ascending order.
 boolean isCaseInsensitive()
          Returns true if the sorting is case insensitive
 boolean isCaseSensitive()
          Returns true if the sorting is case sensitive.
 boolean isDescending()
          Returns true if the sorting is done in descending order.
 boolean isNullSortedFirst()
          Get sort order for nulls.
 boolean isPathExceptionSuppressed()
          Is a path with a null in the middle is ignored.
 void orderList(java.util.List<?> objects)
          Orders the given list of objects according to the ordering that this object specifies.
static void orderList(java.util.List<?> objects, java.util.List<Ordering> orderings)
          Orders a given list of objects, using a List of Orderings applied according the default iteration order of the Orderings list.
 void setAscending()
          If the sort order is DESCENDING or DESCENDING_INSENSITIVE, sets the sort order to ASCENDING or ASCENDING_INSENSITIVE, respectively.
 void setCaseInsensitive()
          If the sort order is ASCENDING or DESCENDING, sets the sort order to ASCENDING_INSENSITIVE or DESCENDING_INSENSITIVE, respectively.
 void setCaseSensitive()
          If the sort order is ASCENDING_INSENSITIVE or DESCENDING_INSENSITIVE, sets the sort order to ASCENDING or DESCENDING, respectively.
 void setDescending()
          If the sort order is ASCENDING or ASCENDING_INSENSITIVE, sets the sort order to DESCENDING or DESCENDING_INSENSITIVE, respectively.
 void setNullSortedFirst(boolean nullSortedFirst)
          Sets sort order for whether nulls are at the top or bottom of the resulting list.
 void setPathExceptionSupressed(boolean pathExceptionSuppressed)
          Sets whether a path with a null in the middle is ignored.
 void setSortOrder(SortOrder order)
          Sets the sort order for this ordering.
 void setSortSpec(Expression sortSpec)
          Sets the expression defining a ordering Java Bean property.
 void setSortSpecString(java.lang.String sortSpecString)
          Sets sortSpec to be an expression represented by string argument.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Comparator
equals
 

Field Detail

sortSpecString

protected java.lang.String sortSpecString

sortSpec

protected transient Expression sortSpec

sortOrder

protected SortOrder sortOrder

pathExceptionSuppressed

protected boolean pathExceptionSuppressed

nullSortedFirst

protected boolean nullSortedFirst
Constructor Detail

Ordering

public Ordering()

Ordering

public Ordering(java.lang.String sortPathSpec,
                SortOrder sortOrder)
Since:
3.0
Method Detail

orderList

public static void orderList(java.util.List<?> objects,
                             java.util.List<Ordering> orderings)
Orders 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.


setSortSpecString

public void setSortSpecString(java.lang.String sortSpecString)
Sets sortSpec to be an expression represented by string argument.

Since:
1.1

setNullSortedFirst

public void setNullSortedFirst(boolean nullSortedFirst)
Sets sort order for whether nulls are at the top or bottom of the resulting list. Default is true.

Parameters:
nullSortedFirst - true sorts nulls to the top of the list, false sorts nulls to the bottom

isNullSortedFirst

public 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

setPathExceptionSupressed

public void setPathExceptionSupressed(boolean pathExceptionSuppressed)
Sets whether a path with a null in the middle is ignored. For example, a sort from painting on artist.name would 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

isPathExceptionSuppressed

public boolean isPathExceptionSuppressed()
Is a path with a null in the middle is ignored.

Returns:
true is exception is suppressed and sorted as null

getSortSpecString

public java.lang.String getSortSpecString()
Returns sortSpec string representation.

Since:
1.1

setSortOrder

public void setSortOrder(SortOrder order)
Sets the sort order for this ordering.

Since:
3.0

isAscending

public boolean isAscending()
Returns true if sorting is done in ascending order.


isDescending

public boolean isDescending()
Returns true if the sorting is done in descending order.

Since:
3.0

setAscending

public void setAscending()
If the sort order is DESCENDING or DESCENDING_INSENSITIVE, sets the sort order to ASCENDING or ASCENDING_INSENSITIVE, respectively.

Since:
3.0

setDescending

public void setDescending()
If the sort order is ASCENDING or ASCENDING_INSENSITIVE, sets the sort order to DESCENDING or DESCENDING_INSENSITIVE, respectively.

Since:
3.0

isCaseInsensitive

public boolean isCaseInsensitive()
Returns true if the sorting is case insensitive


isCaseSensitive

public boolean isCaseSensitive()
Returns true if the sorting is case sensitive.

Since:
3.0

setCaseInsensitive

public void setCaseInsensitive()
If the sort order is ASCENDING or DESCENDING, sets the sort order to ASCENDING_INSENSITIVE or DESCENDING_INSENSITIVE, respectively.

Since:
3.0

setCaseSensitive

public void setCaseSensitive()
If the sort order is ASCENDING_INSENSITIVE or DESCENDING_INSENSITIVE, sets the sort order to ASCENDING or DESCENDING, respectively.

Since:
3.0

getSortSpec

public Expression getSortSpec()
Returns the expression defining a ordering Java Bean property.


setSortSpec

public void setSortSpec(Expression sortSpec)
Sets the expression defining a ordering Java Bean property.


orderList

public void orderList(java.util.List<?> objects)
Orders 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

compare

public int compare(java.lang.Object o1,
                   java.lang.Object o2)
Comparable interface implementation. Can compare two Java Beans based on the stored expression.

Specified by:
compare in interface java.util.Comparator<java.lang.Object>

encodeAsXML

public void encodeAsXML(XMLEncoder encoder)
Encodes itself as a query ordering.

Specified by:
encodeAsXML in interface XMLSerializable
Since:
1.1

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

getSortOrder

public SortOrder getSortOrder()
Returns sort order for this ordering

Since:
3.1


Copyright © 2001-2012 Apache Cayenne. All Rights Reserved.