bug in exception handling
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/CollectionQuery.java b/src/main/java/de/ids_mannheim/korap/query/serialize/CollectionQuery.java
index 851cc31..7cda44e 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/CollectionQuery.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/CollectionQuery.java
@@ -202,6 +202,7 @@
*
* @return
*/
+ @Deprecated
public String stringify() {
List collection = getCollectionsOnly();
if (collection.isEmpty())
@@ -215,6 +216,22 @@
}
}
+
+ /**
+ * returns all references to parents and meta query as string representation
+ *
+ * @return
+ */
+ public String stringifyAll() {
+ try {
+ return serialzer.writeValueAsString(join());
+ } catch (JsonProcessingException e) {
+ e.printStackTrace();
+ return "";
+ }
+ }
+
+
/**
* returns the List<Map> that contains all the meta queries and resource queries
* added to the meta query container
diff --git a/src/main/java/de/ids_mannheim/korap/query/serialize/QuerySerializer.java b/src/main/java/de/ids_mannheim/korap/query/serialize/QuerySerializer.java
index 493758e..e6ffbe6 100644
--- a/src/main/java/de/ids_mannheim/korap/query/serialize/QuerySerializer.java
+++ b/src/main/java/de/ids_mannheim/korap/query/serialize/QuerySerializer.java
@@ -129,14 +129,20 @@
String cli, String cri, int cls, int crs,
int num, int page, boolean cutoff)
throws QueryException {
- if (ql.toLowerCase().equals("poliqarp")) {
- ast = new PoliqarpPlusTree(query);
- } else if (ql.toLowerCase().equals("cosmas2")) {
- ast = new CosmasTree(query);
- } else if (ql.toLowerCase().equals("poliqarpplus")) {
- ast = new PoliqarpPlusTree(query);
- } else {
- throw new QueryException(ql + " is not a supported query language!");
+ try {
+ if (ql.toLowerCase().equals("poliqarp")) {
+ ast = new PoliqarpPlusTree(query);
+ } else if (ql.toLowerCase().equals("cosmas2")) {
+ ast = new CosmasTree(query);
+ } else if (ql.toLowerCase().equals("poliqarpplus")) {
+ ast = new PoliqarpPlusTree(query);
+ } else {
+ throw new QueryException(ql + " is not a supported query language!");
+ }
+ } catch (QueryException e) {
+ throw e;
+ } catch (Exception e) {
+ throw new QueryException("UNKNOWN: Query could not be parsed");
}
Map<String, Object> requestMap = ast.getRequestMap();
@@ -149,11 +155,17 @@
meta.addEntry("startPage", page);
meta.addEntry("count", num);
- try {
+ try
+
+ {
requestMap.put("collections", collectionQuery.raw());
requestMap.put("meta", meta.raw());
return mapper.writeValueAsString(requestMap);
- } catch (IOException e) {
+ } catch (
+ IOException e
+ )
+
+ {
return "";
}
diff --git a/src/test/java/MetaQuerySerializationTest.java b/src/test/java/MetaQuerySerializationTest.java
index a1c1879..03cd549 100644
--- a/src/test/java/MetaQuerySerializationTest.java
+++ b/src/test/java/MetaQuerySerializationTest.java
@@ -1,6 +1,7 @@
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
+import de.ids_mannheim.korap.query.serialize.CollectionQuery;
import de.ids_mannheim.korap.query.serialize.QuerySerializer;
import de.ids_mannheim.korap.query.serialize.MetaQuery;
import de.ids_mannheim.korap.util.QueryException;
@@ -30,14 +31,14 @@
b.append("pubPlace:Erfurt");
b.append(" AND ");
b.append("textClass:wissenschaft");
- MetaQuery qu = new MetaQuery().addMetaFilter(b.toString());
+ CollectionQuery qu = new CollectionQuery().addMetaFilter(b.toString());
// System.out.println("value reference " + qu.stringify());
// System.out.println();
}
@Test
public void testSingle() throws IOException {
- MetaQuery query = new MetaQuery().addMetaFilter("textClass", "wissenschaft");
+ CollectionQuery query = new CollectionQuery().addMetaFilter("textClass", "wissenschaft");
// System.out.println("------ TEXT SINGLE " + query.stringify());
System.out.println();
}
@@ -50,9 +51,9 @@
b.append("pubDate:<2012-04-01");
b.append(" AND ");
b.append("author:Goethe");
- MetaQuery query = new MetaQuery().addMetaFilter(b.toString());
+ CollectionQuery query = new CollectionQuery().addMetaFilter(b.toString());
System.out.println("value until/since : " + query.stringify());
- System.out.println("meta value until/since " + query.toMeta());
+ System.out.println("meta value until/since " + query.toCollections());
Assert.assertEquals("[{\"@type\":\"korap:meta-filter\",\"@value\":{\"@type\":\"korap:group\",\"relation\":\"and\",\"operands\":[{\"@type\":\"korap:term\",\"@field\":\"korap:field#author\",\"@value\":\"Goethe\"},{\"@type\":\"korap:group\",\"@field\":\"korap:field#pubDate\",\"relation\":\"between\",\"operands\":[{\"@type\":\"korap:date\",\"@value\":\"2012-04-01\"},{\"@type\":\"korap:date\",\"@value\":\"2013-04-01\"}]}]}}]", query.stringify());
// System.out.println();
}
@@ -63,7 +64,7 @@
b.append("pubDate:>2013-12-10");
b.append(" AND ");
b.append("author:Hesse");
- MetaQuery query = new MetaQuery().addMetaFilter(b.toString());
+ CollectionQuery query = new CollectionQuery().addMetaFilter(b.toString());
System.out.println("Running date check (until) with additional attribute author");
Assert.assertEquals("[{\"@type\":\"korap:meta-filter\",\"@value\":{\"@type\":\"korap:group\",\"relation\":\"and\",\"operands\":[{\"@type\":\"korap:term\",\"@field\":\"korap:field#author\",\"@value\":\"Hesse\"},{\"@type\":\"korap:group\",\"@field\":\"korap:field#pubDate\",\"relation\":\"until\",\"operands\":[{\"@type\":\"korap:date\",\"@value\":\"2013-12-10\"}]}]}}]", query.stringify());
// System.out.println("value until : " + query.stringify());
@@ -76,9 +77,9 @@
b.append("pubDate:<2013-12-10");
b.append(" AND ");
b.append("author:Kafka");
- MetaQuery query = new MetaQuery().addMetaFilter(b.toString());
+ CollectionQuery query = new CollectionQuery().addMetaFilter(b.toString());
System.out.println("value since : " + query.stringify());
- System.out.println("meta value since " + query.toMeta());
+ System.out.println("meta value since " + query.toCollections());
// System.out.println();
System.out.println("Running date check (since) with additional attribute author");
Assert.assertEquals("[{\"@type\":\"korap:meta-filter\",\"@value\":{\"@type\":\"korap:group\",\"relation\":\"and\",\"operands\":[{\"@type\":\"korap:term\",\"@field\":\"korap:field#author\",\"@value\":\"Kafka\"},{\"@type\":\"korap:group\",\"@field\":\"korap:field#pubDate\",\"relation\":\"since\",\"operands\":[{\"@type\":\"korap:date\",\"@value\":\"2013-12-10\"}]}]}}]", query.stringify());
@@ -124,7 +125,7 @@
b.append("pubDate:<2013-12-10");
b.append(" AND ");
b.append("author:Kafka");
- MetaQuery query = new MetaQuery().addMetaFilter(b.toString());
+ CollectionQuery query = new CollectionQuery().addMetaFilter(b.toString());
query.addMetaExtend("author", "Hesse");
// System.out.println("--- ALL " + query.stringify());
@@ -138,14 +139,14 @@
b.append("pubDate:<2013-12-10");
b.append(" AND ");
b.append("author:Kafka");
- MetaQuery q = new MetaQuery().addMetaExtend(b.toString());
+ CollectionQuery q = new CollectionQuery().addMetaExtend(b.toString());
// System.out.println("array repres " + q.toMeta());
// System.out.println();
}
@Test
public void testCollections() throws IOException {
- MetaQuery q = new MetaQuery().addMetaFilter("corpusID", "A00");
+ CollectionQuery q = new CollectionQuery().addMetaFilter("corpusID", "A00");
q.addMetaExtend("corpusID", "A01");
// System.out.println("results stringified " + q.stringify());
@@ -162,16 +163,16 @@
@Test
public void testResources() throws IOException {
String meta = "[{\"@type\":\"korap:meta-filter\",\"@value\":{\"@type\":\"korap:term\",\"@field\":\"korap:field#corpusID\",\"@value\":\"WPD\"}}]";
- MetaQuery q = new MetaQuery().addResource(meta);
+ CollectionQuery q = new CollectionQuery().addResource(meta);
org.junit.Assert.assertEquals("String should be empty", "", q.stringify());
// System.out.println("meta string " + q.toMeta());
System.out.println("Testing Resource Meta data");
- org.junit.Assert.assertEquals("{\"meta\":" + meta + "}", q.toMeta());
+ org.junit.Assert.assertEquals("{\"meta\":" + meta + "}", q.toCollections());
}
@Test
public void testA00() throws IOException {
- MetaQuery q = new MetaQuery().addMetaExtend("corpusID", "A00").addMetaExtend("corpusID", "A01");
+ CollectionQuery q = new CollectionQuery().addMetaExtend("corpusID", "A00").addMetaExtend("corpusID", "A01");
// System.out.println("A meta: " + q.stringify());
// System.out.println();
}
@@ -179,7 +180,7 @@
@Test
public void testResources2() throws IOException {
String meta = "[{\"@type\":\"korap:meta-filter\",\"@value\":{\"@type\":\"korap:term\",\"@field\":\"korap:field#corpusID\",\"@value\":\"WPD\"}}]";
- MetaQuery q = new MetaQuery().addResource(meta);
+ CollectionQuery q = new CollectionQuery().addResource(meta);
q.addMetaFilter("textClass", "wissenschaft");
// System.out.println("stringified meta " + q.stringify());
// System.out.println("meta string " + q.toMeta());