diff --git a/src/java/com/samskivert/depot/clause/OrderBy.java b/src/java/com/samskivert/depot/clause/OrderBy.java index 23344b0..dc8a21e 100644 --- a/src/java/com/samskivert/depot/clause/OrderBy.java +++ b/src/java/com/samskivert/depot/clause/OrderBy.java @@ -23,6 +23,7 @@ package com.samskivert.depot.clause; import java.util.Collection; import com.samskivert.depot.PersistentRecord; +import com.samskivert.util.ArrayUtil; import com.samskivert.depot.expression.LiteralExp; import com.samskivert.depot.expression.SQLExpression; import com.samskivert.depot.impl.ExpressionVisitor; @@ -75,6 +76,24 @@ public class OrderBy implements QueryClause return _orders; } + /** + * Concatenates the supplied order expression to this one, returns a new expression. + */ + public OrderBy thenAscending (SQLExpression value) + { + return new OrderBy(ArrayUtil.append(_values, value), + ArrayUtil.append(_orders, Order.ASC)); + } + + /** + * Creates and returns a descending order by clause on the supplied expression. + */ + public OrderBy thenDescending (SQLExpression value) + { + return new OrderBy(ArrayUtil.append(_values, value), + ArrayUtil.append(_orders, Order.DESC)); + } + // from SQLExpression public Object accept (ExpressionVisitor builder) {