diff --git a/querydsl-mongodb/src/main/java/com/querydsl/mongodb/AnyEmbeddedBuilder.java b/querydsl-mongodb/src/main/java/com/querydsl/mongodb/AnyEmbeddedBuilder.java index 0dcc7616e..69bbb5b9b 100644 --- a/querydsl-mongodb/src/main/java/com/querydsl/mongodb/AnyEmbeddedBuilder.java +++ b/querydsl-mongodb/src/main/java/com/querydsl/mongodb/AnyEmbeddedBuilder.java @@ -28,19 +28,19 @@ import com.querydsl.core.types.PredicateOperation; * * @param */ -public class AnyEmbeddedBuilder { +public class AnyEmbeddedBuilder, K> { - private final QueryMixin> queryMixin; + private final QueryMixin queryMixin; private final Path> collection; - public AnyEmbeddedBuilder(QueryMixin> queryMixin, + public AnyEmbeddedBuilder(QueryMixin queryMixin, Path> collection) { this.queryMixin = queryMixin; this.collection = collection; } - public MongodbQuery on(Predicate... conditions) { + public Q on(Predicate... conditions) { return queryMixin.where(PredicateOperation.create( MongodbOps.ELEM_MATCH, collection, ExpressionUtils.allOf(conditions))); } diff --git a/querydsl-mongodb/src/main/java/com/querydsl/mongodb/JoinBuilder.java b/querydsl-mongodb/src/main/java/com/querydsl/mongodb/JoinBuilder.java index 342202c6a..da8cd90bc 100644 --- a/querydsl-mongodb/src/main/java/com/querydsl/mongodb/JoinBuilder.java +++ b/querydsl-mongodb/src/main/java/com/querydsl/mongodb/JoinBuilder.java @@ -24,24 +24,25 @@ import com.querydsl.core.types.Predicate; * * @author tiwe * + * @param * @param * @param */ -public class JoinBuilder { +public class JoinBuilder, K, T> { - private final QueryMixin> queryMixin; + private final QueryMixin queryMixin; private final Path ref; private final Path target; - public JoinBuilder(QueryMixin> queryMixin, Path ref, Path target) { + public JoinBuilder(QueryMixin queryMixin, Path ref, Path target) { this.queryMixin = queryMixin; this.ref = ref; this.target = target; } - public MongodbQuery on(Predicate... conditions) { + public Q on(Predicate... conditions) { queryMixin.addJoin(JoinType.JOIN, ExpressionUtils.as((Path)ref, target)); queryMixin.on(conditions); return queryMixin.getSelf(); diff --git a/querydsl-mongodb/src/main/java/com/querydsl/mongodb/MongodbQuery.java b/querydsl-mongodb/src/main/java/com/querydsl/mongodb/MongodbQuery.java index a829ce758..6d3c45f5b 100644 --- a/querydsl-mongodb/src/main/java/com/querydsl/mongodb/MongodbQuery.java +++ b/querydsl-mongodb/src/main/java/com/querydsl/mongodb/MongodbQuery.java @@ -35,16 +35,17 @@ import com.querydsl.core.types.path.CollectionPathBase; * * @author laimw * + * @param * @param */ -public abstract class MongodbQuery implements SimpleQuery>, SimpleProjectable { +public abstract class MongodbQuery, K> implements SimpleQuery, SimpleProjectable { @SuppressWarnings("serial") private static class NoResults extends RuntimeException {} private final MongodbSerializer serializer; - private final QueryMixin> queryMixin; + private final QueryMixin queryMixin; private final DBCollection collection; @@ -60,7 +61,7 @@ public abstract class MongodbQuery implements SimpleQuery>, S * @param serializer */ public MongodbQuery(DBCollection collection, Function transformer, MongodbSerializer serializer) { - this.queryMixin = new QueryMixin>(this, new DefaultQueryMetadata().noValidate(), false); + this.queryMixin = new QueryMixin((Q)this, new DefaultQueryMetadata().noValidate(), false); this.transformer = transformer; this.collection = collection; this.serializer = serializer; @@ -73,8 +74,8 @@ public abstract class MongodbQuery implements SimpleQuery>, S * @param target * @return */ - public JoinBuilder join(Path ref, Path target) { - return new JoinBuilder(queryMixin, ref, target); + public JoinBuilder join(Path ref, Path target) { + return new JoinBuilder(queryMixin, ref, target); } /** @@ -84,8 +85,8 @@ public abstract class MongodbQuery implements SimpleQuery>, S * @param target * @return */ - public JoinBuilder join(CollectionPathBase ref, Path target) { - return new JoinBuilder(queryMixin, ref, target); + public JoinBuilder join(CollectionPathBase ref, Path target) { + return new JoinBuilder(queryMixin, ref, target); } /** @@ -95,8 +96,8 @@ public abstract class MongodbQuery implements SimpleQuery>, S * @param target * @return */ - public AnyEmbeddedBuilder anyEmbedded(Path> collection, Path target) { - return new AnyEmbeddedBuilder(queryMixin, collection); + public AnyEmbeddedBuilder anyEmbedded(Path> collection, Path target) { + return new AnyEmbeddedBuilder(queryMixin, collection); } protected abstract DBCollection getCollection(Class type); @@ -170,45 +171,45 @@ public abstract class MongodbQuery implements SimpleQuery>, S } @Override - public MongodbQuery distinct() { + public Q distinct() { return queryMixin.distinct(); } - public MongodbQuery where(Predicate e) { + public Q where(Predicate e) { return queryMixin.where(e); } @Override - public MongodbQuery where(Predicate... e) { + public Q where(Predicate... e) { return queryMixin.where(e); } @Override - public MongodbQuery limit(long limit) { + public Q limit(long limit) { return queryMixin.limit(limit); } @Override - public MongodbQuery offset(long offset) { + public Q offset(long offset) { return queryMixin.offset(offset); } @Override - public MongodbQuery restrict(QueryModifiers modifiers) { + public Q restrict(QueryModifiers modifiers) { return queryMixin.restrict(modifiers); } - public MongodbQuery orderBy(OrderSpecifier o) { + public Q orderBy(OrderSpecifier o) { return queryMixin.orderBy(o); } @Override - public MongodbQuery orderBy(OrderSpecifier... o) { + public Q orderBy(OrderSpecifier... o) { return queryMixin.orderBy(o); } @Override - public MongodbQuery set(ParamExpression param, T value) { + public Q set(ParamExpression param, T value) { return queryMixin.set(param, value); } diff --git a/querydsl-mongodb/src/main/java/com/querydsl/mongodb/morphia/MorphiaQuery.java b/querydsl-mongodb/src/main/java/com/querydsl/mongodb/morphia/MorphiaQuery.java index efc6d8bfb..991cff651 100644 --- a/querydsl-mongodb/src/main/java/com/querydsl/mongodb/morphia/MorphiaQuery.java +++ b/querydsl-mongodb/src/main/java/com/querydsl/mongodb/morphia/MorphiaQuery.java @@ -32,7 +32,7 @@ import com.querydsl.core.types.EntityPath; * @author tiwe * */ -public class MorphiaQuery extends MongodbQuery { +public class MorphiaQuery extends MongodbQuery, K> { private final EntityCache cache; diff --git a/querydsl-mongodb/src/test/java/com/querydsl/mongodb/JoinTest.java b/querydsl-mongodb/src/test/java/com/querydsl/mongodb/JoinTest.java index 47fafaec4..a72d8b3b2 100644 --- a/querydsl-mongodb/src/test/java/com/querydsl/mongodb/JoinTest.java +++ b/querydsl-mongodb/src/test/java/com/querydsl/mongodb/JoinTest.java @@ -145,11 +145,11 @@ public class JoinTest { .singleResult().getFirstName()); } - private MongodbQuery query() { + private MorphiaQuery query() { return new MorphiaQuery(morphia, ds, user); } - private MongodbQuery where(Predicate ... e) { + private MorphiaQuery where(Predicate ... e) { return query().where(e); } } diff --git a/querydsl-mongodb/src/test/java/com/querydsl/mongodb/MongodbQueryTest.java b/querydsl-mongodb/src/test/java/com/querydsl/mongodb/MongodbQueryTest.java index d8109dbf0..01d3a8bcb 100644 --- a/querydsl-mongodb/src/test/java/com/querydsl/mongodb/MongodbQueryTest.java +++ b/querydsl-mongodb/src/test/java/com/querydsl/mongodb/MongodbQueryTest.java @@ -381,7 +381,7 @@ public class MongodbQueryTest { @Test public void UniqueResultAndLimitAndOffset() { - MongodbQuery q = query().where(user.firstName.startsWith("Ja")).orderBy(user.age.asc()); + MorphiaQuery q = query().where(user.firstName.startsWith("Ja")).orderBy(user.age.asc()); assertEquals(4, q.list().size()); assertEquals(u1, q.list().get(0)); } @@ -485,11 +485,11 @@ public class MongodbQueryTest { assertQuery(where(e).orderBy(orderBy), expected); } - private MongodbQuery where(EntityPath entity, Predicate... e) { + private MorphiaQuery where(EntityPath entity, Predicate... e) { return new MorphiaQuery(morphia, ds, entity).where(e); } - private MongodbQuery where(Predicate ... e) { + private MorphiaQuery where(Predicate ... e) { return query().where(e); } @@ -501,7 +501,7 @@ public class MongodbQueryTest { return new MorphiaQuery(morphia, ds, path); } - private void assertQuery(MongodbQuery query, User ... expected ) { + private void assertQuery(MorphiaQuery query, User ... expected ) { //System.out.println(query.toString()); List results = query.list();