From 4c0abdff12e54bdb243b69fbbbe54ca0023c74ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Wed, 12 May 2010 13:35:57 +0000 Subject: [PATCH] added support for Query wrapping querydsl-lucene updated version to 1.6.3 --- querydsl-apt/pom.xml | 2 +- querydsl-collections/pom.xml | 2 +- querydsl-core/pom.xml | 2 +- querydsl-hibernate-search/pom.xml | 2 +- querydsl-hql/pom.xml | 2 +- querydsl-jdoql/pom.xml | 2 +- querydsl-lucene/pom.xml | 2 +- .../mysema/query/lucene/LuceneSerializer.java | 4 +- .../com/mysema/query/lucene/QueryElement.java | 40 +++++++++++++++++++ .../query/lucene/LuceneSerializerTest.java | 12 ++++++ querydsl-maven-plugin/pom.xml | 2 +- querydsl-root/pom.xml | 2 +- querydsl-sql/pom.xml | 2 +- 13 files changed, 65 insertions(+), 11 deletions(-) create mode 100644 querydsl-lucene/src/main/java/com/mysema/query/lucene/QueryElement.java diff --git a/querydsl-apt/pom.xml b/querydsl-apt/pom.xml index cbf956533..3b80afe82 100644 --- a/querydsl-apt/pom.xml +++ b/querydsl-apt/pom.xml @@ -5,7 +5,7 @@ com.mysema.querydsl querydsl-root - 1.6.2-SNAPSHOT + 1.6.3 com.mysema.querydsl diff --git a/querydsl-collections/pom.xml b/querydsl-collections/pom.xml index 469cf447f..7e43c1597 100644 --- a/querydsl-collections/pom.xml +++ b/querydsl-collections/pom.xml @@ -5,7 +5,7 @@ com.mysema.querydsl querydsl-root - 1.6.2-SNAPSHOT + 1.6.3 com.mysema.querydsl diff --git a/querydsl-core/pom.xml b/querydsl-core/pom.xml index 3bd6dae7d..acfab6def 100644 --- a/querydsl-core/pom.xml +++ b/querydsl-core/pom.xml @@ -5,7 +5,7 @@ com.mysema.querydsl querydsl-root - 1.6.2-SNAPSHOT + 1.6.3 com.mysema.querydsl diff --git a/querydsl-hibernate-search/pom.xml b/querydsl-hibernate-search/pom.xml index 2260b5c72..63fe9d10c 100644 --- a/querydsl-hibernate-search/pom.xml +++ b/querydsl-hibernate-search/pom.xml @@ -5,7 +5,7 @@ com.mysema.querydsl querydsl-root - 1.6.2-SNAPSHOT + 1.6.3 com.mysema.querydsl diff --git a/querydsl-hql/pom.xml b/querydsl-hql/pom.xml index 448b0fb5c..082e8cb45 100644 --- a/querydsl-hql/pom.xml +++ b/querydsl-hql/pom.xml @@ -5,7 +5,7 @@ com.mysema.querydsl querydsl-root - 1.6.2-SNAPSHOT + 1.6.3 com.mysema.querydsl diff --git a/querydsl-jdoql/pom.xml b/querydsl-jdoql/pom.xml index 32ffe42b2..84ba0cdfc 100644 --- a/querydsl-jdoql/pom.xml +++ b/querydsl-jdoql/pom.xml @@ -5,7 +5,7 @@ com.mysema.querydsl querydsl-root - 1.6.2-SNAPSHOT + 1.6.3 com.mysema.querydsl diff --git a/querydsl-lucene/pom.xml b/querydsl-lucene/pom.xml index 9538ebb5c..1392b2ed5 100644 --- a/querydsl-lucene/pom.xml +++ b/querydsl-lucene/pom.xml @@ -5,7 +5,7 @@ com.mysema.querydsl querydsl-root - 1.6.2-SNAPSHOT + 1.6.3 com.mysema.querydsl diff --git a/querydsl-lucene/src/main/java/com/mysema/query/lucene/LuceneSerializer.java b/querydsl-lucene/src/main/java/com/mysema/query/lucene/LuceneSerializer.java index cf84c7599..8939f2205 100644 --- a/querydsl-lucene/src/main/java/com/mysema/query/lucene/LuceneSerializer.java +++ b/querydsl-lucene/src/main/java/com/mysema/query/lucene/LuceneSerializer.java @@ -236,8 +236,10 @@ public class LuceneSerializer { public Query toQuery(Expr expr) { if (expr instanceof Operation) { return toQuery((Operation) expr); + }else if (expr instanceof QueryElement){ + return ((QueryElement)expr).getQuery(); } - throw new IllegalArgumentException("expr was not of type Operation"); + throw new IllegalArgumentException("expr was not of type Operation or QueryElement"); } public Sort toSort(List> orderBys){ diff --git a/querydsl-lucene/src/main/java/com/mysema/query/lucene/QueryElement.java b/querydsl-lucene/src/main/java/com/mysema/query/lucene/QueryElement.java new file mode 100644 index 000000000..26ef4695b --- /dev/null +++ b/querydsl-lucene/src/main/java/com/mysema/query/lucene/QueryElement.java @@ -0,0 +1,40 @@ +package com.mysema.query.lucene; + +import org.apache.lucene.search.Query; + +import com.mysema.query.types.Visitor; +import com.mysema.query.types.expr.EBoolean; + +/** + * QueryElement wraps a lucene Query + * + * @author tiwe + * + */ +public class QueryElement extends EBoolean{ + + private static final long serialVersionUID = 470868107363840155L; + + private final Query query; + + public QueryElement(Query query){ + this.query = query; + } + + @Override + public void accept(Visitor v) { + // ?!? + } + + @Override + public boolean equals(Object o) { + return o instanceof QueryElement && ((QueryElement)o).query.equals(query); + } + + public Query getQuery() { + return query; + } + + + +} diff --git a/querydsl-lucene/src/test/java/com/mysema/query/lucene/LuceneSerializerTest.java b/querydsl-lucene/src/test/java/com/mysema/query/lucene/LuceneSerializerTest.java index f218b23c1..ff02766ce 100644 --- a/querydsl-lucene/src/test/java/com/mysema/query/lucene/LuceneSerializerTest.java +++ b/querydsl-lucene/src/test/java/com/mysema/query/lucene/LuceneSerializerTest.java @@ -103,6 +103,18 @@ public class LuceneSerializerTest { assertEquals(expectedHits, docs.totalHits); assertEquals(expectedQuery, query.toString()); } + + @Test + public void queryElement() throws Exception{ + Query query1 = serializer.toQuery(author.like("Michael")); + Query query2 = serializer.toQuery(text.like("Text")); + + EBoolean query = EBoolean.anyOf( + new QueryElement(query1), + new QueryElement(query2) + ); + testQuery(query, "author:michael text:text", 1); + } @Test public void like() throws Exception { diff --git a/querydsl-maven-plugin/pom.xml b/querydsl-maven-plugin/pom.xml index 6988bd0cc..cdb3b2eee 100644 --- a/querydsl-maven-plugin/pom.xml +++ b/querydsl-maven-plugin/pom.xml @@ -5,7 +5,7 @@ com.mysema.querydsl querydsl-root - 1.6.2-SNAPSHOT + 1.6.3 com.mysema.querydsl diff --git a/querydsl-root/pom.xml b/querydsl-root/pom.xml index f751c09e0..bf22936b7 100644 --- a/querydsl-root/pom.xml +++ b/querydsl-root/pom.xml @@ -4,7 +4,7 @@ 4.0.0 com.mysema.querydsl querydsl-root - 1.6.2-SNAPSHOT + 1.6.3 Querydsl parent project for querydsl modules http://source.mysema.com/display/querydsl diff --git a/querydsl-sql/pom.xml b/querydsl-sql/pom.xml index a7b83ee57..d7826cf7e 100644 --- a/querydsl-sql/pom.xml +++ b/querydsl-sql/pom.xml @@ -5,7 +5,7 @@ com.mysema.querydsl querydsl-root - 1.6.2-SNAPSHOT + 1.6.3 com.mysema.querydsl