From a875cd8d25c2e031bec7229ca8c724e5a90a64d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Thu, 21 Jan 2010 14:12:28 +0000 Subject: [PATCH] extended DetachableQuery --- .../main/java/com/mysema/query/Detachable.java | 16 ++++++++++++++++ .../mysema/query/support/DetachableMixin.java | 15 +++++++++++++++ .../mysema/query/support/DetachableQuery.java | 12 +++++++++++- 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/querydsl-core/src/main/java/com/mysema/query/Detachable.java b/querydsl-core/src/main/java/com/mysema/query/Detachable.java index 408c8626c..35d6dd3c6 100644 --- a/querydsl-core/src/main/java/com/mysema/query/Detachable.java +++ b/querydsl-core/src/main/java/com/mysema/query/Detachable.java @@ -35,6 +35,14 @@ public interface Detachable { * @return a List over the projection */ ListSubQuery list(Expr first, Expr second, Expr... rest); + + /** + * + * + * @param args + * @return + */ + ListSubQuery list(Expr[] args); /** * Create a projection expression for the given projection @@ -55,6 +63,14 @@ public interface Detachable { * @return */ ObjectSubQuery unique(Expr first, Expr second, Expr... rest); + + /** + * Create a projection expression for the given projection + * + * @param args + * @return + */ + ObjectSubQuery unique(Expr[] args); /** * Create a projection expression for the given projection diff --git a/querydsl-core/src/main/java/com/mysema/query/support/DetachableMixin.java b/querydsl-core/src/main/java/com/mysema/query/support/DetachableMixin.java index f305e67c9..ef72aa028 100644 --- a/querydsl-core/src/main/java/com/mysema/query/support/DetachableMixin.java +++ b/querydsl-core/src/main/java/com/mysema/query/support/DetachableMixin.java @@ -33,6 +33,13 @@ public class DetachableMixin implements Detachable{ queryMixin.addToProjection(Ops.AggOps.COUNT_ALL_AGG_EXPR); return new ObjectSubQuery(queryMixin.getMetadata(), Long.class); } + + + @Override + public ListSubQuery list(Expr[] args) { + queryMixin.addToProjection(args); + return new ListSubQuery(queryMixin.getMetadata(), Object[].class); + } @Override public ListSubQuery list(Expr first, Expr second, Expr... rest) { @@ -47,6 +54,14 @@ public class DetachableMixin implements Detachable{ queryMixin.addToProjection(projection); return new ListSubQuery(queryMixin.getMetadata(), (Class)projection.getType()); } + + + @Override + public ObjectSubQuery unique(Expr[] args) { + queryMixin.addToProjection(args); + queryMixin.setUnique(true); + return new ObjectSubQuery(queryMixin.getMetadata(), Object[].class); + } @Override public ObjectSubQuery unique(Expr first, Expr second, Expr... rest) { diff --git a/querydsl-core/src/main/java/com/mysema/query/support/DetachableQuery.java b/querydsl-core/src/main/java/com/mysema/query/support/DetachableQuery.java index f44dda12d..fb81b8ec5 100644 --- a/querydsl-core/src/main/java/com/mysema/query/support/DetachableQuery.java +++ b/querydsl-core/src/main/java/com/mysema/query/support/DetachableQuery.java @@ -18,7 +18,7 @@ import com.mysema.query.types.query.ObjectSubQuery; * * @param */ -public abstract class DetachableQuery > extends QueryBase implements Detachable { +public class DetachableQuery > extends QueryBase implements Detachable { private final DetachableMixin detachableMixin; @@ -62,4 +62,14 @@ public abstract class DetachableQuery > return detachableMixin.unique(projection); } + @Override + public ListSubQuery list(Expr[] args) { + return detachableMixin.list(args); + } + + @Override + public ObjectSubQuery unique(Expr[] args) { + return detachableMixin.unique(args); + } + }