org.apache.cayenne.query
Class Ordering

java.lang.Object
  extended by 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 Summary
static boolean ASC
          Deprecated. Use SortOrder.ASCENDING instead.
static boolean DESC
          Deprecated. Use SortOrder.DESCENDING instead.
protected  boolean nullSortedFirst
           
protected  boolean pathExceptionSuppressed
           
protected  SortOrder sortOrder
           
protected  Expression sortSpec
           
protected  String sortSpecString
           
 
Constructor Summary
Ordering()
           
Ordering(Expression sortExpression, boolean ascending)
          Deprecated. 
Ordering(Expression sortExpression, boolean ascending, boolean caseInsensitive)
          Deprecated. 
Ordering(String sortPathSpec, boolean ascending)
          Deprecated. 
Ordering(String sortPathSpec, boolean ascending, boolean caseInsensitive)
          Deprecated. 
Ordering(String sortPathSpec, SortOrder sortOrder)
           
 
Method Summary
 int compare(Object o1, Object o2)
          Comparable interface implementation.
 void encodeAsXML(XMLEncoder encoder)
          Encodes itself as a query ordering.
 Expression getSortSpec()
          Returns the expression defining a ordering Java Bean property.
 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(List<?> objects)
          Orders the given list of objects according to the ordering that this object specifies.
static void orderList(List<?> objects, 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 setAscending(boolean ascending)
          Deprecated. Use setSortOrder() or setAscending() or setDescending().
 void setCaseInsensitive()
          If the sort order is ASCENDING or DESCENDING, sets the sort order to ASCENDING_INSENSITIVE or DESCENDING_INSENSITIVE, respectively.
 void setCaseInsensitive(boolean caseInsensitive)
          Deprecated. Use setSortOrder() or setCaseInsensitive() or setCaseSensitive().
 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(String sortSpecString)
          Sets sortSpec to be an expression represented by string argument.
 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

ASC

@Deprecated
public static final boolean ASC
Deprecated. Use SortOrder.ASCENDING instead.
Symbolic representation of ascending ordering criterion.

See Also:
Constant Field Values

DESC

@Deprecated
public static final boolean DESC
Deprecated. Use SortOrder.DESCENDING instead.
Symbolic representation of descending ordering criterion.

See Also:
Constant Field Values

sortSpecString

protected 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

@Deprecated
public Ordering(String sortPathSpec,
                           boolean ascending)
Deprecated. 


Ordering

public Ordering(String sortPathSpec,
                SortOrder sortOrder)
Since:
3.0

Ordering

@Deprecated
public Ordering(String sortPathSpec,
                           boolean ascending,
                           boolean caseInsensitive)
Deprecated. 


Ordering

@Deprecated
public Ordering(Expression sortExpression,
                           boolean ascending)
Deprecated. 


Ordering

@Deprecated
public Ordering(Expression sortExpression,
                           boolean ascending,
                           boolean caseInsensitive)
Deprecated. 

Method Detail

orderList

public static void orderList(List<?> objects,
                             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(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 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

@Deprecated
public void setAscending(boolean ascending)
Deprecated. Use setSortOrder() or setAscending() or setDescending().

Sets ascending property of this Ordering.


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

@Deprecated
public void setCaseInsensitive(boolean caseInsensitive)
Deprecated. Use setSortOrder() or setCaseInsensitive() or setCaseSensitive().

Sets caseInsensitive property of this Ordering.


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(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(Object o1,
                   Object o2)
Comparable interface implementation. Can compare two Java Beans based on the stored expression.

Specified by:
compare in interface Comparator<Object>

encodeAsXML

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

Specified by:
encodeAsXML in interface XMLSerializable
Since:
1.1

toString

public String toString()
Overrides:
toString in class Object


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