From 8b202f530e9c4ad65a838c68e7b30408d0773735 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Mon, 11 May 2009 19:30:25 +0000 Subject: [PATCH] More fluency. --- .../com/samskivert/depot/clause/OrderBy.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) 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) {