From 7dc0433e36aa6fa2fa920a257282ca1565c771eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Fri, 27 Mar 2009 13:13:36 +0000 Subject: [PATCH] introduced Projectable interface --- .../java/com/mysema/query/Projectable.java | 46 +++++++++++++++++++ .../com/mysema/query/ProjectableAdapter.java | 46 +++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 querydsl-core/src/main/java/com/mysema/query/Projectable.java create mode 100644 querydsl-core/src/main/java/com/mysema/query/ProjectableAdapter.java diff --git a/querydsl-core/src/main/java/com/mysema/query/Projectable.java b/querydsl-core/src/main/java/com/mysema/query/Projectable.java new file mode 100644 index 000000000..ab5b49d8b --- /dev/null +++ b/querydsl-core/src/main/java/com/mysema/query/Projectable.java @@ -0,0 +1,46 @@ +package com.mysema.query; + +import java.util.Iterator; +import java.util.List; + +import com.mysema.query.grammar.types.Expr; + +/** + * Projectable provides + * + * @author tiwe + * @version $Id$ + */ +public interface Projectable { + /** + * return the amount of matched rows + */ + long count(); + + /** + * iterate over the results with the given projection + */ + Iterator iterate(Expr e1, Expr e2, Expr... rest); + + /** + * iterate over the results with the given projection + */ + Iterator iterate(Expr projection); + + /** + * list the results with the given projection + */ + List list(Expr e1, Expr e2, Expr... rest); + + /** + * list the results with the given projection + */ + List list(Expr projection); + + /** + * return a unique result for the given projection or null for an empty result + */ + RT uniqueResult(Expr expr); + + +} \ No newline at end of file diff --git a/querydsl-core/src/main/java/com/mysema/query/ProjectableAdapter.java b/querydsl-core/src/main/java/com/mysema/query/ProjectableAdapter.java new file mode 100644 index 000000000..69c8ffd39 --- /dev/null +++ b/querydsl-core/src/main/java/com/mysema/query/ProjectableAdapter.java @@ -0,0 +1,46 @@ +package com.mysema.query; + +import java.util.Iterator; +import java.util.List; + +import com.mysema.query.grammar.types.Expr; + +/** + * ProjectableAdapter provides + * + * @author tiwe + * @version $Id$ + */ +public abstract class ProjectableAdapter implements Projectable{ + + private Projectable projectable; + + public ProjectableAdapter(Projectable projectable){ + this.projectable = projectable; + } + + public long count() { + return projectable.count(); + } + + public Iterator iterate(Expr e1, Expr e2, Expr... rest) { + return projectable.iterate(e1, e2, rest); + } + + public Iterator iterate(Expr projection) { + return projectable.iterate(projection); + } + + public List list(Expr e1, Expr e2, Expr... rest) { + return projectable.list(e1, e2, rest); + } + + public List list(Expr projection) { + return projectable.list(projection); + } + + public RT uniqueResult(Expr expr) { + return projectable.uniqueResult(expr); + } + +}